Bug 1212204 - Automate - Add Services Quota StateMachine to RedHat domain
Summary: Automate - Add Services Quota StateMachine to RedHat domain
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat CloudForms Management Engine
Classification: Red Hat
Component: Automate
Version: 5.4.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: GA
: 5.5.0
Assignee: Tina Fitzgerald
QA Contact: Pete Savage
URL:
Whiteboard:
Depends On:
Blocks: 1222616
TreeView+ depends on / blocked
 
Reported: 2015-04-15 20:21 UTC by Tina Fitzgerald
Modified: 2015-12-08 13:05 UTC (History)
8 users (show)

Fixed In Version: 5.5.0.1
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1222616 (view as bug list)
Environment:
Last Closed: 2015-12-08 13:05:30 UTC
Category: ---
Cloudforms Team: ---
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:2551 0 normal SHIPPED_LIVE Moderate: CFME 5.5.0 bug fixes and enhancement update 2015-12-08 17:58:09 UTC

Description Tina Fitzgerald 2015-04-15 20:21:37 UTC
Description of problem:


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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 2 CFME Bot 2015-05-15 20:52:57 UTC
New commit detected on cfme_productization/master:
https://code.engineering.redhat.com/gerrit/gitweb?p=cfme_productization.git;a=commit;h=5652a7957f35350aa8d5a43587bf3aa2636047b6

commit 5652a7957f35350aa8d5a43587bf3aa2636047b6
Author:     Tina Fitzgerald <tfitzger>
AuthorDate: Wed Apr 15 14:42:55 2015 -0400
Commit:     Tina Fitzgerald <tfitzger>
CommitDate: Fri May 15 10:40:27 2015 -0400

    Add Services Quota StateMachine.
    
    Add ServiceProvisionRequestQuotaVerification class, instances and
    methods, Service/Provisioning/Email class, instances and methods,
    and System/Policy class and instances.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1212204

 .../Provisioning/Email.class/__class__.yaml        | 113 ++++++
 .../servicetemplateprovisionrequest_denied.rb      | 105 +++++
 .../servicetemplateprovisionrequest_denied.yaml    |  12 +
 .../servicetemplateprovisionrequest_pending.rb     |  97 +++++
 .../servicetemplateprovisionrequest_pending.yaml   |  12 +
 .../servicetemplateprovisionrequest_warning.rb     |  92 +++++
 .../servicetemplateprovisionrequest_warning.yaml   |  12 +
 .../servicetemplateprovisionrequest_approved.yaml  |  12 +
 .../servicetemplateprovisionrequest_denied.yaml    |  12 +
 .../servicetemplateprovisionrequest_pending.yaml   |  12 +
 .../servicetemplateprovisionrequest_warning.yaml   |  12 +
 .../Provisioning/Profile.class/__class__.yaml      |  53 +++
 .../Provisioning/Profile.class/_missing.yaml       |  10 +
 .../__class__.yaml                                 | 373 ++++++++++++++++++
 .../service_request_quota_validation.rb            | 384 ++++++++++++++++++
 .../service_request_quota_validation.yaml          |  12 +
 .../__methods__/service_request_rejected.rb        |   8 +
 .../__methods__/service_request_rejected.yaml      |  32 ++
 .../default.yaml                                   |  12 +
 .../Provisioning/StateMachines/__namespace__.yaml  |  11 +
 .../RedHat/Service/Provisioning/__namespace__.yaml |  11 +
 .../ae_datastore/RedHat/Service/__namespace__.yaml |  11 +
 .../RedHat/System/Policy.class/__class__.yaml      | 433 +++++++++++++++++++++
 .../servicetemplateprovisionrequest_denied.yaml    |  12 +
 .../servicetemplateprovisionrequest_starting.yaml  |  14 +
 25 files changed, 1867 insertions(+)
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__class__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__methods__/servicetemplateprovisionrequest_denied.rb
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__methods__/servicetemplateprovisionrequest_denied.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__methods__/servicetemplateprovisionrequest_pending.rb
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__methods__/servicetemplateprovisionrequest_pending.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__methods__/servicetemplateprovisionrequest_warning.rb
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__methods__/servicetemplateprovisionrequest_warning.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/servicetemplateprovisionrequest_approved.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/servicetemplateprovisionrequest_denied.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/servicetemplateprovisionrequest_pending.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/servicetemplateprovisionrequest_warning.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Profile.class/__class__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Profile.class/_missing.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaVerification.class/__class__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaVerification.class/__methods__/service_request_quota_validation.rb
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaVerification.class/__methods__/service_request_quota_validation.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaVerification.class/__methods__/service_request_rejected.rb
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaVerification.class/__methods__/service_request_rejected.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaVerification.class/default.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/__namespace__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/__namespace__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/__namespace__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/System/Policy.class/__class__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/System/Policy.class/servicetemplateprovisionrequest_denied.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/System/Policy.class/servicetemplateprovisionrequest_starting.yaml

