[Bug 1857320] Re: openstack limits show --absolute --project <project id> does not work correctly for volumes and security groups
Shatadru Bandyopadhyay
1857320 at bugs.launchpad.net
Tue Jan 7 07:35:45 UTC 2020
The totalGigabytesUsed issue was already reported :
https://bugs.launchpad.net/ubuntu/+source/python-
openstackclient/+bug/1792880
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to python-openstackclient in Ubuntu.
https://bugs.launchpad.net/bugs/1857320
Title:
openstack limits show --absolute --project <project id> does not work
correctly for volumes and security groups
Status in python-openstackclient package in Ubuntu:
New
Bug description:
openstack limits show --absolute --project <project id> does not work correctly for volumes and security groups
--------------------
if I source admin credential even if I use `openstack limits show
--absolute --project <project id> ` it shows details for admin
project for volumes and security groups.
OS_REGION_NAME=regionOne
OS_USER_DOMAIN_NAME=Default
OS_IMAGE_API_VERSION=2
OS_PROJECT_NAME=admin
OS_IDENTITY_API_VERSION=3
OS_PASSWORD=xxxx
OS_AUTH_TYPE=password
PS1=${OS_CLOUDNAME:+($OS_CLOUDNAME)} [\u@\h \W]\$
OS_AUTH_URL=http://192.168.100.7:5000//v3
OS_USERNAME=admin
OS_VOLUME_API_VERSION=3
OS_NO_CACHE=True
OS_CLOUDNAME=overcloud
OS_PROJECT_DOMAIN_NAME=Default
admin limits :
openstack limits show --absolute
None
+--------------------------+-------+
| Name | Value |
+--------------------------+-------+
| maxServerMeta | 128 |
| maxTotalInstances | 10 |
| maxPersonality | 5 |
| totalServerGroupsUsed | 0 |
| maxImageMeta | 128 |
| maxPersonalitySize | 10240 |
| maxTotalRAMSize | 51200 |
| maxServerGroups | 10 |
| maxSecurityGroupRules | 20 |
| maxTotalKeypairs | 100 |
| totalCoresUsed | 4 |
| totalRAMUsed | 4096 |
| maxSecurityGroups | 10 |
| totalFloatingIpsUsed | 0 |
| totalInstancesUsed | 2 |
| maxServerGroupMembers | 10 |
| maxTotalFloatingIps | 10 |
| totalSecurityGroupsUsed | 1 |
| maxTotalCores | 20 |
| totalSnapshotsUsed | 0 |
| maxTotalBackups | 10 |
| maxTotalVolumeGigabytes | 1000 |
| maxTotalSnapshots | 10 |
| maxTotalBackupGigabytes | 1000 |
| totalBackupGigabytesUsed | 0 |
| maxTotalVolumes | 10 |
| totalVolumesUsed | 3 |
| totalBackupsUsed | 0 |
| totalGigabytesUsed | 3 |
+--------------------------+-------+
test project limits :
(overcloud-test-project) [stack at shatadru-osp13-director ~]$ source test-user.rc
(overcloud-test-project) [stack at shatadru-osp13-director ~]$ env|grep -i OS_
OS_REGION_NAME=regionOne
OS_USER_DOMAIN_NAME=Default
OS_IMAGE_API_VERSION=2
OS_PROJECT_NAME=test-project
OS_IDENTITY_API_VERSION=3
OS_PASSWORD=xxxxxx
OS_AUTH_TYPE=password
PS1=${OS_CLOUDNAME:+($OS_CLOUDNAME)} [\u@\h \W]\$
OS_AUTH_URL=http://192.168.100.7:5000//v3
OS_USERNAME=test-user
OS_VOLUME_API_VERSION=3
OS_NO_CACHE=True
OS_CLOUDNAME=overcloud-test-project
OS_PROJECT_DOMAIN_NAME=Default
This works too :
(overcloud-test-project) [stack at shatadru-osp13-director ~]$ openstack limits show --absolute
None
+--------------------------+-------+
| Name | Value |
+--------------------------+-------+
| maxServerMeta | 128 |
| maxTotalInstances | 10 |
| maxPersonality | 5 |
| totalServerGroupsUsed | 0 |
| maxImageMeta | 128 |
| maxPersonalitySize | 10240 |
| maxTotalRAMSize | 51200 |
| maxServerGroups | 10 |
| maxSecurityGroupRules | 20 |
| maxTotalKeypairs | 100 |
| totalCoresUsed | 2 |
| totalRAMUsed | 2048 |
| maxSecurityGroups | 10 |
| totalFloatingIpsUsed | 0 |
| totalInstancesUsed | 1 |
| maxServerGroupMembers | 10 |
| maxTotalFloatingIps | 10 |
| totalSecurityGroupsUsed | 1 | <--
| maxTotalCores | 20 |
| totalSnapshotsUsed | 0 |
| maxTotalBackups | 10 |
| maxTotalVolumeGigabytes | 1000 |
| maxTotalSnapshots | 10 |
| maxTotalBackupGigabytes | 1000 |
| totalBackupGigabytesUsed | 0 |
| maxTotalVolumes | 10 |
| totalVolumesUsed | 1 | <-- for this project(test-project) this is correct
| totalBackupsUsed | 0 |
| totalGigabytesUsed | 1 |
+--------------------------+-------+
But if I source admin credential and try to list details for specific project the details are incorrect
~~~
openstack limits show --project 2f50689300a948ba912988a65f8a42f1 --absolute
+--------------------------+-------+
| Name | Value |
+--------------------------+-------+
| maxServerMeta | 128 |
| maxTotalInstances | 10 |
| maxPersonality | 5 |
| totalServerGroupsUsed | 0 |
| maxImageMeta | 128 |
| maxPersonalitySize | 10240 |
| maxTotalRAMSize | 51200 |
| maxServerGroups | 10 |
| maxSecurityGroupRules | 20 |
| maxTotalKeypairs | 100 |
| totalCoresUsed | 4 |
| totalRAMUsed | 4096 |
| maxSecurityGroups | 10 |
| totalFloatingIpsUsed | 0 |
| totalInstancesUsed | 2 |
| maxServerGroupMembers | 10 |
| maxTotalFloatingIps | 10 |
| totalSecurityGroupsUsed | 1 |
| maxTotalCores | 20 |
| totalSnapshotsUsed | 0 |
| maxTotalBackups | 10 |
| maxTotalVolumeGigabytes | 1000 |
| maxTotalSnapshots | 10 |
| maxTotalBackupGigabytes | 1000 |
| totalBackupGigabytesUsed | 0 |
| maxTotalVolumes | 10 |
| totalVolumesUsed | 3 | < --- this is not for test-project but for admin
| totalBackupsUsed | 0 |
| totalGigabytesUsed | 3 |
+--------------------------+-------+
~~~
#source overcloud
openstack project list
+----------------------------------+--------------+
| ID | Name |
+----------------------------------+--------------+
| 046e24ef0bb844609aeb14f21c8d2af0 | service |
| 2f50689300a948ba912988a65f8a42f1 | test-project |
| 34fb06df15fe46d3b52bc17a7af07e42 | admin |
+----------------------------------+--------------+
If we use --debug, we can see openstackclient is sending api call to
get admin project details
(http://192.168.100.7:8776/v3/34fb06df15fe46d3b52bc17a7af07e42)instead
of the one we passed in command line(2f50689300a948ba912988a65f8a42f1)
~~~
REQ: curl -g -i -X GET http://192.168.100.7:8776/v3/34fb06df15fe46d3b52bc17a7af07e42/limits -H "User-Agent: python-cinderclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}aac11b336cb6ac9d71bd8cb7a0486f3693833ea1"
Starting new HTTP connection (1): 192.168.100.7
http://192.168.100.7:8776 "GET /v3/34fb06df15fe46d3b52bc17a7af07e42/limits HTTP/1.1" 200 148
RESP: [200] Date: Mon, 23 Dec 2019 07:23:38 GMT Server: Apache x-compute-request-id: req-d895762f-ebeb-4ea4-97e2-9b3dcf65e370 OpenStack-API-Version: volume 3.0 Vary: OpenStack-API-Version,Accept-Encoding x-openstack-request-id: req-d895762f-ebeb-4ea4-97e2-9b3dcf65e370 Content-Encoding: gzip Content-Length: 148 Content-Type: application/json
RESP BODY: {"limits": {"rate": [], "absolute": {"totalSnapshotsUsed": 0, "maxTotalBackups": 10, "maxTotalVolumeGigabytes": 1000, "maxTotalSnapshots": 10, "maxTotalBackupGigabytes": 1000, "totalBackupGigabytesUsed": 0, "maxTotalVolumes": 10, "totalVolumesUsed": 3, "totalBackupsUsed": 0, "totalGigabytesUsed": 3}}}
~~~
if we source that project's credential, it sends correct api call 'http://192.168.100.7:8776/v3/2f50689300a948ba912988a65f8a42f1/limits'
~~~
GET call to compute for http://192.168.100.7:8774/v2.1/limits used request id req-3c7c0118-6873-4c27-bd42-990a247f466d
REQ: curl -g -i -X GET http://192.168.100.7:8776/v3/2f50689300a948ba912988a65f8a42f1/limits -H "User-Agent: python-cinderclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}163d2047ed15afcda3c0cbe37c86b87ea54ad6bb"
Starting new HTTP connection (1): 192.168.100.7
http://192.168.100.7:8776 "GET /v3/2f50689300a948ba912988a65f8a42f1/limits HTTP/1.1" 200 148
RESP: [200] Date: Mon, 23 Dec 2019 07:27:53 GMT Server: Apache x-compute-request-id: req-9f93863c-9d43-4d4b-acb7-be8337382abd OpenStack-API-Version: volume 3.0 Vary: OpenStack-API-Version,Accept-Encoding x-openstack-request-id: req-9f93863c-9d43-4d4b-acb7-be8337382abd Content-Encoding: gzip Content-Length: 148 Content-Type: application/json
RESP BODY: {"limits": {"rate": [], "absolute": {"totalSnapshotsUsed": 0, "maxTotalBackups": 10, "maxTotalVolumeGigabytes": 1000, "maxTotalSnapshots": 10, "maxTotalBackupGigabytes": 1000, "totalBackupGigabytesUsed": 0, "maxTotalVolumes": 10, "totalVolumesUsed": 1, "totalBackupsUsed": 0, "totalGigabytesUsed": 1}}}
~~~
68 def take_action(self, parsed_args):
69 #pdb.set_trace()
70
71 compute_client = self.app.client_manager.compute
72 volume_client = self.app.client_manager.volume
73
74 project_id = None
75 if parsed_args.project is not None:
76 identity_client = self.app.client_manager.identity
77 if parsed_args.domain is not None:
78 domain = identity_common.find_domain(identity_client,
79 parsed_args.domain)
80 project_id = utils.find_resource(identity_client.projects,
81 parsed_args.project,
82 domain_id=domain.id).id
83 else:
84 project_id = utils.find_resource(identity_client.projects,
85 parsed_args.project).id
86 #print (project_id)
87
88 compute_limits = compute_client.limits.get(parsed_args.is_reserved,
89 tenant_id=project_id)
90 volume_limits = volume_client.limits.get() <---
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python-openstackclient/+bug/1857320/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list