ManageIQ
Sprint 53 Review - Sprint End January 30, 2017
February 1, 2017
Overview
● Sprint Statistics (Oleg Barenboim)
● Community Update (Carol Chen)
● Classic UI (Dan Clarizio)
● Service UI (Chris Kacerguis)
● Providers (Greg Blomquist)
● Other Providers and Automate (Greg McCullough)
● Platform (Gregg Tanzillo)
● API (Alberto Bellotti)
● Discussion
Sprint Statistics
(O. Barenboim)
146 Pull Requests Merged for ManageIQ/manageiq
PR Breakdown by Feature Category
on Manageiq/manageiq
(O. Barenboim)
* Note that some PRs
have more than one
category.
Providers
All Repo Stats - Top 10
(O. Barenboim)
Top 10 Repositories # Closed
manageiq 146
integration_tests 70
manageiq-ui-classic 66
manageiq-ui-service 46
manageiq-providers-amazon 16
miq_bot 14
manageiq_docs 8
manageiq-gems-pending 8
wrapanapi 8
manageiq.org 6
Total of 432 across ALL ManageIQ Organization
Community Update
(Carol Chen)
● Recent events
○ DevConf.CZ, Jan 27-29 - https://twitter.com/i/moments/826409590543773696
○ OpenShift Meetup in Madrid, Jan 30 - “What does a CMP bring to OpenShift?”
● Upcoming events
○ FOSDEM: “Managing container infrastructure” by Piotr Kliczewski - Feb 4 @ 10:30-10:55,
room UB2.252A (Virtualisation/Iaas devroom)
○ PyCon Pune: Feb 16-19 in Pune, India https://pune.pycon.org/ ; ManageIQ pod with demos
and presentations on Feb 16 & 17 (team lead: Aziza Karol)
○ FOSSASIA: Mar 17-19 in Singapore http://2017.fossasia.org/ ; “ManageIQ - the open-source
management platform for your hybrid IT environments” by Carol Chen
○ CloudNativeCon EU: Mar 29-30 in Berlin, Germany https://kubecon.io ; OpenShift Commons
Gathering, co-located with KubeCon, on Mar 28 (Sergio Ocon representing ManageIQ)
● Last Week in ManageIQ:
○ http://manageiq.org/blog/2017/01/last-week-in-manageiq-last-will-be-first/ by Hilda Stastna
○ http://manageiq.org/blog/2017/01/keeping-up-with-the-conferences/ by Dávid Halász
Classic UI
(Dan Clarizio)
Classic UI
Classic UI
● Bug Fixes
○ Fix check_box_tag parameters for snap_memory
○ RHV: removed the option to migrate the VMs outside of the cluster
○ Fix button when adding a filter in Cloud Providers
○ Floating IPs: Adds missing route for wait_for_task
○ Fixed node id for policy after coming from an event
○ Reset selected snapshot in session when deleting the snapshot
○ Charts
■ Fix repeating values on Y-axis of C&U charts
■ Fix pie chart clicking when part of it is hidden
○ Tenants
■ Fix valid_tenant check in ops
■ Tenant admin should not be able to create groups in other tenants
Classic UI
● Technical Debt/Refactoring
○ Three more trees converted - Genealogy, Belongs To, and Category
Tags
○ More TreeBuilder refactoring
○ Show partials cleanup - show_pdf removed
○ Some DRYing of textual summaries
○ Ongoing icon/image conversions
○ Ongoing button refactoring
Classic UI
● Enhancements
○ Middleware: provide select JDBC driver tab to more easily input Drivers
loaded in servers
○ Replace AnsibleTower::ConfigurationManager with AutomationManager
references in the UI
○ Add volume snapshot summary to block storage manager
○ Delete functionality for generic object added
○ Dashboard/Textual setting added, allowing users to set summary page
default
○ Add assets for EC2 block and storage managers
○ Introduce Vm/Chargeback tab ui-part
○ Limit number of objects on Container topology views
Classic UI
New Summary Screens Setting
Classic UI
Container Topology Limits
Classic UI
Container Topology Limits - Set to 20
Service UI
(Chris Kacerguis)
Overall Progress for Sprint
● 44 pts completed (reduced staff)
Service UI
(Chris Kacerguis)
● Continue to work to bring over Service tab from Classic UI
● Created Mock API system
○ Simulates the MIQ backend
○ Allows devs to create / test against the API without
backend running (very lightweight)
● Auto-polling on pages (no manual refresh needed)
○ Services List
○ Service Details
○ Orders
Service UI
(Chris Kacerguis)
● Removed arbitration profile code
● Started process to remove the Service Designer and
Blueprint system
Service UI
(Chris Kacerguis)
● Many Bug fixes
○ Remove unused 'blocks' modules
○ Ensure production webpack builds css js into respective folders
○ When logged in as non-admin user, polling requests are made for
forbidden resources
○ Fix toastr messages
○ Fix for Hand pointer in the VM section
○ Fixed Error on incorrect login
○ Fixed Error when closing Modals
○ Not all texts are translated when switched language
○ Fix WARN [proxy]: failed to proxy messages in Travis
○ Service Reconfigure page not pre-populated
○ Skinning is broken
Service UI
(Chris Kacerguis)
● Added Dialog Editor (Roman)
Service UI
(Chris Kacerguis)
● Updated My Orders screen with new design (Jeff)
Service UI
(Chris Kacerguis)
● Flattened the Navigation for Service UI (Josh)
Providers
(Greg Blomquist)
Closed by Provider
Storage manager work from XLab team
Ansible Tower Events!
Modeling Projects (Repositories)
Use Task Queue for Cloud Volume operations, live migrations, and
evacuating cloud instances
Collect custom attributes from nodes
Providers
(Greg Blomquist)
Providers
(Greg Blomquist)
Allow Server Groups to own Deployments
Retrieve JDBC Drivers for Middleware feeds
Provisioning API requests can now add disks
List available Floating IPs
Providers
(Greg Blomquist)
Providers
(Greg Blomquist)
Providers: Graph Refresh
(Marcel Hild)
Why?
● sparse / skeletal inventory collection for vmware
● slow inventory collection for RHV -> parallel collection
● leverage Events to provide data for inventory collection
● amazon 77k public images -> memory hog and slow
● Targeted refresh for more target types
Providers: Graph Refresh
(Marcel Hild)
Improvements
● Order independent building of Inventory structure
○ Order is resolved at save time
● Easy to implement for provider authors
○ No more Hashes (soon)
○ Introspect objects
● Provider agnostic save inventory code
○ No new code needed for new Providers / Inventory
○ Special cases can be resolved in Provider
Performance Improvements on 77k Amazon Public Images
1st refresh memory time
Old Refresh 3344 MB 1238 s
New Refresh 1250 MB 500 s
Change down to 37% 40%
2nd refresh memory time
Old Refresh 3817 MB 1537 s
New Refresh 1476 MB 200 s
Change down to 38% 13%
Providers: Graph Refresh
(Marcel Hild)
Automate
(Greg McCullough)
New Service Models
ManageIQ::Providers::Amazon::BlockStorageManager
ManageIQ::Providers::Amazon::BlockStorageManager::CloudVolume
ManageIQ::Providers::Amazon::BlockStorageManager::CloudVolumeSnapshot
Provisioning:
● Instantiate Container Templates (Back-end methods)
Notable Fixes:
● Central Admin Provisioning: Limit resources to the same region as the
selected template
● Updated service power operations to handle undefined actions
Automate
(Greg McCullough)
Ansible Playbook integration
● Created Generic Service and Generic ServiceTemplate
● Created ServiceTemplateAnsiblePlaybook (built on generic service
template)
● New create_catalog_item method for API use.
Ansible Tower Client Gem Updates:
● Added update and delete methods to all classes
● Expose playbooks off of projects
Platform
(Gregg Tanzillo)
38 PRs Merged
Platform
● Bug Fixes
○ Chargeback - Fix for rate adjustment rounding bug
○ LDAP Auth - Fix for lib/miq_ldap.rb initialization
○ Hide ‘Disable local login’ checkbox unless SAML is
enabled
○ RBAC - Added networking objects
■ CloudNetwork
■ CloudSubnet
■ FloatingIp
■ LoadBalancer
■ NetworkPort
■ NetworkRouter
Platform
● Technical Debt/Refactoring/Tests
○ Extracted chargeable field from chargeback
○ Removed UI-only spec helpers
○ Normalized Job::StateMachine
○ Increased test coverage for MiqExpression#to_ruby
Platform
● Enhancements
○ Ansible
■ Added methods for configuring and starting Ansible Inside
■ Added http redirects for the Ansible API
■ Embedded Ansible role worker with failover
■ Introduced Vm/Chargeback tab [backend-part]
Platform
Platform
API
(Alberto Bellotti)
● Enhancement to expose Alert Statuses with the new collection /api/alerts
(Mooli T.)
○ GET /api/alerts
○ GET /api/alerts/:id
● Added ability to create and query Alert Actions:
○ GET /api/alerts/:id/alert_actions
○ GET /api/alerts/:id/alert_actions/:id
○ POST /api/alerts/:id/alert_actions
{
“action_type” : “assign”,
“assignee” : { “href” : “http://localhost:3000/api/users/10” }
}
API
(Alberto Bellotti)
● Added support for Creating, Querying and Deleting Snapshots:
(Tim W.)
○ GET /api/vms/:id/snapshots
○ GET /api/vms/:id/snapshots/:id
○ DELETE /api/vms/:id/snapshots/:s_id
○ POST /api/vms/:id/snapshots/:s_id - action “delete”
○ POST /api/vms/:id/snapshots
{
“name” : “initial_snapshot”,
“description” : “Initial Appliance Setup”,
“memory” : false
}
API
(Alberto Bellotti)
● Added support for specifying a trusted Certificate Authority while creating a
provider:
(Beni P.)
○ POST /api/providers
{
“type” : “ManageIQ::Providers::Redhat::InfraManager”,
“name” : “sample rhevm”,
“port” : 5000,
...
“security_protocol” : “kerberos”,
“certificate_authority” : “
-----BEGIN CERTIFICATE-----
….
-----END CERTIFICATE-----
“
}
API
(Alberto Bellotti)
● Enhanced Hosts and Clusters collection options to return node_types:
(Aparna K.)
○ OPTIONS /api/hosts
○ OPTIONS /api/clusters
{
...
"data" : {
"node_types": "non_openstack"
}
}
API
(Alberto Bellotti)
● Added support for Bulk tag assignments for Vms and Services:
(Jillian T.)
○ POST /api/vms - action “assign_tags”
○ POST /api/services - action “assign_tags”
POST /api/vms
{
“action” : “assign_tags”,
"resources" : [
{ “href” : “http://localhost:3000/api/vms/101”,
“tags” : [ { “category” : “department”, “name” : “finance” }, { “name” : “/managed/cc/01” } ] },
{ “href” : “http://localhost:3000/api/vms/102”,
“tags” : [ { “category” : “department”, “name” : “finance” }, { “name” : “/managed/cc/01” } ] },
{ “href” : “http://localhost:3000/api/vms/103”,
“tags” : [ { “category” : “department”, “name” : “support” }, { “name” : “/managed/cc/02” } ] },
]
}
API
(Alberto Bellotti)
● Added ability to remove approver for a service request:
(Artyom L.)
○ POST /api/service_requests/:id - action “remove_approper”
○ POST /api/service_requests - Bulk action “remove_approver”
POST /api/service_requests
{
“action” : “remove_approver”,
“resources" : [
{ “href” : “http://localhost:3000/api/service_requests/101”,
“user” : { “href” : “http://localhost:3000/api/users/3” }
},
{ “href” : “http://localhost:3000/api/service_requests/102”,
“user” : { “id” : 3 }
},
{ “href” : “http://localhost:3000/api/service_requests/103”,
“user_id” : 3
}
]
}
API
(Alberto Bellotti)
● Added new collection to return configuration script payloads (e.g. Ansible
Playbooks)
(Jillian T.)
○ GET /api/configuration_script_payloads
○ GET /api/configuration_script_payloads/:id
API
(Alberto Bellotti)
● Enhanced collection options to return supported subcollections.
This enables us to enhance the API Client to add support for resource sub-collections and related
sub-resources and actions.
OPTIONS /api/vms
{
“attributes” : [ … ],
“virtual_attributes” : [ … ],
“relationships” : [ … ],
"subcollections": [
"accounts", "custom_attributes", "policies", "policy_profiles", "snapshots", "software", "tags"
],
"data": { }
}
API
(Alberto Bellotti)
● Enhanced API to support id filtering by compressed ids.
Works with the id attribute as well as any _id named attributes:
○ GET /api/vms
?expand=resources
&attributes=name,vendor
&filter[]=id=’2r77’
○ GET /api/instances
?expand=resources
&attributes=name,vendor,storage_id
&filter[]=storage_id=1r32
Discussion
Sprint 54 Review - February 15

Sprint 53

  • 1.
    ManageIQ Sprint 53 Review- Sprint End January 30, 2017 February 1, 2017
  • 2.
    Overview ● Sprint Statistics(Oleg Barenboim) ● Community Update (Carol Chen) ● Classic UI (Dan Clarizio) ● Service UI (Chris Kacerguis) ● Providers (Greg Blomquist) ● Other Providers and Automate (Greg McCullough) ● Platform (Gregg Tanzillo) ● API (Alberto Bellotti) ● Discussion
  • 3.
    Sprint Statistics (O. Barenboim) 146Pull Requests Merged for ManageIQ/manageiq
  • 4.
    PR Breakdown byFeature Category on Manageiq/manageiq (O. Barenboim) * Note that some PRs have more than one category. Providers
  • 5.
    All Repo Stats- Top 10 (O. Barenboim) Top 10 Repositories # Closed manageiq 146 integration_tests 70 manageiq-ui-classic 66 manageiq-ui-service 46 manageiq-providers-amazon 16 miq_bot 14 manageiq_docs 8 manageiq-gems-pending 8 wrapanapi 8 manageiq.org 6 Total of 432 across ALL ManageIQ Organization
  • 6.
    Community Update (Carol Chen) ●Recent events ○ DevConf.CZ, Jan 27-29 - https://twitter.com/i/moments/826409590543773696 ○ OpenShift Meetup in Madrid, Jan 30 - “What does a CMP bring to OpenShift?” ● Upcoming events ○ FOSDEM: “Managing container infrastructure” by Piotr Kliczewski - Feb 4 @ 10:30-10:55, room UB2.252A (Virtualisation/Iaas devroom) ○ PyCon Pune: Feb 16-19 in Pune, India https://pune.pycon.org/ ; ManageIQ pod with demos and presentations on Feb 16 & 17 (team lead: Aziza Karol) ○ FOSSASIA: Mar 17-19 in Singapore http://2017.fossasia.org/ ; “ManageIQ - the open-source management platform for your hybrid IT environments” by Carol Chen ○ CloudNativeCon EU: Mar 29-30 in Berlin, Germany https://kubecon.io ; OpenShift Commons Gathering, co-located with KubeCon, on Mar 28 (Sergio Ocon representing ManageIQ) ● Last Week in ManageIQ: ○ http://manageiq.org/blog/2017/01/last-week-in-manageiq-last-will-be-first/ by Hilda Stastna ○ http://manageiq.org/blog/2017/01/keeping-up-with-the-conferences/ by Dávid Halász
  • 7.
  • 8.
  • 9.
    Classic UI ● BugFixes ○ Fix check_box_tag parameters for snap_memory ○ RHV: removed the option to migrate the VMs outside of the cluster ○ Fix button when adding a filter in Cloud Providers ○ Floating IPs: Adds missing route for wait_for_task ○ Fixed node id for policy after coming from an event ○ Reset selected snapshot in session when deleting the snapshot ○ Charts ■ Fix repeating values on Y-axis of C&U charts ■ Fix pie chart clicking when part of it is hidden ○ Tenants ■ Fix valid_tenant check in ops ■ Tenant admin should not be able to create groups in other tenants
  • 10.
    Classic UI ● TechnicalDebt/Refactoring ○ Three more trees converted - Genealogy, Belongs To, and Category Tags ○ More TreeBuilder refactoring ○ Show partials cleanup - show_pdf removed ○ Some DRYing of textual summaries ○ Ongoing icon/image conversions ○ Ongoing button refactoring
  • 11.
    Classic UI ● Enhancements ○Middleware: provide select JDBC driver tab to more easily input Drivers loaded in servers ○ Replace AnsibleTower::ConfigurationManager with AutomationManager references in the UI ○ Add volume snapshot summary to block storage manager ○ Delete functionality for generic object added ○ Dashboard/Textual setting added, allowing users to set summary page default ○ Add assets for EC2 block and storage managers ○ Introduce Vm/Chargeback tab ui-part ○ Limit number of objects on Container topology views
  • 12.
    Classic UI New SummaryScreens Setting
  • 13.
  • 14.
  • 15.
    Service UI (Chris Kacerguis) OverallProgress for Sprint ● 44 pts completed (reduced staff)
  • 16.
    Service UI (Chris Kacerguis) ●Continue to work to bring over Service tab from Classic UI ● Created Mock API system ○ Simulates the MIQ backend ○ Allows devs to create / test against the API without backend running (very lightweight) ● Auto-polling on pages (no manual refresh needed) ○ Services List ○ Service Details ○ Orders
  • 17.
    Service UI (Chris Kacerguis) ●Removed arbitration profile code ● Started process to remove the Service Designer and Blueprint system
  • 18.
    Service UI (Chris Kacerguis) ●Many Bug fixes ○ Remove unused 'blocks' modules ○ Ensure production webpack builds css js into respective folders ○ When logged in as non-admin user, polling requests are made for forbidden resources ○ Fix toastr messages ○ Fix for Hand pointer in the VM section ○ Fixed Error on incorrect login ○ Fixed Error when closing Modals ○ Not all texts are translated when switched language ○ Fix WARN [proxy]: failed to proxy messages in Travis ○ Service Reconfigure page not pre-populated ○ Skinning is broken
  • 19.
    Service UI (Chris Kacerguis) ●Added Dialog Editor (Roman)
  • 20.
    Service UI (Chris Kacerguis) ●Updated My Orders screen with new design (Jeff)
  • 21.
    Service UI (Chris Kacerguis) ●Flattened the Navigation for Service UI (Josh)
  • 22.
  • 23.
  • 24.
    Storage manager workfrom XLab team Ansible Tower Events! Modeling Projects (Repositories) Use Task Queue for Cloud Volume operations, live migrations, and evacuating cloud instances Collect custom attributes from nodes Providers (Greg Blomquist)
  • 25.
    Providers (Greg Blomquist) Allow ServerGroups to own Deployments Retrieve JDBC Drivers for Middleware feeds Provisioning API requests can now add disks List available Floating IPs
  • 26.
  • 27.
  • 28.
    Providers: Graph Refresh (MarcelHild) Why? ● sparse / skeletal inventory collection for vmware ● slow inventory collection for RHV -> parallel collection ● leverage Events to provide data for inventory collection ● amazon 77k public images -> memory hog and slow ● Targeted refresh for more target types
  • 29.
    Providers: Graph Refresh (MarcelHild) Improvements ● Order independent building of Inventory structure ○ Order is resolved at save time ● Easy to implement for provider authors ○ No more Hashes (soon) ○ Introspect objects ● Provider agnostic save inventory code ○ No new code needed for new Providers / Inventory ○ Special cases can be resolved in Provider
  • 30.
    Performance Improvements on77k Amazon Public Images 1st refresh memory time Old Refresh 3344 MB 1238 s New Refresh 1250 MB 500 s Change down to 37% 40% 2nd refresh memory time Old Refresh 3817 MB 1537 s New Refresh 1476 MB 200 s Change down to 38% 13% Providers: Graph Refresh (Marcel Hild)
  • 31.
    Automate (Greg McCullough) New ServiceModels ManageIQ::Providers::Amazon::BlockStorageManager ManageIQ::Providers::Amazon::BlockStorageManager::CloudVolume ManageIQ::Providers::Amazon::BlockStorageManager::CloudVolumeSnapshot Provisioning: ● Instantiate Container Templates (Back-end methods) Notable Fixes: ● Central Admin Provisioning: Limit resources to the same region as the selected template ● Updated service power operations to handle undefined actions
  • 32.
    Automate (Greg McCullough) Ansible Playbookintegration ● Created Generic Service and Generic ServiceTemplate ● Created ServiceTemplateAnsiblePlaybook (built on generic service template) ● New create_catalog_item method for API use. Ansible Tower Client Gem Updates: ● Added update and delete methods to all classes ● Expose playbooks off of projects
  • 33.
  • 34.
    Platform ● Bug Fixes ○Chargeback - Fix for rate adjustment rounding bug ○ LDAP Auth - Fix for lib/miq_ldap.rb initialization ○ Hide ‘Disable local login’ checkbox unless SAML is enabled ○ RBAC - Added networking objects ■ CloudNetwork ■ CloudSubnet ■ FloatingIp ■ LoadBalancer ■ NetworkPort ■ NetworkRouter
  • 35.
    Platform ● Technical Debt/Refactoring/Tests ○Extracted chargeable field from chargeback ○ Removed UI-only spec helpers ○ Normalized Job::StateMachine ○ Increased test coverage for MiqExpression#to_ruby
  • 36.
    Platform ● Enhancements ○ Ansible ■Added methods for configuring and starting Ansible Inside ■ Added http redirects for the Ansible API ■ Embedded Ansible role worker with failover ■ Introduced Vm/Chargeback tab [backend-part]
  • 37.
  • 38.
  • 39.
    API (Alberto Bellotti) ● Enhancementto expose Alert Statuses with the new collection /api/alerts (Mooli T.) ○ GET /api/alerts ○ GET /api/alerts/:id ● Added ability to create and query Alert Actions: ○ GET /api/alerts/:id/alert_actions ○ GET /api/alerts/:id/alert_actions/:id ○ POST /api/alerts/:id/alert_actions { “action_type” : “assign”, “assignee” : { “href” : “http://localhost:3000/api/users/10” } }
  • 40.
    API (Alberto Bellotti) ● Addedsupport for Creating, Querying and Deleting Snapshots: (Tim W.) ○ GET /api/vms/:id/snapshots ○ GET /api/vms/:id/snapshots/:id ○ DELETE /api/vms/:id/snapshots/:s_id ○ POST /api/vms/:id/snapshots/:s_id - action “delete” ○ POST /api/vms/:id/snapshots { “name” : “initial_snapshot”, “description” : “Initial Appliance Setup”, “memory” : false }
  • 41.
    API (Alberto Bellotti) ● Addedsupport for specifying a trusted Certificate Authority while creating a provider: (Beni P.) ○ POST /api/providers { “type” : “ManageIQ::Providers::Redhat::InfraManager”, “name” : “sample rhevm”, “port” : 5000, ... “security_protocol” : “kerberos”, “certificate_authority” : “ -----BEGIN CERTIFICATE----- …. -----END CERTIFICATE----- “ }
  • 42.
    API (Alberto Bellotti) ● EnhancedHosts and Clusters collection options to return node_types: (Aparna K.) ○ OPTIONS /api/hosts ○ OPTIONS /api/clusters { ... "data" : { "node_types": "non_openstack" } }
  • 43.
    API (Alberto Bellotti) ● Addedsupport for Bulk tag assignments for Vms and Services: (Jillian T.) ○ POST /api/vms - action “assign_tags” ○ POST /api/services - action “assign_tags” POST /api/vms { “action” : “assign_tags”, "resources" : [ { “href” : “http://localhost:3000/api/vms/101”, “tags” : [ { “category” : “department”, “name” : “finance” }, { “name” : “/managed/cc/01” } ] }, { “href” : “http://localhost:3000/api/vms/102”, “tags” : [ { “category” : “department”, “name” : “finance” }, { “name” : “/managed/cc/01” } ] }, { “href” : “http://localhost:3000/api/vms/103”, “tags” : [ { “category” : “department”, “name” : “support” }, { “name” : “/managed/cc/02” } ] }, ] }
  • 44.
    API (Alberto Bellotti) ● Addedability to remove approver for a service request: (Artyom L.) ○ POST /api/service_requests/:id - action “remove_approper” ○ POST /api/service_requests - Bulk action “remove_approver” POST /api/service_requests { “action” : “remove_approver”, “resources" : [ { “href” : “http://localhost:3000/api/service_requests/101”, “user” : { “href” : “http://localhost:3000/api/users/3” } }, { “href” : “http://localhost:3000/api/service_requests/102”, “user” : { “id” : 3 } }, { “href” : “http://localhost:3000/api/service_requests/103”, “user_id” : 3 } ] }
  • 45.
    API (Alberto Bellotti) ● Addednew collection to return configuration script payloads (e.g. Ansible Playbooks) (Jillian T.) ○ GET /api/configuration_script_payloads ○ GET /api/configuration_script_payloads/:id
  • 46.
    API (Alberto Bellotti) ● Enhancedcollection options to return supported subcollections. This enables us to enhance the API Client to add support for resource sub-collections and related sub-resources and actions. OPTIONS /api/vms { “attributes” : [ … ], “virtual_attributes” : [ … ], “relationships” : [ … ], "subcollections": [ "accounts", "custom_attributes", "policies", "policy_profiles", "snapshots", "software", "tags" ], "data": { } }
  • 47.
    API (Alberto Bellotti) ● EnhancedAPI to support id filtering by compressed ids. Works with the id attribute as well as any _id named attributes: ○ GET /api/vms ?expand=resources &attributes=name,vendor &filter[]=id=’2r77’ ○ GET /api/instances ?expand=resources &attributes=name,vendor,storage_id &filter[]=storage_id=1r32
  • 48.