Bug 1363901

Summary: Quota check causes errors for service provisioning when using Ansible Tower service types
Product: Red Hat CloudForms Management Engine Reporter: Jerome Marc <jmarc>
Component: AutomateAssignee: Tina Fitzgerald <tfitzger>
Status: CLOSED CURRENTRELEASE QA Contact: Ganesh Hubale <ghubale>
Severity: medium Docs Contact:
Priority: medium    
Version: 5.6.0CC: cpelland, ghubale, jhardy, kmorey, ltsai, mkanoor, nstephan, obarenbo, simaishi, tfitzger, vparekh
Target Milestone: GAKeywords: TestOnly
Target Release: 5.8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: tower:service:quota:provision
Fixed In Version: 5.8.0.0 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1387709 (view as bug list) Environment:
Last Closed: 2017-06-12 16:20:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1387709    
Attachments:
Description Flags
Example of error with Ansible Tower service type and quotas none

Description Jerome Marc 2016-08-03 21:30:52 UTC
Created attachment 1187221 [details]
Example of error with Ansible Tower service type and quotas

Description of problem:
method_missing ERROR in automation.log (example attached) when using Ansible Tower type service item in a bundle and quota enabled: 

<code: @service_template.service_resources.each do |child_service_resource|>:42:in `service_prov_option'
<code: @service ? collect_totals(service_prov_option(prov_option)) : collect_totals(vm_prov_option_value(prov_option))>:34:in `collect_template_totals'
<code: total_requested = collect_template_totals(prov_option)>:23:in `get_total_requested'
<code: {:storage => get_total_requested(options_hash, :storage),>:16:in `calculate_requested'
[----] E, [2016-07-29T12:32:55.441374 #11588:12e4edc] ERROR -- : Q-task_id([service_template_provision_request_10000000000041]) Method STDERR: (druby://127.0.0.1:36751) /var/www/miq/vmdb/lib/miq_automation_engine/engine/miq_ae_service_model_base.rb:200:in `method_missing': undefined method `get_option' for #<MiqAeMethodService::MiqAeServiceManageIQ_Providers_AnsibleTower_ConfigurationManager_ConfigurationScript:0x0000000a209bf8> (NoMethodError)

Version-Release number of selected component (if applicable):
5.6.0.13.20160624114606_13a9153 

How reproducible:
Always

Steps to Reproduce:
1. create a service bundle including an Ansible Tower service type
2. make sure CloudForms quotas are enabled
3. provision the service

Actual results:
NoMethodError error in log for MiqAeServiceManageIQ_Providers_AnsibleTower_ConfigurationManager_ConfigurationScript

Expected results:
Method should be present or the exception handle

Additional info:

Comment 4 Tsai Li Ming 2016-10-11 02:51:07 UTC
Tested the fix and the error goes away.

Comment 5 CFME Bot 2016-10-19 19:21:17 UTC
New commit detected on ManageIQ/manageiq/master:
https://github.com/ManageIQ/manageiq/commit/89926ae1b5333c298efd3dac8036fa4b88493b1f

commit 89926ae1b5333c298efd3dac8036fa4b88493b1f
Author:     Tina Fitzgerald <tfitzger>
AuthorDate: Mon Oct 10 14:51:34 2016 -0400
Commit:     Tina Fitzgerald <tfitzger>
CommitDate: Tue Oct 18 11:03:18 2016 -0400

    Fix quota requested method to bypass prov_types starting with generic.
    Ansible tower prov_type is generic_ansible_tower.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1363901

 .../CommonMethods/QuotaMethods.class/__methods__/requested.rb    | 4 ++--
 .../unit/method_validation/calculate_requested_spec.rb           | 6 ++++++
 spec/support/quota_helper.rb                                     | 9 +++++++++
 3 files changed, 17 insertions(+), 2 deletions(-)

Comment 7 CFME Bot 2016-10-21 15:06:05 UTC
New commit detected on ManageIQ/manageiq/euwe:
https://github.com/ManageIQ/manageiq/commit/0e33dfbfaaf0128875484745b143550a68b93bfa

commit 0e33dfbfaaf0128875484745b143550a68b93bfa
Author:     Madhu Kanoor <mkanoor>
AuthorDate: Wed Oct 19 15:17:54 2016 -0400
Commit:     Oleg Barenboim <chessbyte>
CommitDate: Fri Oct 21 11:05:03 2016 -0400

    Merge pull request #11807 from tinaafitz/ansible_tower_quota_fix
    
    Fix quota requested method to bypass prov_types starting with generic.
    (cherry picked from commit 3656aea8c964bccda3646b918eb5b623a7a204d7)
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1363901

 .../CommonMethods/QuotaMethods.class/__methods__/requested.rb    | 4 ++--
 .../unit/method_validation/calculate_requested_spec.rb           | 6 ++++++
 spec/support/quota_helper.rb                                     | 9 +++++++++
 3 files changed, 17 insertions(+), 2 deletions(-)

Comment 9 Shveta 2017-04-28 17:34:17 UTC
Quota related .
Assigning to Aziza.

Comment 10 Aziza Karol 2017-05-03 06:58:43 UTC
No error in service bundle provisioning for Ansible Tower service types when quota is enforce.

Verified:5.8.0.13-rc2.20170502165848_0f98658