ManageIQ
Sprint 36 Review - Sprint End February 15, 2016
February 17, 2016
Overview
● Sprint Statistics (O. Barenboim)
● Providers (G. Blomquist)
● Appliance Core (J. Rafaniello)
● REST API (T. Wade)
● User Interface (D. Clarizio)
● Automate (G. McCullough)
● Ansible (B. Dunne)
● Self Service UI Extraction (J. Frey)
● Discussion
Sprint Statistics (O. Barenboim)
284 Pull Requests Merged
* Note that some PRs
have more than one
label.
PRs Breakdown by Feature Category
(O. Barenboim)
* Note that some PRs
have more than one
label.
Providers
Sprint Statistics (O. Barenboim)
● Gemnasium (Ruby Gem Dependencies)
○ https://gemnasium.com/ManageIQ/manageiq
○ 92 Green | 37 Yellow | 0 Red
All Repo Stats (O. Barenboim)
Git Repo PRs Merged
azure-armrest 3
manageiq-appliance 3
manageiq-appliance-build 4
manageiq-ui-self_service 4
guides 3
ansible_tower_client 6
manageiq_docs 1
linux_admin 2
● ManageIQ: https://github.com/ManageIQ/manageiq/issues?q=milestone%3A%22Sprint+36+Ending+Feb+15%2C+2016%22
Providers (G. Blomquist)
● Containers
● OpenStack Integration Features
● Behind the scenes work
● Azure Provisioning demo
● Google Provisioning demo
Providers (G. Blomquist)
Containers in Reports
Providers (G. Blomquist)
Containers: Linking registries with services
Providers (G. Blomquist)
● OpenStack
○ Live VM Migration (backend support)
○ VM resize (backend support)
○ Support for Cinder and Glance v2
Providers (G. Blomquist)
● Behind the scenes
○ Amazon SDK v2
○ Multi-endpoint modeling
Providers (G. Blomquist)
Azure Provisioning demo
by Bronagh Sorota
Providers - Google
Google Cloud Engine Provisioning demo
by Lars Wander
Appliance Core (J. Rafaniello)
33 PRs merged
● Bugs
● Enhancements
● Technical debt
Notable changes this sprint:
● Fixes
○ Initializers can now load ApplicationController w/o querying DB, #6449
○ 10-20% performance improvement in vm explorer, #6495 and #6487
○ DB seeding no longer silently catches exceptions, #6548
● New
○ shopping cart model for ordering services, #6574
○ consumption_administrator role - chargeback/reporting duties, #6490
○ REST API enhancements
REST API
● New actions now provided to approve or deny provision requests:
POST /api/provision_requests/:id
{
“action” : “approve”
}
POST /api/provision_requests/:id
{
“action” : “deny”
}
REST API
● Supporting new actions for instances
Target single Instance via POST /api/instances/:id or multiple Instances via POST /api/instances
Action Name
❏ Stop Instance stop
❏ Start Instance start
❏ Pause Instance pause
❏ Suspend Instance suspend
❏ Shelve Instance shelve
❏ Reset Instance reset
❏ Reboot Guest in Instance reboot_guest
REST API
Example start action on one or more instances:
POST /api/instances/:id
{
“action” : “start”
}
POST /api/instances
{
“action” : “start”,
“resources” : [
{ “href” : “http://localhost:3000/api/instances/101” },
{ “href” : “http://localhost:3000/api/instances/102” },
{ “href” : “http://localhost:3000/api/instances/103” },
...
]
}
REST API
● Ability to delete one’s own authenticated token
This is needed by the Ops UI to use the REST API from JS/Angular. Logout process of a user needs
to invalidate the REST API token used during that session.
Token based authenticated DELETE method example to invalidate “sample_token”:
X-Auth-Token: "sample_token"
DELETE /api/auth
REST API
● Ability to retrieve the user’s authorization
This is needed by the SSUI to know the user’s entitled product features in order to show and enable
the controls and tabs appropriately.
GET /api?attributes=authorization
...
"authorization" : {
"product_features" : {
"vms_filter_accord" : { < product feature identifier
"name": "VMs",
"description" : "VMs Accordion"
},
"vm_start" : {
"name" : "Power On",
"description" : "Power On VM",
"action" : { < correlation with REST API collection actions
"name" : "start",
"method" : "post",
"href" : "http://localhost:3000/api/vms"
}
},
...
User Interface (D. Clarizio)
● PRs merged (91): bugs (36), enhancements (22), refactoring/technical debt (24)
● New functionality
○ I18n support added to the Self Service UI
○ Self Service UI group switcher
○ Ansible Tower providers
● Containers
○ Persistent Volumes
○ Topology Context Menus
UI - Self Service UI Example (French)
UI - Self Service UI Example (French)
UI - Self Service UI Group Switcher
UI - Containers: Persistent Volumes
UI - Containers: Topology Context Menus
Automate (G. McCullough)
● Retirement state-machine updates for SCVMM
● Enhanced .missing method support
○ Save original method name in _missing_instance property
○ Accessible during instance resolution and within methods
Before:
After:
Ansible (B. Dunne)
● Added refresh of Configuration Scripts (Job
Templates)
● AnsibleTowerClient gem enhancements:
○ Accessors for Host#groups and #inventory_id
○ Allow passing extra_vars to Job Template launch
○ Add JSON validation for extra_vars
Ansible UI - Add Ansible Tower
Ansible UI - Configuration Managers
Ansible UI - Configured Systems
Self Service UI Extraction (J. Frey)
● Self Service UI extracted into its own repo
○ http://github.com/manageiq-ui-self_service
○ SPA, so it can stand alone
○ Tests no longer run with ManageIQ proper
■ Tests run separately when changes are made
■ With Travis caching take less than 1 minute vs
5+ minutes
○ Sets up the pattern for other possible independent
UIs
Discussion
Next Sprint Review - March 9

Sprint 36 review

  • 1.
    ManageIQ Sprint 36 Review- Sprint End February 15, 2016 February 17, 2016
  • 2.
    Overview ● Sprint Statistics(O. Barenboim) ● Providers (G. Blomquist) ● Appliance Core (J. Rafaniello) ● REST API (T. Wade) ● User Interface (D. Clarizio) ● Automate (G. McCullough) ● Ansible (B. Dunne) ● Self Service UI Extraction (J. Frey) ● Discussion
  • 3.
    Sprint Statistics (O.Barenboim) 284 Pull Requests Merged * Note that some PRs have more than one label.
  • 4.
    PRs Breakdown byFeature Category (O. Barenboim) * Note that some PRs have more than one label. Providers
  • 5.
    Sprint Statistics (O.Barenboim) ● Gemnasium (Ruby Gem Dependencies) ○ https://gemnasium.com/ManageIQ/manageiq ○ 92 Green | 37 Yellow | 0 Red
  • 6.
    All Repo Stats(O. Barenboim) Git Repo PRs Merged azure-armrest 3 manageiq-appliance 3 manageiq-appliance-build 4 manageiq-ui-self_service 4 guides 3 ansible_tower_client 6 manageiq_docs 1 linux_admin 2 ● ManageIQ: https://github.com/ManageIQ/manageiq/issues?q=milestone%3A%22Sprint+36+Ending+Feb+15%2C+2016%22
  • 7.
    Providers (G. Blomquist) ●Containers ● OpenStack Integration Features ● Behind the scenes work ● Azure Provisioning demo ● Google Provisioning demo
  • 8.
  • 9.
    Providers (G. Blomquist) Containers:Linking registries with services
  • 10.
    Providers (G. Blomquist) ●OpenStack ○ Live VM Migration (backend support) ○ VM resize (backend support) ○ Support for Cinder and Glance v2
  • 11.
    Providers (G. Blomquist) ●Behind the scenes ○ Amazon SDK v2 ○ Multi-endpoint modeling
  • 12.
    Providers (G. Blomquist) AzureProvisioning demo by Bronagh Sorota
  • 13.
    Providers - Google GoogleCloud Engine Provisioning demo by Lars Wander
  • 14.
    Appliance Core (J.Rafaniello) 33 PRs merged ● Bugs ● Enhancements ● Technical debt Notable changes this sprint: ● Fixes ○ Initializers can now load ApplicationController w/o querying DB, #6449 ○ 10-20% performance improvement in vm explorer, #6495 and #6487 ○ DB seeding no longer silently catches exceptions, #6548 ● New ○ shopping cart model for ordering services, #6574 ○ consumption_administrator role - chargeback/reporting duties, #6490 ○ REST API enhancements
  • 15.
    REST API ● Newactions now provided to approve or deny provision requests: POST /api/provision_requests/:id { “action” : “approve” } POST /api/provision_requests/:id { “action” : “deny” }
  • 16.
    REST API ● Supportingnew actions for instances Target single Instance via POST /api/instances/:id or multiple Instances via POST /api/instances Action Name ❏ Stop Instance stop ❏ Start Instance start ❏ Pause Instance pause ❏ Suspend Instance suspend ❏ Shelve Instance shelve ❏ Reset Instance reset ❏ Reboot Guest in Instance reboot_guest
  • 17.
    REST API Example startaction on one or more instances: POST /api/instances/:id { “action” : “start” } POST /api/instances { “action” : “start”, “resources” : [ { “href” : “http://localhost:3000/api/instances/101” }, { “href” : “http://localhost:3000/api/instances/102” }, { “href” : “http://localhost:3000/api/instances/103” }, ... ] }
  • 18.
    REST API ● Abilityto delete one’s own authenticated token This is needed by the Ops UI to use the REST API from JS/Angular. Logout process of a user needs to invalidate the REST API token used during that session. Token based authenticated DELETE method example to invalidate “sample_token”: X-Auth-Token: "sample_token" DELETE /api/auth
  • 19.
    REST API ● Abilityto retrieve the user’s authorization This is needed by the SSUI to know the user’s entitled product features in order to show and enable the controls and tabs appropriately. GET /api?attributes=authorization ... "authorization" : { "product_features" : { "vms_filter_accord" : { < product feature identifier "name": "VMs", "description" : "VMs Accordion" }, "vm_start" : { "name" : "Power On", "description" : "Power On VM", "action" : { < correlation with REST API collection actions "name" : "start", "method" : "post", "href" : "http://localhost:3000/api/vms" } }, ...
  • 20.
    User Interface (D.Clarizio) ● PRs merged (91): bugs (36), enhancements (22), refactoring/technical debt (24) ● New functionality ○ I18n support added to the Self Service UI ○ Self Service UI group switcher ○ Ansible Tower providers ● Containers ○ Persistent Volumes ○ Topology Context Menus
  • 21.
    UI - SelfService UI Example (French)
  • 22.
    UI - SelfService UI Example (French)
  • 23.
    UI - SelfService UI Group Switcher
  • 24.
    UI - Containers:Persistent Volumes
  • 25.
    UI - Containers:Topology Context Menus
  • 26.
    Automate (G. McCullough) ●Retirement state-machine updates for SCVMM ● Enhanced .missing method support ○ Save original method name in _missing_instance property ○ Accessible during instance resolution and within methods Before: After:
  • 27.
    Ansible (B. Dunne) ●Added refresh of Configuration Scripts (Job Templates) ● AnsibleTowerClient gem enhancements: ○ Accessors for Host#groups and #inventory_id ○ Allow passing extra_vars to Job Template launch ○ Add JSON validation for extra_vars
  • 28.
    Ansible UI -Add Ansible Tower
  • 29.
    Ansible UI -Configuration Managers
  • 30.
    Ansible UI -Configured Systems
  • 31.
    Self Service UIExtraction (J. Frey) ● Self Service UI extracted into its own repo ○ http://github.com/manageiq-ui-self_service ○ SPA, so it can stand alone ○ Tests no longer run with ManageIQ proper ■ Tests run separately when changes are made ■ With Travis caching take less than 1 minute vs 5+ minutes ○ Sets up the pattern for other possible independent UIs
  • 32.