Hi all,

Wanted to ask if perhaps some of you have encountered the same issue in the 
past.
I just created an Kilo Openstack environment and used Ceph as backend for 
Cinder/Glance.

Whenever I try to upload an image, I always receive a BadStatusLine error when 
trying to upload through the cli
The image itself keep stuck at 'SAVING' within the gui and when looking in 
Ceph, it appears that the image is created in the glance pool.

In the traceback it's visible that the Statusline it doesn't like  (as response 
if I see it correctly) consists of ''.
So this would mean that the response it receives is empty?

I also tried though the GUI and the same issue will appear; it remains stuck at 
SAVING.

The full debug of the upload command:

glance --debug --os-image-api-version 2 image-create --file 
/tmp/cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare 
--progress
curl -i -X GET -H 'User-Agent: python-glanceclient' -H 'Content-Type: 
application/octet-stream' -H 'Accept-Encoding: gzip, deflate, compress' -H 
'Accept: */*' -H 'X-Auth-Token: {SHA1}46395b6452a9c7a945bb668585dc78280c471346' 
http://192.168.142.202:9292/v2/schemas/image

HTTP/1.1 200 OK
date: Mon, 09 Nov 2015 22:05:24 GMT
content-length: 3899
content-type: application/json; charset=UTF-8
x-openstack-request-id: req-c37b50e0-ebdd-4127-be33-1225370044de

{"additionalProperties": {"type": "string"}, "name": "image", "links": 
[{"href": "{self}", "rel": "self"}, {"href": "{file}", "rel": "enclosure"}, 
{"href": "{schema}", "rel": "describedby"}], "properties": {"status": {"enum": 
["queued", "saving", "active", "killed", "deleted", "pending_delete"], "type": 
"string", "description": "Status of the image (READ-ONLY)"}, "tags": {"items": 
{"type": "string", "maxLength": 255}, "type": "array", "description": "List of 
strings related to the image"}, "kernel_id": {"pattern": 
"^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$",
 "type": ["null", "string"], "description": "ID of image stored in Glance that 
should be used as the kernel when booting an AMI-style image.", "is_base": 
false}, "container_format": {"enum": [null, "ami", "ari", "aki", "bare", "ovf", 
"ova"], "type": ["null", "string"], "description": "Format of the container"}, 
"min_ram": {"type": "integer", "description": "Amount of ram (in MB) required 
to boot image."}, "ramdisk_id": {"pattern": 
"^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$",
 "type": ["null", "string"], "description": "ID of image stored in Glance that 
should be used as the ramdisk when booting an AMI-style image.", "is_base": 
false}, "locations": {"items": {"required": ["url", "metadata"], "type": 
"object", "properties": {"url": {"type": "string", "maxLength": 255}, 
"metadata": {"type": "object"}}}, "type": "array", "description": "A set of 
URLs to access the image file kept in external store"}, "visibility": {"enum": 
["public", "private"], "type": "string", "description": "Scope of image 
accessibility"}, "updated_at": {"type": "string", "description": "Date and time 
of the last image modification (READ-ONLY)"}, "owner": {"type": ["null", 
"string"], "description": "Owner of the image", "maxLength": 255}, "file": 
{"type": "string", "description": "(READ-ONLY)"}, "min_disk": {"type": 
"integer", "description": "Amount of disk space (in GB) required to boot 
image."}, "virtual_size": {"type": ["null", "integer"], "description": "Virtual 
size of image in bytes (READ-ONLY)"}, "id": {"pattern": 
"^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$",
 "type": "string", "description": "An identifier for the image"}, "size": 
{"type": ["null", "integer"], "description": "Size of image file in bytes 
(READ-ONLY)"}, "instance_uuid": {"type": "string", "description": "ID of 
instance used to create this image.", "is_base": false}, "os_distro": {"type": 
"string", "description": "Common name of operating system distribution as 
specified in 
http://docs.openstack.org/trunk/openstack-compute/admin/content/adding-images.html";,
 "is_base": false}, "name": {"type": ["null", "string"], "description": 
"Descriptive name for the image", "maxLength": 255}, "checksum": {"type": 
["null", "string"], "description": "md5 hash of image contents. (READ-ONLY)", 
"maxLength": 32}, "created_at": {"type": "string", "description": "Date and 
time of image registration (READ-ONLY)"}, "disk_format": {"enum": [null, "ami", 
"ari", "aki", "vhd", "vmdk", "raw", "qcow2", "vdi", "iso", "root-tar"], "type": 
["null", "string"], "description": "Format of the disk"}, "os_version": 
{"type": "string", "description": "Operating system version as specified by the 
distributor", "is_base": false}, "protected": {"type": "boolean", 
"description": "If true, image will not be deletable."}, "architecture": 
{"type": "string", "description": "Operating system architecture as specified 
in 
http://docs.openstack.org/trunk/openstack-compute/admin/content/adding-images.html";,
 "is_base": false}, "direct_url": {"type": "string", "description": "URL to 
access the image file kept in external store (READ-ONLY)"}, "self": {"type": 
"string", "description": "(READ-ONLY)"}, "schema": {"type": "string", 
"description": "(READ-ONLY)"}}}

