summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/api_samples/os-networks/network-add-req.json1
-rw-r--r--doc/api_samples/os-networks/network-add-req.xml1
-rw-r--r--doc/api_samples/os-networks/network-create-req.json6
-rw-r--r--doc/api_samples/os-networks/network-create-req.xml4
-rw-r--r--doc/api_samples/os-networks/network-create-resp.json32
-rw-r--r--doc/api_samples/os-networks/network-create-resp.xml31
-rw-r--r--doc/api_samples/os-networks/network-show-resp.json32
-rw-r--r--doc/api_samples/os-networks/network-show-resp.xml31
-rw-r--r--doc/api_samples/os-networks/networks-disassociate-req.json1
-rw-r--r--doc/api_samples/os-networks/networks-disassociate-req.xml1
-rw-r--r--doc/api_samples/os-networks/networks-list-resp.json64
-rw-r--r--doc/api_samples/os-networks/networks-list-resp.xml63
-rw-r--r--nova/manager.py10
-rw-r--r--nova/tests/integrated/api_samples/os-networks/network-add-req.json.tpl1
-rw-r--r--nova/tests/integrated/api_samples/os-networks/network-add-req.xml.tpl1
-rw-r--r--nova/tests/integrated/api_samples/os-networks/network-create-req.json.tpl6
-rw-r--r--nova/tests/integrated/api_samples/os-networks/network-create-req.xml.tpl4
-rw-r--r--nova/tests/integrated/api_samples/os-networks/network-create-resp.json.tpl32
-rw-r--r--nova/tests/integrated/api_samples/os-networks/network-create-resp.xml.tpl30
-rw-r--r--nova/tests/integrated/api_samples/os-networks/network-show-resp.json.tpl33
-rw-r--r--nova/tests/integrated/api_samples/os-networks/network-show-resp.xml.tpl31
-rw-r--r--nova/tests/integrated/api_samples/os-networks/networks-disassociate-req.json.tpl1
-rw-r--r--nova/tests/integrated/api_samples/os-networks/networks-disassociate-req.xml.tpl1
-rw-r--r--nova/tests/integrated/api_samples/os-networks/networks-list-resp.json.tpl64
-rw-r--r--nova/tests/integrated/api_samples/os-networks/networks-list-resp.xml.tpl63
-rw-r--r--nova/tests/integrated/test_api_samples.py58
26 files changed, 591 insertions, 11 deletions
diff --git a/doc/api_samples/os-networks/network-add-req.json b/doc/api_samples/os-networks/network-add-req.json
new file mode 100644
index 000000000..eca9c65b8
--- /dev/null
+++ b/doc/api_samples/os-networks/network-add-req.json
@@ -0,0 +1 @@
+{"id": "1"} \ No newline at end of file
diff --git a/doc/api_samples/os-networks/network-add-req.xml b/doc/api_samples/os-networks/network-add-req.xml
new file mode 100644
index 000000000..3ba873da3
--- /dev/null
+++ b/doc/api_samples/os-networks/network-add-req.xml
@@ -0,0 +1 @@
+<id>1</id> \ No newline at end of file
diff --git a/doc/api_samples/os-networks/network-create-req.json b/doc/api_samples/os-networks/network-create-req.json
new file mode 100644
index 000000000..422e77234
--- /dev/null
+++ b/doc/api_samples/os-networks/network-create-req.json
@@ -0,0 +1,6 @@
+{
+ "network": {
+ "label": "new net 111",
+ "cidr": "10.20.105.0/24"
+ }
+} \ No newline at end of file
diff --git a/doc/api_samples/os-networks/network-create-req.xml b/doc/api_samples/os-networks/network-create-req.xml
new file mode 100644
index 000000000..890d7bf3a
--- /dev/null
+++ b/doc/api_samples/os-networks/network-create-req.xml
@@ -0,0 +1,4 @@
+<network>
+ <label>new net 111</label>
+ <cidr>10.20.105.0/24</cidr>
+</network> \ No newline at end of file
diff --git a/doc/api_samples/os-networks/network-create-resp.json b/doc/api_samples/os-networks/network-create-resp.json
new file mode 100644
index 000000000..194694a77
--- /dev/null
+++ b/doc/api_samples/os-networks/network-create-resp.json
@@ -0,0 +1,32 @@
+{
+ "network": {
+ "bridge": null,
+ "bridge_interface": null,
+ "broadcast": "10.20.105.255",
+ "cidr": "10.20.105.0/24",
+ "cidr_v6": null,
+ "created_at": null,
+ "deleted": null,
+ "deleted_at": null,
+ "dhcp_start": "10.20.105.2",
+ "dns1": null,
+ "dns2": null,
+ "gateway": "10.20.105.1",
+ "gateway_v6": null,
+ "host": null,
+ "id": "668687f9-d724-4976-a6f4-a6fd3ad83da3",
+ "injected": null,
+ "label": "new net 111",
+ "multi_host": null,
+ "netmask": "255.255.255.0",
+ "netmask_v6": null,
+ "priority": null,
+ "project_id": null,
+ "rxtx_base": null,
+ "updated_at": null,
+ "vlan": null,
+ "vpn_private_address": null,
+ "vpn_public_address": null,
+ "vpn_public_port": null
+ }
+} \ No newline at end of file
diff --git a/doc/api_samples/os-networks/network-create-resp.xml b/doc/api_samples/os-networks/network-create-resp.xml
new file mode 100644
index 000000000..f638228ef
--- /dev/null
+++ b/doc/api_samples/os-networks/network-create-resp.xml
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<network>
+ <bridge>None</bridge>
+ <vpn_public_port>None</vpn_public_port>
+ <dhcp_start>10.20.105.2</dhcp_start>
+ <bridge_interface>None</bridge_interface>
+ <updated_at>None</updated_at>
+ <id>1bbbed2b-0daa-47a1-b869-1981c29150b1</id>
+ <cidr_v6>None</cidr_v6>
+ <deleted_at>None</deleted_at>
+ <gateway>10.20.105.1</gateway>
+ <rxtx_base>None</rxtx_base>
+ <label>new net 111</label>
+ <priority>None</priority>
+ <project_id>None</project_id>
+ <vpn_private_address>None</vpn_private_address>
+ <deleted>False</deleted>
+ <vlan>None</vlan>
+ <broadcast>10.20.105.255</broadcast>
+ <netmask>255.255.255.0</netmask>
+ <injected>None</injected>
+ <cidr>10.20.105.0/24</cidr>
+ <vpn_public_address>None</vpn_public_address>
+ <multi_host>None</multi_host>
+ <dns2>None</dns2>
+ <created_at>None</created_at>
+ <host>None</host>
+ <gateway_v6>None</gateway_v6>
+ <netmask_v6>None</netmask_v6>
+ <dns1>None</dns1>
+</network> \ No newline at end of file
diff --git a/doc/api_samples/os-networks/network-show-resp.json b/doc/api_samples/os-networks/network-show-resp.json
new file mode 100644
index 000000000..f3d7a18ce
--- /dev/null
+++ b/doc/api_samples/os-networks/network-show-resp.json
@@ -0,0 +1,32 @@
+{
+ "network": {
+ "bridge": "br100",
+ "bridge_interface": "eth0",
+ "broadcast": "10.0.0.7",
+ "cidr": "10.0.0.0/29",
+ "cidr_v6": null,
+ "created_at": "2011-08-15 06:19:19.387525",
+ "deleted": false,
+ "deleted_at": null,
+ "dhcp_start": "10.0.0.3",
+ "dns1": null,
+ "dns2": null,
+ "gateway": "10.0.0.1",
+ "gateway_v6": null,
+ "host": "nsokolov-desktop",
+ "id": "20c8acc0-f747-4d71-a389-46d078ebf047",
+ "injected": false,
+ "label": "mynet_0",
+ "multi_host": false,
+ "netmask": "255.255.255.248",
+ "netmask_v6": null,
+ "priority": null,
+ "project_id": "1234",
+ "rxtx_base": null,
+ "updated_at": "2011-08-16 09:26:13.048257",
+ "vlan": 100,
+ "vpn_private_address": "10.0.0.2",
+ "vpn_public_address": "127.0.0.1",
+ "vpn_public_port": 1000
+ }
+} \ No newline at end of file
diff --git a/doc/api_samples/os-networks/network-show-resp.xml b/doc/api_samples/os-networks/network-show-resp.xml
new file mode 100644
index 000000000..2faed7a28
--- /dev/null
+++ b/doc/api_samples/os-networks/network-show-resp.xml
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<network>
+ <bridge>br100</bridge>
+ <vpn_public_port>1000</vpn_public_port>
+ <dhcp_start>10.0.0.3</dhcp_start>
+ <bridge_interface>eth0</bridge_interface>
+ <updated_at>2011-08-16 09:26:13.048257</updated_at>
+ <id>20c8acc0-f747-4d71-a389-46d078ebf047</id>
+ <cidr_v6>None</cidr_v6>
+ <deleted_at>None</deleted_at>
+ <gateway>10.0.0.1</gateway>
+ <rxtx_base>None</rxtx_base>
+ <label>mynet_0</label>
+ <priority>None</priority>
+ <project_id>1234</project_id>
+ <vpn_private_address>10.0.0.2</vpn_private_address>
+ <deleted>False</deleted>
+ <vlan>100</vlan>
+ <broadcast>10.0.0.7</broadcast>
+ <netmask>255.255.255.248</netmask>
+ <injected>False</injected>
+ <cidr>10.0.0.0/29</cidr>
+ <vpn_public_address>127.0.0.1</vpn_public_address>
+ <multi_host>False</multi_host>
+ <dns2>None</dns2>
+ <created_at>2011-08-15 06:19:19.387525</created_at>
+ <host>nsokolov-desktop</host>
+ <gateway_v6>None</gateway_v6>
+ <netmask_v6>None</netmask_v6>
+ <dns1>None</dns1>
+</network> \ No newline at end of file
diff --git a/doc/api_samples/os-networks/networks-disassociate-req.json b/doc/api_samples/os-networks/networks-disassociate-req.json
new file mode 100644
index 000000000..81e17d809
--- /dev/null
+++ b/doc/api_samples/os-networks/networks-disassociate-req.json
@@ -0,0 +1 @@
+{"disassociate": null} \ No newline at end of file
diff --git a/doc/api_samples/os-networks/networks-disassociate-req.xml b/doc/api_samples/os-networks/networks-disassociate-req.xml
new file mode 100644
index 000000000..85762fd0d
--- /dev/null
+++ b/doc/api_samples/os-networks/networks-disassociate-req.xml
@@ -0,0 +1 @@
+<disassociate>None</disassociate> \ No newline at end of file
diff --git a/doc/api_samples/os-networks/networks-list-resp.json b/doc/api_samples/os-networks/networks-list-resp.json
new file mode 100644
index 000000000..90da7c15d
--- /dev/null
+++ b/doc/api_samples/os-networks/networks-list-resp.json
@@ -0,0 +1,64 @@
+{
+ "networks": [
+ {
+ "bridge": "br100",
+ "bridge_interface": "eth0",
+ "broadcast": "10.0.0.7",
+ "cidr": "10.0.0.0/29",
+ "cidr_v6": null,
+ "created_at": "2011-08-15 06:19:19.387525",
+ "deleted": false,
+ "deleted_at": null,
+ "dhcp_start": "10.0.0.3",
+ "dns1": null,
+ "dns2": null,
+ "gateway": "10.0.0.1",
+ "gateway_v6": null,
+ "host": "nsokolov-desktop",
+ "id": "20c8acc0-f747-4d71-a389-46d078ebf047",
+ "injected": false,
+ "label": "mynet_0",
+ "multi_host": false,
+ "netmask": "255.255.255.248",
+ "netmask_v6": null,
+ "priority": null,
+ "project_id": "1234",
+ "rxtx_base": null,
+ "updated_at": "2011-08-16 09:26:13.048257",
+ "vlan": 100,
+ "vpn_private_address": "10.0.0.2",
+ "vpn_public_address": "127.0.0.1",
+ "vpn_public_port": 1000
+ },
+ {
+ "bridge": "br101",
+ "bridge_interface": "eth0",
+ "broadcast": "10.0.0.15",
+ "cidr": "10.0.0.10/29",
+ "cidr_v6": null,
+ "created_at": "2011-08-15 06:19:19.885495",
+ "deleted": false,
+ "deleted_at": null,
+ "dhcp_start": "10.0.0.11",
+ "dns1": null,
+ "dns2": null,
+ "gateway": "10.0.0.9",
+ "gateway_v6": null,
+ "host": null,
+ "id": "20c8acc0-f747-4d71-a389-46d078ebf000",
+ "injected": false,
+ "label": "mynet_1",
+ "multi_host": false,
+ "netmask": "255.255.255.248",
+ "netmask_v6": null,
+ "priority": null,
+ "project_id": null,
+ "rxtx_base": null,
+ "updated_at": null,
+ "vlan": 101,
+ "vpn_private_address": "10.0.0.10",
+ "vpn_public_address": null,
+ "vpn_public_port": 1001
+ }
+ ]
+} \ No newline at end of file
diff --git a/doc/api_samples/os-networks/networks-list-resp.xml b/doc/api_samples/os-networks/networks-list-resp.xml
new file mode 100644
index 000000000..59620c228
--- /dev/null
+++ b/doc/api_samples/os-networks/networks-list-resp.xml
@@ -0,0 +1,63 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<networks>
+ <network>
+ <bridge>br100</bridge>
+ <vpn_public_port>1000</vpn_public_port>
+ <dhcp_start>10.0.0.3</dhcp_start>
+ <bridge_interface>eth0</bridge_interface>
+ <updated_at>2011-08-16 09:26:13.048257</updated_at>
+ <id>20c8acc0-f747-4d71-a389-46d078ebf047</id>
+ <cidr_v6>None</cidr_v6>
+ <deleted_at>None</deleted_at>
+ <gateway>10.0.0.1</gateway>
+ <rxtx_base>None</rxtx_base>
+ <label>mynet_0</label>
+ <priority>None</priority>
+ <project_id>1234</project_id>
+ <vpn_private_address>10.0.0.2</vpn_private_address>
+ <deleted>False</deleted>
+ <vlan>100</vlan>
+ <broadcast>10.0.0.7</broadcast>
+ <netmask>255.255.255.248</netmask>
+ <injected>False</injected>
+ <cidr>10.0.0.0/29</cidr>
+ <vpn_public_address>127.0.0.1</vpn_public_address>
+ <multi_host>False</multi_host>
+ <dns2>None</dns2>
+ <created_at>2011-08-15 06:19:19.387525</created_at>
+ <host>nsokolov-desktop</host>
+ <gateway_v6>None</gateway_v6>
+ <netmask_v6>None</netmask_v6>
+ <dns1>None</dns1>
+ </network>
+ <network>
+ <bridge>br101</bridge>
+ <vpn_public_port>1001</vpn_public_port>
+ <dhcp_start>10.0.0.11</dhcp_start>
+ <bridge_interface>eth0</bridge_interface>
+ <updated_at>None</updated_at>
+ <id>20c8acc0-f747-4d71-a389-46d078ebf000</id>
+ <cidr_v6>None</cidr_v6>
+ <deleted_at>None</deleted_at>
+ <gateway>10.0.0.9</gateway>
+ <rxtx_base>None</rxtx_base>
+ <label>mynet_1</label>
+ <priority>None</priority>
+ <project_id>None</project_id>
+ <vpn_private_address>10.0.0.10</vpn_private_address>
+ <deleted>False</deleted>
+ <vlan>101</vlan>
+ <broadcast>10.0.0.15</broadcast>
+ <netmask>255.255.255.248</netmask>
+ <injected>False</injected>
+ <cidr>10.0.0.10/29</cidr>
+ <vpn_public_address>None</vpn_public_address>
+ <multi_host>False</multi_host>
+ <dns2>None</dns2>
+ <created_at>2011-08-15 06:19:19.885495</created_at>
+ <host>None</host>
+ <gateway_v6>None</gateway_v6>
+ <netmask_v6>None</netmask_v6>
+ <dns1>None</dns1>
+ </network>
+</networks> \ No newline at end of file
diff --git a/nova/manager.py b/nova/manager.py
index 7df63f719..7c7cbeb67 100644
--- a/nova/manager.py
+++ b/nova/manager.py
@@ -63,7 +63,6 @@ from nova.openstack.common import log as logging
from nova.openstack.common.plugin import pluginmanager
from nova.openstack.common.rpc import dispatcher as rpc_dispatcher
from nova.scheduler import rpcapi as scheduler_rpcapi
-from nova import version
periodic_opts = [
@@ -269,15 +268,6 @@ class Manager(base.Base):
"""
pass
- def service_version(self, context):
- return version.version_string()
-
- def service_config(self, context):
- config = {}
- for key in CONF:
- config[key] = CONF.get(key, None)
- return config
-
class SchedulerDependentManager(Manager):
"""Periodically send capability updates to the Scheduler services.
diff --git a/nova/tests/integrated/api_samples/os-networks/network-add-req.json.tpl b/nova/tests/integrated/api_samples/os-networks/network-add-req.json.tpl
new file mode 100644
index 000000000..6489f6e1b
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-networks/network-add-req.json.tpl
@@ -0,0 +1 @@
+{"id": "1"}
diff --git a/nova/tests/integrated/api_samples/os-networks/network-add-req.xml.tpl b/nova/tests/integrated/api_samples/os-networks/network-add-req.xml.tpl
new file mode 100644
index 000000000..9e5822a9e
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-networks/network-add-req.xml.tpl
@@ -0,0 +1 @@
+<id>1</id>
diff --git a/nova/tests/integrated/api_samples/os-networks/network-create-req.json.tpl b/nova/tests/integrated/api_samples/os-networks/network-create-req.json.tpl
new file mode 100644
index 000000000..5e2be031c
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-networks/network-create-req.json.tpl
@@ -0,0 +1,6 @@
+{
+ "network": {
+ "label": "new net 111",
+ "cidr": "10.20.105.0/24"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/os-networks/network-create-req.xml.tpl b/nova/tests/integrated/api_samples/os-networks/network-create-req.xml.tpl
new file mode 100644
index 000000000..d5222f9e8
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-networks/network-create-req.xml.tpl
@@ -0,0 +1,4 @@
+<network>
+ <label>new net 111</label>
+ <cidr>10.20.105.0/24</cidr>
+</network>
diff --git a/nova/tests/integrated/api_samples/os-networks/network-create-resp.json.tpl b/nova/tests/integrated/api_samples/os-networks/network-create-resp.json.tpl
new file mode 100644
index 000000000..e178ab50c
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-networks/network-create-resp.json.tpl
@@ -0,0 +1,32 @@
+{
+ "network": {
+ "bridge": null,
+ "vpn_public_port": null,
+ "dhcp_start": "%(ip)s",
+ "bridge_interface": null,
+ "updated_at": null,
+ "id": "%(id)s",
+ "cidr_v6": null,
+ "deleted_at": null,
+ "gateway": "%(ip)s",
+ "rxtx_base": null,
+ "label": "new net 111",
+ "priority": null,
+ "project_id": null,
+ "vpn_private_address": null,
+ "deleted": null,
+ "vlan": null,
+ "broadcast": "%(ip)s",
+ "netmask": "%(ip)s",
+ "injected": null,
+ "cidr": "10.20.105.0/24",
+ "vpn_public_address": null,
+ "multi_host": null,
+ "dns2": null,
+ "created_at": null,
+ "host": null,
+ "gateway_v6": null,
+ "netmask_v6": null,
+ "dns1": null
+ }
+}
diff --git a/nova/tests/integrated/api_samples/os-networks/network-create-resp.xml.tpl b/nova/tests/integrated/api_samples/os-networks/network-create-resp.xml.tpl
new file mode 100644
index 000000000..d709952cd
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-networks/network-create-resp.xml.tpl
@@ -0,0 +1,30 @@
+<network>
+ <bridge>None</bridge>
+ <vpn_public_port>None</vpn_public_port>
+ <dhcp_start>%(ip)s</dhcp_start>
+ <bridge_interface>None</bridge_interface>
+ <updated_at>None</updated_at>
+ <id>%(id)s</id>
+ <cidr_v6>None</cidr_v6>
+ <deleted_at>None</deleted_at>
+ <gateway>%(ip)s</gateway>
+ <rxtx_base>None</rxtx_base>
+ <label>new net 111</label>
+ <priority>None</priority>
+ <project_id>None</project_id>
+ <vpn_private_address>None</vpn_private_address>
+ <deleted>False</deleted>
+ <vlan>None</vlan>
+ <broadcast>%(ip)s</broadcast>
+ <netmask>%(ip)s</netmask>
+ <injected>None</injected>
+ <cidr>10.20.105.0/24</cidr>
+ <vpn_public_address>None</vpn_public_address>
+ <multi_host>None</multi_host>
+ <dns2>None</dns2>
+ <created_at>None</created_at>
+ <host>None</host>
+ <gateway_v6>None</gateway_v6>
+ <netmask_v6>None</netmask_v6>
+ <dns1>None</dns1>
+</network>
diff --git a/nova/tests/integrated/api_samples/os-networks/network-show-resp.json.tpl b/nova/tests/integrated/api_samples/os-networks/network-show-resp.json.tpl
new file mode 100644
index 000000000..5c3630c5d
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-networks/network-show-resp.json.tpl
@@ -0,0 +1,33 @@
+{
+ "network":
+ {
+ "bridge": "br100",
+ "bridge_interface": "eth0",
+ "broadcast": "%(ip)s",
+ "cidr": "10.0.0.0/29",
+ "cidr_v6": null,
+ "created_at": "%(timestamp)s",
+ "deleted": false,
+ "deleted_at": null,
+ "dhcp_start": "%(ip)s",
+ "dns1": null,
+ "dns2": null,
+ "gateway": "%(ip)s",
+ "gateway_v6": null,
+ "host": "nsokolov-desktop",
+ "id": "%(id)s",
+ "injected": false,
+ "label": "mynet_0",
+ "multi_host": false,
+ "netmask": "%(ip)s",
+ "netmask_v6": null,
+ "priority": null,
+ "project_id": "1234",
+ "rxtx_base": null,
+ "updated_at": "%(timestamp)s",
+ "vlan": 100,
+ "vpn_private_address": "%(ip)s",
+ "vpn_public_address": "%(ip)s",
+ "vpn_public_port": 1000
+ }
+}
diff --git a/nova/tests/integrated/api_samples/os-networks/network-show-resp.xml.tpl b/nova/tests/integrated/api_samples/os-networks/network-show-resp.xml.tpl
new file mode 100644
index 000000000..7989f47e4
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-networks/network-show-resp.xml.tpl
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<network>
+ <bridge>br100</bridge>
+ <vpn_public_port>1000</vpn_public_port>
+ <dhcp_start>%(ip)s</dhcp_start>
+ <bridge_interface>eth0</bridge_interface>
+ <updated_at>%(timestamp)s</updated_at>
+ <id>%(id)s</id>
+ <cidr_v6>None</cidr_v6>
+ <deleted_at>None</deleted_at>
+ <gateway>%(ip)s</gateway>
+ <rxtx_base>None</rxtx_base>
+ <label>mynet_0</label>
+ <priority>None</priority>
+ <project_id>1234</project_id>
+ <vpn_private_address>%(ip)s</vpn_private_address>
+ <deleted>False</deleted>
+ <vlan>100</vlan>
+ <broadcast>%(ip)s</broadcast>
+ <netmask>%(ip)s</netmask>
+ <injected>False</injected>
+ <cidr>10.0.0.0/29</cidr>
+ <vpn_public_address>%(ip)s</vpn_public_address>
+ <multi_host>False</multi_host>
+ <dns2>None</dns2>
+ <created_at>%(timestamp)s</created_at>
+ <host>nsokolov-desktop</host>
+ <gateway_v6>None</gateway_v6>
+ <netmask_v6>None</netmask_v6>
+ <dns1>None</dns1>
+</network>
diff --git a/nova/tests/integrated/api_samples/os-networks/networks-disassociate-req.json.tpl b/nova/tests/integrated/api_samples/os-networks/networks-disassociate-req.json.tpl
new file mode 100644
index 000000000..df99b889c
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-networks/networks-disassociate-req.json.tpl
@@ -0,0 +1 @@
+{"disassociate": null}
diff --git a/nova/tests/integrated/api_samples/os-networks/networks-disassociate-req.xml.tpl b/nova/tests/integrated/api_samples/os-networks/networks-disassociate-req.xml.tpl
new file mode 100644
index 000000000..63c030090
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-networks/networks-disassociate-req.xml.tpl
@@ -0,0 +1 @@
+<disassociate>None</disassociate>
diff --git a/nova/tests/integrated/api_samples/os-networks/networks-list-resp.json.tpl b/nova/tests/integrated/api_samples/os-networks/networks-list-resp.json.tpl
new file mode 100644
index 000000000..6da3fb2e2
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-networks/networks-list-resp.json.tpl
@@ -0,0 +1,64 @@
+{
+ "networks": [
+ {
+ "bridge": "br100",
+ "bridge_interface": "eth0",
+ "broadcast": "%(ip)s",
+ "cidr": "10.0.0.0/29",
+ "cidr_v6": null,
+ "created_at": "%(timestamp)s",
+ "deleted": false,
+ "deleted_at": null,
+ "dhcp_start": "%(ip)s",
+ "dns1": null,
+ "dns2": null,
+ "gateway": "%(ip)s",
+ "gateway_v6": null,
+ "host": "nsokolov-desktop",
+ "id": "%(id)s",
+ "injected": false,
+ "label": "mynet_0",
+ "multi_host": false,
+ "netmask": "%(ip)s",
+ "netmask_v6": null,
+ "priority": null,
+ "project_id": "1234",
+ "rxtx_base": null,
+ "updated_at": "%(timestamp)s",
+ "vlan": 100,
+ "vpn_private_address": "%(ip)s",
+ "vpn_public_address": "%(ip)s",
+ "vpn_public_port": 1000
+ },
+ {
+ "bridge": "br101",
+ "bridge_interface": "eth0",
+ "broadcast": "%(ip)s",
+ "cidr": "10.0.0.10/29",
+ "cidr_v6": null,
+ "created_at": "%(timestamp)s",
+ "deleted": false,
+ "deleted_at": null,
+ "dhcp_start": "%(ip)s",
+ "dns1": null,
+ "dns2": null,
+ "gateway": "%(ip)s",
+ "gateway_v6": null,
+ "host": null,
+ "id": "%(id)s",
+ "injected": false,
+ "label": "mynet_1",
+ "multi_host": false,
+ "netmask": "%(ip)s",
+ "netmask_v6": null,
+ "priority": null,
+ "project_id": null,
+ "rxtx_base": null,
+ "updated_at": null,
+ "vlan": 101,
+ "vpn_private_address": "%(ip)s",
+ "vpn_public_address": null,
+ "vpn_public_port": 1001
+ }
+ ]
+}
diff --git a/nova/tests/integrated/api_samples/os-networks/networks-list-resp.xml.tpl b/nova/tests/integrated/api_samples/os-networks/networks-list-resp.xml.tpl
new file mode 100644
index 000000000..c01c08337
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-networks/networks-list-resp.xml.tpl
@@ -0,0 +1,63 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<networks>
+ <network>
+ <bridge>br100</bridge>
+ <vpn_public_port>1000</vpn_public_port>
+ <dhcp_start>%(ip)s</dhcp_start>
+ <bridge_interface>eth0</bridge_interface>
+ <updated_at>%(timestamp)s</updated_at>
+ <id>%(id)s</id>
+ <cidr_v6>None</cidr_v6>
+ <deleted_at>None</deleted_at>
+ <gateway>%(ip)s</gateway>
+ <rxtx_base>None</rxtx_base>
+ <label>mynet_0</label>
+ <priority>None</priority>
+ <project_id>1234</project_id>
+ <vpn_private_address>%(ip)s</vpn_private_address>
+ <deleted>False</deleted>
+ <vlan>100</vlan>
+ <broadcast>%(ip)s</broadcast>
+ <netmask>%(ip)s</netmask>
+ <injected>False</injected>
+ <cidr>10.0.0.0/29</cidr>
+ <vpn_public_address>%(ip)s</vpn_public_address>
+ <multi_host>False</multi_host>
+ <dns2>None</dns2>
+ <created_at>%(timestamp)s</created_at>
+ <host>nsokolov-desktop</host>
+ <gateway_v6>None</gateway_v6>
+ <netmask_v6>None</netmask_v6>
+ <dns1>None</dns1>
+ </network>
+ <network>
+ <bridge>br101</bridge>
+ <vpn_public_port>1001</vpn_public_port>
+ <dhcp_start>%(ip)s</dhcp_start>
+ <bridge_interface>eth0</bridge_interface>
+ <updated_at>None</updated_at>
+ <id>%(id)s</id>
+ <cidr_v6>None</cidr_v6>
+ <deleted_at>None</deleted_at>
+ <gateway>%(ip)s</gateway>
+ <rxtx_base>None</rxtx_base>
+ <label>mynet_1</label>
+ <priority>None</priority>
+ <project_id>None</project_id>
+ <vpn_private_address>%(ip)s</vpn_private_address>
+ <deleted>False</deleted>
+ <vlan>101</vlan>
+ <broadcast>%(ip)s</broadcast>
+ <netmask>%(ip)s</netmask>
+ <injected>False</injected>
+ <cidr>10.0.0.10/29</cidr>
+ <vpn_public_address>None</vpn_public_address>
+ <multi_host>False</multi_host>
+ <dns2>None</dns2>
+ <created_at>%(timestamp)s</created_at>
+ <host>None</host>
+ <gateway_v6>None</gateway_v6>
+ <netmask_v6>None</netmask_v6>
+ <dns1>None</dns1>
+ </network>
+</networks>
diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py
index f1f86d21b..d688d900d 100644
--- a/nova/tests/integrated/test_api_samples.py
+++ b/nova/tests/integrated/test_api_samples.py
@@ -44,6 +44,7 @@ import nova.quota
from nova.scheduler import driver
from nova import test
from nova.tests.api.openstack.compute.contrib import test_fping
+from nova.tests.api.openstack.compute.contrib import test_networks
from nova.tests.baremetal.db import base as bm_db_base
from nova.tests import fake_network
from nova.tests.image import fake
@@ -381,7 +382,6 @@ class ApiSamplesTrap(ApiSampleTestBase):
do_not_approve_additions.append('os-flavor-access')
do_not_approve_additions.append('os-floating-ip-dns')
do_not_approve_additions.append('os-hypervisors')
- do_not_approve_additions.append('os-networks')
do_not_approve_additions.append('os-services')
do_not_approve_additions.append('os-volumes')
@@ -2423,6 +2423,62 @@ class OsNetworksJsonTests(ApiSampleTestBase):
self.assertEqual(response.status, 202)
+class NetworksJsonTests(ApiSampleTestBase):
+ extension_name = ("nova.api.openstack.compute.contrib"
+ ".os_networks.Os_networks")
+
+ def setUp(self):
+ super(NetworksJsonTests, self).setUp()
+ fake_network_api = test_networks.FakeNetworkAPI()
+ self.stubs.Set(network_api.API, "get_all",
+ fake_network_api.get_all)
+ self.stubs.Set(network_api.API, "get",
+ fake_network_api.get)
+ self.stubs.Set(network_api.API, "associate",
+ fake_network_api.associate)
+ self.stubs.Set(network_api.API, "delete",
+ fake_network_api.delete)
+ self.stubs.Set(network_api.API, "create",
+ fake_network_api.create)
+ self.stubs.Set(network_api.API, "add_network_to_project",
+ fake_network_api.add_network_to_project)
+
+ def test_network_list(self):
+ response = self._do_get('os-networks')
+ self.assertEqual(response.status, 200)
+ subs = self._get_regexes()
+ self._verify_response('networks-list-resp', subs, response)
+
+ def test_network_disassociate(self):
+ uuid = test_networks.FAKE_NETWORKS[0]['uuid']
+ response = self._do_post('os-networks/%s/action' % uuid,
+ 'networks-disassociate-req', {})
+ self.assertEqual(response.status, 202)
+
+ def test_network_show(self):
+ uuid = test_networks.FAKE_NETWORKS[0]['uuid']
+ response = self._do_get('os-networks/%s' % uuid)
+ self.assertEqual(response.status, 200)
+ subs = self._get_regexes()
+ self._verify_response('network-show-resp', subs, response)
+
+ def test_network_create(self):
+ response = self._do_post("os-networks",
+ 'network-create-req', {})
+ self.assertEqual(response.status, 200)
+ subs = self._get_regexes()
+ self._verify_response('network-create-resp', subs, response)
+
+ def test_network_add(self):
+ response = self._do_post("os-networks/add",
+ 'network-add-req', {})
+ self.assertEqual(response.status, 202)
+
+
+class NetworksXmlTests(NetworksJsonTests):
+ ctype = 'xml'
+
+
class NetworksAssociateJsonTests(ApiSampleTestBase):
extension_name = ("nova.api.openstack.compute.contrib"
".networks_associate.Networks_associate")