yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #25307
[Bug 1399782] [NEW] Python glance-client image-create validation error
Public bug reported:
When using the python-glance client to create an image the schema
validator fails when validating the locations object.
Basing from the format provided on the image schema:
{
"properties": {
"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"
},
}
}
The locations attribute is an array of objects containing two attributes, url and metadata, eg;
locations: [
{
url: 'image.url',
metadata: {}
}
]
However, when trying to set an image location the following validation error is raised:
glance --debug --os-image-api-version 2 image-create --locations "https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img"
Failed validating 'type' in schema['properties']['locations']['items']:
{'properties': {'metadata': {'type': 'object'},
'url': {'maxLength': 255, 'type': 'string'}},
'required': ['url', 'metadata'],
'type': 'object'}
On instance['locations'][0]:
'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/glanceclient/v2/images.py", line 154, in create
setattr(image, key, value)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/warlock/model.py", line 75, in __setattr__
self.__setitem__(key, value)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/warlock/model.py", line 50, in __setitem__
raise exceptions.InvalidOperation(msg)
warlock.exceptions.InvalidOperation: Unable to set 'locations' to '['https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img']'. Reason: 'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img' is not of type 'object'
Failed validating 'type' in schema['properties']['locations']['items']:
{'properties': {'metadata': {'type': 'object'},
'url': {'maxLength': 255, 'type': 'string'}},
'required': ['url', 'metadata'],
'type': 'object'}
On instance['locations'][0]:
'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/glanceclient/shell.py", line 620, in main
args.func(client, args)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/glanceclient/v2/shell.py", line 68, in do_image_create
image = gc.images.create(**fields)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/glanceclient/v2/images.py", line 156, in create
raise TypeError(utils.exception_to_str(e))
TypeError: Unable to set 'locations' to '['https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img']'. Reason: 'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img' is not of type 'object'
Failed validating 'type' in schema['properties']['locations']['items']:
{'properties': {'metadata': {'type': 'object'},
'url': {'maxLength': 255, 'type': 'string'}},
'required': ['url', 'metadata'],
'type': 'object'}
On instance['locations'][0]:
'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img'
Unable to set 'locations' to '['https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img']'. Reason: 'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img' is not of type 'object'
Failed validating 'type' in schema['properties']['locations']['items']:
{'properties': {'metadata': {'type': 'object'},
'url': {'maxLength': 255, 'type': 'string'}},
'required': ['url', 'metadata'],
'type': 'object'}
On instance['locations'][0]:
'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img'
** Affects: glance
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Glance.
https://bugs.launchpad.net/bugs/1399782
Title:
Python glance-client image-create validation error
Status in OpenStack Image Registry and Delivery Service (Glance):
New
Bug description:
When using the python-glance client to create an image the schema
validator fails when validating the locations object.
Basing from the format provided on the image schema:
{
"properties": {
"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"
},
}
}
The locations attribute is an array of objects containing two attributes, url and metadata, eg;
locations: [
{
url: 'image.url',
metadata: {}
}
]
However, when trying to set an image location the following validation error is raised:
glance --debug --os-image-api-version 2 image-create --locations "https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img"
Failed validating 'type' in schema['properties']['locations']['items']:
{'properties': {'metadata': {'type': 'object'},
'url': {'maxLength': 255, 'type': 'string'}},
'required': ['url', 'metadata'],
'type': 'object'}
On instance['locations'][0]:
'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/glanceclient/v2/images.py", line 154, in create
setattr(image, key, value)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/warlock/model.py", line 75, in __setattr__
self.__setitem__(key, value)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/warlock/model.py", line 50, in __setitem__
raise exceptions.InvalidOperation(msg)
warlock.exceptions.InvalidOperation: Unable to set 'locations' to '['https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img']'. Reason: 'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img' is not of type 'object'
Failed validating 'type' in schema['properties']['locations']['items']:
{'properties': {'metadata': {'type': 'object'},
'url': {'maxLength': 255, 'type': 'string'}},
'required': ['url', 'metadata'],
'type': 'object'}
On instance['locations'][0]:
'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/glanceclient/shell.py", line 620, in main
args.func(client, args)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/glanceclient/v2/shell.py", line 68, in do_image_create
image = gc.images.create(**fields)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/glanceclient/v2/images.py", line 156, in create
raise TypeError(utils.exception_to_str(e))
TypeError: Unable to set 'locations' to '['https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img']'. Reason: 'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img' is not of type 'object'
Failed validating 'type' in schema['properties']['locations']['items']:
{'properties': {'metadata': {'type': 'object'},
'url': {'maxLength': 255, 'type': 'string'}},
'required': ['url', 'metadata'],
'type': 'object'}
On instance['locations'][0]:
'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img'
Unable to set 'locations' to '['https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img']'. Reason: 'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img' is not of type 'object'
Failed validating 'type' in schema['properties']['locations']['items']:
{'properties': {'metadata': {'type': 'object'},
'url': {'maxLength': 255, 'type': 'string'}},
'required': ['url', 'metadata'],
'type': 'object'}
On instance['locations'][0]:
'https://cloud-images.ubuntu.com/lucid/current/lucid-server-cloudimg-i386-disk1.img'
To manage notifications about this bug go to:
https://bugs.launchpad.net/glance/+bug/1399782/+subscriptions
Follow ups
References