Comment 3 CFME Bot 2015-05-15 20:53:01 UTC
New commit detected on cfme_productization/master:
https://code.engineering.redhat.com/gerrit/gitweb?p=cfme_productization.git;a=commit;h=86f5c126b0d95fa1c309293e563db5bc6bea62ef

commit 86f5c126b0d95fa1c309293e563db5bc6bea62ef
Merge: 4688806 3b59546
Author:     Greg McCullough <gmccullo>
AuthorDate: Fri May 15 16:50:27 2015 -0400
Commit:     Greg McCullough <gmccullo>
CommitDate: Fri May 15 16:50:27 2015 -0400

    Merge branch 'service_quota' into 'master'
    
    Add Services Quota StateMachine.
    
    Add ServiceProvisionRequestQuotaVerification class, instances and
    methods, Service/Provisioning/Email class, instances and methods,
    and System/Policy class and instances.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1212204
    
    See merge request !18

 .../Provisioning/Email.class/__class__.yaml        | 113 ++++++
 .../servicetemplateprovisionrequest_denied.rb      | 105 +++++
 .../servicetemplateprovisionrequest_denied.yaml    |  12 +
 .../servicetemplateprovisionrequest_pending.rb     |  97 +++++
 .../servicetemplateprovisionrequest_pending.yaml   |  12 +
 .../servicetemplateprovisionrequest_warning.rb     |  92 +++++
 .../servicetemplateprovisionrequest_warning.yaml   |  12 +
 .../servicetemplateprovisionrequest_approved.yaml  |  12 +
 .../servicetemplateprovisionrequest_denied.yaml    |  12 +
 .../servicetemplateprovisionrequest_pending.yaml   |  12 +
 .../servicetemplateprovisionrequest_warning.yaml   |  12 +
 .../Provisioning/Profile.class/__class__.yaml      |  53 +++
 .../Provisioning/Profile.class/_missing.yaml       |  10 +
 .../__class__.yaml                                 | 213 ++++++++++
 .../service_request_quota_validation.rb            | 372 ++++++++++++++++++
 .../service_request_quota_validation.yaml          |  12 +
 .../__methods__/service_request_rejected.rb        |   8 +
 .../__methods__/service_request_rejected.yaml      |  32 ++
 .../default.yaml                                   |  12 +
 .../Provisioning/StateMachines/__namespace__.yaml  |  11 +
 .../RedHat/Service/Provisioning/__namespace__.yaml |  11 +
 .../ae_datastore/RedHat/Service/__namespace__.yaml |  11 +
 .../RedHat/System/Policy.class/__class__.yaml      | 433 +++++++++++++++++++++
 .../servicetemplateprovisionrequest_denied.yaml    |  12 +
 .../servicetemplateprovisionrequest_starting.yaml  |  14 +
 25 files changed, 1695 insertions(+)

Comment 4 CFME Bot 2015-05-15 21:32:22 UTC
New commit detected on cfme_productization/5.4.z:
https://code.engineering.redhat.com/gerrit/gitweb?p=cfme_productization.git;a=commit;h=ef6f4604642e5d0fcf1269147e9e8cc8b9498b4b

