SlideShare a Scribd company logo
Generic Objects
Bill Wei - Red Hat
@bzwei
Agenda
What is a generic object?
Why generic objects are needed?
Who can access generic objects?
Use cases
Development status
Future
Limitations
What is a Generic Object
It is an “object”
It is like an object
It has a definition
Define in runtime
Each type has an unique name and user defined
attributes/relationships
Stored in four tables - one for definitions, one for objects, one
for attributes, and one for relationships
What is a Generic Object
Create a definition
Create a generic object from a definition
Use the generic object
Why generic objects are needed
Talk topic: Generic objects in AE Model
http://talk.manageiq.org/t/generic-objects-in-ae-model/252
Good for quickly adding capability of collecting and
provisioning resources that are not yet officially supported
in ManageIQ
Examples include Load Balancer or RDS Database
A basis for modeling official ManageIQ support
generic_objects
g_o_definitions
Who can access generic objects
Engine
DRb
DRb
Script
(CRUD)
Postgres
Automate
Controller
UI REST client
Use Case: Create generic object definitions
Create/List/Update/Delete generic object definitions through
UI
It has a type name, an icon representation, and a
description
It defines type specific attributes
It defines associations to other resources
Update/deletion of definitions that already have instances
is limited
Use Case: Provider resource provisioning through service
Purpose: Provision a new resource type that is not supported in ManageIQ
● Create a Generic Catalog Item
● Catalog item runs a state machine with typical pre-provisioning,
provisioning, check-provisioned, post-provisioning steps
● Create the resource in the provider through API (for example, AWS
RDS API)
● Create a corresponding generic object in ManageIQ
● Add associations to other objects (Generic or Rails Models)
● Resulting generic objects can be shown in UI or reports, with
Use Case: Process generic objects through automate
Generic objects can be shown in ManageIQ UI
User can add a button to a generic object
The button is connected to an automate entry-point where
the generic object can be processed
Use Case: Use generic objects in a service
Generic objects can be directly accessed or passed in as a
parameter in any step of an existing service state machine,
for example, the pre-provisioning, provisioning, or post-
provisioning method of a vm provisioning.
Development Progress
Current:
GenericObjectDefinition with attributes
GenericObject with attributes setters/getters
Coming soon:
Expose in automate
Simple relationships
Direct many-to-many
Simple querying
REST API
Full CRUD for definitions
Examples
User script to create a generic object and get/set attributes
Examples - REST API endpoints
Definitions: /api/object_definitions/
Objects: /api/objects/
Examples: CRUD on generic object definitions
Create POST /api/object_definitions/
POST /api/object_definitions/ via action: "create"
Query All Definitions GET /api/object_definitions/
Query One Definition GET /api/object_definitions/:id
GET /api/object_definitions/:name
Update Multiple Definitions POST /api/object_definitions action: "edit"
Update Definition POST /api/object_definitions/[:id|:name] action: "edit"
PUT /api/object_definitions/[:id|:name]
Delete a definition DELETE /api/object_definitions/[:id|:name]
or POST /api/object_definitions/[:id|:name] action: "delete"
Note: Must fail if objects of this type exists.
Example: CRUD on generic objects
Create POST /api/object_definition/[:id|:name]/objects
or POST /api/objects
Query All Objects GET /api/objects
Query Objects of same Definition GET /api/object_definitions/[:id|:name]/objects
GET /api/object_definitions/[:id|:name]?expand=objects
possibly: GET /api/objects?filter[]=object_definition.name='<name>'
Update an object POST /api/objects/:id action: "edit"
PUT /api/objects/:id
Delete an object DELETE /api/objects/:id
POST /api/objects/:id action: "delete"
Delete multiple objects POST /api/objects action: "delete"
Future
Can be tagged
Can be reported on
Can be used for chargeback
Can have an associated graphic image
Can be used in widgets
Limitations
It is an active record but not true active record
Updates to the generic object definition (custom attributes
and relationships) have no protection for existing generic
objects
Limited querying capability
Simple relationships
Performance
Generic Objects - Bill Wei - ManageIQ Design Summit 2016

