Remove security group can not pase security group parameters

Bug #1609865 reported by Gergely Csatari
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
python-openstackclient
Invalid
Undecided
Unassigned

Bug Description

openstack --debug server remove security group test-server throws an exception after getting the security group parameters, while add security gruop can handle the same situation.

Here is the execution log of add security group:
$ openstack --debug server add security group test-server 11111111-5bf3-422a-89d6-34af3e38bdbb
START with options: ['--debug', 'server', 'add', 'security', 'group', 'test-server', '11111111-5bf3-422a-89d6-34af3e38bdbb']
options: Namespace(access_token_endpoint='', auth_type='', auth_url='http://1.1.1.1:5000/v2.0', cacert='', client_id='', client_secret='***', cloud='', debug=True, default_domain='default', deferred_help=False, domain_id='', domain_name='', endpoint='', identity_provider='', identity_provider_url='', insecure=None, inspector_api_version='1', inspector_url=None, interface='', log_file=None, os_application_catalog_api_version='1', os_baremetal_api_version='1.6', os_clustering_api_version='1', os_compute_api_version='', os_data_processing_api_version='1.1', os_data_processing_url='', os_dns_api_version='2', os_identity_api_version='2.0', os_image_api_version='', os_key_manager_api_version='1', os_network_api_version='', os_object_api_version='', os_orchestration_api_version='1', os_project_id=None, os_project_name=None, os_queues_api_version='1.1', os_translator_api_version='1', os_volume_api_version='2', os_workflow_api_version='2', password='***', profile=None, project_domain_id='', project_domain_name='', project_id='', project_name='demo', protocol='', region_name='RegionOne', scope='', service_provider_endpoint='', timing=False, token='***', trust_id='', url='', user_domain_id='', user_domain_name='', user_id='', username='admin', verbose_level=3, verify=None)
defaults: {u'auth_type': 'password', u'compute_api_version': u'2', 'key': None, u'database_api_version': u'1.0', 'api_timeout': None, u'baremetal_api_version': u'1', u'image_api_version': u'2', 'cacert': None, u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', u'orchestration_api_version': u'1', u'interface': None, u'network_api_version': u'2', u'image_format': u'qcow2', u'key_manager_api_version': u'v1', u'metering_api_version': u'2', 'verify': True, u'identity_api_version': u'2.0', u'volume_api_version': u'2', 'cert': None, u'secgroup_source': u'neutron', u'container_api_version': u'1', u'dns_api_version': u'2', u'object_store_api_version': u'1', u'disable_vendor_agent': {}}
cloud cfg: {'auth_type': 'password', u'compute_api_version': u'2', 'key': None, u'database_api_version': u'1.0', 'data_processing_api_version': '1.1', 'inspector_api_version': '1', u'network_api_version': u'2', u'image_format': u'qcow2', u'image_api_version': u'2', 'clustering_api_version': '1', 'verify': True, u'dns_api_version': '2', u'object_store_api_version': u'1', 'verbose_level': 3, 'region_name': 'RegionOne', 'api_timeout': None, u'baremetal_api_version': '1.6', 'queues_api_version': '1.1', 'auth': {'username': 'admin', 'project_name': 'demo', 'password': '***', 'auth_url': 'http://1.1.1.1:5000/v2.0'}, 'default_domain': 'default', u'container_api_version': u'1', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', u'orchestration_api_version': '1', 'timing': False, 'application_catalog_api_version': '1', 'cacert': None, u'key_manager_api_version': '1', u'metering_api_version': u'2', 'deferred_help': False, u'identity_api_version': '2.0', 'workflow_api_version': '2', u'volume_api_version': '2', 'cert': None, u'secgroup_source': u'neutron', 'translator_api_version': '1', 'debug': True, u'interface': None, u'disable_vendor_agent': {}}
compute API version 2, cmd group openstack.compute.v2
network API version 2, cmd group openstack.network.v2
image API version 2, cmd group openstack.image.v2
volume API version 2, cmd group openstack.volume.v2
identity API version 2.0, cmd group openstack.identity.v2
object_store API version 1, cmd group openstack.object_store.v1
key_manager API version 1, cmd group openstack.key_manager.v1
application_catalog API version 1, cmd group openstack.application_catalog.v1
baremetal_introspection API version 1, cmd group openstack.baremetal_introspection.v1
messaging API version 1.1, cmd group openstack.messaging.v1
clustering API version 1, cmd group openstack.clustering.v1
dns API version 2, cmd group openstack.dns.v2
baremetal API version 1.6, cmd group openstack.baremetal.v1
orchestration API version 1, cmd group openstack.orchestration.v1
workflow_engine API version 2, cmd group openstack.workflow_engine.v2
translator API version 1, cmd group openstack.translator.v1
data_processing API version 1.1, cmd group openstack.data_processing.v1
command: server add security group -> openstackclient.compute.v2.server.AddServerSecurityGroup
Auth plugin password selected
auth_type: password
Using auth plugin: password
Using parameters {'username': 'admin', 'password': '***', 'project_name': 'demo', 'auth_url': 'http://1.1.1.1:5000/v2.0'}
Get auth_ref
REQ: curl -g -i -X GET http://1.1.1.1:5000/v2.0 -H "Accept: application/json" -H "User-Agent: python-openstackclient keystoneauth1/2.4.1 python-requests/2.9.1 CPython/2.7.6"
Starting new HTTP connection (1): 1.1.1.1
"GET /v2.0 HTTP/1.1" 200 336
RESP: [200] Content-Length: 336 Vary: X-Auth-Token Keep-Alive: timeout=5, max=100 Server: Apache/2.4.7 (Ubuntu) Connection: Keep-Alive Date: Thu, 04 Aug 2016 15:30:18 GMT Content-Type: application/json x-openstack-request-id: req-a3376999-8689-4808-8d00-1f6baa1fce17
RESP BODY: {"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v2.0+json"}], "id": "v2.0", "links": [{"href": "http://1.1.1.1:5000/v2.0/", "rel": "self"}, {"href": "http://docs.openstack.org/", "type": "text/html", "rel": "describedby"}]}}

