Bug 885785
Summary: | [RFE] Subscription Manager should alert a user if subscription vcpu limits are lower than system vcpu allocation | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Amanda Carter <acarter> |
Component: | subscription-manager | Assignee: | Carter Kozak <ckozak> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | IDM QE LIST <seceng-idm-qe-list> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 7.0 | CC: | alikins, bkearney, ckozak, dlah, jgalipea, jsefler |
Target Milestone: | rc | Keywords: | FutureFeature |
Target Release: | 7.0 | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Enhancement | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2014-06-13 10:08:25 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: | 863175 |
Description
Amanda Carter
2012-12-10 15:59:22 UTC
commit 99d4463457b79f0387ed7ee98db1038a97fc4b2f Author: ckozak <ckozak> Date: Fri Dec 13 16:56:09 2013 -0500 Implement vcpu product attribute. Cores and Sockets are no longer used on virtual guests. the vcpu attribute is tested against cores As indicated in comment 6, the compliance of a virtual/guest system now ignores subscriptions with a "sockets" and "cores" attribute. Instead, when a subscription supporting a "vcpu" attribute is attached, the system's compliance will be compared to the system's "cpu.cpu_socket(s)"*"cpu.core(s)_per_socket" value as a measure of vCPUs. Following is a demonstration for compliance on a virtual/guest system with a Stackable subscription that supports VCPUs. [root@jsefler-7 ~]# subscription-manager facts --list | grep is_guest virt.is_guest: True [root@jsefler-7 ~]# subscription-manager facts --list | egrep "^cpu\." cpu.core(s)_per_socket: 2 cpu.cpu(s): 2 cpu.cpu_socket(s): 4 cpu.thread(s)_per_core: 1 cpu.topology_source: kernel /sys cpu sibling lists NOTICE: This virtual system has 4*2=8 cores which is interpreted as 8 vcpus [root@jsefler-7 ~]# subscription-manager attach --pool 8a908740439d1e6f01439d1f4a5a0dac --quantity=1 Successfully attached a subscription for: Awesome OS for x86_64 [root@jsefler-7 ~]# subscription-manager list --consumed +-------------------------------------------+ Consumed Subscriptions +-------------------------------------------+ Subscription Name: Awesome OS for x86_64 Provides: Awesome OS for x86_64 Bits SKU: awesomeos-x86_64 Contract: 1 Account: 12331131231 Serial: 738514747125168152 Pool ID: 8a908740439d1e6f01439d1f4a5a0dac Active: True Quantity Used: 1 Service Level: Service Type: Status Details: Only supports 2 of 8 vCPUs. Subscription Type: Stackable Starts: 01/15/2014 Ends: 01/15/2015 System Type: Physical VERIFIED: Notice that after attaching a quantity of one subscription, the Status Details of the entitlement indicates that we are not yet compliant and that only 2 of the 8 vCPUs of the system are covered. Attaching two more entitlements from the same pool, we should see some more coverage... [root@jsefler-7 ~]# subscription-manager list --consumed +-------------------------------------------+ Consumed Subscriptions +-------------------------------------------+ Subscription Name: Awesome OS for x86_64 Provides: Awesome OS for x86_64 Bits SKU: awesomeos-x86_64 Contract: 1 Account: 12331131231 Serial: 738514747125168152 Pool ID: 8a908740439d1e6f01439d1f4a5a0dac Active: True Quantity Used: 1 Service Level: Service Type: Status Details: Only supports 6 of 8 vCPUs. Subscription Type: Stackable Starts: 01/15/2014 Ends: 01/15/2015 System Type: Physical Subscription Name: Awesome OS for x86_64 Provides: Awesome OS for x86_64 Bits SKU: awesomeos-x86_64 Contract: 1 Account: 12331131231 Serial: 8297082931045790510 Pool ID: 8a908740439d1e6f01439d1f4a5a0dac Active: True Quantity Used: 2 Service Level: Service Type: Status Details: Only supports 6 of 8 vCPUs. Subscription Type: Stackable Starts: 01/15/2014 Ends: 01/15/2015 System Type: Physical VERIFIED: Indeed we now have a total of two entitlements covering a total of "6 of 8 vCPUs" worth of coverage. Let's finish this off with one more attachment... [root@jsefler-7 ~]# subscription-manager attach --pool 8a908740439d1e6f01439d1f4a5a0dac --quantity=1 Successfully attached a subscription for: Awesome OS for x86_64 [root@jsefler-7 ~]# subscription-manager list --consumed +-------------------------------------------+ Consumed Subscriptions +-------------------------------------------+ Subscription Name: Awesome OS for x86_64 Provides: Awesome OS for x86_64 Bits SKU: awesomeos-x86_64 Contract: 1 Account: 12331131231 Serial: 738514747125168152 Pool ID: 8a908740439d1e6f01439d1f4a5a0dac Active: True Quantity Used: 1 Service Level: Service Type: Status Details: Subscription Type: Stackable Starts: 01/15/2014 Ends: 01/15/2015 System Type: Physical Subscription Name: Awesome OS for x86_64 Provides: Awesome OS for x86_64 Bits SKU: awesomeos-x86_64 Contract: 1 Account: 12331131231 Serial: 8297082931045790510 Pool ID: 8a908740439d1e6f01439d1f4a5a0dac Active: True Quantity Used: 2 Service Level: Service Type: Status Details: Subscription Type: Stackable Starts: 01/15/2014 Ends: 01/15/2015 System Type: Physical Subscription Name: Awesome OS for x86_64 Provides: Awesome OS for x86_64 Bits SKU: awesomeos-x86_64 Contract: 1 Account: 12331131231 Serial: 5854208734038738145 Pool ID: 8a908740439d1e6f01439d1f4a5a0dac Active: True Quantity Used: 1 Service Level: Service Type: Status Details: Subscription Type: Stackable Starts: 01/15/2014 Ends: 01/15/2015 System Type: Physical VERIFIED: After attaching a total quantity of 4 entitlements from 3 attachments, we now cover all 8 vCPUs and the "Status Details" for the consumed subscriptions are empty (indicating full compliance). The actual attributes associated with the attached entitlements can bee see from rhsm-debug as follows (look for the "vcpu" attribute)... [root@jsefler-7 ~]# rhsm-debug system --no-archive Wrote: /tmp/rhsm-debug-system-20140124-692845 [root@jsefler-7 ~]# cat /tmp/rhsm-debug-system-20140124-692845/entitlements.json [ { "certificates": [ { "created": "2014-01-24T20:30:48.152+0000", "id": "8a908740439d1e6f0143c5f29d586b90", "serial": { "collected": false, "created": "2014-01-24T20:30:48.132+0000", "expiration": "2015-01-16T00:00:00.000+0000", "id": 8297082931045790510, "revoked": false, "serial": 8297082931045790510, "updated": "2014-01-24T20:30:48.132+0000" }, "updated": "2014-01-24T20:30:48.152+0000" } ], "consumer": { "href": "/consumers/75f02c69-eabe-4157-af53-40fcf22c19ea", "id": "8a908740439d1e6f0143c5deec4b6b62", "name": "jsefler-7.usersys.redhat.com", "uuid": "75f02c69-eabe-4157-af53-40fcf22c19ea" }, "created": "2014-01-24T20:30:48.078+0000", "endDate": "2015-01-16T00:00:00.000+0000", "href": "/entitlements/8a908740439d1e6f0143c5f29d0e6b8f", "id": "8a908740439d1e6f0143c5f29d0e6b8f", "pool": { "accountNumber": "12331131231", "activeSubscription": true, "attributes": [], "calculatedAttributes": { "compliance_type": "Stackable" }, "consumed": 4, "contractNumber": "1", "created": "2014-01-16T22:15:10.170+0000", "derivedProductAttributes": [], "derivedProductId": null, "derivedProductName": null, "derivedProvidedProducts": [], "endDate": "2015-01-16T00:00:00.000+0000", "exported": 0, "href": "/pools/8a908740439d1e6f01439d1f4a5a0dac", "id": "8a908740439d1e6f01439d1f4a5a0dac", "orderNumber": "order-8675309", "owner": { "displayName": "Admin Owner", "href": "/owners/admin", "id": "8a908740439d1e6f01439d1e91c60001", "key": "admin" }, "productAttributes": [ { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0dad", LOOK HERE====> "name": "vcpu", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", LOOK HERE====> "value": "2" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0dae", "name": "arch", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "x86_64" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0daf", "name": "variant", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "ALL" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db0", "name": "sockets", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "1" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db1", "name": "warning_period", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "30" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db2", "name": "type", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "MKT" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db3", "name": "multi-entitlement", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "yes" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db4", "name": "version", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "3.11" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db5", "name": "stacking_id", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "1" } ], "productId": "awesomeos-x86_64", "productName": "Awesome OS for x86_64", "providedProducts": [ { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db6", "productId": "100000000000002", "productName": "Awesome OS for x86_64 Bits", "updated": "2014-01-16T22:15:10.170+0000" } ], "quantity": 10, "restrictedToUsername": null, "sourceConsumer": null, "sourceEntitlement": null, "sourceStackId": null, "stackId": "1", "stacked": true, "startDate": "2014-01-16T00:00:00.000+0000", "subscriptionId": "8a908740439d1e6f01439d1f02af0255", "subscriptionSubKey": "master", "type": "NORMAL", "updated": "2014-01-16T22:15:10.170+0000" }, "quantity": 2, "startDate": "2014-01-16T00:00:00.000+0000", "updated": "2014-01-24T20:30:48.078+0000" }, { "certificates": [ { "created": "2014-01-24T20:32:55.511+0000", "id": "8a908740439d1e6f0143c5f48ed76b93", "serial": { "collected": false, "created": "2014-01-24T20:32:55.492+0000", "expiration": "2015-01-16T00:00:00.000+0000", "id": 5854208734038738145, "revoked": false, "serial": 5854208734038738145, "updated": "2014-01-24T20:32:55.492+0000" }, "updated": "2014-01-24T20:32:55.511+0000" } ], "consumer": { "href": "/consumers/75f02c69-eabe-4157-af53-40fcf22c19ea", "id": "8a908740439d1e6f0143c5deec4b6b62", "name": "jsefler-7.usersys.redhat.com", "uuid": "75f02c69-eabe-4157-af53-40fcf22c19ea" }, "created": "2014-01-24T20:32:55.439+0000", "endDate": "2015-01-16T00:00:00.000+0000", "href": "/entitlements/8a908740439d1e6f0143c5f48e8f6b92", "id": "8a908740439d1e6f0143c5f48e8f6b92", "pool": { "accountNumber": "12331131231", "activeSubscription": true, "attributes": [], "calculatedAttributes": { "compliance_type": "Stackable" }, "consumed": 4, "contractNumber": "1", "created": "2014-01-16T22:15:10.170+0000", "derivedProductAttributes": [], "derivedProductId": null, "derivedProductName": null, "derivedProvidedProducts": [], "endDate": "2015-01-16T00:00:00.000+0000", "exported": 0, "href": "/pools/8a908740439d1e6f01439d1f4a5a0dac", "id": "8a908740439d1e6f01439d1f4a5a0dac", "orderNumber": "order-8675309", "owner": { "displayName": "Admin Owner", "href": "/owners/admin", "id": "8a908740439d1e6f01439d1e91c60001", "key": "admin" }, "productAttributes": [ { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0dad", LOOK HERE====> "name": "vcpu", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", LOOK HERE====> "value": "2" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0dae", "name": "arch", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "x86_64" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0daf", "name": "variant", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "ALL" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db0", "name": "sockets", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "1" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db1", "name": "warning_period", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "30" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db2", "name": "type", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "MKT" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db3", "name": "multi-entitlement", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "yes" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db4", "name": "version", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "3.11" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db5", "name": "stacking_id", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "1" } ], "productId": "awesomeos-x86_64", "productName": "Awesome OS for x86_64", "providedProducts": [ { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db6", "productId": "100000000000002", "productName": "Awesome OS for x86_64 Bits", "updated": "2014-01-16T22:15:10.170+0000" } ], "quantity": 10, "restrictedToUsername": null, "sourceConsumer": null, "sourceEntitlement": null, "sourceStackId": null, "stackId": "1", "stacked": true, "startDate": "2014-01-16T00:00:00.000+0000", "subscriptionId": "8a908740439d1e6f01439d1f02af0255", "subscriptionSubKey": "master", "type": "NORMAL", "updated": "2014-01-16T22:15:10.170+0000" }, "quantity": 1, "startDate": "2014-01-16T00:00:00.000+0000", "updated": "2014-01-24T20:32:55.439+0000" }, { "certificates": [ { "created": "2014-01-24T20:25:58.320+0000", "id": "8a908740439d1e6f0143c5ee31306b8d", "serial": { "collected": false, "created": "2014-01-24T20:25:58.302+0000", "expiration": "2015-01-16T00:00:00.000+0000", "id": 738514747125168152, "revoked": false, "serial": 738514747125168152, "updated": "2014-01-24T20:25:58.302+0000" }, "updated": "2014-01-24T20:25:58.320+0000" } ], "consumer": { "href": "/consumers/75f02c69-eabe-4157-af53-40fcf22c19ea", "id": "8a908740439d1e6f0143c5deec4b6b62", "name": "jsefler-7.usersys.redhat.com", "uuid": "75f02c69-eabe-4157-af53-40fcf22c19ea" }, "created": "2014-01-24T20:25:58.251+0000", "endDate": "2015-01-16T00:00:00.000+0000", "href": "/entitlements/8a908740439d1e6f0143c5ee30eb6b8c", "id": "8a908740439d1e6f0143c5ee30eb6b8c", "pool": { "accountNumber": "12331131231", "activeSubscription": true, "attributes": [], "calculatedAttributes": { "compliance_type": "Stackable" }, "consumed": 4, "contractNumber": "1", "created": "2014-01-16T22:15:10.170+0000", "derivedProductAttributes": [], "derivedProductId": null, "derivedProductName": null, "derivedProvidedProducts": [], "endDate": "2015-01-16T00:00:00.000+0000", "exported": 0, "href": "/pools/8a908740439d1e6f01439d1f4a5a0dac", "id": "8a908740439d1e6f01439d1f4a5a0dac", "orderNumber": "order-8675309", "owner": { "displayName": "Admin Owner", "href": "/owners/admin", "id": "8a908740439d1e6f01439d1e91c60001", "key": "admin" }, "productAttributes": [ { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0dad", LOOK HERE====> "name": "vcpu", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", LOOK HERE====> "value": "2" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0dae", "name": "arch", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "x86_64" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0daf", "name": "variant", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "ALL" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db0", "name": "sockets", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "1" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db1", "name": "warning_period", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "30" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db2", "name": "type", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "MKT" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db3", "name": "multi-entitlement", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "yes" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db4", "name": "version", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "3.11" }, { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db5", "name": "stacking_id", "productId": "awesomeos-x86_64", "updated": "2014-01-16T22:15:10.170+0000", "value": "1" } ], "productId": "awesomeos-x86_64", "productName": "Awesome OS for x86_64", "providedProducts": [ { "created": "2014-01-16T22:15:10.170+0000", "id": "8a908740439d1e6f01439d1f4a5a0db6", "productId": "100000000000002", "productName": "Awesome OS for x86_64 Bits", "updated": "2014-01-16T22:15:10.170+0000" } ], "quantity": 10, "restrictedToUsername": null, "sourceConsumer": null, "sourceEntitlement": null, "sourceStackId": null, "stackId": "1", "stacked": true, "startDate": "2014-01-16T00:00:00.000+0000", "subscriptionId": "8a908740439d1e6f01439d1f02af0255", "subscriptionSubKey": "master", "type": "NORMAL", "updated": "2014-01-16T22:15:10.170+0000" }, "quantity": 1, "startDate": "2014-01-16T00:00:00.000+0000", "updated": "2014-01-24T20:25:58.251+0000" } ][root@jsefler-7 ~]# VERIFIED: Notice above that the productAttributes for this subscription contained a "vcpu" attribute with a value of "2" which means that each single attachment of this subscription covered two vCPUs. This is why all eight VCPUs were covered for compliance after attaching a total quantity of four. NOTICE: Also notice that the productAttributes contained a "sockets" attribute with a value of "1" which was ignored for this virtual system. Had this system been a physical/is_guest=false system, then the sockets attribute would have contributed to compliance of the system's "cpu.cpu_socket(s)" and the vcpu attribute would have been ignored. Moving this RFE to VERIFIED. Further issues will be opened under separate bugzillas. Comment 7 was verified against version... [root@jsefler-7 ~]# subscription-manager version server type: Red Hat Subscription Management subscription management server: 0.9.2-1 subscription-manager: 1.10.11-1.el7 python-rhsm: 1.10.11-1.el7 This request was resolved in Red Hat Enterprise Linux 7.0. Contact your manager or support representative in case you have further questions about the request. |