commit ef6f4604642e5d0fcf1269147e9e8cc8b9498b4b
Author:     Tina Fitzgerald <tfitzger>
AuthorDate: Wed Apr 15 14:42:55 2015 -0400
Commit:     Tina Fitzgerald <tfitzger>
CommitDate: Fri May 15 16:59:39 2015 -0400

    Add Services Quota StateMachine.
    
    Add ServiceProvisionRequestQuotaVerification class, instances and
    methods, Service/Provisioning/Email class, instances and methods,
    and System/Policy class and instances.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1212204

 .../Provisioning/Email.class/__class__.yaml        | 113 ++++++
 .../servicetemplateprovisionrequest_denied.rb      | 105 +++++
 .../servicetemplateprovisionrequest_denied.yaml    |  12 +
 .../servicetemplateprovisionrequest_pending.rb     |  97 +++++
 .../servicetemplateprovisionrequest_pending.yaml   |  12 +
 .../servicetemplateprovisionrequest_warning.rb     |  92 +++++
 .../servicetemplateprovisionrequest_warning.yaml   |  12 +
 .../servicetemplateprovisionrequest_approved.yaml  |  12 +
 .../servicetemplateprovisionrequest_denied.yaml    |  12 +
 .../servicetemplateprovisionrequest_pending.yaml   |  12 +
 .../servicetemplateprovisionrequest_warning.yaml   |  12 +
 .../Provisioning/Profile.class/__class__.yaml      |  53 +++
 .../Provisioning/Profile.class/_missing.yaml       |  10 +
 .../__class__.yaml                                 | 373 ++++++++++++++++++
 .../service_request_quota_validation.rb            | 384 ++++++++++++++++++
 .../service_request_quota_validation.yaml          |  12 +
 .../__methods__/service_request_rejected.rb        |   8 +
 .../__methods__/service_request_rejected.yaml      |  32 ++
 .../default.yaml                                   |  12 +
 .../Provisioning/StateMachines/__namespace__.yaml  |  11 +
 .../RedHat/Service/Provisioning/__namespace__.yaml |  11 +
 .../ae_datastore/RedHat/Service/__namespace__.yaml |  11 +
 .../RedHat/System/Policy.class/__class__.yaml      | 433 +++++++++++++++++++++
 .../servicetemplateprovisionrequest_denied.yaml    |  12 +
 .../servicetemplateprovisionrequest_starting.yaml  |  14 +
 25 files changed, 1867 insertions(+)
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__class__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__methods__/servicetemplateprovisionrequest_denied.rb
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__methods__/servicetemplateprovisionrequest_denied.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__methods__/servicetemplateprovisionrequest_pending.rb
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__methods__/servicetemplateprovisionrequest_pending.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__methods__/servicetemplateprovisionrequest_warning.rb
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/__methods__/servicetemplateprovisionrequest_warning.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/servicetemplateprovisionrequest_approved.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/servicetemplateprovisionrequest_denied.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/servicetemplateprovisionrequest_pending.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Email.class/servicetemplateprovisionrequest_warning.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Profile.class/__class__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/Profile.class/_missing.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaVerification.class/__class__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaVerification.class/__methods__/service_request_quota_validation.rb
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaVerification.class/__methods__/service_request_quota_validation.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaVerification.class/__methods__/service_request_rejected.rb
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaVerification.class/__methods__/service_request_rejected.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaVerification.class/default.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/StateMachines/__namespace__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/Provisioning/__namespace__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/Service/__namespace__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/System/Policy.class/__class__.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/System/Policy.class/servicetemplateprovisionrequest_denied.yaml
 create mode 100644 manageiq/vmdb/db/fixtures/ae_datastore/RedHat/System/Policy.class/servicetemplateprovisionrequest_starting.yaml

Comment 5 Aziza Karol 2015-10-01 12:46:41 UTC
Can you please provide verification steps?

Comment 6 Tina Fitzgerald 2015-10-12 15:29:17 UTC
Hi Aziza,

ServiceQuota is turned off by default. 

Copy the /Redhat/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaValidation/ class to a writable domain.

Modify the class schema:
Set manage_quotas to 'true'
Select default quota values for your test. 

Provision the service 2 times, once for passing and once for quota failure.
Should repeat above directions for other quota values.

Let me know if you have any questions.

Thanks,
Tina

Comment 7 Pete Savage 2015-11-30 21:51:50 UTC
Verified that service provisioning was prevented by quota statemachine in 5.5.0.12

Comment 8 Pete Savage 2015-11-30 21:56:14 UTC
Moving back as tina gave me some more things to verify

Comment 9 Pete Savage 2015-12-01 09:46:26 UTC
Hi Tina,

So I verified No VMs, No CPUS and RAM quota, all failed as expected, the RAM failure did NOT put a message in the request to say why it was denied.

The Storage for Openstack at least didn't work. I had 1GB root disk, and set the limit to 1GB. I deployed two instances and both were allowed to be created.

Can you please supply the tagging steps. Should I move this back to ON_DEV?

Pete

Comment 10 Tina Fitzgerald 2015-12-01 14:47:11 UTC
Hi Pete,

Can I access your environment to checkout the Openstack storage issue?

Tagging is used to override the instance values for quota. Up until now, you have entered values in the instance to have quota use those values in determining approval.  Tagging the group with the quota values overrides those instance values.

For Example:

Assuming you have 8 cpus used for your group. 

1. Edit: 
/your_writable_domain/Service/Provisioning/StateMachines/ServiceProvisionRequestQuotaValidation/Default instance
Set the Group Max CPUs value to 10 and provision service using 3 cpus. The provision request should be denied because the total of (8 used plus 3 requested exceeds the instance value of 10)
  
2. Navigate to access control for your test group and 'edit my company tags'.
a. Add a tag for Group - Max CPUs to your group and select a tag value of 20.
b. Provision service again. The service request should be approved because its going to override the instance value of 10 with the tag value of 20.
c. Change tag value in step b to 1 and provision again. The request should be denied and should specify the value of 1 instead of 10.

3. Repeat tag override process for storage and memory.

Let me know if you have any questions.

Regards,
Tina

Comment 11 Pete Savage 2015-12-04 14:57:10 UTC
Verified in 5.5.0.13

Comment 13 errata-xmlrpc 2015-12-08 13:05:30 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2015:2551


Note You need to log in before you can comment on or make changes to this bug.