curl -i -X GET -H 'User-Agent: python-glanceclient' -H 'Content-Type: 
application/octet-stream' -H 'Accept-Encoding: gzip, deflate, compress' -H 
'Accept: */*' -H 'X-Auth-Token: {SHA1}46395b6452a9c7a945bb668585dc78280c471346' 
http://192.168.142.202:9292/v2/schemas/image

HTTP/1.1 200 OK
date: Mon, 09 Nov 2015 22:05:24 GMT
content-length: 3899
content-type: application/json; charset=UTF-8
x-openstack-request-id: req-8e62c5ad-5b39-47ae-b3a5-cf7bd201a48f

{"additionalProperties": {"type": "string"}, "name": "image", "links": 
[{"href": "{self}", "rel": "self"}, {"href": "{file}", "rel": "enclosure"}, 
{"href": "{schema}", "rel": "describedby"}], "properties": {"status": {"enum": 
["queued", "saving", "active", "killed", "deleted", "pending_delete"], "type": 
"string", "description": "Status of the image (READ-ONLY)"}, "tags": {"items": 
{"type": "string", "maxLength": 255}, "type": "array", "description": "List of 
strings related to the image"}, "kernel_id": {"pattern": 
"^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$",
 "type": ["null", "string"], "description": "ID of image stored in Glance that 
should be used as the kernel when booting an AMI-style image.", "is_base": 
false}, "container_format": {"enum": [null, "ami", "ari", "aki", "bare", "ovf", 
"ova"], "type": ["null", "string"], "description": "Format of the container"}, 
"min_ram": {"type": "integer", "description": "Amount of ram (in MB) required 
to boot image."}, "ramdisk_id": {"pattern": 
"^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$",
 "type": ["null", "string"], "description": "ID of image stored in Glance that 
should be used as the ramdisk when booting an AMI-style image.", "is_base": 
false}, "locations": {"items": {"required": ["url", "metadata"], "type": 
"object", "properties": {"url": {"type": "string", "maxLength": 255}, 
"metadata": {"type": "object"}}}, "type": "array", "description": "A set of 
URLs to access the image file kept in external store"}, "visibility": {"enum": 
["public", "private"], "type": "string", "description": "Scope of image 
accessibility"}, "updated_at": {"type": "string", "description": "Date and time 
of the last image modification (READ-ONLY)"}, "owner": {"type": ["null", 
"string"], "description": "Owner of the image", "maxLength": 255}, "file": 
{"type": "string", "description": "(READ-ONLY)"}, "min_disk": {"type": 
"integer", "description": "Amount of disk space (in GB) required to boot 
image."}, "virtual_size": {"type": ["null", "integer"], "description": "Virtual 
size of image in bytes (READ-ONLY)"}, "id": {"pattern": 
"^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$",
 "type": "string", "description": "An identifier for the image"}, "size": 
{"type": ["null", "integer"], "description": "Size of image file in bytes 
(READ-ONLY)"}, "instance_uuid": {"type": "string", "description": "ID of 
instance used to create this image.", "is_base": false}, "os_distro": {"type": 
"string", "description": "Common name of operating system distribution as 
specified in 
http://docs.openstack.org/trunk/openstack-compute/admin/content/adding-images.html";,
 "is_base": false}, "name": {"type": ["null", "string"], "description": 
"Descriptive name for the image", "maxLength": 255}, "checksum": {"type": 
["null", "string"], "description": "md5 hash of image contents. (READ-ONLY)", 
"maxLength": 32}, "created_at": {"type": "string", "description": "Date and 
time of image registration (READ-ONLY)"}, "disk_format": {"enum": [null, "ami", 
"ari", "aki", "vhd", "vmdk", "raw", "qcow2", "vdi", "iso", "root-tar"], "type": 
["null", "string"], "description": "Format of the disk"}, "os_version": 
{"type": "string", "description": "Operating system version as specified by the 
distributor", "is_base": false}, "protected": {"type": "boolean", 
"description": "If true, image will not be deletable."}, "architecture": 
{"type": "string", "description": "Operating system architecture as specified 
in 
http://docs.openstack.org/trunk/openstack-compute/admin/content/adding-images.html";,
 "is_base": false}, "direct_url": {"type": "string", "description": "URL to 
access the image file kept in external store (READ-ONLY)"}, "self": {"type": 
"string", "description": "(READ-ONLY)"}, "schema": {"type": "string", 
"description": "(READ-ONLY)"}}}