More Related Content

PPTX
OpenStack - Tzu-Mainn Chen, Marek Aufart, Petr Blaho - ManageIQ Design Summit...
PPTX
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
PPTX
Azure service fabric: a gentle introduction
PPTX
성공적인 서비스로의 플랫폼 선택
PPTX
Serverless in Azure with Functions
PPTX
Mulesoftanypointplatformintro
PPTX
Online Spreadsheet for your Web Applications using Kendo UI
PPTX
Container Management - Federico Simoncelli - ManageIQ Design Summit 2016
OpenStack - Tzu-Mainn Chen, Marek Aufart, Petr Blaho - ManageIQ Design Summit...
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Azure service fabric: a gentle introduction
성공적인 서비스로의 플랫폼 선택
Serverless in Azure with Functions
Mulesoftanypointplatformintro
Online Spreadsheet for your Web Applications using Kendo UI
Container Management - Federico Simoncelli - ManageIQ Design Summit 2016

What's hot (20)

PDF
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
PDF
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
PDF
BizTalk Server Extensibility
PPTX
Logging best practice in mule using logger component
PPT
MVC Pattern. Flex implementation of MVC
PPTX
Client Object Model - SharePoint Extreme 2012
PPTX
Alfresco/Activiti Modeler Application - Andras Popovics - 2019
PPTX
Springboot Microservices
PPTX
Anypoint connector basics
PPTX
App fabric hybrid computing
PDF
Dot net interview questions and asnwers
PPTX
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
PPTX
Continuous delivery by sergey seletsky
PPTX
MicroServices on Azure
PPTX
Azure Service Fabric
PDF
Hibernate 6.0 - What's new.pdf
PDF
Introduction To Spring Enterprise Integration - SpringPeople
PPT
Mule 3.4 features
PPTX
Microsoft cloud integration patterns - BizTalk/Azure
PPTX
Introduction to Windows Azure AppFabric Applications
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
BizTalk Server Extensibility
Logging best practice in mule using logger component
MVC Pattern. Flex implementation of MVC
Client Object Model - SharePoint Extreme 2012
Alfresco/Activiti Modeler Application - Andras Popovics - 2019
Springboot Microservices
Anypoint connector basics
App fabric hybrid computing
Dot net interview questions and asnwers
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Continuous delivery by sergey seletsky
MicroServices on Azure
Azure Service Fabric
Hibernate 6.0 - What's new.pdf
Introduction To Spring Enterprise Integration - SpringPeople
Mule 3.4 features
Microsoft cloud integration patterns - BizTalk/Azure
Introduction to Windows Azure AppFabric Applications
Ad

Similar to Generic Objects - Bill Wei - ManageIQ Design Summit 2016 (20)

PDF
Batch Scripting with Drupal (Featuring the EntityFieldQuery API)
PPT
Yii php framework_honey
PDF
22519 - Client-Side Scripting Language (CSS) chapter 1 notes .pdf
PPTX
Overview of entity framework by software outsourcing company india
PPTX
Building enterprise web applications with spring 3
PPT
M03 1 Structuraldiagrams
PPTX
WPF - Controls &amp; Data
PPT
2.business object repository
PPTX
Object identification and its management
PPT
Advanced Web Development
ODP
(An Extended) Beginners Guide to Object Orientation in PHP
PDF
Yii Framework Security
PPTX
Behaviour Driven Development V 0.1
PPTX
Mastering Test Automation: How To Use Selenium Successfully
PPTX
My Very First Zf App Part One
PDF
Best practices in using Salesforce Metadata API
PPTX
Prairie DevCon 2015 - Crafting Evolvable API Responses
PDF
Best practices in using Salesforce Metadata API
PPTX
SharePoint Saturday Atlanta 2015
PPT
Spring training
Batch Scripting with Drupal (Featuring the EntityFieldQuery API)
Yii php framework_honey
22519 - Client-Side Scripting Language (CSS) chapter 1 notes .pdf
Overview of entity framework by software outsourcing company india
Building enterprise web applications with spring 3
M03 1 Structuraldiagrams
WPF - Controls &amp; Data
2.business object repository
Object identification and its management
Advanced Web Development
(An Extended) Beginners Guide to Object Orientation in PHP
Yii Framework Security
Behaviour Driven Development V 0.1
Mastering Test Automation: How To Use Selenium Successfully
My Very First Zf App Part One
Best practices in using Salesforce Metadata API
Prairie DevCon 2015 - Crafting Evolvable API Responses
Best practices in using Salesforce Metadata API
SharePoint Saturday Atlanta 2015
Spring training
Ad

