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:
parent
878dd9c0e2
commit
ce2ba8fae8
@ -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:
|
||||
return {}
|
||||
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)
|
||||
else:
|
||||
def to_dict(node):
|
||||
@ -163,13 +165,22 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
||||
# NOTE(vish): escape stuff for regex
|
||||
for char in '[]<>?':
|
||||
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
|
||||
match = re.match(expected, result)
|
||||
if not match:
|
||||
raise NoMatch(_('Values do not match:\n'
|
||||
'%(expected)s\n%(result)s') % locals())
|
||||
if match.groups():
|
||||
matched_value = match.groups()[0]
|
||||
try:
|
||||
matched_value = match.group('id')
|
||||
except IndexError:
|
||||
if match.groups():
|
||||
matched_value = match.groups()[0]
|
||||
else:
|
||||
if isinstance(expected, basestring):
|
||||
# NOTE(danms): Ignore whitespace in this comparison
|
||||
@ -201,13 +212,15 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
||||
else:
|
||||
text = r'[^<]*'
|
||||
return {
|
||||
'timestamp': '[0-9]{4}-[0,1][0-9]-[0-3][0-9]T'
|
||||
'[0-9]{2}:[0-9]{2}:[0-9]{2}'
|
||||
'(Z|(\+|-)[0-9]{2}:[0-9]{2})',
|
||||
# NOTE(treinish): Could result in a false positive, but it
|
||||
# shouldn't be an issue for this case.
|
||||
'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}',
|
||||
'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]',
|
||||
'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})',
|
||||
'uuid': '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}'
|
||||
'-[0-9a-f]{4}-[0-9a-f]{12}',
|
||||
@ -1060,3 +1073,75 @@ class CloudPipeSampleJsonTest(ApiSampleTestBase):
|
||||
|
||||
class CloudPipeSampleXmlTest(CloudPipeSampleJsonTest):
|
||||
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'
|
||||
|
Loading…
x
Reference in New Issue
Block a user