Making authentication request to http://1.1.1.1:5000/v2.0/tokens
"POST /v2.0/tokens HTTP/1.1" 200 2831
run(Namespace(group='11111111-5bf3-422a-89d6-34af3e38bdbb', server='test-server'))
Instantiating compute client for VAPI Version Major: 2, Minor: 0
Making authentication request to http://1.1.1.1:5000/v2.0/tokens
"POST /v2.0/tokens HTTP/1.1" 200 2831
REQ: curl -g -i -X GET http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/servers/test-server -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}99a39e0b01ee9dd0aac048f45bca87f61526ed5d"
Starting new HTTP connection (1): 1.1.1.1
"GET /v2.1/11111111111111111111111111111111/servers/test-server HTTP/1.1" 404 86
RESP: [404] Content-Length: 86 X-Compute-Request-Id: req-ec285d68-5015-497d-b077-b3322d4161a9 Vary: X-OpenStack-Nova-API-Version Connection: keep-alive X-Openstack-Nova-Api-Version: 2.1 Date: Thu, 04 Aug 2016 15:30:18 GMT Content-Type: application/json; charset=UTF-8
RESP BODY: {"itemNotFound": {"message": "Instance test-server could not be found.", "code": 404}}

REQ: curl -g -i -X GET http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/servers?name=test-server -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}99a39e0b01ee9dd0aac048f45bca87f61526ed5d"
"GET /v2.1/11111111111111111111111111111111/servers?name=test-server HTTP/1.1" 200 362
RESP: [200] Content-Length: 362 X-Compute-Request-Id: req-153604b3-ea49-4db7-8841-a0d76c86a6b8 Vary: X-OpenStack-Nova-API-Version Connection: keep-alive X-Openstack-Nova-Api-Version: 2.1 Date: Thu, 04 Aug 2016 15:30:18 GMT Content-Type: application/json
RESP BODY: {"servers": [{"id": "11111111-e4a3-48ec-a0d9-603ca7890dd1", "links": [{"href": "http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1", "rel": "self"}, {"href": "http://1.1.1.1:8774/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1", "rel": "bookmark"}], "name": "test-server"}]}

