ManageIQ
Sprint 33 Review - Sprint End December 7, 2015
Theme: Capablanca Stabilization and Release
December 9, 2015
Overview
● Sprint Statistics (O. Barenboim)
● Providers (G. Blomquist)
● Appliance Core (G. Tanzillo)
● REST API (A. Bellotti)
● User Interface (D. Clarizio)
● Automate (G. McCullough)
● Service / Orchestration (G. McCullough)
● Discussion
Sprint Statistics (O. Barenboim)
185 Pull Requests Merged
4 gem changes
* 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.
Sprint Statistics (O. Barenboim)
● Gemnasium (Ruby Gem Dependencies)
○ https://gemnasium.com/ManageIQ/manageiq
○ 155 Green | 62 Yellow | 0 Red
● Coveralls (Code Covered by Unit Tests)
○ https://coveralls.io/github/ManageIQ/manageiq
○ Coverage reporting seems broken; last known value
was 48%, as of https://coveralls.io/builds/4129789
All Repo Stats (O. Barenboim)
PRs Merged Git Repo
5 miq_bot
5 guides
3 miq_tools_services
1 manageiq_docs
3 linux_admin
6 manageiq.org
2 manageiq_appliance_build
2 manageiq_appliance
2 ovirt
2 azure_armrest
● ManageIQ: https://github.com/ManageIQ/manageiq/issues?q=milestone%3A%22Sprint+33+Ending+Dec+7%2C+2015%22
Capablanca Release (O. Barenboim)
● Capablanca has been released
○ http://manageiq.org/blog/2015/12/manageiq-capabla
nca-azure-containers-self-service-ui/
● Work is starting on Darga release
Providers (G. Blomquist)
Planning and Stabilization
Providers: Containers
Show Pods in a Service
Providers: Containers
Event Timelines
Appliance Core (G. Tanzillo)
39 PRs merged
● Bugs
● Enhancements
● Technical debt
Appliance
● Replaced deprecated ntpdate with chronyd.
○ chronyd is newer and more efficient than ntp
○ chronyd is standard in RHEL 7
○ chronyd is support added to LinuxAdmin gem (0.13.0)
● New appliance filesystems now monitored
○ New filesystems were added in Sprint 30 for STIG compliance
○ Now monitored for high disk usage
○ Events raised when over threshold
Appliance Core (G. Tanzillo)
Reporting and Expressions
● Report results shared across groups
○ Users can see results of all groups in which he has membership
● User’s current group saved with report schedule
○ Reports generated with RBAC of group saved with the schedule
● Enabled fields of related VM and Host subclasses to report, expression and
policy condition selection
○ E.g Cloud Tenant of an OpenStack instance
● Refactoring and code cleanup
REST API - Enhancements
Rest API (A. Bellotti)
● Capablanca Release:
○ Documentation for v2.1.0 now available: https://github.com/ManageIQ/manageiq_docs
● Darga Release:
○ API Versioning bumped to v2.2.0-pre
● Added support for nil checks in the filter[] specification
○ Triggered when value checked is an unquoted nil or NULL.
GET /api/services?filter[]=service_id=nil
GET /api/vms?filter[]=retirement_state!=nil
● Enhanced API logging in log/api.log now including:
○ request start/end time
○ authentication type
○ authentication user/token/group
○ authorization user/group/role/tenant
○ request (pretty print in debug mode)
○ response size, status, time_taken
Rest API (A. Bellotti)
● User identity now included with the main /api entrypoint response:
GET /api
{
…
"identity": {
"userid" : "admin",
"name" : "Administrator",
"user_href" : "http://localhost:3000/api/users/1",
"group" : "EvmGroup-super_administrator",
"group_href" : "http://localhost:3000/api/groups/1",
"role" : "EvmRole-super_administrator",
"tenant" : "My Company",
"groups" : [
"EvmGroup-super_administrator"
]
},
…
}
Rest API (A. Bellotti)
● Added support for groups CRUD
○ Create via POST to /api/groups or a create action
{
"description" : "new_group",
"role" : { "name" : "new_group_role" },
"tenant" : { "href" : "/api/tenants/3" }
}
○ Edits via PUT to /api/groups/:id or POST of an edit action to /api/groups/:id
○ Deletes via DELETE /api/groups/:id or a POST of a delete action to /api/groups/:id
PUT /api/groups/:id POST /api/groups/:id
{
"role" : { "name" : "updated_group_role" },
"filters" : {
"managed" : [["/managed/area/1", "/managed/area/2]],
"belongsto" : ["/managed/infra/1", "/managed/infra/2]
}
{
"action" : "edit",
"resource" : {
"role" : { "name" : "updated_group_role" },
"filters" : {
"managed" : [["/managed/area/1", "/managed/area/2]],
"belongsto" : ["/managed/infra/1", "/managed/infra/2]
}
}
}
Rest API (A. Bellotti)
● Added support for users CRUD
○ Create via POST to /api/users or a create action
{
"userid" : "johnd",
“name” : “John Doe”,
“password” : “xyzzy”,
"group" : { "description" : "EvmGroup-user" }
}
○ Edits via PUT to /api/users/:id or POST of an edit action to /api/users/:id
○ Deletes via DELETE /api/users/:id or a POST of a delete action to /api/users/:id
PUT /api/users/:id POST /api/users/:id
{
"email" : “johnd@test-domain.com”
}
{
"action" : "edit",
"resource" : {
"email" : “johnd@test-domain.com”
}
}
Rest API (A. Bellotti)
● Support for hosts password updates
○ Similar syntax to providers via the credentials hash:
POST /api/hosts/:id
{
"action" : "edit",
"resource" : {
"credentials" : {
"auth_type" : "default",
"password" : "updated_password"
}
}
}
● Adding support for VM retire action
○ Retire now and retire in future by setting retirement date via a POST /api/vms/:id
Retire now Set retirement date in future
{
“action” : “retire”
}
{
“action” : “retire”,
“resource” : {
“date” : “12/30/2015”,
“warn” : “5”
}
}
User Interface (D. Clarizio)
87 PRs merged
● 62 Bugs
● 12 Enhancements
New functionality
● Show Automate domain versions in the UI
● Download support for File System contents
UI - Automate Domain versions
Versions are shown when a new version is available
UI - Download Filesystem contents
Useful if file contents can not be displayed properly in the UI or are needed locally
Automate (G. McCullough)
● Customization Spec support
○ Added CustomizationSpec service model
○ Added eligible_customization_specs method to
provision task
○ Updated set_customization_spec to accept object or
customization spec name.
Example:
prov = $evm.root['miq_provision']
spec = prov.eligible_customization_specs.detect do |cs|
...
end
prov.set_customization_spec(spec)
Automate
● Updated syntax for create_provision_request
○ Pass array of hashes (instead of “|” separated strings)
String Example: (creates deprecation warning in the logs)
args << "name=#{hash[:template_name]}|request_type=template"
args << "vm_memory=#{hash[:vm_memory]}|number_of_cores=#{hash[:number_of_cores]}"
args << "user_name=#{userid}|owner_email=#{user_mail}"
args << 'lifecycle=retire_full'
args << additional_values_hash.collect{|k,v| "#{k}=#{v}"}.join('|')
...
$evm.execute('create_provision_request', *args)
Hash Example:
args << {"name" => hash[:template_name], "request_type" => "template"}
args << {"vm_memory"=> hash[:vm_memory], "number_of_cores"=> hash[:number_of_cores]}
args << {"user_name" => userid, "owner_email" => user_mail}
args << {'lifecycle' => 'retire_full'}
args << additional_values_hash
...
$evm.execute('create_provision_request', *args)
Automate
● create_provision_request example
args = [
"1.1",
{
"guid" => "923b091e-7fbf-11e3-b917-c82a14fffeba"
},
{
"number_of_cpus" => 1,
"vm_name" => "test_001",
"vm_memory" => "1024",
"vlan" => "nic1",
},
{
"owner_first_name" => "John",
"owner_last_name" => "Doe",
"owner_email" => "jdoe@sample.com",
"auto_approve" => true
},
{
"network_location" => "Internal",
"cc" => "001"
},
{
"request_id" => "1001"
},
{},
{}
]
request = $evm.execute(:create_provision_request, *args)
Service / Orchestration
Orchestration Stack updated to list VMs for
nested stacks
● Stack updated with methods to list
○ All VMs (includes VMs from nested stacks)
○ Direct VMs
○ Similarly changes for security groups and cloud
networks.
● The service summary page now shows all VMs including
nested ones from the stack in the service.
Service / Orchestration
Stack Summary
Service / Orchestration
Before
Service / Orchestration
After
Discussion
Next Sprint Review - January 6

Sprint 33

  • 1.
    ManageIQ Sprint 33 Review- Sprint End December 7, 2015 Theme: Capablanca Stabilization and Release December 9, 2015
  • 2.
    Overview ● Sprint Statistics(O. Barenboim) ● Providers (G. Blomquist) ● Appliance Core (G. Tanzillo) ● REST API (A. Bellotti) ● User Interface (D. Clarizio) ● Automate (G. McCullough) ● Service / Orchestration (G. McCullough) ● Discussion
  • 3.
    Sprint Statistics (O.Barenboim) 185 Pull Requests Merged 4 gem changes * 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.
  • 5.
    Sprint Statistics (O.Barenboim) ● Gemnasium (Ruby Gem Dependencies) ○ https://gemnasium.com/ManageIQ/manageiq ○ 155 Green | 62 Yellow | 0 Red ● Coveralls (Code Covered by Unit Tests) ○ https://coveralls.io/github/ManageIQ/manageiq ○ Coverage reporting seems broken; last known value was 48%, as of https://coveralls.io/builds/4129789
  • 6.
    All Repo Stats(O. Barenboim) PRs Merged Git Repo 5 miq_bot 5 guides 3 miq_tools_services 1 manageiq_docs 3 linux_admin 6 manageiq.org 2 manageiq_appliance_build 2 manageiq_appliance 2 ovirt 2 azure_armrest ● ManageIQ: https://github.com/ManageIQ/manageiq/issues?q=milestone%3A%22Sprint+33+Ending+Dec+7%2C+2015%22
  • 7.
    Capablanca Release (O.Barenboim) ● Capablanca has been released ○ http://manageiq.org/blog/2015/12/manageiq-capabla nca-azure-containers-self-service-ui/ ● Work is starting on Darga release
  • 8.
  • 9.
  • 10.
  • 11.
    Appliance Core (G.Tanzillo) 39 PRs merged ● Bugs ● Enhancements ● Technical debt Appliance ● Replaced deprecated ntpdate with chronyd. ○ chronyd is newer and more efficient than ntp ○ chronyd is standard in RHEL 7 ○ chronyd is support added to LinuxAdmin gem (0.13.0) ● New appliance filesystems now monitored ○ New filesystems were added in Sprint 30 for STIG compliance ○ Now monitored for high disk usage ○ Events raised when over threshold
  • 12.
    Appliance Core (G.Tanzillo) Reporting and Expressions ● Report results shared across groups ○ Users can see results of all groups in which he has membership ● User’s current group saved with report schedule ○ Reports generated with RBAC of group saved with the schedule ● Enabled fields of related VM and Host subclasses to report, expression and policy condition selection ○ E.g Cloud Tenant of an OpenStack instance ● Refactoring and code cleanup REST API - Enhancements
  • 13.
    Rest API (A.Bellotti) ● Capablanca Release: ○ Documentation for v2.1.0 now available: https://github.com/ManageIQ/manageiq_docs ● Darga Release: ○ API Versioning bumped to v2.2.0-pre ● Added support for nil checks in the filter[] specification ○ Triggered when value checked is an unquoted nil or NULL. GET /api/services?filter[]=service_id=nil GET /api/vms?filter[]=retirement_state!=nil ● Enhanced API logging in log/api.log now including: ○ request start/end time ○ authentication type ○ authentication user/token/group ○ authorization user/group/role/tenant ○ request (pretty print in debug mode) ○ response size, status, time_taken
  • 14.
    Rest API (A.Bellotti) ● User identity now included with the main /api entrypoint response: GET /api { … "identity": { "userid" : "admin", "name" : "Administrator", "user_href" : "http://localhost:3000/api/users/1", "group" : "EvmGroup-super_administrator", "group_href" : "http://localhost:3000/api/groups/1", "role" : "EvmRole-super_administrator", "tenant" : "My Company", "groups" : [ "EvmGroup-super_administrator" ] }, … }
  • 15.
    Rest API (A.Bellotti) ● Added support for groups CRUD ○ Create via POST to /api/groups or a create action { "description" : "new_group", "role" : { "name" : "new_group_role" }, "tenant" : { "href" : "/api/tenants/3" } } ○ Edits via PUT to /api/groups/:id or POST of an edit action to /api/groups/:id ○ Deletes via DELETE /api/groups/:id or a POST of a delete action to /api/groups/:id PUT /api/groups/:id POST /api/groups/:id { "role" : { "name" : "updated_group_role" }, "filters" : { "managed" : [["/managed/area/1", "/managed/area/2]], "belongsto" : ["/managed/infra/1", "/managed/infra/2] } { "action" : "edit", "resource" : { "role" : { "name" : "updated_group_role" }, "filters" : { "managed" : [["/managed/area/1", "/managed/area/2]], "belongsto" : ["/managed/infra/1", "/managed/infra/2] } } }
  • 16.
    Rest API (A.Bellotti) ● Added support for users CRUD ○ Create via POST to /api/users or a create action { "userid" : "johnd", “name” : “John Doe”, “password” : “xyzzy”, "group" : { "description" : "EvmGroup-user" } } ○ Edits via PUT to /api/users/:id or POST of an edit action to /api/users/:id ○ Deletes via DELETE /api/users/:id or a POST of a delete action to /api/users/:id PUT /api/users/:id POST /api/users/:id { "email" : “[email protected]” } { "action" : "edit", "resource" : { "email" : “[email protected]” } }
  • 17.
    Rest API (A.Bellotti) ● Support for hosts password updates ○ Similar syntax to providers via the credentials hash: POST /api/hosts/:id { "action" : "edit", "resource" : { "credentials" : { "auth_type" : "default", "password" : "updated_password" } } } ● Adding support for VM retire action ○ Retire now and retire in future by setting retirement date via a POST /api/vms/:id Retire now Set retirement date in future { “action” : “retire” } { “action” : “retire”, “resource” : { “date” : “12/30/2015”, “warn” : “5” } }
  • 18.
    User Interface (D.Clarizio) 87 PRs merged ● 62 Bugs ● 12 Enhancements New functionality ● Show Automate domain versions in the UI ● Download support for File System contents
  • 19.
    UI - AutomateDomain versions Versions are shown when a new version is available
  • 20.
    UI - DownloadFilesystem contents Useful if file contents can not be displayed properly in the UI or are needed locally
  • 21.
    Automate (G. McCullough) ●Customization Spec support ○ Added CustomizationSpec service model ○ Added eligible_customization_specs method to provision task ○ Updated set_customization_spec to accept object or customization spec name. Example: prov = $evm.root['miq_provision'] spec = prov.eligible_customization_specs.detect do |cs| ... end prov.set_customization_spec(spec)
  • 22.
    Automate ● Updated syntaxfor create_provision_request ○ Pass array of hashes (instead of “|” separated strings) String Example: (creates deprecation warning in the logs) args << "name=#{hash[:template_name]}|request_type=template" args << "vm_memory=#{hash[:vm_memory]}|number_of_cores=#{hash[:number_of_cores]}" args << "user_name=#{userid}|owner_email=#{user_mail}" args << 'lifecycle=retire_full' args << additional_values_hash.collect{|k,v| "#{k}=#{v}"}.join('|') ... $evm.execute('create_provision_request', *args) Hash Example: args << {"name" => hash[:template_name], "request_type" => "template"} args << {"vm_memory"=> hash[:vm_memory], "number_of_cores"=> hash[:number_of_cores]} args << {"user_name" => userid, "owner_email" => user_mail} args << {'lifecycle' => 'retire_full'} args << additional_values_hash ... $evm.execute('create_provision_request', *args)
  • 23.
    Automate ● create_provision_request example args= [ "1.1", { "guid" => "923b091e-7fbf-11e3-b917-c82a14fffeba" }, { "number_of_cpus" => 1, "vm_name" => "test_001", "vm_memory" => "1024", "vlan" => "nic1", }, { "owner_first_name" => "John", "owner_last_name" => "Doe", "owner_email" => "[email protected]", "auto_approve" => true }, { "network_location" => "Internal", "cc" => "001" }, { "request_id" => "1001" }, {}, {} ] request = $evm.execute(:create_provision_request, *args)
  • 24.
    Service / Orchestration OrchestrationStack updated to list VMs for nested stacks ● Stack updated with methods to list ○ All VMs (includes VMs from nested stacks) ○ Direct VMs ○ Similarly changes for security groups and cloud networks. ● The service summary page now shows all VMs including nested ones from the stack in the service.
  • 25.
  • 26.
  • 27.
  • 28.