ManageIQ
Sprint 54 Review - Sprint End February 13, 2017
February 15, 2017
Overview
● Sprint Statistics (Oleg Barenboim)
● Community Update (Carol Chen)
● Classic UI (Dan Clarizio)
● Service UI (Chris Kacerguis)
● Providers (Greg Blomquist)
● Automate (Greg McCullough)
● Platform (Gregg Tanzillo)
● API (Alberto Bellotti)
● Discussion
Sprint Statistics
(O. Barenboim)
126 Pull Requests Merged for ManageIQ/manageiq
PR Breakdown by Feature Category
Manageiq/manageiq
(O. Barenboim)
* Note that some PRs
have more than one
category.
All Repo Stats - Top 10
(O. Barenboim)
Top 10 Repositories # Closed
ManageIQ/manageiq 126
ManageIQ/manageiq-ui-classic 80
ManageIQ/integration_tests 77
ManageIQ/manageiq-ui-service 31
ManageIQ/miq_bot 30
ManageIQ/manageiq-content 23
ManageIQ/manageiq-providers-amazon 15
ManageIQ/manageiq_docs 12
ManageIQ/manageiq-gems-pending 8
ManageIQ/manageiq-providers-azure 8
Total of 462 across ALL ManageIQ Organization
Community Update
(Carol Chen)
● Last Week in ManageIQ:
○ http://manageiq.org/blog/2017/02/ansible-and-api-and-stuff/ by Daniel Berger
○ http://manageiq.org/blog/2017/02/love-is-in-the-PRs/ by Jillian Tullo
○ Contact John Prause (jprause on Gitter) if you’d like to contribute
● Upcoming Events:
○ 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/; 2 ManageIQ presentations by
Carol Chen and Daniel Korn
○ CloudNativeCon EU: Mar 29-30 in Berlin, Germany https://kubecon.io; OpenShift
Commons Gathering on Mar 28 (Sergio Ocon representing ManageIQ)
● New Swag Items!
Classic UI
(Dan Clarizio)
Classic UI
Classic UI
● Bug Fixes
○ Fix assigning roles in group form
○ Fix search box display for Configuration Management Providers
○ Fix broken VM Reconfigure form
○ Enable 'Provision VMs' button in Datastores and Clusters
○ Fix AND/OR/NOT/REMOVE buttons in the expression editor
○ Fix second search in Topology
○ Fix race condition in container_live_dashboard_controller
Classic UI
● Technical Debt
○ Ongoing deletion of deprecated image files
○ More image conversion to svg and fonticons (~75% done)
○ VNC proxy removed from the UI (no longer in use)
○ Ongoing refactoring work to use mixins
○ More toolbar refactoring
○ Remove textual summary partials - removed the _main.html.haml partial
moving the logic from the views to helpers and controllers
Classic UI
● Features
○ Add icon for node alerts (Containers)
○ Add Live Migrate actions to the task queue (OpenStack
○ UI for Server Group deployments (Middleware)
○ Update ui-components to 0.0.12 (dialog editor)
○ Show Catalog Item type in list view
○ Unified the layout for VNC/SPICE remote consoles
○ Display a more informative message on single datasource deletion
(Middleware)
○ Existing Ansible Tower UI moved to Automation tab
Classic UI
Display a more informative message on single datasource deletion
Classic UI
Ansible Tower moved to Automation tab
Classic UI
Ansible Tower moved to Automation tab
Service UI
(Chris Kacerguis)
Overall Progress for Sprint (ahead of plan) - 20 pts completed
Service UI
(Chris Kacerguis)
● Primary focus this sprint was bug fixing
● Added more endpoints to our Mock API
● Completed removal of service designer
● Completed removal of arbitration profiles
● Updated dependencies
● Added Polling Refresh to all pages
● Completed API for Bulk tag assign / unassign
● Switched to Angular PatternFly SASS
Service UI
(Chris Kacerguis)
● Updated the Service
Details page to
include data from
Ansible provider
Service UI
(Chris Kacerguis)
● Bugs Fixed (14)
○ ManageIQ icon is being used on browser tab
○ No action on clicking link "Service Explorer"
○ "MyService" is displayed instead of "Service Explorer"
○ Pagination is broken
○ Fix skinning issue with symlinks
○ Refactor vertical navigation to support dynamic translations and badge counts
○ No cockpit icon for VM's in Service details page
○ Save and Cancel button on catalog page should be right aligned as in other pages
○ Default image from custom catalogs not being shown
○ Catalog card style not looking right
○ Request Explorer shows "Pending approval" requests by default
○ Notification keeps on showing "there was error loading service"
○ Correct Power Operations on VM need to be enabled
○ console options can be clicked when disabled
Providers
(Greg Blomquist)
Providers
(G. Blomquist)
Providers - Ansible Tower
(Greg Blomquist)
● AutomationManager
● Updated inventory
● Graph refresher
Providers - OpenStack
(Greg Blomquist)
● Advanced network placement
● Improve refresh performance by reducing orchestration
stack resource depth
Providers - Containers
(Greg Blomquist)
Providers - Amazon
(Greg Blomquist)
● Storage Manager updates
● Create event catcher SNS topic automatically
Providers
(Greg Blomquist)
● Updates to Graph Refresher
Automate
(Greg McCullough)
Provisioning
● Add support for set_security_groups (works with
eligible_security_groups)
Service Dialogs
● Enhanced auto-refresh triggers to support multiple
dependent fields.
○ Fields are now processed in a guaranteed order from
top-bottom.
Automate
(Greg McCullough)
Ansible Playbook Integration
● Implement ServiceAnsiblePlaybook model
● Service dialog creation for Ansible playbooks
● Added service_action to resource_action attributes to
support Generic Service processing
Automate
(Tina Fitzgerald)
New Generic Service State Machine
Goal is to use new State Machine for Ansible Playbooks,
Control Actions, Orchestration and future integrations.
Features:
■ Single State Machine for Provisioning, Retirement, and
Reconfigure.
■ Service action provides method context.
■ Automate methods call internal app/model methods, and can be
customized.
Automate
(Tina Fitzgerald)
○ Generic Service State Machine
Automate
(Tina Fitzgerald)
○ Generic Service State Machine - self contained class
Automate
(Greg McCullough)
● Ansible Service Demo
Platform
(Gregg Tanzillo)
32 PRs Merged
Platform
● Enhancements
○ Kill workers that don't stop after a configurable time
○ Ansible
■ Added “alive” checking for embedded Ansible
worker
■ Exposed username for Ansible authentications
(Admin, DB, RabbitMQ)
■ Created Ansible provider mixin for code shared
between embedded Ansible and Tower
Platform
● Bug Fixes
○ Added user roles to RBAC
○ Reinstated currency symbols in chargeback reports
○ Skip cost calculation when there is zero consumed
hours in chargeback report generation
○ Fixed nil error in C&U collection
○ Ensure model portion of an expression field is an
actual model
○ Assign current user to report generation task
Platform
● Technical Debt/Refactoring/Tests
○ Added eager loading for Service Catalog Items to fix
an n+1
API
(Alberto Bellotti)
● New Configuration Script Sources collection (Jillian T.)
/api/configuration_script_sources
This was needed to expose the Playbook service template types.
GET /api/configuration_script_sources
GET /api/configuration_script_sources/:id
API
(Alberto Bellotti)
● Improved request validation for picture creation (Jillian T.)
POST /api/pictures
Now ensures that both extension and content are specified and valid.
● Updated service_templates resource get to return config_info for parity
with Create/Edit payloads (Jillian T.)
GET /api/service_templates/:id
{
“name” : “Ansible Tower”,
“service_type” : “generic_ansible_tower”,
...
“config_info” : {
“provision” : { … },
“retirement” : { … },
...
}
}
API
(Alberto Bellotti)
● Added ability to do bulk unassign of Tags on vms and services (Jillian T.)
POST /api/vms
{
“action” : “unassign_tags”,
“resources” : [
{ “href” : “http://localhost:3000/api/vms/11”,
“tags” : [ { “name” : “/managed/location/ny” },
{ “name” : “/managed/environment/dev” } ] },
{ “href” : “http://localhost:3000/api/vms/12”,
“tags” : [ { “name” : “/managed/location/ny” },
{ “name” : “/managed/environment/dev” } ] },
...
]
}
Same with POST /api/services
API
(Alberto Bellotti)
● Added ability to do bulk deletes on snapshots (Tim W.)
POST /api/vms/:id/snapshots
{
“action” : “delete”,
“resources” : [
{ “href” : “http://localhost:3000/api/vms/:id/snapshots/12” },
{ “href” : “http://localhost:3000/api/vms/:id/snapshots/11”},
...
]
}
Returns list of action results, one per snapshot delete request.
API
(Alberto Bellotti)
● Added snapshot support for instances (Tim W.)
POST /api/instances/:id/snapshots - Create snapshot, requires “name”
{
“name” : “initial_image_with_os_loaded”
}
GET /api/instances/:id/snapshots - Query snapshots of an instance
GET /api/instances/:id/snapshots/:s_id - Query single snapshot of an instance
DELETE /api/instances/:id/snapshots/:s_id - Delete snapshot via HTTP Delete method
POST /api/instances/:id/snapshots/:s_id - Delete snapshot via “delete” action
POST /api/instances/:id/snapshots - Bulk delete snapshots via “delete” action
API
(Alberto Bellotti)
● Enhanced API to support collections that also return subclassed resources:
○ Added ability to specify multiple identifiers for action roles in api.yml
○ Added support for optional collection_class parameter
GET /api/vms?
collection_class=ManageIQ::Providers::CloudManager::Vm
○ Enhanced API CLI (tools/rest_api.rb) to support --collection-class=
parameter
Quality Engineering
(D. Johnson)
General Testing
○ Beginning to test initial Ansible stories as they land
■ Sending out a request for test case review later
today
○ Continuing to chase next set of maintenance fixes, just
about finished up
○ Issue incoming rate low but anticipated to increase
over the next several sprints
○ Latest maintenance fixes delivered made a good dent
in the backlog
Quality Engineering
(D. Johnson)
Automation
○ 62 PRs Merged
Quality Engineering
(D. Johnson)
Automation
○ Collections + Widgetastic work well under way
○ Team is beginning agile-like development process for
framework
○ Main goals for upcoming sprints
■ Turning framework into a package on pypi
■ Modularizing providers
■ Upgrading to pytest3
Discussion
Sprint 53 Recording
Sprint 55 Review - March 1

Sprint 54

  • 1.
    ManageIQ Sprint 54 Review- Sprint End February 13, 2017 February 15, 2017
  • 2.
    Overview ● Sprint Statistics(Oleg Barenboim) ● Community Update (Carol Chen) ● Classic UI (Dan Clarizio) ● Service UI (Chris Kacerguis) ● Providers (Greg Blomquist) ● Automate (Greg McCullough) ● Platform (Gregg Tanzillo) ● API (Alberto Bellotti) ● Discussion
  • 3.
    Sprint Statistics (O. Barenboim) 126Pull Requests Merged for ManageIQ/manageiq
  • 4.
    PR Breakdown byFeature Category Manageiq/manageiq (O. Barenboim) * Note that some PRs have more than one category.
  • 5.
    All Repo Stats- Top 10 (O. Barenboim) Top 10 Repositories # Closed ManageIQ/manageiq 126 ManageIQ/manageiq-ui-classic 80 ManageIQ/integration_tests 77 ManageIQ/manageiq-ui-service 31 ManageIQ/miq_bot 30 ManageIQ/manageiq-content 23 ManageIQ/manageiq-providers-amazon 15 ManageIQ/manageiq_docs 12 ManageIQ/manageiq-gems-pending 8 ManageIQ/manageiq-providers-azure 8 Total of 462 across ALL ManageIQ Organization
  • 6.
    Community Update (Carol Chen) ●Last Week in ManageIQ: ○ http://manageiq.org/blog/2017/02/ansible-and-api-and-stuff/ by Daniel Berger ○ http://manageiq.org/blog/2017/02/love-is-in-the-PRs/ by Jillian Tullo ○ Contact John Prause (jprause on Gitter) if you’d like to contribute ● Upcoming Events: ○ 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/; 2 ManageIQ presentations by Carol Chen and Daniel Korn ○ CloudNativeCon EU: Mar 29-30 in Berlin, Germany https://kubecon.io; OpenShift Commons Gathering on Mar 28 (Sergio Ocon representing ManageIQ) ● New Swag Items!
  • 7.
  • 8.
  • 9.
    Classic UI ● BugFixes ○ Fix assigning roles in group form ○ Fix search box display for Configuration Management Providers ○ Fix broken VM Reconfigure form ○ Enable 'Provision VMs' button in Datastores and Clusters ○ Fix AND/OR/NOT/REMOVE buttons in the expression editor ○ Fix second search in Topology ○ Fix race condition in container_live_dashboard_controller
  • 10.
    Classic UI ● TechnicalDebt ○ Ongoing deletion of deprecated image files ○ More image conversion to svg and fonticons (~75% done) ○ VNC proxy removed from the UI (no longer in use) ○ Ongoing refactoring work to use mixins ○ More toolbar refactoring ○ Remove textual summary partials - removed the _main.html.haml partial moving the logic from the views to helpers and controllers
  • 11.
    Classic UI ● Features ○Add icon for node alerts (Containers) ○ Add Live Migrate actions to the task queue (OpenStack ○ UI for Server Group deployments (Middleware) ○ Update ui-components to 0.0.12 (dialog editor) ○ Show Catalog Item type in list view ○ Unified the layout for VNC/SPICE remote consoles ○ Display a more informative message on single datasource deletion (Middleware) ○ Existing Ansible Tower UI moved to Automation tab
  • 12.
    Classic UI Display amore informative message on single datasource deletion
  • 13.
    Classic UI Ansible Towermoved to Automation tab
  • 14.
    Classic UI Ansible Towermoved to Automation tab
  • 15.
    Service UI (Chris Kacerguis) OverallProgress for Sprint (ahead of plan) - 20 pts completed
  • 16.
    Service UI (Chris Kacerguis) ●Primary focus this sprint was bug fixing ● Added more endpoints to our Mock API ● Completed removal of service designer ● Completed removal of arbitration profiles ● Updated dependencies ● Added Polling Refresh to all pages ● Completed API for Bulk tag assign / unassign ● Switched to Angular PatternFly SASS
  • 17.
    Service UI (Chris Kacerguis) ●Updated the Service Details page to include data from Ansible provider
  • 18.
    Service UI (Chris Kacerguis) ●Bugs Fixed (14) ○ ManageIQ icon is being used on browser tab ○ No action on clicking link "Service Explorer" ○ "MyService" is displayed instead of "Service Explorer" ○ Pagination is broken ○ Fix skinning issue with symlinks ○ Refactor vertical navigation to support dynamic translations and badge counts ○ No cockpit icon for VM's in Service details page ○ Save and Cancel button on catalog page should be right aligned as in other pages ○ Default image from custom catalogs not being shown ○ Catalog card style not looking right ○ Request Explorer shows "Pending approval" requests by default ○ Notification keeps on showing "there was error loading service" ○ Correct Power Operations on VM need to be enabled ○ console options can be clicked when disabled
  • 19.
  • 20.
  • 21.
    Providers - AnsibleTower (Greg Blomquist) ● AutomationManager ● Updated inventory ● Graph refresher
  • 22.
    Providers - OpenStack (GregBlomquist) ● Advanced network placement ● Improve refresh performance by reducing orchestration stack resource depth
  • 23.
  • 24.
    Providers - Amazon (GregBlomquist) ● Storage Manager updates ● Create event catcher SNS topic automatically
  • 25.
  • 26.
    Automate (Greg McCullough) Provisioning ● Addsupport for set_security_groups (works with eligible_security_groups) Service Dialogs ● Enhanced auto-refresh triggers to support multiple dependent fields. ○ Fields are now processed in a guaranteed order from top-bottom.
  • 27.
    Automate (Greg McCullough) Ansible PlaybookIntegration ● Implement ServiceAnsiblePlaybook model ● Service dialog creation for Ansible playbooks ● Added service_action to resource_action attributes to support Generic Service processing
  • 28.
    Automate (Tina Fitzgerald) New GenericService State Machine Goal is to use new State Machine for Ansible Playbooks, Control Actions, Orchestration and future integrations. Features: ■ Single State Machine for Provisioning, Retirement, and Reconfigure. ■ Service action provides method context. ■ Automate methods call internal app/model methods, and can be customized.
  • 29.
  • 30.
    Automate (Tina Fitzgerald) ○ GenericService State Machine - self contained class
  • 31.
  • 32.
  • 33.
    Platform ● Enhancements ○ Killworkers that don't stop after a configurable time ○ Ansible ■ Added “alive” checking for embedded Ansible worker ■ Exposed username for Ansible authentications (Admin, DB, RabbitMQ) ■ Created Ansible provider mixin for code shared between embedded Ansible and Tower
  • 34.
    Platform ● Bug Fixes ○Added user roles to RBAC ○ Reinstated currency symbols in chargeback reports ○ Skip cost calculation when there is zero consumed hours in chargeback report generation ○ Fixed nil error in C&U collection ○ Ensure model portion of an expression field is an actual model ○ Assign current user to report generation task
  • 35.
    Platform ● Technical Debt/Refactoring/Tests ○Added eager loading for Service Catalog Items to fix an n+1
  • 36.
    API (Alberto Bellotti) ● NewConfiguration Script Sources collection (Jillian T.) /api/configuration_script_sources This was needed to expose the Playbook service template types. GET /api/configuration_script_sources GET /api/configuration_script_sources/:id
  • 37.
    API (Alberto Bellotti) ● Improvedrequest validation for picture creation (Jillian T.) POST /api/pictures Now ensures that both extension and content are specified and valid. ● Updated service_templates resource get to return config_info for parity with Create/Edit payloads (Jillian T.) GET /api/service_templates/:id { “name” : “Ansible Tower”, “service_type” : “generic_ansible_tower”, ... “config_info” : { “provision” : { … }, “retirement” : { … }, ... } }
  • 38.
    API (Alberto Bellotti) ● Addedability to do bulk unassign of Tags on vms and services (Jillian T.) POST /api/vms { “action” : “unassign_tags”, “resources” : [ { “href” : “http://localhost:3000/api/vms/11”, “tags” : [ { “name” : “/managed/location/ny” }, { “name” : “/managed/environment/dev” } ] }, { “href” : “http://localhost:3000/api/vms/12”, “tags” : [ { “name” : “/managed/location/ny” }, { “name” : “/managed/environment/dev” } ] }, ... ] } Same with POST /api/services
  • 39.
    API (Alberto Bellotti) ● Addedability to do bulk deletes on snapshots (Tim W.) POST /api/vms/:id/snapshots { “action” : “delete”, “resources” : [ { “href” : “http://localhost:3000/api/vms/:id/snapshots/12” }, { “href” : “http://localhost:3000/api/vms/:id/snapshots/11”}, ... ] } Returns list of action results, one per snapshot delete request.
  • 40.
    API (Alberto Bellotti) ● Addedsnapshot support for instances (Tim W.) POST /api/instances/:id/snapshots - Create snapshot, requires “name” { “name” : “initial_image_with_os_loaded” } GET /api/instances/:id/snapshots - Query snapshots of an instance GET /api/instances/:id/snapshots/:s_id - Query single snapshot of an instance DELETE /api/instances/:id/snapshots/:s_id - Delete snapshot via HTTP Delete method POST /api/instances/:id/snapshots/:s_id - Delete snapshot via “delete” action POST /api/instances/:id/snapshots - Bulk delete snapshots via “delete” action
  • 41.
    API (Alberto Bellotti) ● EnhancedAPI to support collections that also return subclassed resources: ○ Added ability to specify multiple identifiers for action roles in api.yml ○ Added support for optional collection_class parameter GET /api/vms? collection_class=ManageIQ::Providers::CloudManager::Vm ○ Enhanced API CLI (tools/rest_api.rb) to support --collection-class= parameter
  • 42.
    Quality Engineering (D. Johnson) GeneralTesting ○ Beginning to test initial Ansible stories as they land ■ Sending out a request for test case review later today ○ Continuing to chase next set of maintenance fixes, just about finished up ○ Issue incoming rate low but anticipated to increase over the next several sprints ○ Latest maintenance fixes delivered made a good dent in the backlog
  • 43.
  • 44.
    Quality Engineering (D. Johnson) Automation ○Collections + Widgetastic work well under way ○ Team is beginning agile-like development process for framework ○ Main goals for upcoming sprints ■ Turning framework into a package on pypi ■ Modularizing providers ■ Upgrading to pytest3
  • 45.