More from ManageIQ (20)

PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
ManageIQ - Sprint 267 Review - Slide Deck
PPTX
ManageIQ - Sprint 266 Review - Slide Deck
PPTX
ManageIQ - Sprint 265 Review - Slide Deck
PPTX
ManageIQ - Sprint 264 Review - Slide Deck
PPTX
ManageIQ - Sprint 263 Review - Slide Deck
PPTX
ManageIQ - Sprint 262 Review - Slide Deck
PPTX
ManageIQ - Sprint 260 & 261 Review - Slide Deck
PPTX
ManageIQ - Sprint 259 Review - Slide Deck
PPTX
ManageIQ - Sprint 258 Review - Slide Deck
PPTX
ManageIQ - Sprint 257 Review - Slide Deck
PPTX
ManageIQ - Sprint 256 Review - Slide Deck
PPTX
ManageIQ - Sprint 255 Review - Slide Deck
PPTX
ManageIQ - Sprint 254 Review - Slide Deck
PPTX
ManageIQ - Sprint 247 Review - Slide Deck
PPTX
ManageIQ - Sprint 253 Review - Slide Deck
PPTX
ManageIQ - Sprint 252 Review - Slide Deck
PPTX
ManageIQ - Sprint 251 Review - Slide Deck
PPTX
ManageIQ - Sprint 250 Review - Slide Deck
PPTX
ManageIQ - Sprint 249 Review - Slide Deck
ManageIQ - Sprint 268 Review - Slide Deck
ManageIQ - Sprint 267 Review - Slide Deck
ManageIQ - Sprint 266 Review - Slide Deck
ManageIQ - Sprint 265 Review - Slide Deck
ManageIQ - Sprint 264 Review - Slide Deck
ManageIQ - Sprint 263 Review - Slide Deck
ManageIQ - Sprint 262 Review - Slide Deck
ManageIQ - Sprint 260 & 261 Review - Slide Deck
ManageIQ - Sprint 259 Review - Slide Deck
ManageIQ - Sprint 258 Review - Slide Deck
ManageIQ - Sprint 257 Review - Slide Deck
ManageIQ - Sprint 256 Review - Slide Deck
ManageIQ - Sprint 255 Review - Slide Deck
ManageIQ - Sprint 254 Review - Slide Deck
ManageIQ - Sprint 247 Review - Slide Deck
ManageIQ - Sprint 253 Review - Slide Deck
ManageIQ - Sprint 252 Review - Slide Deck
ManageIQ - Sprint 251 Review - Slide Deck
ManageIQ - Sprint 250 Review - Slide Deck
ManageIQ - Sprint 249 Review - Slide Deck

Recently uploaded (20)

PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Modernizing your data center with Dell and AMD
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
KodekX | Application Modernization Development
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPT
Teaching material agriculture food technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
A Presentation on Artificial Intelligence
Modernizing your data center with Dell and AMD
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Diabetes mellitus diagnosis method based random forest with bat algorithm
Spectral efficient network and resource selection model in 5G networks
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Agricultural_Statistics_at_a_Glance_2022_0.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Review of recent advances in non-invasive hemoglobin estimation
KodekX | Application Modernization Development
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Teaching material agriculture food technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

