diff options
| author | Matthew Treinish <treinish@linux.vnet.ibm.com> | 2012-09-14 09:52:05 -0400 |
|---|---|---|
| committer | Matthew Treinish <treinish@linux.vnet.ibm.com> | 2012-10-01 14:51:04 -0400 |
| commit | ce2ba8fae83dbee8e36eda69d9f4c82ad67838b7 (patch) | |
| tree | 4c276a8f180499d14d1fbe48f4d3d63d3f392842 | |
| parent | 878dd9c0e29aeff4b485c28c63ba6c607fa7ca10 (diff) | |
| download | nova-ce2ba8fae83dbee8e36eda69d9f4c82ad67838b7.tar.gz nova-ce2ba8fae83dbee8e36eda69d9f4c82ad67838b7.tar.xz nova-ce2ba8fae83dbee8e36eda69d9f4c82ad67838b7.zip | |
Add aggregates extension to API samples test.
Change-Id: I8f0f5b022795dc1d766e585cab8fe5f8445a3722
Signed-off-by: Matthew Treinish <treinish@linux.vnet.ibm.com>
55 files changed, 644 insertions, 6 deletions
diff --git a/doc/api_samples/os-aggregates/aggregate-add-host-post-req.json b/doc/api_samples/os-aggregates/aggregate-add-host-post-req.json new file mode 100644 index 000000000..cd6fc6e08 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-add-host-post-req.json @@ -0,0 +1,6 @@ +{ + "add_host": + { + "host": "581d29b9e3504d8a895caddb13839b15" + } +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-add-host-post-req.xml b/doc/api_samples/os-aggregates/aggregate-add-host-post-req.xml new file mode 100644 index 000000000..5f48f043d --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-add-host-post-req.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<add_host host="7c9e00dbca5e4fb88538b021c0f933a5" />
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-metadata-post-req.json b/doc/api_samples/os-aggregates/aggregate-metadata-post-req.json new file mode 100644 index 000000000..7331e06a8 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-metadata-post-req.json @@ -0,0 +1,9 @@ +{ + "set_metadata": + { + "metadata": + { + "key": "value" + } + } +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-metadata-post-req.xml b/doc/api_samples/os-aggregates/aggregate-metadata-post-req.xml new file mode 100644 index 000000000..d9b935fd4 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-metadata-post-req.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<set_metadata> + <metadata> + <key>value</key> + </metadata> +</set_metadata>
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-post-req.json b/doc/api_samples/os-aggregates/aggregate-post-req.json new file mode 100644 index 000000000..82272c293 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-post-req.json @@ -0,0 +1,7 @@ +{ + "aggregate": + { + "name": "name", + "availability_zone": "nova" + } +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-post-req.xml b/doc/api_samples/os-aggregates/aggregate-post-req.xml new file mode 100644 index 000000000..d25f5f848 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-post-req.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<aggregate name="name" availability_zone="nova" />
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-post-resp.json b/doc/api_samples/os-aggregates/aggregate-post-resp.json new file mode 100644 index 000000000..6dd939b36 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-post-resp.json @@ -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 + } +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-post-resp.xml b/doc/api_samples/os-aggregates/aggregate-post-resp.xml new file mode 100644 index 000000000..544271bdc --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-post-resp.xml @@ -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>
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-remove-host-post-req.json b/doc/api_samples/os-aggregates/aggregate-remove-host-post-req.json new file mode 100644 index 000000000..e5165cbab --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-remove-host-post-req.json @@ -0,0 +1,6 @@ +{ + "remove_host": + { + "host": "581d29b9e3504d8a895caddb13839b15" + } +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-remove-host-post-req.xml b/doc/api_samples/os-aggregates/aggregate-remove-host-post-req.xml new file mode 100644 index 000000000..87e5d64f9 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-remove-host-post-req.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<remove_host host="7c9e00dbca5e4fb88538b021c0f933a5" />
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-update-post-req.json b/doc/api_samples/os-aggregates/aggregate-update-post-req.json new file mode 100644 index 000000000..0af1a37a4 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-update-post-req.json @@ -0,0 +1,7 @@ +{ + "aggregate": + { + "name": "newname", + "availability_zone": "nova2" + } +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-update-post-req.xml b/doc/api_samples/os-aggregates/aggregate-update-post-req.xml new file mode 100644 index 000000000..1eb9c38fd --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-update-post-req.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<aggregate name="newname" availability_zone="nova2" />
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-update-post-resp.json b/doc/api_samples/os-aggregates/aggregate-update-post-resp.json new file mode 100644 index 000000000..81869e730 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-update-post-resp.json @@ -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" + } +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregate-update-post-resp.xml b/doc/api_samples/os-aggregates/aggregate-update-post-resp.xml new file mode 100644 index 000000000..ad9498aa0 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregate-update-post-resp.xml @@ -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>
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregates-add-host-post-resp.json b/doc/api_samples/os-aggregates/aggregates-add-host-post-resp.json new file mode 100644 index 000000000..518f4176a --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregates-add-host-post-resp.json @@ -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 + } +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregates-add-host-post-resp.xml b/doc/api_samples/os-aggregates/aggregates-add-host-post-resp.xml new file mode 100644 index 000000000..a4c9de5fd --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregates-add-host-post-resp.xml @@ -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>
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregates-get-resp.json b/doc/api_samples/os-aggregates/aggregates-get-resp.json new file mode 100644 index 000000000..cde446e51 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregates-get-resp.json @@ -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 + } +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregates-get-resp.xml b/doc/api_samples/os-aggregates/aggregates-get-resp.xml new file mode 100644 index 000000000..be1349bd2 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregates-get-resp.xml @@ -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>
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregates-list-get-resp.json b/doc/api_samples/os-aggregates/aggregates-list-get-resp.json new file mode 100644 index 000000000..75b412b53 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregates-list-get-resp.json @@ -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 + } + ] +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregates-list-get-resp.xml b/doc/api_samples/os-aggregates/aggregates-list-get-resp.xml new file mode 100644 index 000000000..c5590855b --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregates-list-get-resp.xml @@ -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>
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregates-metadata-post-resp.json b/doc/api_samples/os-aggregates/aggregates-metadata-post-resp.json new file mode 100644 index 000000000..dc4806a4f --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregates-metadata-post-resp.json @@ -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 + } +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregates-metadata-post-resp.xml b/doc/api_samples/os-aggregates/aggregates-metadata-post-resp.xml new file mode 100644 index 000000000..7eeefb8b7 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregates-metadata-post-resp.xml @@ -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>
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregates-remove-host-post-resp.json b/doc/api_samples/os-aggregates/aggregates-remove-host-post-resp.json new file mode 100644 index 000000000..497fcb7fb --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregates-remove-host-post-resp.json @@ -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 + } +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/aggregates-remove-host-post-resp.xml b/doc/api_samples/os-aggregates/aggregates-remove-host-post-resp.xml new file mode 100644 index 000000000..dc8a55330 --- /dev/null +++ b/doc/api_samples/os-aggregates/aggregates-remove-host-post-resp.xml @@ -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>
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/server-post-req.json b/doc/api_samples/os-aggregates/server-post-req.json new file mode 100644 index 000000000..d88eb4122 --- /dev/null +++ b/doc/api_samples/os-aggregates/server-post-req.json @@ -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==" + } + ] + } +}
\ No newline at end of file diff --git a/doc/api_samples/os-aggregates/server-post-resp.json b/doc/api_samples/os-aggregates/server-post-resp.json new file mode 100644 index 000000000..0eba66ae6 --- /dev/null +++ b/doc/api_samples/os-aggregates/server-post-resp.json @@ -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" + } + ] + } +}
\ No newline at end of file diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-add-host-post-req.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-add-host-post-req.json.tpl new file mode 100644 index 000000000..2a84101a1 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-add-host-post-req.json.tpl @@ -0,0 +1,6 @@ +{ + "add_host": + { + "host": "%(host_name)s" + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-add-host-post-req.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-add-host-post-req.xml.tpl new file mode 100644 index 000000000..4454134ef --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-add-host-post-req.xml.tpl @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<add_host host="%(host_name)s" /> diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-metadata-post-req.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-metadata-post-req.json.tpl new file mode 100644 index 000000000..63a2921ca --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-metadata-post-req.json.tpl @@ -0,0 +1,9 @@ +{ + "set_metadata": + { + "metadata": + { + "key": "value" + } + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-metadata-post-req.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-metadata-post-req.xml.tpl new file mode 100644 index 000000000..72b1e742a --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-metadata-post-req.xml.tpl @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<set_metadata> + <metadata> + <key>value</key> + </metadata> +</set_metadata> diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-post-req.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-post-req.json.tpl new file mode 100644 index 000000000..fc806061e --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-post-req.json.tpl @@ -0,0 +1,7 @@ +{ + "aggregate": + { + "name": "name", + "availability_zone": "nova" + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-post-req.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-post-req.xml.tpl new file mode 100644 index 000000000..4931476ae --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-post-req.xml.tpl @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<aggregate name="name" availability_zone="nova" /> diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-post-resp.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-post-resp.json.tpl new file mode 100644 index 000000000..c5139950a --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-post-resp.json.tpl @@ -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 + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-post-resp.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-post-resp.xml.tpl new file mode 100644 index 000000000..f8603ac33 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-post-resp.xml.tpl @@ -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> diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-remove-host-post-req.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-remove-host-post-req.json.tpl new file mode 100644 index 000000000..66ecf30cd --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-remove-host-post-req.json.tpl @@ -0,0 +1,6 @@ +{ + "remove_host": + { + "host": "%(host_name)s" + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-remove-host-post-req.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-remove-host-post-req.xml.tpl new file mode 100644 index 000000000..bc2896835 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-remove-host-post-req.xml.tpl @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<remove_host host="%(host_name)s" /> diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-update-post-req.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-update-post-req.json.tpl new file mode 100644 index 000000000..55e4b0934 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-update-post-req.json.tpl @@ -0,0 +1,7 @@ +{ + "aggregate": + { + "name": "newname", + "availability_zone": "nova2" + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-update-post-req.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-update-post-req.xml.tpl new file mode 100644 index 000000000..04ce4fba5 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-update-post-req.xml.tpl @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<aggregate name="newname" availability_zone="nova2" /> diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-update-post-resp.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-update-post-resp.json.tpl new file mode 100644 index 000000000..89a48ee57 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-update-post-resp.json.tpl @@ -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" + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregate-update-post-resp.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregate-update-post-resp.xml.tpl new file mode 100644 index 000000000..3f72a0b43 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregate-update-post-resp.xml.tpl @@ -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> diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregates-add-host-post-resp.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregates-add-host-post-resp.json.tpl new file mode 100644 index 000000000..ee0ea6c3d --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregates-add-host-post-resp.json.tpl @@ -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 + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregates-add-host-post-resp.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregates-add-host-post-resp.xml.tpl new file mode 100644 index 000000000..82a0401ad --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregates-add-host-post-resp.xml.tpl @@ -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> diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregates-get-resp.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregates-get-resp.json.tpl new file mode 100644 index 000000000..8ce7d9c40 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregates-get-resp.json.tpl @@ -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 + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregates-get-resp.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregates-get-resp.xml.tpl new file mode 100644 index 000000000..56f0dd3e8 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregates-get-resp.xml.tpl @@ -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> diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregates-list-get-resp.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregates-list-get-resp.json.tpl new file mode 100644 index 000000000..f373f02f7 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregates-list-get-resp.json.tpl @@ -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 + } + ] +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregates-list-get-resp.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregates-list-get-resp.xml.tpl new file mode 100644 index 000000000..417b1016f --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregates-list-get-resp.xml.tpl @@ -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> diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregates-metadata-post-resp.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregates-metadata-post-resp.json.tpl new file mode 100644 index 000000000..058a1ecf5 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregates-metadata-post-resp.json.tpl @@ -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 + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregates-metadata-post-resp.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregates-metadata-post-resp.xml.tpl new file mode 100644 index 000000000..9bbd1f0bd --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregates-metadata-post-resp.xml.tpl @@ -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> diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregates-remove-host-post-resp.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregates-remove-host-post-resp.json.tpl new file mode 100644 index 000000000..8ce7d9c40 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregates-remove-host-post-resp.json.tpl @@ -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 + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/aggregates-remove-host-post-resp.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/aggregates-remove-host-post-resp.xml.tpl new file mode 100644 index 000000000..56f0dd3e8 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/aggregates-remove-host-post-resp.xml.tpl @@ -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> diff --git a/nova/tests/integrated/api_samples/os-aggregates/server-post-req.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/server-post-req.json.tpl new file mode 100644 index 000000000..d3916d1aa --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/server-post-req.json.tpl @@ -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==" + } + ] + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/server-post-req.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/server-post-req.xml.tpl new file mode 100644 index 000000000..f92614984 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/server-post-req.xml.tpl @@ -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> diff --git a/nova/tests/integrated/api_samples/os-aggregates/server-post-resp.json.tpl b/nova/tests/integrated/api_samples/os-aggregates/server-post-resp.json.tpl new file mode 100644 index 000000000..d5f030c87 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/server-post-resp.json.tpl @@ -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" + } + ] + } +} diff --git a/nova/tests/integrated/api_samples/os-aggregates/server-post-resp.xml.tpl b/nova/tests/integrated/api_samples/os-aggregates/server-post-resp.xml.tpl new file mode 100644 index 000000000..3bb13e69b --- /dev/null +++ b/nova/tests/integrated/api_samples/os-aggregates/server-post-resp.xml.tpl @@ -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> diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py index 1599bd9b8..5abcaaff7 100644 --- a/nova/tests/integrated/test_api_samples.py +++ b/nova/tests/integrated/test_api_samples.py @@ -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' |
