Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sprint 57

330 views

Published on

Sprint Statistics (Oleg Barenboim)
Community Update (Carol Chen)
Classic UI (Dan Clarizio)
Service UI (Chris Kacerguis)
Providers (Greg Blomquist)
Automate (Greg McCullough)
Platform (Tim Wade)
API (Alberto Bellotti)
Quality Engineering (Dave Johnson)
Discussion

Published in: Software
  • Be the first to comment

  • Be the first to like this

Sprint 57

  1. 1. ManageIQ Sprint 57 Review - Sprint End March 27, 2017 March 29, 2017
  2. 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 (Tim Wade) ● API (Alberto Bellotti) ● Quality Engineering (Dave Johnson) ● Discussion
  3. 3. Fine Release ● Branching Complete ○ 14 Repos ■ https://github.com/ManageIQ/manageiq-release/ blob/master/config/repos.yml ● New Labels ○ fine/yes ○ fine/no ○ fine/conflict ○ fine/backported ● Beta Build ○ Being Worked On ○ Announcement Soon
  4. 4. Sprint Statistics (O. Barenboim) 180 Pull Requests Merged for ManageIQ/manageiq
  5. 5. PR Breakdown by Feature Category (O. Barenboim) * Note that some PRs have more than one category.
  6. 6. PRs Merged per Sprint (O. Barenboim)
  7. 7. All Repo Stats - Top 10 (O. Barenboim) Top 10 Repositories # Closed manageiq 180 manageiq-ui-classic 117 integration_tests 93 manageiq-ui-service 35 manageiq-providers-amazon 33 manageiq_docs 30 manageiq-gems-pending 11 linux_admin 9 manageiq-providers-vmware 9 manageiq-content 8 Total of 565 across ALL ManageIQ Organization New repositories: ● amazon_ssa_support ● manageiq-ui-scaffold
  8. 8. Planned Repo Extractions ● SQL Schema/Rails Migrations ● Providers ○ OpenShift ○ OpenStack ○ ovirt/RHV ○ Middleware ● Automate Engine WHEN: April 2017 - Next 1-2 Sprints
  9. 9. Community Update (Carol Chen) ● Last Week in ManageIQ ○ http://manageiq.org/blog/2017/03/yet-another-move-by-euwe/ by Libor Pichler ○ http://manageiq.org/blog/2017/03/pontificatory-requestiveous/ by Drew Bomhof ● Upcoming Events ○ KubeCon/CloudNativeCon EU, Mar 29-30 in Berlin https://kubecon.io ○ Barcamp, April 4 in Warsaw https://osec.pl/barcamp/barcamp-kwiecien-2017 ○ Open House, April 5 in Brno https://openhousecz.redhat.com/ ○ ManageIQ Meetup, April 12 in Amsterdam https://www.meetup.com/ManageIQ-CloudForms-User-group-Netherlands/events/238409424/ ○ FOSS-North, April 26 in Gothenburg http://foss-north.se/ ● Event recaps ○ PyCon Pune http://manageiq.org/blog/2017/03/pycon-pune-2017/ ○ FOSSASIA https://www.youtube.com/watch?v=cnugrzCS7zk
  10. 10. Classic UI (Harpreet Kataria) ● PRs merged (113) ○ Bugs (60) ○ Enhancements (30) ○ Tech Debt / Refactoring (17) ○ Backported to EUWE (13) ● Bug Fixes ○ API Error handling in JS fixed ○ Fixed bug on non-explorer compare screens caused by show partial refactoring ○ Fixed/Added RBAC check on selected records before performing task. ○ Added missing Container Volume tagging
  11. 11. Classic UI ● Technical Debt/Refactoring ○ More tests added for middleware controllers ○ Deleted dead code from compare module and non-angular Provider forms ○ Filter substitution mixin moved from core to UI repo ○ Configuration & MiqAeCustomization controllers changed to use GenericSessionMixin ○ Cleanup of tree_Select method in vm_common ○ Cleanup of C&U performance chart related methods ● Enhancements ○ Added Retired Service node in Services explorer ○ Ansible Repositories CRUD (Demo by Zita Nemeckova) ○ Ansible Credentials CRUD (Demo by Milan Zazrivec) ○ Copy from Provisioning button on Ansible Catalog Items form ○ Ansible Service summary screen updates ○ SSL support added for Hawkular Providers ○ Clear Object Storage Containers support added for Cloud Object Store Containers ○ Support to only allow operations on mutable middleware servers was added. ○ Filter options added on Container Provider ad-hoc metrics screen ○ Dynamic support for provisioning of new cloud volumes(OpenStack Cinder and Amazon EBS)
  12. 12. Classic UI - PRs by Area of UI (Harpreet Kataria)
  13. 13. Classic UI Added Retired Services node in Services explorer
  14. 14. Classic UI Copy from Provisioning button on Ansible Catalog Items form
  15. 15. Classic UI Copy from Provisioning button on Ansible Catalog Items form
  16. 16. Classic UI Ansible Service summary screen updates
  17. 17. Classic UI SSL support added for Hawkular Providers
  18. 18. Classic UI Clear Object Storage Containers support added for Cloud Object Store Containers
  19. 19. Classic UI Support to only allow operations on mutable middleware servers was added.
  20. 20. Classic UI Filter options added on Container Provider ad-hoc metrics screen
  21. 21. Classic UI Dynamic support for provisioning of new cloud volumes(OpenStack Cinder and Amazon EBS)
  22. 22. Classic UI Demo ○ Ansible Repositories CRUD (Demo by Zita Nemeckova) ○ Ansible Credentials CRUD (Demo by Milan Zazrivec)
  23. 23. Service UI (Chris Kacerguis) Overall Progress for Sprint
  24. 24. Service UI (Chris Kacerguis) “Behind the Scenes” Features - RBAC added to all tabs (except for Service details) - Temporarily removed “Templates” / “Dialog Editor” tabs - Added ability to restore snapshots to VM’s - Framework for Reports viewer. - Ability to view reports next sprint!
  25. 25. Service UI (Chris Kacerguis) - Now showing “retired” resources in Service Details page
  26. 26. Service UI (Chris Kacerguis) - Bug Fixes (10) - Unable to delete a new tab in dialog - Empty page during Breadcrumb navigation on Dialogs page - Hover text is hiding Download button on Template Summary page - Hand pointer without clickable link on power state icon on Service page - Catalog Edit :Either of Cancel and "Do not Save" should be there - Service dialog dynamic code does not work - Fix obscene expanded row view - Tags not sorted while tagging services - Hand pointer without clickable link on SSUI Template page - Disabled vm resource actions shouldn't be executed
  27. 27. Providers (Greg Blomquist)
  28. 28. Providers PR Distribution
  29. 29. Hawkular provider ● Hawkular provider/endpoint connection enhancements: ○ Added SSL support when connecting to hawkular endpoint ○ Default security protocol is non ssl ○ Security protocol field moved to be before port, to autofill the default port automatically (for all the providers) ● Allow operations only on mutable servers (for example, not in a container) ● Added more tests ● Fixed navigation issues in entities pages ● Use hawkular_metric_id from the inventory instead of building a metric id. (because Metric id format is configurable)
  30. 30. Amazon and Ansible Map AWS tags to MIQ tags during refresh Dynamic Cloud Volume modifications Mostly “Fine” fixes Much more in UI and Automate/Control
  31. 31. OpenStack and RHV Blacklist specific events Update to new oVirt SDK
  32. 32. Core providers ● Move provider-specific settings to provider repos ● More updates to Graph Refresh
  33. 33. Automate (Greg McCullough)
  34. 34. Automate (Greg McCullough) Services ● Change default behavior of Service Retirement to retain Service instance (Instead of delete) (PR manageiq-content #76) ○ Aligns with UI changes to display retired service in separate node ○ Aligns with other resources, like VMs ○ Easily modified (reverted) by overriding the Automate retirement state-machine class or instance
  35. 35. Automate (Greg McCullough) Service Models ● Automate modeling for Ansible Tower Events ○ / ManageIQ / System / Event / EmsEvent / AnsibleTower ● CloudVolume - New methods exposed ○ attach_volume / detach_volume ● VMware add_disk method - Allow passing additional options ○ Supported options: :thin_provisioned, :dependent, :persistent Example: vm.add_disk("[#{vm.storage_name}]", size * 1024, :thin_provisioned => true)
  36. 36. Automate (Greg McCullough) Provisioning ● Cloud-Init customization template ○ New example template that sets host name, root password and IP address in oVirt. Fix ● Policy: Corrected request_vm_scan event logic to abort on Action "Prevent current event from proceeding"
  37. 37. Automate (Greg McCullough) Ansible Integration ● Automate modeling for Ansible Events ○ / ManageIQ / System / Event / EmsEvent / EmbeddedAnsible ● Generic Service State Machine - new retirement instances ● Associate job_plays to job ● Ansible Job retirement support ● Accept format parameter to get stdout (txt, json, html) ● Remove Playbook metadata during Catalog Item deletion ● Send ‘manageiq' extra_var on Playbook launch ○ Pass service action: Provision, Retirement ○ Pass event_target and event_name from Control
  38. 38. Automate (Madhu Kanoor) Reference objects in VMDB using partial hrefs (slugs). Combines class name and id into a single value. e.g. providers/10 - Extra vars for ansible can contain partial hrefs - Dynamic Dialogs can use slugs as identifiers instead of ids - Service Model method - href_slug Example: vm.href_slug # => "vms/3539"
  39. 39. Automate (Madhu Kanoor) Extra vars being passed into ansible playbook Name Example Description manageiq.api_url https://172.16.207.160 The URL used to access our REST Server from a playbook manageiq.api_token d64b517842d54c6bd781c2ec8d 9c9b1a Ephemeral authentication token used to access the REST Server in lieu of userid and password manageiq.service services/1000000000001 The ManageIQ service that launched the ansible job template manageiq.user users/1000000000001 The user that is running this job template manageiq.action Provision The current service action Provision|Reconfigure|Retirement manageiq.event_target instances/1000000000029 The vm,host, cluster that generated the event (optionally during Control) manageiq.event_name assigned_company_tag The ManageIQ Policy event name (optionally during Control)
  40. 40. Automate (Madhu Kanoor) Ansible Playbook demo
  41. 41. Platform (Tim Wade) 31 PRs Merged On ManageIqmanageiq
  42. 42. Platform ● Enhancements - General ○ Log any exceptions when trying to validate apache configurations ● Enhancements - Embedded Ansible ○ Raise a notification when the embedded ansible server starts (screenshot) ○ Create initial tower objects on first start of the worker ○ Add a concern for storing and accessing embedded ansible object ids ○ Add embedded_ansible to roles that require apache ○ Use the new setup script argument types
  43. 43. Platform Embedded Ansible - Notification
  44. 44. Platform ● Enhancements - IPv6 ○ Appliance Console: ■ Show ipv6 on the summary screen ■ Dialog for static ipv6 settings (screenshot) ○ linux-admin ■ Introduce enable_dhcp6 method ■ Introduce methods for setting up static ipv6 ■ Support for showing IPv6 default gateway ■ Network interface s/netmask6/prefix6/
  45. 45. Platform Appliance Console - IPv6
  46. 46. Platform Appliance Console - IPv6
  47. 47. Platform ● Bug Fixes ○ Remove MiqQueue rows containing a class removed in Rails 5 ○ If we can't update_attributes on a queue row, set state to error ○ Add balancer members after configs have been written ○ Support dots and slashes in virtual custom attributes ○ Exclude chargeback lookup tables ○ MiqApache::Conf.create_balancer_config expects a :lbmethod key ○ Add NE to the ansible api rewrite rule ○ Support systems without network ○ Fixed bug in vm_scan introduced by removing agent_class
  48. 48. ● Technical Debt/Refactoring/Tests ○ Added test coverage for JobProxyDispatcher#do_dispatch ○ Link jobs and miq_server tables (make job belongs_to miq_server) ○ Drop 'jobs.agent_class’ column ○ Drop 'jobs.agent_state' column ○ Do not use Job.agent_class attribute ○ Refactor/DRY logging for job ○ Do not use Job.agent_state attribute ○ Remove caching of apache config files ○ Drop FilterSubstMixin, it was moved to ui-classic ○ Specs: check that counts match for headers and col_order for charts ○ Remove uncalled miq_server lets Platform
  49. 49. API (Alberto Bellotti) ● Added CRUD support for authentications (Jillian T.) POST /api/authentications { “name” : “A Credential”, “description” : “Credential Description”, “manager_resource” : { “href” : “http://localhost:3000/api/providers/5” }, “type” : “ManageIQ::Providers::AnsibleTower::AutomationManager::Credential”, “related” : {} } ● Also create as subcollection resource of a provider: manager_resource is not needed in this payload POST /api/providers/:id/authentications
  50. 50. API POST /api/authentications/:id - action “edit” PUT /api/authentications/:id PATCH /api/authentications/:id POST /api/authentications - bulk action “edit” DELETE /api/authentications/:id POST /api/authentications/:id - action “delete” POST /api/authentications - bulk action “delete” ● Enhanced OPTIONS /api/authentications (Jillian T.) ○ Return different credential types and related attributes to assist the UI
  51. 51. API ● Added CRUD support for configuration script sources (Jillian T.) POST /api/configuration_script_sources { “name” : “Test Project”, “description” : “Test Description”, “manager_resource” : { “href” : “http://localhost:3000/api/providers/5” }, “related” : {} } POST /api/configuration_script_sources/:id - action “edit” PUT /api/configuration_script_sources/:id PATCH /api/configuration_script_sources/:id POST /api/configuration_script_sources - bulk action “edit” DELETE /api/configuration_script_sources/:id POST /api/configuration_script_sources/:id - action “delete” POST /api/configuration_script_sources - bulk action “delete”
  52. 52. API ● Added Bulk edit support for Alert Definitions (Daniel K.) POST /api/alert_definitions { “action” : “edit”, “resources” : [ { “href” : “http://localhost:3000/api/alert_definitions/1”, “description” : “Updated Description 1” }, { “href” : “http://localhost:3000/api/alert_definitions/2”, “description” : “Updated Description 2” } ] }
  53. 53. API ● Enhanced services to support add_resource action (Jillian T.) ○ Currently supports adding VMs to services. Other types can be added in the future using the same API signature. POST /api/services/:id { “action” : “add_resource”, “resource” : { { “resource” : { “href” : “http://localhost:3000/api/vms/11” } } } } POST /api/services { "action" : "add_resource", "resources" : [ { "href" : "http://localhost:3000/api/services/3", "resource" : { "href" : … } }, { "href" : "http://localhost:3000/api/services/3", "resource" : { "href" : … } }, { "href" : "http://localhost:3000/api/services/4", "resource" : { "href" : … } }, { "href" : "http://localhost:3000/api/services/5", "resource" : { "href" : … } }, … ] }
  54. 54. API ● Exposed Cloud Volumes as a primary collection (Aparna K.) New collection /api/cloud_volumes GET /api/cloud_volumes GET /api/cloud_volumes/:id POST /api/cloud_volumes - Bulk “query” action { “action” : “query”, “resources” : [ { “href” : “http://localhost:3000/api/cloud_volumes/101” }, { “href” : “http://localhost:3000/api/cloud_volumes/102” }, { “id” : 103 }, ... ] }
  55. 55. API ● Exposed Orchestration stacks as subcollection of services (Jillian T.) GET /api/services/:id/orchestration_stacks GET /api/services/:id?expand=orchestration_stacks GET /api/services?expand=resources,orchestration_stacks
  56. 56. API ● href_slug now accessible for all resources ○ Unique identifier for a resource ○ Accessible as a virtual attribute GET /api/vms/166?attributes=href_slug,name,vendor { “href” : “http://localhost:3000/api/vms/166”, “id” : 166, “href_slug” : “vms/166”, “name” : “test-vm”, “vendor” : “redhat”, }
  57. 57. API ● Support accessing stdout attribute of orchestration stacks GET /api/services/:id/orchestration_stacks/:os_id?attributes=stdout GET /api/services/:id/orchestration_stacks ?expand=resources&attributes=stdout ● Support optional attribute format parameter, honored for the stdout attribute GET /api/services/:id/orchestration_stacks ?expand=resources&attributes=stdout &format_attributes=stdout=txt
  58. 58. API ● Enhanced provider refresh actions now return a task POST /api/providers/2 { “action” : “refresh” } { “success” : “true”, “message” : “Provider id:2 name:’rhev2’ refreshing”, “task_id” : 55, “task_href” : “http://localhost:3000/api/tasks/55”, “href” : “http://localhost:3000/api/providers/2” } Caveat: for providers with multiple managers, only the task for the first manager’s refresh is returned. RFE Issue #14404
  59. 59. Quality Engineering Ansible Testing Progress: ● 80% implemented ○ Confirming 20% de-scoped ● Status on implemented: ○ 83% confirmed working ○ 8% testing in progress ○ 9% not working properly ● Overall, things are in much better shape now ○ Incoming issue rate trending down somewhat
  60. 60. Quality Engineering Sprint #3 (Cajon) ended yesterday. PR type Count enhancement 28 fix-test 16 new-test-or-feature 13 fix-framework 12 tech-debt 4 fix-locator-or-text 2 widgetastic-conversion 2 infra-related 1 78 Sprint #4 (Dholak) started today
  61. 61. Quality Engineering In the last 2 weeks: ● We have modified our test parallelizer to be less prone to getting stuck and use less CPU ● A couple of Widgetastic (object modeling library) conversions ● Lots of test fixes for changes in the application
  62. 62. Discussion Sprint 58 Review - April 12

×