yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #03990
[Bug 1001118] Re: DELETE request for 'Security group rule' of another user is throwing error code 500
If users belong to the same tenant, the security groups and the rules
within them are shared between all the users in this tenant, which means
anyone in this tenant can get, update or delete the rules created by
anyone in this tenant.
If users belong to different tenants, the security groups and the rules
within them are not shared across different tenants.
The user needs to specify the security group's name to delete the rule
within it. "Security group not found" will be returned, if User B in
Tenant B tries to delete a security group created by User A in Tenant A.
The same result will be returned, if User B in Tenant B tries to delete
a rule created by User A in Tenant A for the security group.
** Changed in: nova
Status: Confirmed => Opinion
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1001118
Title:
DELETE request for 'Security group rule' of another user is throwing
error code 500
Status in OpenStack Compute (Nova):
Opinion
Bug description:
When security group rule of user is tried to be deleted with another
user who is not the ower of Rule, error code of 500 is thrown.
Steps to reproduce:
1. Create two users A and B
2. Create a security group and assign rule 'R' using credentials of A
3. Try to DELETE rule 'R' using credentials of B
Expected Result:
The error message should indicate that Rule is not found i.e error code of 404 should be returned indicating NotFound exception
Actual Result:
novaclient.exceptions.ClientException: The server has either erred or is incapable of performing the requested operation. (HTTP 500)
LOG:
rajalakshmi_ganesan@pshys0183~tests:-)>./apitool.py GET os-security-groups
REQ: curl -i http://10.233.52.27:5000/v2.0/tokens -X POST -H "Content-Type: application/json" -H "User-Agent: python-novaclient"
REQ BODY: {"auth": {"tenantName": "demo", "passwordCredentials":
{"username": "demo", "password": "muralik"}}}
RESP:{'date': 'Fri, 18 May 2012 12:37:23 GMT', 'content-type':
'application/json', 'content-length': '2149', 'status': '200', 'vary':
'X-Auth-Token'} {"access": {"token": {"expires":
"2012-05-19T12:37:23Z", "id": "a7d2c1801e0547419f7aa928d4c54629",
"tenant": {"enabled": true, "id": "732001bbd21942f1bec893c67c850066",
"name": "demo", "description": null}}, "serviceCatalog":
[{"endpoints": [{"adminURL":
"http://10.233.52.27:8774/v2/732001bbd21942f1bec893c67c850066",
"region": "RegionOne", "publicURL":
"http://10.233.52.27:8774/v2/732001bbd21942f1bec893c67c850066",
"internalURL":
"http://10.233.52.27:8774/v2/732001bbd21942f1bec893c67c850066"}],
"endpoints_links": [], "type": "compute", "name": "Compute Service"},
{"endpoints": [{"adminURL": "http://10.233.52.27:3333", "region":
"RegionOne", "publicURL": "http://10.233.52.27:3333", "internalURL":
"http://10.233.52.27:3333"}], "endpoints_links": [], "type": "s3",
"name": "S3 Service"}, {"endpoints": [{"adminURL":
"http://10.233.52.27:9292/v1", "region": "RegionOne", "publicURL":
"http://10.233.52.27:9292/v1", "internalURL":
"http://10.233.52.27:9292/v1"}], "endpoints_links": [], "type":
"image", "name": "Image Service"}, {"endpoints": [{"adminURL":
"http://10.233.52.27:8776/v1/732001bbd21942f1bec893c67c850066",
"region": "RegionOne", "publicURL":
"http://10.233.52.27:8776/v1/732001bbd21942f1bec893c67c850066",
"internalURL":
"http://10.233.52.27:8776/v1/732001bbd21942f1bec893c67c850066"}],
"endpoints_links": [], "type": "volume", "name": "Volume Service"},
{"endpoints": [{"adminURL": "http://10.233.52.27:8773/services/Admin",
"region": "RegionOne", "publicURL":
"http://10.233.52.27:8773/services/Cloud", "internalURL":
"http://10.233.52.27:8773/services/Cloud"}], "endpoints_links": [],
"type": "ec2", "name": "EC2 Service"}, {"endpoints": [{"adminURL":
"http://10.233.52.27:35357/v2.0", "region": "RegionOne", "publicURL":
"http://10.233.52.27:5000/v2.0", "internalURL":
"http://10.233.52.27:5000/v2.0"}], "endpoints_links": [], "type":
"identity", "name": "Identity Service"}], "user": {"username": "demo",
"roles_links": [], "id": "ea25a32fa3b941fdb18e09d696b842eb", "roles":
[{"id": "0b2f9dbc2e484ca1a425cae0188ec5c7", "name": "Member"}, {"id":
"84494358fd4c47d69127dd7befb3367b", "name": "anotherrole"}], "name":
"demo"}}}
REQ: curl -i
http://10.233.52.27:8774/v2/732001bbd21942f1bec893c67c850066/os-
security-groups?fresh=1337324897.0 -X GET -H "X-Auth-Project-Id: demo"
-H "User-Agent: python-novaclient" -H "X-Auth-Token:
a7d2c1801e0547419f7aa928d4c54629"
REQ: curl -i
http://10.233.52.27:8774/v2/732001bbd21942f1bec893c67c850066/os-
security-groups?fresh=1337324897.0 -X GET -H "X-Auth-Project-Id: demo"
-H "User-Agent: python-novaclient" -H "X-Auth-Token:
a7d2c1801e0547419f7aa928d4c54629"
RESP:{'status': '200', 'content-length': '859', 'content-location':
u'http://10.233.52.27:8774/v2/732001bbd21942f1bec893c67c850066/os-
security-groups?fresh=1337324897.0', 'x-compute-request-id': 'req-
a6be085b-44f4-4a63-9586-daaaa9bb2c94', 'date': 'Fri, 18 May 2012
12:37:23 GMT', 'content-type': 'application/json'} {"security_groups":
[{"rules": [{"from_port": -1, "group": {}, "ip_protocol": "icmp",
"to_port": -1, "parent_group_id": 1, "ip_range": {"cidr":
"10.2.3.124/24"}, "id": 1}], "tenant_id":
"732001bbd21942f1bec893c67c850066", "id": 1, "name": "default",
"description": "default"}, {"rules": [], "tenant_id":
"732001bbd21942f1bec893c67c850066", "id": 22, "name":
"security10040667922", "description": "description4023195252"},
{"rules": [], "tenant_id": "732001bbd21942f1bec893c67c850066", "id":
2, "name": "security11097385858", "description":
"description69093779700"}, {"rules": [], "tenant_id":
"732001bbd21942f1bec893c67c850066", "id": 21, "name":
"security17221182272", "description": "description57904094488"},
{"rules": [], "tenant_id": "732001bbd21942f1bec893c67c850066", "id":
23, "name": "security68637896404", "description":
"description25025327179"}]}
RESP:{'status': '200', 'content-length': '859', 'content-location':
u'http://10.233.52.27:8774/v2/732001bbd21942f1bec893c67c850066/os-
security-groups?fresh=1337324897.0', 'x-compute-request-id': 'req-
a6be085b-44f4-4a63-9586-daaaa9bb2c94', 'date': 'Fri, 18 May 2012
12:37:23 GMT', 'content-type': 'application/json'} {"security_groups":
[{"rules": [{"from_port": -1, "group": {}, "ip_protocol": "icmp",
"to_port": -1, "parent_group_id": 1, "ip_range": {"cidr":
"10.2.3.124/24"}, "id": 1}], "tenant_id":
"732001bbd21942f1bec893c67c850066", "id": 1, "name": "default",
"description": "default"}, {"rules": [], "tenant_id":
"732001bbd21942f1bec893c67c850066", "id": 22, "name":
"security10040667922", "description": "description4023195252"},
{"rules": [], "tenant_id": "732001bbd21942f1bec893c67c850066", "id":
2, "name": "security11097385858", "description":
"description69093779700"}, {"rules": [], "tenant_id":
"732001bbd21942f1bec893c67c850066", "id": 21, "name":
"security17221182272", "description": "description57904094488"},
{"rules": [], "tenant_id": "732001bbd21942f1bec893c67c850066", "id":
23, "name": "security68637896404", "description":
"description25025327179"}]}
--- START OF RESPONSE ---
{ u'security_groups': [ { u'description': u'default',
u'id': 1,
u'name': u'default',
u'rules': [ { u'from_port': -1,
u'group': { },
u'id': 1,
u'ip_protocol': u'icmp',
u'ip_range': { u'cidr': u'10.2.3.124/24'},
u'parent_group_id': 1,
u'to_port': -1}],
u'tenant_id': u'732001bbd21942f1bec893c67c850066'},
{ u'description': u'description4023195252',
u'id': 22,
u'name': u'security10040667922',
u'rules': [],
u'tenant_id': u'732001bbd21942f1bec893c67c850066'},
{ u'description': u'description69093779700',
u'id': 2,
u'name': u'security11097385858',
u'rules': [],
u'tenant_id': u'732001bbd21942f1bec893c67c850066'},
{ u'description': u'description57904094488',
u'id': 21,
u'name': u'security17221182272',
u'rules': [],
u'tenant_id': u'732001bbd21942f1bec893c67c850066'},
{ u'description': u'description25025327179',
u'id': 23,
u'name': u'security68637896404',
u'rules': [],
u'tenant_id': u'732001bbd21942f1bec893c67c850066'}]}
--- ENF OF RESPONSE ---
********************************
rajalakshmi_ganesan@pshys0183~tests:-)>./apitool.py DELETE os-security-group-rules/1
REQ: curl -i http://10.233.52.27:5000/v2.0/tokens -X POST -H "Content-Type: application/json" -H "User-Agent: python-novaclient"
REQ BODY: {"auth": {"tenantName": "admin", "passwordCredentials":
{"username": "raj", "password": "raj"}}}
RESP:{'date': 'Fri, 18 May 2012 12:45:07 GMT', 'content-type':
'application/json', 'content-length': '2021', 'status': '200', 'vary':
'X-Auth-Token'} {"access": {"token": {"expires":
"2012-05-19T12:45:07Z", "id": "d9351206bcc7412eb4c09ab833d41f75",
"tenant": {"enabled": true, "id": "cefa64d0ceeb49979c014dfb3af18642",
"name": "admin", "description": null}}, "serviceCatalog":
[{"endpoints": [{"adminURL":
"http://10.233.52.27:8774/v2/cefa64d0ceeb49979c014dfb3af18642",
"region": "RegionOne", "publicURL":
"http://10.233.52.27:8774/v2/cefa64d0ceeb49979c014dfb3af18642",
"internalURL":
"http://10.233.52.27:8774/v2/cefa64d0ceeb49979c014dfb3af18642"}],
"endpoints_links": [], "type": "compute", "name": "Compute Service"},
{"endpoints": [{"adminURL": "http://10.233.52.27:3333", "region":
"RegionOne", "publicURL": "http://10.233.52.27:3333", "internalURL":
"http://10.233.52.27:3333"}], "endpoints_links": [], "type": "s3",
"name": "S3 Service"}, {"endpoints": [{"adminURL":
"http://10.233.52.27:9292/v1", "region": "RegionOne", "publicURL":
"http://10.233.52.27:9292/v1", "internalURL":
"http://10.233.52.27:9292/v1"}], "endpoints_links": [], "type":
"image", "name": "Image Service"}, {"endpoints": [{"adminURL":
"http://10.233.52.27:8776/v1/cefa64d0ceeb49979c014dfb3af18642",
"region": "RegionOne", "publicURL":
"http://10.233.52.27:8776/v1/cefa64d0ceeb49979c014dfb3af18642",
"internalURL":
"http://10.233.52.27:8776/v1/cefa64d0ceeb49979c014dfb3af18642"}],
"endpoints_links": [], "type": "volume", "name": "Volume Service"},
{"endpoints": [{"adminURL": "http://10.233.52.27:8773/services/Admin",
"region": "RegionOne", "publicURL":
"http://10.233.52.27:8773/services/Cloud", "internalURL":
"http://10.233.52.27:8773/services/Cloud"}], "endpoints_links": [],
"type": "ec2", "name": "EC2 Service"}, {"endpoints": [{"adminURL":
"http://10.233.52.27:35357/v2.0", "region": "RegionOne", "publicURL":
"http://10.233.52.27:5000/v2.0", "internalURL":
"http://10.233.52.27:5000/v2.0"}], "endpoints_links": [], "type":
"identity", "name": "Identity Service"}], "user": {"username": "raj",
"roles_links": [], "id": "53aa2d5f3c5240078917405f35269eeb", "roles":
[], "name": "raj"}}}
REQ: curl -i
http://10.233.52.27:8774/v2/cefa64d0ceeb49979c014dfb3af18642/os-
security-group-rules/1 DELETE -H "X-Auth-Project-Id: admin" -H "User-
Agent: python-novaclient" -H "X-Auth-Token:
d9351206bcc7412eb4c09ab833d41f75"
REQ: curl -i
http://10.233.52.27:8774/v2/cefa64d0ceeb49979c014dfb3af18642/os-
security-group-rules/1 DELETE -H "X-Auth-Project-Id: admin" -H "User-
Agent: python-novaclient" -H "X-Auth-Token:
d9351206bcc7412eb4c09ab833d41f75"
RESP:{'date': 'Fri, 18 May 2012 12:45:07 GMT', 'status': '500',
'content-length': '128', 'content-type': 'application/json;
charset=UTF-8', 'x-compute-request-id': 'req-dc10a4d8-35f8-4111-ad5f-
9ea4e0d4a847'} {"computeFault": {"message": "The server has either
erred or is incapable of performing the requested operation.", "code":
500}}
RESP:{'date': 'Fri, 18 May 2012 12:45:07 GMT', 'status': '500',
'content-length': '128', 'content-type': 'application/json;
charset=UTF-8', 'x-compute-request-id': 'req-dc10a4d8-35f8-4111-ad5f-
9ea4e0d4a847'} {"computeFault": {"message": "The server has either
erred or is incapable of performing the requested operation.", "code":
500}}
Traceback (most recent call last):
File "./apitool.py", line 75, in <module>
resp, body = get_action_func(nclient, args.verb[0])(path)
File "/usr/local/lib/python2.7/dist-packages/python_novaclient-2.6.8-py2.7.egg/novaclient/client.py", line 143, in delete
return self._cs_request(url, 'DELETE', **kwargs)
File "/usr/local/lib/python2.7/dist-packages/python_novaclient-2.6.8-py2.7.egg/novaclient/client.py", line 121, in _cs_request
**kwargs)
File "/usr/local/lib/python2.7/dist-packages/python_novaclient-2.6.8-py2.7.egg/novaclient/client.py", line 104, in request
raise exceptions.from_response(resp, body)
novaclient.exceptions.ClientException: The server has either erred or is incapable of performing the requested operation. (HTTP 500)
rajalakshmi_ganesan@pshys0183~tests:-( >
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1001118/+subscriptions