Generic Objects - Bill Wei - ManageIQ Design Summit 2016

  • 1. Generic Objects Bill Wei - Red Hat @bzwei
  • 2. Agenda What is a generic object? Why generic objects are needed? Who can access generic objects? Use cases Development status Future Limitations
  • 3. What is a Generic Object It is an “object” It is like an object It has a definition Define in runtime Each type has an unique name and user defined attributes/relationships Stored in four tables - one for definitions, one for objects, one for attributes, and one for relationships
  • 4. What is a Generic Object
  • 6. Create a generic object from a definition
  • 8. Why generic objects are needed Talk topic: Generic objects in AE Model http://talk.manageiq.org/t/generic-objects-in-ae-model/252 Good for quickly adding capability of collecting and provisioning resources that are not yet officially supported in ManageIQ Examples include Load Balancer or RDS Database A basis for modeling official ManageIQ support
  • 9. generic_objects g_o_definitions Who can access generic objects Engine DRb DRb Script (CRUD) Postgres Automate Controller UI REST client
  • 10. Use Case: Create generic object definitions Create/List/Update/Delete generic object definitions through UI It has a type name, an icon representation, and a description It defines type specific attributes It defines associations to other resources Update/deletion of definitions that already have instances is limited
  • 11. Use Case: Provider resource provisioning through service Purpose: Provision a new resource type that is not supported in ManageIQ ● Create a Generic Catalog Item ● Catalog item runs a state machine with typical pre-provisioning, provisioning, check-provisioned, post-provisioning steps ● Create the resource in the provider through API (for example, AWS RDS API) ● Create a corresponding generic object in ManageIQ ● Add associations to other objects (Generic or Rails Models) ● Resulting generic objects can be shown in UI or reports, with
  • 12. Use Case: Process generic objects through automate Generic objects can be shown in ManageIQ UI User can add a button to a generic object The button is connected to an automate entry-point where the generic object can be processed
  • 13. Use Case: Use generic objects in a service Generic objects can be directly accessed or passed in as a parameter in any step of an existing service state machine, for example, the pre-provisioning, provisioning, or post- provisioning method of a vm provisioning.
  • 14. Development Progress Current: GenericObjectDefinition with attributes GenericObject with attributes setters/getters Coming soon: Expose in automate Simple relationships Direct many-to-many Simple querying REST API Full CRUD for definitions
  • 15. Examples User script to create a generic object and get/set attributes
  • 16. Examples - REST API endpoints Definitions: /api/object_definitions/ Objects: /api/objects/
  • 17. Examples: CRUD on generic object definitions Create POST /api/object_definitions/ POST /api/object_definitions/ via action: "create" Query All Definitions GET /api/object_definitions/ Query One Definition GET /api/object_definitions/:id GET /api/object_definitions/:name Update Multiple Definitions POST /api/object_definitions action: "edit" Update Definition POST /api/object_definitions/[:id|:name] action: "edit" PUT /api/object_definitions/[:id|:name] Delete a definition DELETE /api/object_definitions/[:id|:name] or POST /api/object_definitions/[:id|:name] action: "delete" Note: Must fail if objects of this type exists.
  • 18. Example: CRUD on generic objects Create POST /api/object_definition/[:id|:name]/objects or POST /api/objects Query All Objects GET /api/objects Query Objects of same Definition GET /api/object_definitions/[:id|:name]/objects GET /api/object_definitions/[:id|:name]?expand=objects possibly: GET /api/objects?filter[]=object_definition.name='<name>' Update an object POST /api/objects/:id action: "edit" PUT /api/objects/:id Delete an object DELETE /api/objects/:id POST /api/objects/:id action: "delete" Delete multiple objects POST /api/objects action: "delete"
  • 19. Future Can be tagged Can be reported on Can be used for chargeback Can have an associated graphic image Can be used in widgets
  • 20. Limitations It is an active record but not true active record Updates to the generic object definition (custom attributes and relationships) have no protection for existing generic objects Limited querying capability Simple relationships Performance

Editor's Notes

  • #3: Idea - Brad Ascar? (2014 Summit?) Use Case Prototyping (need better word) non-migrating Design Rest API Automate UI Relationships Habtm (only ?) Future Reporting Tagging Chargeback (?) Talk Topic
  • #9: Removed: * For external use only