Add aggregates extension to API samples test.
Change-Id: I8f0f5b022795dc1d766e585cab8fe5f8445a3722 Signed-off-by: Matthew Treinish <treinish@linux.vnet.ibm.com>
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"add_host":
|
||||||
|
{
|
||||||
|
"host": "581d29b9e3504d8a895caddb13839b15"
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<add_host host="7c9e00dbca5e4fb88538b021c0f933a5" />
|
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"set_metadata":
|
||||||
|
{
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"key": "value"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<set_metadata>
|
||||||
|
<metadata>
|
||||||
|
<key>value</key>
|
||||||
|
</metadata>
|
||||||
|
</set_metadata>
|
7
doc/api_samples/os-aggregates/aggregate-post-req.json
Normal file
7
doc/api_samples/os-aggregates/aggregate-post-req.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"aggregate":
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"availability_zone": "nova"
|
||||||
|
}
|
||||||
|
}
|
2
doc/api_samples/os-aggregates/aggregate-post-req.xml
Normal file
2
doc/api_samples/os-aggregates/aggregate-post-req.xml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<aggregate name="name" availability_zone="nova" />
|
11
doc/api_samples/os-aggregates/aggregate-post-resp.json
Normal file
11
doc/api_samples/os-aggregates/aggregate-post-resp.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"aggregate": {
|
||||||
|
"availability_zone": "nova",
|
||||||
|
"created_at": "2012-10-01T18:50:27.781065",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"id": 1,
|
||||||
|
"name": "name",
|
||||||
|
"updated_at": null
|
||||||
|
}
|
||||||
|
}
|
10
doc/api_samples/os-aggregates/aggregate-post-resp.xml
Normal file
10
doc/api_samples/os-aggregates/aggregate-post-resp.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregate>
|
||||||
|
<name>name</name>
|
||||||
|
<availability_zone>nova</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>2012-10-01 18:50:35.506667</created_at>
|
||||||
|
<updated_at>None</updated_at>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
</aggregate>
|
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"remove_host":
|
||||||
|
{
|
||||||
|
"host": "581d29b9e3504d8a895caddb13839b15"
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<remove_host host="7c9e00dbca5e4fb88538b021c0f933a5" />
|
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"aggregate":
|
||||||
|
{
|
||||||
|
"name": "newname",
|
||||||
|
"availability_zone": "nova2"
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<aggregate name="newname" availability_zone="nova2" />
|
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"aggregate": {
|
||||||
|
"availability_zone": "nova2",
|
||||||
|
"created_at": "2012-10-01T18:50:27.781065",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"hosts": [],
|
||||||
|
"id": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"name": "newname",
|
||||||
|
"updated_at": "2012-10-01T18:50:27.791392"
|
||||||
|
}
|
||||||
|
}
|
12
doc/api_samples/os-aggregates/aggregate-update-post-resp.xml
Normal file
12
doc/api_samples/os-aggregates/aggregate-update-post-resp.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregate>
|
||||||
|
<name>newname</name>
|
||||||
|
<availability_zone>nova2</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>2012-10-01 18:50:35.506667</created_at>
|
||||||
|
<updated_at>2012-10-01 18:50:35.517397</updated_at>
|
||||||
|
<hosts/>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
<metadata/>
|
||||||
|
</aggregate>
|
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"aggregate": {
|
||||||
|
"availability_zone": "nova",
|
||||||
|
"created_at": "2012-10-01T18:50:27.511586",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"hosts": [
|
||||||
|
"581d29b9e3504d8a895caddb13839b15"
|
||||||
|
],
|
||||||
|
"id": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"name": "name",
|
||||||
|
"updated_at": null
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregate>
|
||||||
|
<name>name</name>
|
||||||
|
<availability_zone>nova</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>2012-10-01 18:50:35.236556</created_at>
|
||||||
|
<updated_at>None</updated_at>
|
||||||
|
<hosts>
|
||||||
|
<host>7c9e00dbca5e4fb88538b021c0f933a5</host>
|
||||||
|
</hosts>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
<metadata/>
|
||||||
|
</aggregate>
|
13
doc/api_samples/os-aggregates/aggregates-get-resp.json
Normal file
13
doc/api_samples/os-aggregates/aggregates-get-resp.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"aggregate": {
|
||||||
|
"availability_zone": "nova",
|
||||||
|
"created_at": "2012-10-01T18:50:27.048605",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"hosts": [],
|
||||||
|
"id": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"name": "name",
|
||||||
|
"updated_at": null
|
||||||
|
}
|
||||||
|
}
|
12
doc/api_samples/os-aggregates/aggregates-get-resp.xml
Normal file
12
doc/api_samples/os-aggregates/aggregates-get-resp.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregate>
|
||||||
|
<name>name</name>
|
||||||
|
<availability_zone>nova</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>2012-10-01 18:50:34.764838</created_at>
|
||||||
|
<updated_at>None</updated_at>
|
||||||
|
<hosts/>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
<metadata/>
|
||||||
|
</aggregate>
|
15
doc/api_samples/os-aggregates/aggregates-list-get-resp.json
Normal file
15
doc/api_samples/os-aggregates/aggregates-list-get-resp.json
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"aggregates": [
|
||||||
|
{
|
||||||
|
"availability_zone": "nova",
|
||||||
|
"created_at": "2012-10-01T18:50:27.252869",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"hosts": [],
|
||||||
|
"id": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"name": "name",
|
||||||
|
"updated_at": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
14
doc/api_samples/os-aggregates/aggregates-list-get-resp.xml
Normal file
14
doc/api_samples/os-aggregates/aggregates-list-get-resp.xml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregates>
|
||||||
|
<aggregate>
|
||||||
|
<name>name</name>
|
||||||
|
<availability_zone>nova</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>2012-10-01 18:50:34.970677</created_at>
|
||||||
|
<updated_at>None</updated_at>
|
||||||
|
<hosts/>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
<metadata/>
|
||||||
|
</aggregate>
|
||||||
|
</aggregates>
|
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"aggregate": {
|
||||||
|
"availability_zone": "nova",
|
||||||
|
"created_at": "2012-10-01T18:50:26.604176",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"hosts": [],
|
||||||
|
"id": 1,
|
||||||
|
"metadata": {
|
||||||
|
"key": "value"
|
||||||
|
},
|
||||||
|
"name": "name",
|
||||||
|
"updated_at": null
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregate>
|
||||||
|
<name>name</name>
|
||||||
|
<availability_zone>nova</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>2012-10-01 18:50:34.313003</created_at>
|
||||||
|
<updated_at>None</updated_at>
|
||||||
|
<hosts/>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
<metadata>
|
||||||
|
<key>value</key>
|
||||||
|
</metadata>
|
||||||
|
</aggregate>
|
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"aggregate": {
|
||||||
|
"availability_zone": "nova",
|
||||||
|
"created_at": "2012-10-01T18:50:27.511586",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"hosts": [],
|
||||||
|
"id": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"name": "name",
|
||||||
|
"updated_at": null
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregate>
|
||||||
|
<name>name</name>
|
||||||
|
<availability_zone>nova</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>2012-10-01 18:50:35.236556</created_at>
|
||||||
|
<updated_at>None</updated_at>
|
||||||
|
<hosts/>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
<metadata/>
|
||||||
|
</aggregate>
|
16
doc/api_samples/os-aggregates/server-post-req.json
Normal file
16
doc/api_samples/os-aggregates/server-post-req.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"server" : {
|
||||||
|
"name" : "new-server-test",
|
||||||
|
"imageRef" : "http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b",
|
||||||
|
"flavorRef" : "http://openstack.example.com/openstack/flavors/1",
|
||||||
|
"metadata" : {
|
||||||
|
"My Server Name" : "Apache1"
|
||||||
|
},
|
||||||
|
"personality" : [
|
||||||
|
{
|
||||||
|
"path" : "/etc/banner.txt",
|
||||||
|
"contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
16
doc/api_samples/os-aggregates/server-post-resp.json
Normal file
16
doc/api_samples/os-aggregates/server-post-resp.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"server": {
|
||||||
|
"adminPass": "kWaKB9zfiMsq",
|
||||||
|
"id": "d261e7aa-50ea-45bb-827c-61bd94deb012",
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"href": "http://openstack.example.com/v2/openstack/servers/d261e7aa-50ea-45bb-827c-61bd94deb012",
|
||||||
|
"rel": "self"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"href": "http://openstack.example.com/openstack/servers/d261e7aa-50ea-45bb-827c-61bd94deb012",
|
||||||
|
"rel": "bookmark"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"add_host":
|
||||||
|
{
|
||||||
|
"host": "%(host_name)s"
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<add_host host="%(host_name)s" />
|
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"set_metadata":
|
||||||
|
{
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"key": "value"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<set_metadata>
|
||||||
|
<metadata>
|
||||||
|
<key>value</key>
|
||||||
|
</metadata>
|
||||||
|
</set_metadata>
|
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"aggregate":
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"availability_zone": "nova"
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<aggregate name="name" availability_zone="nova" />
|
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"aggregate": {
|
||||||
|
"availability_zone": "nova",
|
||||||
|
"created_at": "%(timestamp)s",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"id": %(aggregate_id)s,
|
||||||
|
"name": "name",
|
||||||
|
"updated_at": null
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregate>
|
||||||
|
<name>name</name>
|
||||||
|
<availability_zone>nova</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>%(timestamp)s</created_at>
|
||||||
|
<updated_at>None</updated_at>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>%(aggregate_id)s</id>
|
||||||
|
</aggregate>
|
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"remove_host":
|
||||||
|
{
|
||||||
|
"host": "%(host_name)s"
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<remove_host host="%(host_name)s" />
|
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"aggregate":
|
||||||
|
{
|
||||||
|
"name": "newname",
|
||||||
|
"availability_zone": "nova2"
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<aggregate name="newname" availability_zone="nova2" />
|
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"aggregate": {
|
||||||
|
"availability_zone": "nova2",
|
||||||
|
"created_at": "%(timestamp)s",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"hosts": [],
|
||||||
|
"id": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"name": "newname",
|
||||||
|
"updated_at": "%(timestamp)s"
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregate>
|
||||||
|
<name>newname</name>
|
||||||
|
<availability_zone>nova2</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>%(timestamp)s</created_at>
|
||||||
|
<updated_at>%(timestamp)s</updated_at>
|
||||||
|
<hosts/>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
<metadata/>
|
||||||
|
</aggregate>
|
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"aggregate": {
|
||||||
|
"availability_zone": "nova",
|
||||||
|
"created_at": "%(timestamp)s",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"hosts": [
|
||||||
|
"%(compute_host)s"
|
||||||
|
],
|
||||||
|
"id": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"name": "name",
|
||||||
|
"updated_at": null
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregate>
|
||||||
|
<name>name</name>
|
||||||
|
<availability_zone>nova</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>%(timestamp)s</created_at>
|
||||||
|
<updated_at>None</updated_at>
|
||||||
|
<hosts>
|
||||||
|
<host>%(compute_host)s</host>
|
||||||
|
</hosts>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
<metadata/>
|
||||||
|
</aggregate>
|
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"aggregate": {
|
||||||
|
"availability_zone": "nova",
|
||||||
|
"created_at": "%(timestamp)s",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"hosts": [],
|
||||||
|
"id": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"name": "name",
|
||||||
|
"updated_at": null
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregate>
|
||||||
|
<name>name</name>
|
||||||
|
<availability_zone>nova</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>%(timestamp)s</created_at>
|
||||||
|
<updated_at>None</updated_at>
|
||||||
|
<hosts/>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
<metadata/>
|
||||||
|
</aggregate>
|
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"aggregates": [
|
||||||
|
{
|
||||||
|
"availability_zone": "nova",
|
||||||
|
"created_at": "%(timestamp)s",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"hosts": [],
|
||||||
|
"id": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"name": "name",
|
||||||
|
"updated_at": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregates>
|
||||||
|
<aggregate>
|
||||||
|
<name>name</name>
|
||||||
|
<availability_zone>nova</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>%(timestamp)s</created_at>
|
||||||
|
<updated_at>None</updated_at>
|
||||||
|
<hosts/>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
<metadata/>
|
||||||
|
</aggregate>
|
||||||
|
</aggregates>
|
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"aggregate": {
|
||||||
|
"availability_zone": "nova",
|
||||||
|
"created_at": "%(timestamp)s",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"hosts": [],
|
||||||
|
"id": 1,
|
||||||
|
"metadata": {
|
||||||
|
"key": "value"
|
||||||
|
},
|
||||||
|
"name": "name",
|
||||||
|
"updated_at": null
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregate>
|
||||||
|
<name>name</name>
|
||||||
|
<availability_zone>nova</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>%(timestamp)s</created_at>
|
||||||
|
<updated_at>None</updated_at>
|
||||||
|
<hosts/>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
<metadata>
|
||||||
|
<key>value</key>
|
||||||
|
</metadata>
|
||||||
|
</aggregate>
|
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"aggregate": {
|
||||||
|
"availability_zone": "nova",
|
||||||
|
"created_at": "%(timestamp)s",
|
||||||
|
"deleted": false,
|
||||||
|
"deleted_at": null,
|
||||||
|
"hosts": [],
|
||||||
|
"id": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"name": "name",
|
||||||
|
"updated_at": null
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<aggregate>
|
||||||
|
<name>name</name>
|
||||||
|
<availability_zone>nova</availability_zone>
|
||||||
|
<deleted>False</deleted>
|
||||||
|
<created_at>%(timestamp)s</created_at>
|
||||||
|
<updated_at>None</updated_at>
|
||||||
|
<hosts/>
|
||||||
|
<deleted_at>None</deleted_at>
|
||||||
|
<id>1</id>
|
||||||
|
<metadata/>
|
||||||
|
</aggregate>
|
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"server" : {
|
||||||
|
"name" : "new-server-test",
|
||||||
|
"imageRef" : "%(host)s/openstack/images/%(image_id)s",
|
||||||
|
"flavorRef" : "%(host)s/openstack/flavors/1",
|
||||||
|
"metadata" : {
|
||||||
|
"My Server Name" : "Apache1"
|
||||||
|
},
|
||||||
|
"personality" : [
|
||||||
|
{
|
||||||
|
"path" : "/etc/banner.txt",
|
||||||
|
"contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<server xmlns="http://docs.openstack.org/compute/api/v1.1" imageRef="%(host)s/openstack/images/%(image_id)s" flavorRef="%(host)s/openstack/flavors/1" name="new-server-test">
|
||||||
|
<metadata>
|
||||||
|
<meta key="My Server Name">Apache1</meta>
|
||||||
|
</metadata>
|
||||||
|
<personality>
|
||||||
|
<file path="/etc/banner.txt">
|
||||||
|
ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp
|
||||||
|
dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k
|
||||||
|
IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs
|
||||||
|
c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g
|
||||||
|
QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo
|
||||||
|
ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv
|
||||||
|
dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy
|
||||||
|
c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6
|
||||||
|
b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
|
||||||
|
</file>
|
||||||
|
</personality>
|
||||||
|
</server>
|
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"server": {
|
||||||
|
"adminPass": "%(password)s",
|
||||||
|
"id": "%(id)s",
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"href": "%(host)s/v2/openstack/servers/%(uuid)s",
|
||||||
|
"rel": "self"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"href": "%(host)s/openstack/servers/%(uuid)s",
|
||||||
|
"rel": "bookmark"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<server xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" id="%(id)s" adminPass="%(password)s">
|
||||||
|
<metadata/>
|
||||||
|
<atom:link href="%(host)s/v2/openstack/servers/%(uuid)s" rel="self"/>
|
||||||
|
<atom:link href="%(host)s/openstack/servers/%(uuid)s" rel="bookmark"/>
|
||||||
|
</server>
|
@@ -71,6 +71,8 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
|||||||
if not data:
|
if not data:
|
||||||
return {}
|
return {}
|
||||||
if self.ctype == 'json':
|
if self.ctype == 'json':
|
||||||
|
# NOTE(vish): allow non-quoted replacements to survive json
|
||||||
|
data = re.sub(r'([^"])%\((.+)\)s([^"])', r'\1"%(int:\2)s"\3', data)
|
||||||
return jsonutils.loads(data)
|
return jsonutils.loads(data)
|
||||||
else:
|
else:
|
||||||
def to_dict(node):
|
def to_dict(node):
|
||||||
@@ -163,11 +165,20 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
|||||||
# NOTE(vish): escape stuff for regex
|
# NOTE(vish): escape stuff for regex
|
||||||
for char in '[]<>?':
|
for char in '[]<>?':
|
||||||
expected = expected.replace(char, '\\%s' % char)
|
expected = expected.replace(char, '\\%s' % char)
|
||||||
|
# NOTE(vish): special handling of subs that are not quoted. We are
|
||||||
|
# expecting an int but we had to pass in a string
|
||||||
|
# so the json would parse properly.
|
||||||
|
if expected.startswith("%(int:"):
|
||||||
|
result = str(result)
|
||||||
|
expected = expected.replace('int:', '')
|
||||||
expected = expected % subs
|
expected = expected % subs
|
||||||
match = re.match(expected, result)
|
match = re.match(expected, result)
|
||||||
if not match:
|
if not match:
|
||||||
raise NoMatch(_('Values do not match:\n'
|
raise NoMatch(_('Values do not match:\n'
|
||||||
'%(expected)s\n%(result)s') % locals())
|
'%(expected)s\n%(result)s') % locals())
|
||||||
|
try:
|
||||||
|
matched_value = match.group('id')
|
||||||
|
except IndexError:
|
||||||
if match.groups():
|
if match.groups():
|
||||||
matched_value = match.groups()[0]
|
matched_value = match.groups()[0]
|
||||||
else:
|
else:
|
||||||
@@ -201,13 +212,15 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
|||||||
else:
|
else:
|
||||||
text = r'[^<]*'
|
text = r'[^<]*'
|
||||||
return {
|
return {
|
||||||
'timestamp': '[0-9]{4}-[0,1][0-9]-[0-3][0-9]T'
|
# NOTE(treinish): Could result in a false positive, but it
|
||||||
'[0-9]{2}:[0-9]{2}:[0-9]{2}'
|
# shouldn't be an issue for this case.
|
||||||
'(Z|(\+|-)[0-9]{2}:[0-9]{2})',
|
'timestamp': '\d{4}-[0,1]\d-[0-3]\d[ ,T]'
|
||||||
|
'\d{2}:\d{2}:\d{2}'
|
||||||
|
'(Z|(\+|-)\d{2}:\d{2}|\.\d{6})',
|
||||||
'password': '[0-9a-zA-Z]{1,12}',
|
'password': '[0-9a-zA-Z]{1,12}',
|
||||||
'ip': '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}',
|
'ip': '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}',
|
||||||
'ip6': '([0-9a-zA-Z]{1,4}:){1,7}:?[0-9a-zA-Z]',
|
'ip6': '([0-9a-zA-Z]{1,4}:){1,7}:?[0-9a-zA-Z]',
|
||||||
'id': '([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}'
|
'id': '(?P<id>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}'
|
||||||
'-[0-9a-f]{4}-[0-9a-f]{12})',
|
'-[0-9a-f]{4}-[0-9a-f]{12})',
|
||||||
'uuid': '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}'
|
'uuid': '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}'
|
||||||
'-[0-9a-f]{4}-[0-9a-f]{12}',
|
'-[0-9a-f]{4}-[0-9a-f]{12}',
|
||||||
@@ -1060,3 +1073,75 @@ class CloudPipeSampleJsonTest(ApiSampleTestBase):
|
|||||||
|
|
||||||
class CloudPipeSampleXmlTest(CloudPipeSampleJsonTest):
|
class CloudPipeSampleXmlTest(CloudPipeSampleJsonTest):
|
||||||
ctype = "xml"
|
ctype = "xml"
|
||||||
|
|
||||||
|
|
||||||
|
class AggregatesSampleJsonTest(ServersSampleBase):
|
||||||
|
extension_name = "nova.api.openstack.compute.contrib" + \
|
||||||
|
".aggregates.Aggregates"
|
||||||
|
|
||||||
|
def test_aggregate_create(self):
|
||||||
|
subs = {
|
||||||
|
"aggregate_id": '(?P<id>\d+)'
|
||||||
|
}
|
||||||
|
response = self._do_post('os-aggregates', 'aggregate-post-req', subs)
|
||||||
|
self.assertEqual(response.status, 200)
|
||||||
|
subs.update(self._get_regexes())
|
||||||
|
return self._verify_response('aggregate-post-resp', subs, response)
|
||||||
|
|
||||||
|
def test_list_aggregates(self):
|
||||||
|
self.test_aggregate_create()
|
||||||
|
response = self._do_get('os-aggregates')
|
||||||
|
subs = self._get_regexes()
|
||||||
|
return self._verify_response('aggregates-list-get-resp',
|
||||||
|
subs, response)
|
||||||
|
|
||||||
|
def test_aggregate_get(self):
|
||||||
|
agg_id = self.test_aggregate_create()
|
||||||
|
response = self._do_get('os-aggregates/%s' % agg_id)
|
||||||
|
subs = self._get_regexes()
|
||||||
|
return self._verify_response('aggregates-get-resp', subs, response)
|
||||||
|
|
||||||
|
def test_add_metadata(self):
|
||||||
|
agg_id = self.test_aggregate_create()
|
||||||
|
response = self._do_post('os-aggregates/%s/action' % agg_id,
|
||||||
|
'aggregate-metadata-post-req',
|
||||||
|
{'action': 'set_metadata'})
|
||||||
|
subs = self._get_regexes()
|
||||||
|
return self._verify_response('aggregates-metadata-post-resp',
|
||||||
|
subs, response)
|
||||||
|
|
||||||
|
def test_add_host(self):
|
||||||
|
aggregate_id = self.test_aggregate_create()
|
||||||
|
subs = {
|
||||||
|
"action": "add_host",
|
||||||
|
"host_name": self.compute.host,
|
||||||
|
}
|
||||||
|
response = self._do_post('os-aggregates/%s/action' % aggregate_id,
|
||||||
|
'aggregate-add-host-post-req', subs)
|
||||||
|
subs.update(self._get_regexes())
|
||||||
|
return self._verify_response('aggregates-add-host-post-resp',
|
||||||
|
subs, response)
|
||||||
|
|
||||||
|
def test_remove_host(self):
|
||||||
|
self.test_add_host()
|
||||||
|
subs = {
|
||||||
|
"action": "add_host",
|
||||||
|
"host_name": self.compute.host,
|
||||||
|
}
|
||||||
|
response = self._do_post('os-aggregates/1/action',
|
||||||
|
'aggregate-remove-host-post-req', subs)
|
||||||
|
subs.update(self._get_regexes())
|
||||||
|
return self._verify_response('aggregates-remove-host-post-resp',
|
||||||
|
subs, response)
|
||||||
|
|
||||||
|
def test_update_aggregate(self):
|
||||||
|
aggregate_id = self.test_aggregate_create()
|
||||||
|
response = self._do_put('os-aggregates/%s' % aggregate_id,
|
||||||
|
'aggregate-update-post-req', {})
|
||||||
|
subs = self._get_regexes()
|
||||||
|
return self._verify_response('aggregate-update-post-resp',
|
||||||
|
subs, response)
|
||||||
|
|
||||||
|
|
||||||
|
class AggregatesSampleXmlTest(AggregatesSampleJsonTest):
|
||||||
|
ctype = 'xml'
|
||||||
|
Reference in New Issue
Block a user