sprint 35 review

33
ManageIQ Sprint 35 Review - Sprint End January 25, 2016 January 27, 2016

Upload: manageiq

Post on 23-Jan-2018

216 views

Category:

Technology


0 download

TRANSCRIPT

ManageIQSprint 35 Review - Sprint End January 25, 2016

January 27, 2016

Overview● Sprint Statistics (O. Barenboim)● Providers (G. Blomquist)● Appliance Core (G. Tanzillo)● REST API (A. Bellotti)● User Interface (D. Clarizio)● Automate (G. McCullough)● Ansible (G. McCullough)● SmartState Analysis (R. Oliveri)● Discussion

Sprint Statistics (O. Barenboim)

231 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○ 154 Green | 70 Yellow | 0 Red

All Repo Stats (O. Barenboim)

PRs Merged Git Repo

5 ansible_tower_client

1 guides

2 azure-armrest

2 manageiq-appliance

1 manageiq.org

1 manageiq-appliance-build

2 linux_admin

1 manageiq_docs

● ManageIQ: https://github.com/ManageIQ/manageiq/issues?q=milestone%3A%22Sprint+35+Ending+Jan+25%2C+2016%22

Data source:

https://github.com/ManageIQthese are listed by most recent activity. go into each one that has been updated in the past 20 days and add up the PRs that have been merged

PRs Merged Git Repo

2 ManageIQ/awesome_spawn

9 ManageIQ/azure-armrest

4 ManageIQ/guides

234 ManageIQ/manageiq

4 ManageIQ/manageiq-appliance

19 ManageIQ/manageiq-appliance-build

1 ManageIQ/manageiq_docs

13 ManageIQ/miq_bot

1 ManageIQ/ovirt

2 ManageIQ/polisher

Providers - Highlights

● OpenStack○ cleanup SSL support○ VM operations

● Microsoft System Center○ delete VMs

● Containers○ tons of UI updates (DanC)

Providers - Google

Google Cloud Engine demo by Adam Grare

Appliance Core - Replication

Researching replacement for Rubyrep

● Rubyrep is not actively maintained

● Implemented in Ruby and SQL

● Relies on external daemon process and SQL triggers

● Performance suffers on slow networks with frequent data churn

Appliance Core - Replication

BDR - Bi-Directional Replication [*]

● Operates within the Postgres process as an extension

● Developed and maintained by Postgres contributors

● Integrated in ManageIQ as a POC

● Performance testing in-progress

[*] http://bdr-project.org/docs/0.9/index.html

Appliance Core - Replication

What BDR can do for us?

● Better performance

● High availability

● Administration from any region

Appliance Core

Workers

● Forked from main server process instead of spawned

● Faster worker startup

● Leverages copy-on-write for sharing memory in Ruby 2.0+

● Expect reduced worker memory once tuned

● Added smem package to appliance

Rest API (A. Bellotti)

● New primary collection for InstancesGET /api/instances

● Supporting the terminate action for instancesTarget single Instance via POST /api/instances/:id or multiple Instances via POST /api/instances

○ Terminate Instance - Power->TerminatePOST /api/instances/:id

{“action” : “terminate”

}

Rest API (A. Bellotti)

● Ability to filter string equality/inequality on virtual attributes.This allows us to filter on categories by name:

GET /api/categories?filter[]=name=’value’

● Ability to retrieve user’s default languageThis is needed by SSUI to know the user’s preferred language to set angular-gettext to the right language:

GET /api

...“settings” : {

“locale” : “en”},...

Rest API (A. Bellotti)

● Adding support for Dynamic DialogsThis enhancement for the SSUI allows fields to be queried as the dialog is getting populated. This is made available as a new refresh_dialog_fields action on the service template resource:

POST /api/service_catalogs/:id/service_templates/:st_id

{

“action” : “refresh_dialog_fields”,

“resource” : {

“dialog_fields” : {

“field1” : “value1”,

“field2” : “value2”,

“field3” : “value3”,

}

“fields” : [ “field1”, “field3”]

}

User Interface (D. Clarizio)● PRs merged (123), bugs (55), enhancements (28), refactoring (28)

● New functionality○ I18n

■ Mark translated strings in the UI■ Gettext support added to JS source code

○ Converted toolbar images to font icons○ Enabled font icon support in list views○ Implemented Bootstrap switch

● Containers○ Dashboard network trends○ Container environment variables table○ Search functionality for Container topology○ Dashboard no data cards○ Refresh option in Configuration dropdown

UI - Mark Translated Strings

UI - Converted toolbar images to font icons

Before

After

Before

After

UI - Enable font icon support in list views

UI - Implement Bootstrap Switch

UI - Containers Dashboard Network Trends

UI - Containers Environment Variables

UI - Containers Topology Search Function

Automate (G. McCullough)

● Support dialogs with dynamic fields in Self Service UI

Before

Automate

● Dynamic dialog fields in Self Service UI

After

Automate

Simulate UI support for state machine retries● Problem

○ When state machines are tested with Simulation there is no indication to the user that a retry is needed.

○ State Attributes are not preserved between invocations.

● Features○ Add “Retry” button to UI if the state machine requests a retry.○ Preserves the state attributes so that it can be used in the next retry invocation.○ The ae_state_retries can be reset from the Attribute/Value Pairs section of the UI.

Automate

Simulate UI support for state machine retriesFirst Run: Second Run:

Automate

● Support where method for service models (PR #6046)vms = $evm.vmdb(:vm).where(:id => 2349, :vendor => "redhat")

=> [#<MiqAeServiceManageIQ_Providers_Redhat_InfraManager_Vm...

● find_by and find_by! also availablevm = $evm.vmdb(:vm).find_by(:id => 2349, :vendor => "redhat")

=> #<MiqAeServiceManageIQ_Providers_Redhat_InfraManager_Vm...

vm = $evm.vmdb(:vm).find_by!(:id => 2349, :vendor => "redhat")

=> #<MiqAeServiceManageIQ_Providers_Redhat_InfraManager_Vm...

Note: Automate will return an array or service model as a results of the query. This means you cannot chain the methods together.

For example this work in Rails:Vm.where(:id => 2349).where(:vendor => "redhat")

=> #<ActiveRecord::Relation [#<ManageIQ::Providers::Redhat...

The same thing will not work in automate:vm = $evm.vmdb(:vm).where(:id => 2349).where(:vendor => "redhat")

NoMethodError: undefined method `where' for #<Array:0x007f9b22d23a38>

Automate

● Event Switchboard○ Openstack events updated to trigger policy events

■ compute_instance_pause■ compute_instance_unpause■ compute_instance_resume■ compute_instance_suspend

● Retirement○ Removed tagging (Lifecycle/Retire_Full) and

“provisioned” check from “Remove from Provider” state.

Ansible (G. McCullough)

● Modeling for Provider, Configuration Manager, and Configured Systems

● Provider connection logic● Support refresh of Configured Systems

● Ansible Tower Client gem○ Credential validation○ Supported resources

■ Hosts■ JobTemplates■ Adhoc commands

SmartState Analysis (R. Oliveri)

SSA for SCVMM providers.● Supported:

○ Virtual hard disks residing on Hyper-V servers.○ VHD, and newer VHDX disk formats.○ Snapshotted disks.○ Same filesystems as other providers.

● TODO:○ Disks mounted from network datastores.

■ Multi-hop authentication issue.○ Performance improvements.

SmartState Analysis (R. Oliveri)

SSA for SCVMM providers.

Demo(J. Keselman)

Discussion

Next Sprint Review - February 17