curl -i -X POST -H 'User-Agent: python-glanceclient' -H 'Content-Type: 
application/json' -H 'Accept-Encoding: gzip, deflate, compress' -H 'Accept: 
*/*' -H 'X-Auth-Token: {SHA1}46395b6452a9c7a945bb668585dc78280c471346' -d 
'{"container_format": "bare", "disk_format": "qcow2"}' 
http://192.168.142.202:9292/v2/images

HTTP/1.1 201 Created
date: Mon, 09 Nov 2015 22:05:24 GMT
content-length: 547
content-type: application/json; charset=UTF-8
location: 
http://192.168.142.202:9292/v2/images/d96e7fb5-d7d6-495d-9ab7-a2a48d14cc24
x-openstack-request-id: req-7a2705d7-82ac-4a73-94c5-7ab2d9cec6ea

{"status": "queued", "name": null, "tags": [], "container_format": "bare", 
"created_at": "2015-11-09T22:05:24Z", "size": null, "disk_format": "qcow2", 
"updated_at": "2015-11-09T22:05:24Z", "visibility": "private", "self": 
"/v2/images/d96e7fb5-d7d6-495d-9ab7-a2a48d14cc24", "min_disk": 0, "protected": 
false, "id": "d96e7fb5-d7d6-495d-9ab7-a2a48d14cc24", "file": 
"/v2/images/d96e7fb5-d7d6-495d-9ab7-a2a48d14cc24/file", "checksum": null, 
"owner": "5936d97757564d6182f31afb09cd125d", "virtual_size": null, "min_ram": 
0, "schema": "/v2/schemas/image"}

curl -i -X PUT -H 'User-Agent: python-glanceclient' -H 'Content-Type: 
application/octet-stream' -H 'Accept-Encoding: gzip, deflate, compress' -H 
'Accept: */*' -H 'X-Auth-Token: {SHA1}46395b6452a9c7a945bb668585dc78280c471346' 
http://192.168.142.202:9292/v2/images/d96e7fb5-d7d6-495d-9ab7-a2a48d14cc24/file
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | None                                 |
| container_format | bare                                 |
| created_at       | 2015-11-09T22:05:24Z                 |
| disk_format      | qcow2                                |
| id               | d96e7fb5-d7d6-495d-9ab7-a2a48d14cc24 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | None                                 |
| owner            | 5936d97757564d6182f31afb09cd125d     |
| protected        | False                                |
| size             | None                                 |
| status           | queued                               |
| tags             | []                                   |
| updated_at       | 2015-11-09T22:05:24Z                 |
| virtual_size     | None                                 |
| visibility       | private                              |
+------------------+--------------------------------------+
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/glanceclient/shell.py", line 637, in 
main
    args.func(client, args)
  File "/usr/lib/python2.7/dist-packages/glanceclient/v2/shell.py", line 73, in 
do_image_create
    do_image_upload(gc, args)
  File "/usr/lib/python2.7/dist-packages/glanceclient/v2/shell.py", line 258, 
in do_image_upload
    gc.images.upload(args.id, image_data, args.size)
  File "/usr/lib/python2.7/dist-packages/glanceclient/v2/images.py", line 138, 
in upload
    self.http_client.put(url, headers=hdrs, data=body)
  File "/usr/lib/python2.7/dist-packages/glanceclient/common/http.py", line 
265, in put
    return self._request('PUT', url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/glanceclient/common/http.py", line 
206, in _request
    **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 455, in 
request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 558, in 
send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 357, in 
send
    r = low_conn.getresponse()
  File "/usr/lib/python2.7/httplib.py", line 1051, in getresponse
    response.begin()
  File "/usr/lib/python2.7/httplib.py", line 415, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python2.7/httplib.py", line 379, in _read_status
    raise BadStatusLine(line)
BadStatusLine: ''
''

PS: using api version 1 will result in the same traceback at the end.


Thanks in advance!

Kind Regards,
Roel de Rooy

_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to     : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack

Reply via email to