REQ: curl -g -i -X GET http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1 -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}99a39e0b01ee9dd0aac048f45bca87f61526ed5d"
"GET /v2.1/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1 HTTP/1.1" 200 1855
RESP: [200] Content-Length: 1855 X-Compute-Request-Id: req-addc697f-1b4f-4480-8527-0b09259166bd Vary: X-OpenStack-Nova-API-Version Connection: keep-alive X-Openstack-Nova-Api-Version: 2.1 Date: Thu, 04 Aug 2016 15:30:18 GMT Content-Type: application/json
RESP BODY: {"server": {"status": "ACTIVE", "updated": "2016-08-04T15:04:53Z", "hostId": "d0f4d22886d418c1981e5dceb20d908dbbbed413cf851ac2e960f4b6", "OS-EXT-SRV-ATTR:host": "devstack-ubuntu", "addresses": {"private": [{"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:29:ce:15", "version": 4, "addr": "10.0.0.4", "OS-EXT-IPS:type": "fixed"}, {"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:29:ce:15", "version": 6, "addr": "fd23:2b33:d54:0:f816:3eff:fe29:ce15", "OS-EXT-IPS:type": "fixed"}]}, "links": [{"href": "http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1", "rel": "self"}, {"href": "http://1.1.1.1:8774/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1", "rel": "bookmark"}], "key_name": null, "image": {"id": "ac989b4a-40d0-47ad-9bc2-c1af9ca8e46b", "links": [{"href": "http://1.1.1.1:8774/11111111111111111111111111111111/images/ac989b4a-40d0-47ad-9bc2-c1af9ca8e46b", "rel": "bookmark"}]}, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-00000002", "OS-SRV-USG:launched_at": "2016-08-04T15:04:53.000000", "OS-EXT-SRV-ATTR:hypervisor_hostname": "devstack-ubuntu", "flavor": {"id": "84", "links": [{"href": "http://1.1.1.1:8774/11111111111111111111111111111111/flavors/84", "rel": "bookmark"}]}, "id": "11111111-e4a3-48ec-a0d9-603ca7890dd1", "security_groups": [{"name": "default"}, {"name": "test-group"}], "OS-SRV-USG:terminated_at": null, "OS-EXT-AZ:availability_zone": "nova", "user_id": "5575d6f30def47b0a197a44c77453c1e", "name": "test-server", "created": "2016-08-04T12:17:50Z", "tenant_id": "11111111111111111111111111111111", "OS-DCF:diskConfig": "MANUAL", "os-extended-volumes:volumes_attached": [], "accessIPv4": "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive": "True", "metadata": {}}}

REQ: curl -g -i -X GET http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/os-security-groups/11111111-5bf3-422a-89d6-34af3e38bdbb -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}99a39e0b01ee9dd0aac048f45bca87f61526ed5d"
"GET /v2.1/11111111111111111111111111111111/os-security-groups/11111111-5bf3-422a-89d6-34af3e38bdbb HTTP/1.1" 200 179
RESP: [200] Content-Length: 179 X-Compute-Request-Id: req-8bdbfde4-7965-4b4b-8ae4-31cb5ff40a4e Vary: X-OpenStack-Nova-API-Version Connection: keep-alive X-Openstack-Nova-Api-Version: 2.1 Date: Thu, 04 Aug 2016 15:30:18 GMT Content-Type: application/json
RESP BODY: {"security_group": {"rules": [], "tenant_id": "11111111111111111111111111111111", "id": "11111111-5bf3-422a-89d6-34af3e38bdbb", "name": "test-group", "description": "test-group"}}

REQ: curl -g -i -X POST http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1/action -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}99a39e0b01ee9dd0aac048f45bca87f61526ed5d" -d '{"addSecurityGroup": {"name": "test-group"}}'
"POST /v2.1/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1/action HTTP/1.1" 202 0
RESP: [202] Content-Length: 0 X-Compute-Request-Id: req-6d187bf3-88e5-458c-a762-04fca33b0038 Vary: X-OpenStack-Nova-API-Version Connection: keep-alive X-Openstack-Nova-Api-Version: 2.1 Date: Thu, 04 Aug 2016 15:30:19 GMT Content-Type: application/json
clean_up AddServerSecurityGroup:
END return value: 0

