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
7. Providers - Highlights
● OpenStack
○ cleanup SSL support
○ VM operations
● Microsoft System Center
○ delete VMs
● Containers
○ tons of UI updates (DanC)
9. 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
10. 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
11. Appliance Core - Replication
What BDR can do for us?
● Better performance
● High availability
● Administration from any region
12. 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
13. Rest API (A. Bellotti)
● New primary collection for Instances
GET /api/instances
● Supporting the terminate action for instances
Target single Instance via POST /api/instances/:id or multiple Instances via POST /api/instances
○ Terminate Instance - Power->Terminate
POST /api/instances/:id
{
“action” : “terminate”
}
14. 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 language
This is needed by SSUI to know the user’s preferred language to set angular-gettext to the right
language:
GET /api
...
“settings” : {
“locale” : “en”
},
...
15. Rest API (A. Bellotti)
● Adding support for Dynamic Dialogs
This 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”]
}
16. 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
26. 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.
28. 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 available
vm = $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>
29. 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.
30. 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
31. 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.