Steps to reproduce:
1) Multi-node
2) Ubuntu
3) Neutron with VLAN segmentation
4) Ceph (cinder, glance, Ceph RBD for ephemeral volumes(Nova), Ceph RadosGW for objects(Swift API))
1 Controller(ceph-osd) + 1 Compute(ceph-osd)
From Horizon
1. Create VM1 (Image boot source - Launch instance (Boot from image (creates a new volume)) -- Device size 2-3 Gb )
2. Create snapshot from VM1 (for example Snapshot Name: image_snap1). Just tap on "Create snapshot" button into Horizon
3. Create VM2 (Launch instance (Boot from image ) --> (Image Name: image_snap1)
4. Create snapshot from VM2 --> " Error: Unable to create snapshot " and I get a 400 error in nova-api.log:
...
<182>Mar 13 16:02:46 node-1 nova-api 172.36.0.2 "GET /v2/9a97ef6a2e6b43d2832b5cf05cb70a12/servers/5388666c-92e5-434e-b702-131cac86ce08 HTTP/1.1" status: 200 len: 1961 time: 0.2353599
<182>Mar 13 16:02:47 node-1 nova-api HTTP exception thrown: <html>
<head>
<title>400 Bad Request</title>
</head>
<body>
<h1>400 Bad Request</h1>
Invalid disk format 'None' for image.<br /><br />
</body>
</html> (HTTP 400)
<182>Mar 13 16:02:47 node-1 nova-api 172.36.0.2 "POST /v2/9a97ef6a2e6b43d2832b5cf05cb70a12/servers/5388666c-92e5-434e-b702-131cac86ce08/action HTTP/1.1" status: 400 len: 422 time: 0.2997549
...
From CI:
root@node-1:/var/log# nova --debug image-create 5388666c-92e5-434e-b702-131cac86ce08 test2
REQ: curl -i 'http://192.168.0.2:5000/v2.0/tokens' -X POST -H "Accept: application/json" -H "Content-Type: application/json" -H "User-Agent: python-novaclient" -d '{"auth": {"tenantName": "admin", "passwordCredentials": {"username": "admin", "password": "{SHA1}d033e22ae348aeb5660fc2140aec35850c4da997"}}}'
INFO (connectionpool:258) Starting new HTTP connection (1): 192.168.0.2
DEBUG (connectionpool:375) Setting read timeout to 600.0
DEBUG (connectionpool:415) "POST /v2.0/tokens HTTP/1.1" 200 3730
RESP: [200] CaseInsensitiveDict({'date': 'Fri, 13 Mar 2015 12:58:13 GMT', 'vary': 'X-Auth-Token', 'content-length': '3730', 'content-type': 'application/json'})
RESP BODY: {"access": {"token": {"issued_at": "2015-03-13T12:58:13.723818", "expires": "2015-03-13T13:58:13Z", "id": "{SHA1}71067f02172b16848ffc3c539ee578bdc98c3d09", "tenant": {"description": "admin tenant", "enabled": true, "id": "9a97ef6a2e6b43d2832b5cf05cb70a12", "name": "admin"}, "audit_ids": ["Hg9dRaTzSmqobTJPXHIRwA"]}, "serviceCatalog": [{"endpoints_links": [], "endpoints": [{"adminURL": "http://192.168.0.2:8774/v2/9a97ef6a2e6b43d2832b5cf05cb70a12", "region": "RegionOne", "publicURL": "http://172.36.0.2:8774/v2/9a97ef6a2e6b43d2832b5cf05cb70a12", "internalURL": "http://192.168.0.2:8774/v2/9a97ef6a2e6b43d2832b5cf05cb70a12", "id": "2484e661a10149b6a2583b5e6610c7bc"}], "type": "compute", "name": "nova"}, {"endpoints_links": [], "endpoints": [{"adminURL": "http://192.168.0.2:9696/", "region": "RegionOne", "publicURL": "http://172.36.0.2:9696/", "internalURL": "http://192.168.0.2:9696/", "id": "4cf6e25a0a1e4c07afe57a89d419caed"}], "type": "network", "name": "neutron"}, {"endpoints_links": [], "endpoints": [{"adminURL": "http://192.168.0.2:8776/v2/9a97ef6a2e6b43d2832b5cf05cb70a12", "region": "RegionOne", "publicURL": "http://172.36.0.2:8776/v2/9a97ef6a2e6b43d2832b5cf05cb70a12", "internalURL": "http://192.168.0.2:8776/v2/9a97ef6a2e6b43d2832b5cf05cb70a12", "id": "583d797444774fd6abf4ec25084182f7"}], "type": "volumev2", "name": "cinderv2"}, {"endpoints_links": [], "endpoints": [{"adminURL": "http://192.168.0.2:9292", "region": "RegionOne", "publicURL": "http://172.36.0.2:9292", "internalURL": "http://192.168.0.2:9292", "id": "62f9524a08f74b118d80d70214a12ffe"}], "type": "image", "name": "glance"}, {"endpoints_links": [], "endpoints": [{"adminURL": "http://192.168.0.2:8000/v1/", "region": "RegionOne", "publicURL": "http://172.36.0.2:8000/v1/", "internalURL": "http://192.168.0.2:8000/v1/", "id": "14a85393f9884b2e818267e494ca1d38"}], "type": "cloudformation", "name": "heat-cfn"}, {"endpoints_links": [], "endpoints": [{"adminURL": "http://192.168.0.2:8776/v1/9a97ef6a2e6b43d2832b5cf05cb70a12", "region": "RegionOne", "publicURL": "http://172.36.0.2:8776/v1/9a97ef6a2e6b43d2832b5cf05cb70a12", "internalURL": "http://192.168.0.2:8776/v1/9a97ef6a2e6b43d2832b5cf05cb70a12", "id": "0c769551e70a461e8a93102c4fb9add6"}], "type": "volume", "name": "cinder"}, {"endpoints_links": [], "endpoints": [{"adminURL": "http://192.168.0.2:8773/services/Admin", "region": "RegionOne", "publicURL": "http://172.36.0.2:8773/services/Cloud", "internalURL": "http://192.168.0.2:8773/services/Cloud", "id": "4eab5758501b4da6a1cb2bf78a2d0a49"}], "type": "ec2", "name": "nova_ec2"}, {"endpoints_links": [], "endpoints": [{"adminURL": "http://192.168.0.2:8004/v1/9a97ef6a2e6b43d2832b5cf05cb70a12", "region": "RegionOne", "publicURL": "http://172.36.0.2:8004/v1/9a97ef6a2e6b43d2832b5cf05cb70a12", "internalURL": "http://192.168.0.2:8004/v1/9a97ef6a2e6b43d2832b5cf05cb70a12", "id": "729157c23aad4868a5a561e37329bf05"}], "type": "orchestration", "name": "heat"}, {"endpoints_links": [], "endpoints": [{"adminURL": "http://192.168.0.2:6780/swift/v1", "region": "RegionOne", "publicURL": "http://172.36.0.2:6780/swift/v1", "internalURL": "http://192.168.0.2:6780/swift/v1", "id": "5abca403248642a19f5e1a9144ea71e6"}], "type": "object-store", "name": "swift"}, {"endpoints_links": [], "endpoints": [{"adminURL": "http://192.168.0.2:35357/v2.0", "region": "RegionOne", "publicURL": "http://172.36.0.2:5000/v2.0", "internalURL": "http://192.168.0.2:5000/v2.0", "id": "5f78fb2e15b6466f80dd5debec7b636c"}], "type": "identity", "name": "keystone"}], "user": {"username": "admin", "roles_links": [], "id": "16fb4cd1bfdc42509f3271c504bc3a44", "roles": [{"name": "admin"}], "name": "admin"}, "metadata": {"is_admin": 0, "roles": ["6ac0c2a371f746f79d026c2e8201d157"]}}}
REQ: curl -i 'http://172.36.0.2:8774/v2/9a97ef6a2e6b43d2832b5cf05cb70a12/servers/5388666c-92e5-434e-b702-131cac86ce08' -X GET -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Project-Id: admin" -H "X-Auth-Token: {SHA1}71067f02172b16848ffc3c539ee578bdc98c3d09"
INFO (connectionpool:258) Starting new HTTP connection (1): 172.36.0.2
DEBUG (connectionpool:375) Setting read timeout to 600.0
DEBUG (connectionpool:415) "GET /v2/9a97ef6a2e6b43d2832b5cf05cb70a12/servers/5388666c-92e5-434e-b702-131cac86ce08 HTTP/1.1" 200 1787
RESP: [200] CaseInsensitiveDict({'date': 'Fri, 13 Mar 2015 12:58:13 GMT', 'content-length': '1787', 'content-type': 'application/json', 'x-compute-request-id': 'req-b3633c45-c4f5-4b15-87b9-5772c9d5630f'})
RESP BODY: {"server": {"OS-EXT-STS:task_state": null, "addresses": {"net04": [{"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:b1:8c:2b", "version": 4, "addr": "192.168.111.5", "OS-EXT-IPS:type": "fixed"}]}, "links": [{"href": "http://172.36.0.2:8774/v2/9a97ef6a2e6b43d2832b5cf05cb70a12/servers/5388666c-92e5-434e-b702-131cac86ce08", "rel": "self"}, {"href": "http://172.36.0.2:8774/9a97ef6a2e6b43d2832b5cf05cb70a12/servers/5388666c-92e5-434e-b702-131cac86ce08", "rel": "bookmark"}], "image": {"id": "bc844760-cca2-4462-9e4c-aff994f795e9", "links": [{"href": "http://172.36.0.2:8774/9a97ef6a2e6b43d2832b5cf05cb70a12/images/bc844760-cca2-4462-9e4c-aff994f795e9", "rel": "bookmark"}]}, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-00000003", "OS-SRV-USG:launched_at": "2015-03-13T09:31:11.000000", "flavor": {"id": "7d3245c4-c510-417e-9c44-3d7068e0c564", "links": [{"href": "http://172.36.0.2:8774/9a97ef6a2e6b43d2832b5cf05cb70a12/flavors/7d3245c4-c510-417e-9c44-3d7068e0c564", "rel": "bookmark"}]}, "id": "5388666c-92e5-434e-b702-131cac86ce08", "security_groups": [{"name": "default"}], "user_id": "16fb4cd1bfdc42509f3271c504bc3a44", "OS-DCF:diskConfig": "AUTO", "accessIPv4": "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "OS-EXT-AZ:availability_zone": "nova", "config_drive": "", "status": "ACTIVE", "updated": "2015-03-13T09:31:10Z", "hostId": "a7986d21072624e3a9751a5b5d7c748060e49a455207120fc0df4426", "OS-EXT-SRV-ATTR:host": "node-2", "OS-SRV-USG:terminated_at": null, "key_name": "13key", "OS-EXT-SRV-ATTR:hypervisor_hostname": "node-2.domain.tld", "name": "2", "created": "2015-03-13T09:30:54Z", "tenant_id": "9a97ef6a2e6b43d2832b5cf05cb70a12", "os-extended-volumes:volumes_attached": [{"id": "dcb29c1e-4006-4929-b099-c4a6dc151f3b"}], "metadata": {}}}
REQ: curl -i 'http://172.36.0.2:8774/v2/9a97ef6a2e6b43d2832b5cf05cb70a12/servers/5388666c-92e5-434e-b702-131cac86ce08/action' -X POST -H "Accept: application/json" -H "Content-Type: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Project-Id: admin" -H "X-Auth-Token: {SHA1}71067f02172b16848ffc3c539ee578bdc98c3d09" -d '{"createImage": {"name": "test2", "metadata": {}}}'
INFO (connectionpool:258) Starting new HTTP connection (1): 172.36.0.2
DEBUG (connectionpool:375) Setting read timeout to 600.0
DEBUG (connectionpool:415) "POST /v2/9a97ef6a2e6b43d2832b5cf05cb70a12/servers/5388666c-92e5-434e-b702-131cac86ce08/action HTTP/1.1" 400 225
RESP: [400] CaseInsensitiveDict({'date': 'Fri, 13 Mar 2015 12:58:14 GMT', 'content-length': '225', 'content-type': 'application/json; charset=UTF-8', 'x-compute-request-id': 'req-e691d6ec-3d68-4b19-817c-d56761e1b16b'})
RESP BODY: null
DEBUG (shell:803) <html>
<head>
<title>400 Bad Request</title>
</head>
<body>
<h1>400 Bad Request</h1>
Invalid disk format 'None' for image.<br /><br />
</body>
</html> (HTTP 400) (HTTP 400) (Request-ID: req-e691d6ec-3d68-4b19-817c-d56761e1b16b)
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/novaclient/shell.py", line 800, in main
OpenStackComputeShell().main(argv)
File "/usr/lib/python2.7/dist-packages/novaclient/shell.py", line 730, in main
args.func(self.cs, args)
File "/usr/lib/python2.7/dist-packages/novaclient/v1_1/shell.py", line 1541, in do_image_create
image_uuid = cs.servers.create_image(server, args.name)
File "/usr/lib/python2.7/dist-packages/novaclient/v1_1/servers.py", line 1049, in create_image
resp = self._action('createImage', server, body)[0]
File "/usr/lib/python2.7/dist-packages/novaclient/v1_1/servers.py", line 1240, in _action
return self.api.client.post(url, body=body)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 490, in post
return self._cs_request(url, 'POST', **kwargs)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 465, in _cs_request
resp, body = self._time_request(url, method, **kwargs)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 439, in _time_request
resp, body = self.request(url, method, **kwargs)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 433, in request
raise exceptions.from_response(resp, body, url, method)
BadRequest: <html>
<head>
<title>400 Bad Request</title>
</head>
<body>
<h1>400 Bad Request</h1>
Invalid disk format 'None' for image.<br /><br />
</body>
</html> (HTTP 400) (HTTP 400) (Request-ID: req-e691d6ec-3d68-4b19-817c-d56761e1b16b)
ERROR (BadRequest): <html>
<head>
<title>400 Bad Request</title>
</head>
<body>
<h1>400 Bad Request</h1>
Invalid disk format 'None' for image.<br /><br />
</body>
</html> (HTTP 400) (HTTP 400) (Request-ID: req-e691d6ec-3d68-4b19-817c-d56761e1b16b)
May be it is fixed by this commit: /github. com/openstack/ cinder/ commit/ ae375ebb9d64f67 767838d91c5d007 fee93f4f63
https:/