While the remove security group fails
$ openstack --debug server remove security group test-server 11111111-5bf3-422a-89d6-34af3e38bdbb
START with options: ['--debug', 'server', 'remove', 'security', 'group', 'test-server', '11111111-5bf3-422a-89d6-34af3e38bdbb']
options: Namespace(access_token_endpoint='', auth_type='', auth_url='http://1.1.1.1:5000/v2.0', cacert='', client_id='', client_secret='***', cloud='', debug=True, default_domain='default', deferred_help=False, domain_id='', domain_name='', endpoint='', identity_provider='', identity_provider_url='', insecure=None, inspector_api_version='1', inspector_url=None, interface='', log_file=None, os_application_catalog_api_version='1', os_baremetal_api_version='1.6', os_clustering_api_version='1', os_compute_api_version='', os_data_processing_api_version='1.1', os_data_processing_url='', os_dns_api_version='2', os_identity_api_version='2.0', os_image_api_version='', os_key_manager_api_version='1', os_network_api_version='', os_object_api_version='', os_orchestration_api_version='1', os_project_id=None, os_project_name=None, os_queues_api_version='1.1', os_translator_api_version='1', os_volume_api_version='2', os_workflow_api_version='2', password='***', profile=None, project_domain_id='', project_domain_name='', project_id='', project_name='demo', protocol='', region_name='RegionOne', scope='', service_provider_endpoint='', timing=False, token='***', trust_id='', url='', user_domain_id='', user_domain_name='', user_id='', username='admin', verbose_level=3, verify=None)
defaults: {u'auth_type': 'password', u'compute_api_version': u'2', 'key': None, u'database_api_version': u'1.0', 'api_timeout': None, u'baremetal_api_version': u'1', u'image_api_version': u'2', 'cacert': None, u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', u'orchestration_api_version': u'1', u'interface': None, u'network_api_version': u'2', u'image_format': u'qcow2', u'key_manager_api_version': u'v1', u'metering_api_version': u'2', 'verify': True, u'identity_api_version': u'2.0', u'volume_api_version': u'2', 'cert': None, u'secgroup_source': u'neutron', u'container_api_version': u'1', u'dns_api_version': u'2', u'object_store_api_version': u'1', u'disable_vendor_agent': {}}
cloud cfg: {'auth_type': 'password', u'compute_api_version': u'2', 'key': None, u'database_api_version': u'1.0', 'data_processing_api_version': '1.1', 'inspector_api_version': '1', u'network_api_version': u'2', u'image_format': u'qcow2', u'image_api_version': u'2', 'clustering_api_version': '1', 'verify': True, u'dns_api_version': '2', u'object_store_api_version': u'1', 'verbose_level': 3, 'region_name': 'RegionOne', 'api_timeout': None, u'baremetal_api_version': '1.6', 'queues_api_version': '1.1', 'auth': {'username': 'admin', 'project_name': 'demo', 'password': '***', 'auth_url': 'http://1.1.1.1:5000/v2.0'}, 'default_domain': 'default', u'container_api_version': u'1', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', u'orchestration_api_version': '1', 'timing': False, 'application_catalog_api_version': '1', 'cacert': None, u'key_manager_api_version': '1', u'metering_api_version': u'2', 'deferred_help': False, u'identity_api_version': '2.0', 'workflow_api_version': '2', u'volume_api_version': '2', 'cert': None, u'secgroup_source': u'neutron', 'translator_api_version': '1', 'debug': True, u'interface': None, u'disable_vendor_agent': {}}
compute API version 2, cmd group openstack.compute.v2
network API version 2, cmd group openstack.network.v2
image API version 2, cmd group openstack.image.v2
volume API version 2, cmd group openstack.volume.v2
identity API version 2.0, cmd group openstack.identity.v2
object_store API version 1, cmd group openstack.object_store.v1
key_manager API version 1, cmd group openstack.key_manager.v1
application_catalog API version 1, cmd group openstack.application_catalog.v1
baremetal_introspection API version 1, cmd group openstack.baremetal_introspection.v1
messaging API version 1.1, cmd group openstack.messaging.v1
clustering API version 1, cmd group openstack.clustering.v1
dns API version 2, cmd group openstack.dns.v2
baremetal API version 1.6, cmd group openstack.baremetal.v1
orchestration API version 1, cmd group openstack.orchestration.v1
workflow_engine API version 2, cmd group openstack.workflow_engine.v2
translator API version 1, cmd group openstack.translator.v1
data_processing API version 1.1, cmd group openstack.data_processing.v1
command: server remove security group -> openstackclient.compute.v2.server.RemoveServerSecurityGroup
Auth plugin password selected
auth_type: password
Using auth plugin: password
Using parameters {'username': 'admin', 'password': '***', 'project_name': 'demo', 'auth_url': 'http://1.1.1.1:5000/v2.0'}
Get auth_ref
REQ: curl -g -i -X GET http://1.1.1.1:5000/v2.0 -H "Accept: application/json" -H "User-Agent: python-openstackclient keystoneauth1/2.4.1 python-requests/2.9.1 CPython/2.7.6"
Starting new HTTP connection (1): 1.1.1.1
"GET /v2.0 HTTP/1.1" 200 336
RESP: [200] Content-Length: 336 Vary: X-Auth-Token Keep-Alive: timeout=5, max=100 Server: Apache/2.4.7 (Ubuntu) Connection: Keep-Alive Date: Thu, 04 Aug 2016 15:30:49 GMT Content-Type: application/json x-openstack-request-id: req-77196bf0-b244-46fe-b217-31bf1afaccc8
RESP BODY: {"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v2.0+json"}], "id": "v2.0", "links": [{"href": "http://1.1.1.1:5000/v2.0/", "rel": "self"}, {"href": "http://docs.openstack.org/", "type": "text/html", "rel": "describedby"}]}}

