diff --git a/doc/api_samples/all_extensions/server-action-changepassword.json b/doc/api_samples/all_extensions/server-action-changepassword.json
new file mode 100644
index 000000000000..421a4aa939a9
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-changepassword.json
@@ -0,0 +1,5 @@
+{
+ "changePassword" : {
+ "adminPass" : "foo"
+ }
+}
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-changepassword.xml b/doc/api_samples/all_extensions/server-action-changepassword.xml
new file mode 100644
index 000000000000..4326e016175f
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-changepassword.xml
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-confirmresize.json b/doc/api_samples/all_extensions/server-action-confirmresize.json
new file mode 100644
index 000000000000..2940d2a3925a
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-confirmresize.json
@@ -0,0 +1,3 @@
+{
+ "confirmResize" : null
+}
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-confirmresize.xml b/doc/api_samples/all_extensions/server-action-confirmresize.xml
new file mode 100644
index 000000000000..ffad7f16ae1a
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-confirmresize.xml
@@ -0,0 +1,3 @@
+
+
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-createimage.json b/doc/api_samples/all_extensions/server-action-createimage.json
new file mode 100644
index 000000000000..4cf0bb47ca6a
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-createimage.json
@@ -0,0 +1,8 @@
+{
+ "createImage" : {
+ "name" : "foo-image",
+ "metadata": {
+ "myvar": "foobar"
+ }
+ }
+}
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-createimage.xml b/doc/api_samples/all_extensions/server-action-createimage.xml
new file mode 100644
index 000000000000..faa6ae766089
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-createimage.xml
@@ -0,0 +1,8 @@
+
+
+
+ foobar
+
+
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-reboot.json b/doc/api_samples/all_extensions/server-action-reboot.json
new file mode 100644
index 000000000000..3920ea7285e0
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-reboot.json
@@ -0,0 +1,5 @@
+{
+ "reboot" : {
+ "type" : "SOFT"
+ }
+}
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-reboot.xml b/doc/api_samples/all_extensions/server-action-reboot.xml
new file mode 100644
index 000000000000..b36d35801f7c
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-reboot.xml
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-rebuild-resp.json b/doc/api_samples/all_extensions/server-action-rebuild-resp.json
new file mode 100644
index 000000000000..04ee1d4fb562
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-rebuild-resp.json
@@ -0,0 +1,56 @@
+{
+ "server": {
+ "OS-DCF:diskConfig": "AUTO",
+ "accessIPv4": "1.2.3.4",
+ "accessIPv6": "fe80::100",
+ "addresses": {
+ "private": [
+ {
+ "addr": "192.168.0.3",
+ "version": 4
+ }
+ ]
+ },
+ "adminPass": "seekr3t",
+ "created": "2012-09-25T13:36:08Z",
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "href": "http://openstack.example.com/openstack/flavors/1",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "hostId": "935dcd1019fd43814a1d2a6e9b320dcac352d3a02c69f8be7ba41002",
+ "id": "27568e59-cfb7-4283-a00e-4af933f2d539",
+ "image": {
+ "id": "70a599e0-31e7-49b7-b260-868f441e862b",
+ "links": [
+ {
+ "href": "http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "links": [
+ {
+ "href": "http://openstack.example.com/v2/openstack/servers/27568e59-cfb7-4283-a00e-4af933f2d539",
+ "rel": "self"
+ },
+ {
+ "href": "http://openstack.example.com/openstack/servers/27568e59-cfb7-4283-a00e-4af933f2d539",
+ "rel": "bookmark"
+ }
+ ],
+ "metadata": {
+ "meta var": "meta val"
+ },
+ "name": "foobar",
+ "progress": 0,
+ "status": "ACTIVE",
+ "tenant_id": "openstack",
+ "updated": "2012-09-25T13:36:09Z",
+ "user_id": "fake"
+ }
+}
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-rebuild-resp.xml b/doc/api_samples/all_extensions/server-action-rebuild-resp.xml
new file mode 100644
index 000000000000..c183f9e696b2
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-rebuild-resp.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+ Apache1
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-rebuild.json b/doc/api_samples/all_extensions/server-action-rebuild.json
new file mode 100644
index 000000000000..4a79989f4da2
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-rebuild.json
@@ -0,0 +1,18 @@
+{
+ "rebuild" : {
+ "imageRef" : "http://openstack.example.com/v2/32278/images/70a599e0-31e7-49b7-b260-868f441e862b",
+ "name" : "foobar",
+ "adminPass" : "seekr3t",
+ "accessIPv4" : "1.2.3.4",
+ "accessIPv6" : "fe80::100",
+ "metadata" : {
+ "meta var" : "meta val"
+ },
+ "personality" : [
+ {
+ "path" : "/etc/banner.txt",
+ "contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-rebuild.xml b/doc/api_samples/all_extensions/server-action-rebuild.xml
new file mode 100644
index 000000000000..d39b9d8a38b3
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-rebuild.xml
@@ -0,0 +1,25 @@
+
+
+
+ Apache1
+
+
+
+ ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp
+ dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k
+ IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs
+ c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g
+ QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo
+ ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv
+ dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy
+ c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6
+ b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
+
+
+
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-resize.json b/doc/api_samples/all_extensions/server-action-resize.json
new file mode 100644
index 000000000000..bdaa37a17633
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-resize.json
@@ -0,0 +1,5 @@
+{
+ "resize" : {
+ "flavorRef" : "2"
+ }
+}
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-resize.xml b/doc/api_samples/all_extensions/server-action-resize.xml
new file mode 100644
index 000000000000..8dfb53c6a80b
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-resize.xml
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-revertresize.json b/doc/api_samples/all_extensions/server-action-revertresize.json
new file mode 100644
index 000000000000..76c460242cc2
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-revertresize.json
@@ -0,0 +1,3 @@
+{
+ "revertResize" : null
+}
\ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-action-revertresize.xml b/doc/api_samples/all_extensions/server-action-revertresize.xml
new file mode 100644
index 000000000000..7981753e754e
--- /dev/null
+++ b/doc/api_samples/all_extensions/server-action-revertresize.xml
@@ -0,0 +1,3 @@
+
+
\ No newline at end of file
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-changepassword.json.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-changepassword.json.tpl
new file mode 100644
index 000000000000..da615718fe20
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-changepassword.json.tpl
@@ -0,0 +1,5 @@
+{
+ "changePassword" : {
+ "adminPass" : "%(password)s"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-changepassword.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-changepassword.xml.tpl
new file mode 100644
index 000000000000..6c343024e2ca
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-changepassword.xml.tpl
@@ -0,0 +1,4 @@
+
+
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-confirmresize.json.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-confirmresize.json.tpl
new file mode 100644
index 000000000000..432f6126e906
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-confirmresize.json.tpl
@@ -0,0 +1,3 @@
+{
+ "confirmResize" : null
+}
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-confirmresize.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-confirmresize.xml.tpl
new file mode 100644
index 000000000000..18f07bd67bb8
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-confirmresize.xml.tpl
@@ -0,0 +1,3 @@
+
+
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-createimage.json.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-createimage.json.tpl
new file mode 100644
index 000000000000..0b9e39ffb32e
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-createimage.json.tpl
@@ -0,0 +1,9 @@
+{
+ "createImage" : {
+ "name" : "%(name)s",
+ "metadata": {
+ "%(meta_var)s": "%(meta_val)s"
+ }
+ }
+}
+
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-createimage.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-createimage.xml.tpl
new file mode 100644
index 000000000000..aa1eccf8a5c9
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-createimage.xml.tpl
@@ -0,0 +1,8 @@
+
+
+
+ %(meta_val)s
+
+
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-reboot.json.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-reboot.json.tpl
new file mode 100644
index 000000000000..4c018975e4ab
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-reboot.json.tpl
@@ -0,0 +1,5 @@
+{
+ "reboot" : {
+ "type" : "%(type)s"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-reboot.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-reboot.xml.tpl
new file mode 100644
index 000000000000..d4cfe198c744
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-reboot.xml.tpl
@@ -0,0 +1,4 @@
+
+
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-rebuild-resp.json.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-rebuild-resp.json.tpl
new file mode 100644
index 000000000000..884be7549f22
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-rebuild-resp.json.tpl
@@ -0,0 +1,56 @@
+{
+ "server": {
+ "OS-DCF:diskConfig": "AUTO",
+ "accessIPv4": "%(ip)s",
+ "accessIPv6": "%(ip6)s",
+ "addresses": {
+ "private": [
+ {
+ "addr": "%(ip)s",
+ "version": 4
+ }
+ ]
+ },
+ "adminPass": "%(password)s",
+ "created": "%(timestamp)s",
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "href": "%(host)s/openstack/flavors/1",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "hostId": "%(hostid)s",
+ "id": "%(uuid)s",
+ "image": {
+ "id": "%(uuid)s",
+ "links": [
+ {
+ "href": "%(host)s/openstack/images/%(uuid)s",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "links": [
+ {
+ "href": "%(host)s/v2/openstack/servers/%(uuid)s",
+ "rel": "self"
+ },
+ {
+ "href": "%(host)s/openstack/servers/%(uuid)s",
+ "rel": "bookmark"
+ }
+ ],
+ "metadata": {
+ "meta var": "meta val"
+ },
+ "name": "%(name)s",
+ "progress": 0,
+ "status": "ACTIVE",
+ "tenant_id": "openstack",
+ "updated": "%(timestamp)s",
+ "user_id": "fake"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-rebuild-resp.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-rebuild-resp.xml.tpl
new file mode 100644
index 000000000000..105e19fdd520
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-rebuild-resp.xml.tpl
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+ Apache1
+
+
+
+
+
+
+
+
+
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-rebuild.json.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-rebuild.json.tpl
new file mode 100644
index 000000000000..273906a3490b
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-rebuild.json.tpl
@@ -0,0 +1,18 @@
+{
+ "rebuild" : {
+ "imageRef" : "%(host)s/v2/32278/images/%(uuid)s",
+ "name" : "%(name)s",
+ "adminPass" : "%(pass)s",
+ "accessIPv4" : "%(ip)s",
+ "accessIPv6" : "%(ip6)s",
+ "metadata" : {
+ "meta var" : "meta val"
+ },
+ "personality" : [
+ {
+ "path" : "/etc/banner.txt",
+ "contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
+ }
+ ]
+ }
+}
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-rebuild.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-rebuild.xml.tpl
new file mode 100644
index 000000000000..84f0b9896140
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-rebuild.xml.tpl
@@ -0,0 +1,25 @@
+
+
+
+ Apache1
+
+
+
+ ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp
+ dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k
+ IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs
+ c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g
+ QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo
+ ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv
+ dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy
+ c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6
+ b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
+
+
+
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-resize.json.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-resize.json.tpl
new file mode 100644
index 000000000000..468a88da243c
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-resize.json.tpl
@@ -0,0 +1,5 @@
+{
+ "resize" : {
+ "flavorRef" : "%(id)s"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-resize.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-resize.xml.tpl
new file mode 100644
index 000000000000..cbe49ea59a3f
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-resize.xml.tpl
@@ -0,0 +1,4 @@
+
+
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-revertresize.json.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-revertresize.json.tpl
new file mode 100644
index 000000000000..2ddf6e5ab09e
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-revertresize.json.tpl
@@ -0,0 +1,3 @@
+{
+ "revertResize" : null
+}
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-action-revertresize.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/server-action-revertresize.xml.tpl
new file mode 100644
index 000000000000..5c13bbdc0c9f
--- /dev/null
+++ b/nova/tests/integrated/api_samples/all_extensions/server-action-revertresize.xml.tpl
@@ -0,0 +1,3 @@
+
+
diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py
index a59b62eade8b..2df54326510f 100644
--- a/nova/tests/integrated/test_api_samples.py
+++ b/nova/tests/integrated/test_api_samples.py
@@ -598,6 +598,14 @@ class ServersActionsXmlTest(ServersActionsJsonTest):
ctype = 'xml'
+class ServersActionsAllJsonTest(ServersActionsJsonTest):
+ all_extensions = True
+
+
+class ServersActionsAllXmlTest(ServersActionsXmlTest):
+ all_extensions = True
+
+
class ServerStartStopJsonTest(ServersSampleBase):
extension_name = "nova.api.openstack.compute.contrib" + \
".server_start_stop.Server_start_stop"