Making authentication request to http://1.1.1.1:5000/v2.0/tokens
"POST /v2.0/tokens HTTP/1.1" 200 2831
run(Namespace(group='11111111-5bf3-422a-89d6-34af3e38bdbb', server='test-server'))
Instantiating compute client for VAPI Version Major: 2, Minor: 0
Making authentication request to http://1.1.1.1:5000/v2.0/tokens
"POST /v2.0/tokens HTTP/1.1" 200 2831
REQ: curl -g -i -X GET http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/servers/test-server -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}d8b99bc7225e5b1e491e0f7682a6e1d41924b5bc"
Starting new HTTP connection (1): 1.1.1.1
"GET /v2.1/11111111111111111111111111111111/servers/test-server HTTP/1.1" 404 86
RESP: [404] Content-Length: 86 X-Compute-Request-Id: req-fd2849f4-1248-487f-a128-a89886d82206 Vary: X-OpenStack-Nova-API-Version Connection: keep-alive X-Openstack-Nova-Api-Version: 2.1 Date: Thu, 04 Aug 2016 15:30:49 GMT Content-Type: application/json; charset=UTF-8
RESP BODY: {"itemNotFound": {"message": "Instance test-server could not be found.", "code": 404}}

REQ: curl -g -i -X GET http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/servers?name=test-server -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}d8b99bc7225e5b1e491e0f7682a6e1d41924b5bc"
"GET /v2.1/11111111111111111111111111111111/servers?name=test-server HTTP/1.1" 200 362
RESP: [200] Content-Length: 362 X-Compute-Request-Id: req-61c11caf-01df-48c2-a98d-f740f9059b7c Vary: X-OpenStack-Nova-API-Version Connection: keep-alive X-Openstack-Nova-Api-Version: 2.1 Date: Thu, 04 Aug 2016 15:30:49 GMT Content-Type: application/json
RESP BODY: {"servers": [{"id": "11111111-e4a3-48ec-a0d9-603ca7890dd1", "links": [{"href": "http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1", "rel": "self"}, {"href": "http://1.1.1.1:8774/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1", "rel": "bookmark"}], "name": "test-server"}]}

REQ: curl -g -i -X GET http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1 -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}d8b99bc7225e5b1e491e0f7682a6e1d41924b5bc"
"GET /v2.1/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1 HTTP/1.1" 200 1855
RESP: [200] Content-Length: 1855 X-Compute-Request-Id: req-ca98f39f-2a17-46cc-bcd0-602c02694f9b Vary: X-OpenStack-Nova-API-Version Connection: keep-alive X-Openstack-Nova-Api-Version: 2.1 Date: Thu, 04 Aug 2016 15:30:50 GMT Content-Type: application/json
RESP BODY: {"server": {"status": "ACTIVE", "updated": "2016-08-04T15:04:53Z", "hostId": "d0f4d22886d418c1981e5dceb20d908dbbbed413cf851ac2e960f4b6", "OS-EXT-SRV-ATTR:host": "devstack-ubuntu", "addresses": {"private": [{"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:29:ce:15", "version": 4, "addr": "10.0.0.4", "OS-EXT-IPS:type": "fixed"}, {"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:29:ce:15", "version": 6, "addr": "fd23:2b33:d54:0:f816:3eff:fe29:ce15", "OS-EXT-IPS:type": "fixed"}]}, "links": [{"href": "http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1", "rel": "self"}, {"href": "http://1.1.1.1:8774/11111111111111111111111111111111/servers/11111111-e4a3-48ec-a0d9-603ca7890dd1", "rel": "bookmark"}], "key_name": null, "image": {"id": "ac989b4a-40d0-47ad-9bc2-c1af9ca8e46b", "links": [{"href": "http://1.1.1.1:8774/11111111111111111111111111111111/images/ac989b4a-40d0-47ad-9bc2-c1af9ca8e46b", "rel": "bookmark"}]}, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-00000002", "OS-SRV-USG:launched_at": "2016-08-04T15:04:53.000000", "OS-EXT-SRV-ATTR:hypervisor_hostname": "devstack-ubuntu", "flavor": {"id": "84", "links": [{"href": "http://1.1.1.1:8774/11111111111111111111111111111111/flavors/84", "rel": "bookmark"}]}, "id": "11111111-e4a3-48ec-a0d9-603ca7890dd1", "security_groups": [{"name": "default"}, {"name": "test-group"}], "OS-SRV-USG:terminated_at": null, "OS-EXT-AZ:availability_zone": "nova", "user_id": "5575d6f30def47b0a197a44c77453c1e", "name": "test-server", "created": "2016-08-04T12:17:50Z", "tenant_id": "11111111111111111111111111111111", "OS-DCF:diskConfig": "MANUAL", "os-extended-volumes:volumes_attached": [], "accessIPv4": "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive": "True", "metadata": {}}}

REQ: curl -g -i -X GET http://1.1.1.1:8774/v2.1/11111111111111111111111111111111/os-security-groups/11111111-5bf3-422a-89d6-34af3e38bdbb -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}d8b99bc7225e5b1e491e0f7682a6e1d41924b5bc"
"GET /v2.1/11111111111111111111111111111111/os-security-groups/11111111-5bf3-422a-89d6-34af3e38bdbb HTTP/1.1" 200 179
RESP: [200] Content-Length: 179 X-Compute-Request-Id: req-4423d84f-4a45-4eb1-901a-b07d00d2de86 Vary: X-OpenStack-Nova-API-Version Connection: keep-alive X-Openstack-Nova-Api-Version: 2.1 Date: Thu, 04 Aug 2016 15:30:50 GMT Content-Type: application/json
RESP BODY: {"security_group": {"rules": [], "tenant_id": "11111111111111111111111111111111", "id": "11111111-5bf3-422a-89d6-34af3e38bdbb", "name": "test-group", "description": "test-group"}}

<SecurityGroup description=test-group, id=11111111-5bf3-422a-89d6-34af3e38bdbb, name=test-group, rules=[], tenant_id=11111111111111111111111111111111> is not JSON serializable
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/cliff/app.py", line 346, in run_subcommand
    result = cmd.run(parsed_args)
  File "/usr/local/lib/python2.7/dist-packages/openstackclient/common/command.py", line 38, in run
    return super(Command, self).run(parsed_args)
  File "/usr/local/lib/python2.7/dist-packages/cliff/command.py", line 55, in run
    self.take_action(parsed_args)
  File "/usr/local/lib/python2.7/dist-packages/openstackclient/compute/v2/server.py", line 1152, in take_action
    server.remove_security_group(security_group)
  File "/usr/local/lib/python2.7/dist-packages/novaclient/v2/servers.py", line 475, in remove_security_group
    return self.manager.remove_security_group(self, security_group)
  File "/usr/local/lib/python2.7/dist-packages/novaclient/v2/servers.py", line 1572, in remove_security_group
    {'name': security_group})
  File "/usr/local/lib/python2.7/dist-packages/novaclient/v2/servers.py", line 1682, in _action
    info=info, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/novaclient/v2/servers.py", line 1693, in _action_return_resp_and_body
    return self.api.client.post(url, body=body)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 179, in post
    return self.request(url, 'POST', **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/novaclient/client.py", line 89, in request
    **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 331, in request
    resp = super(LegacyJsonAdapter, self).request(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 98, in request
    return self.session.request(url, method, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/openstackclient/common/session.py", line 40, in request
    resp = super(TimingSession, self).request(url, method, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/positional/__init__.py", line 94, in inner
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/session.py", line 417, in request
    kwargs['data'] = self._json.encode(json)
  File "/usr/lib/python2.7/json/encoder.py", line 207, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode
    return _iterencode(o, 0)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/session.py", line 71, in default
    return super(_JSONEncoder, self).default(o)
  File "/usr/lib/python2.7/json/encoder.py", line 184, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <SecurityGroup description=test-group, id=11111111-5bf3-422a-89d6-34af3e38bdbb, name=test-group, rules=[], tenant_id=11111111111111111111111111111111> is not JSON serializable
clean_up RemoveServerSecurityGroup: <SecurityGroup description=test-group, id=11111111-5bf3-422a-89d6-34af3e38bdbb, name=test-group, rules=[], tenant_id=11111111111111111111111111111111> is not JSON serializable
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/openstackclient/shell.py", line 118, in run
    ret_val = super(OpenStackShell, self).run(argv)
  File "/usr/local/lib/python2.7/dist-packages/cliff/app.py", line 226, in run
    result = self.run_subcommand(remainder)
  File "/usr/local/lib/python2.7/dist-packages/openstackclient/shell.py", line 153, in run_subcommand
    ret_value = super(OpenStackShell, self).run_subcommand(argv)
  File "/usr/local/lib/python2.7/dist-packages/cliff/app.py", line 346, in run_subcommand
    result = cmd.run(parsed_args)
  File "/usr/local/lib/python2.7/dist-packages/openstackclient/common/command.py", line 38, in run
    return super(Command, self).run(parsed_args)
  File "/usr/local/lib/python2.7/dist-packages/cliff/command.py", line 55, in run
    self.take_action(parsed_args)
  File "/usr/local/lib/python2.7/dist-packages/openstackclient/compute/v2/server.py", line 1152, in take_action
    server.remove_security_group(security_group)
  File "/usr/local/lib/python2.7/dist-packages/novaclient/v2/servers.py", line 475, in remove_security_group
    return self.manager.remove_security_group(self, security_group)
  File "/usr/local/lib/python2.7/dist-packages/novaclient/v2/servers.py", line 1572, in remove_security_group
    {'name': security_group})
  File "/usr/local/lib/python2.7/dist-packages/novaclient/v2/servers.py", line 1682, in _action
    info=info, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/novaclient/v2/servers.py", line 1693, in _action_return_resp_and_body
    return self.api.client.post(url, body=body)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 179, in post
    return self.request(url, 'POST', **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/novaclient/client.py", line 89, in request
    **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 331, in request
    resp = super(LegacyJsonAdapter, self).request(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 98, in request
    return self.session.request(url, method, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/openstackclient/common/session.py", line 40, in request
    resp = super(TimingSession, self).request(url, method, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/positional/__init__.py", line 94, in inner
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/session.py", line 417, in request
    kwargs['data'] = self._json.encode(json)
  File "/usr/lib/python2.7/json/encoder.py", line 207, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode
    return _iterencode(o, 0)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/session.py", line 71, in default
    return super(_JSONEncoder, self).default(o)
  File "/usr/lib/python2.7/json/encoder.py", line 184, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <SecurityGroup description=test-group, id=11111111-5bf3-422a-89d6-34af3e38bdbb, name=test-group, rules=[], tenant_id=11111111111111111111111111111111> is not JSON serializable

END return value: 1

Environment:
1) $ git log -1
commit e16da5130bfb972a91341f88fc0b2a2c87182643
2) Libvirt + KVM (devstack)
3) local (devstack)
4) Neutron turned on with devstack

Tags: network
Sean Dague (sdague)
no longer affects: nova
Richard Theis (rtheis)
tags: added: network
Revision history for this message
Liyingjun (liyingjun) wrote :

can't reproduce with master

Revision history for this message
Gergely Csatari (gergely-csatari) wrote :

Correct, this is working now with master.

Changed in python-openstackclient:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.