http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_list_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_list_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_list_response.json
new file mode 100644
index 0000000..14dcfae
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_list_response.json
@@ -0,0 +1,74 @@
+{"routers": [
+    {
+        "status": "ACTIVE",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "16dba3bc-f3fa-4775-afdc-237e12c72f6a"
+    },
+    {
+        "status": "ACTIVE",
+        "name": "wibble",
+        "tenant_id": "1234567890",
+        "id": "1a104cf5-cb18-4d35-9407-2fd2646d9d0b"
+    },
+    {
+        "status": "ACTIVE",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "31083ae2-420d-48b2-ac98-9f7a4fd8dbdc"
+    },
+    {
+        "status": "ACTIVE",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "49c6d6fa-ff2a-459d-b975-75a8d31c9a89"
+    },
+    {
+        "status": "ACTIVE",
+        "name": "wibble",
+        "tenant_id": "1234567890",
+        "id": "5cb3d6f4-62cb-41c9-b964-ba7d9df79e4e"
+    },
+    {
+        "status": "ACTIVE",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "5d51d012-3491-4db7-b1b5-6f254015015d"
+    },
+    {
+        "status": "ACTIVE",
+        "name": "wibble",
+        "tenant_id": "1234567890",
+        "id": "5f9cf7dc-22ca-4097-8e49-1cc8b23faf17"
+    },
+    {
+        "status": "ACTIVE",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "6319ecad-6bff-48b2-9b53-02ede8cb7588"
+    },
+    {
+        "status": "ACTIVE",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "6ba4c788-661f-49ab-9bf8-5f10cbbb2f57"
+    },
+    {
+        "status": "ACTIVE",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "74ed170b-5069-4353-ab38-9719766dc57e"
+    },
+    {
+        "status": "ACTIVE",
+        "name": "wibble",
+        "tenant_id": "1234567890",
+        "id": "b71fcac1-e864-4031-8c5b-edbecd9ece36"
+    },
+    {
+        "status": "ACTIVE",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "c7681895-d84d-4650-9ca0-82c72036b855"
+    }
+]}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_list_response_paged1.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_list_response_paged1.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_list_response_paged1.json
new file mode 100644
index 0000000..ef67e54
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_list_response_paged1.json
@@ -0,0 +1,34 @@
+{
+    "routers": [
+        {
+            "status": "ACTIVE",
+            "external_gateway_info": {
+                "network_id": "3c5bcddd-6af9-4e6b-9c3e-c153e521cab8"
+            },
+            "name": "router1",
+            "admin_state_up": true,
+            "tenant_id": "33a40233088643acb66ff6eb0ebea679",
+            "id": "a9254bdb-2613-4a13-ac4c-adc581fba50d"
+        },
+        {
+            "status": "ACTIVE",
+            "external_gateway_info": {
+                "network_id": "3c5bcddd-6af9-4e6b-9c3e-c153e521cab8_2"
+            },
+            "name": "router2",
+            "admin_state_up": true,
+            "tenant_id": "33a40233088643acb66ff6eb0ebea679_2",
+            "id": "a9254bdb-2613-4a13-ac4c-adc581fba50d_2"
+        }
+    ],
+    "routers_links": [
+        {
+            "href": 
"/v2.0/routers.json?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718",
+            "rel": "next"
+        },
+        {
+            "href": 
"/v2.0/routers.json?marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
+            "rel": "previous"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_list_response_paged2.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_list_response_paged2.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_list_response_paged2.json
new file mode 100644
index 0000000..decec75
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_list_response_paged2.json
@@ -0,0 +1,30 @@
+{
+    "routers": [
+        {
+            "status": "ACTIVE",
+            "external_gateway_info": {
+                "network_id": "3c5bcddd-6af9-4e6b-9c3e-c153e521cab8_3"
+            },
+            "name": "router3",
+            "admin_state_up": true,
+            "tenant_id": "33a40233088643acb66ff6eb0ebea679_3",
+            "id": "a9254bdb-2613-4a13-ac4c-adc581fba50d_3"
+        },
+        {
+            "status": "ACTIVE",
+            "external_gateway_info": {
+                "network_id": "3c5bcddd-6af9-4e6b-9c3e-c153e521cab8_4"
+            },
+            "name": "router4",
+            "admin_state_up": true,
+            "tenant_id": "33a40233088643acb66ff6eb0ebea679_4",
+            "id": "a9254bdb-2613-4a13-ac4c-adc581fba50d_4"
+        }
+    ],
+    "routers_links": [
+        {
+            "href": 
"/v2.0/routers.json?marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
+            "rel": "previous"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_remove_interface_port_request.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_remove_interface_port_request.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_remove_interface_port_request.json
new file mode 100644
index 0000000..bae800a
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_remove_interface_port_request.json
@@ -0,0 +1,3 @@
+{
+    "port_id": "portid"
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_remove_interface_subnet_request.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_remove_interface_subnet_request.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_remove_interface_subnet_request.json
new file mode 100644
index 0000000..107e6e4
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_remove_interface_subnet_request.json
@@ -0,0 +1,3 @@
+{
+    "subnet_id": "a2f1f29d-571b-4533-907f-5803ab96ead1"
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_update_request.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_update_request.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_update_request.json
new file mode 100644
index 0000000..351c427
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_update_request.json
@@ -0,0 +1,7 @@
+{
+    "router": {
+        "external_gateway_info": {
+            "network_id": "8ca37218-28ff-41cb-9b10-039601ea7e6b"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_update_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_update_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_update_response.json
new file mode 100644
index 0000000..d851d76
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/router_update_response.json
@@ -0,0 +1,12 @@
+{
+    "router": {
+        "status": "ACTIVE",
+        "external_gateway_info": {
+            "network_id": "8ca37218-28ff-41cb-9b10-039601ea7e6b"
+        },
+        "name": "another_router",
+        "admin_state_up": true,
+        "tenant_id": "6b96ff0cb17a4b859e1e575d221683d3",
+        "id": "8604a0de-7f6b-409a-a47c-a1cc7bc77b2e"
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_create_request.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_create_request.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_create_request.json
new file mode 100644
index 0000000..8a93ef9
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_create_request.json
@@ -0,0 +1,6 @@
+{
+    "security_group": {
+        "name": "new-webservers",
+        "description": "security group for webservers"
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_create_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_create_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_create_response.json
new file mode 100644
index 0000000..1ded327
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_create_response.json
@@ -0,0 +1,34 @@
+{
+    "security_group": {
+        "description": "security group for webservers",
+        "id": "2076db17-a522-4506-91de-c6dd8e837028",
+        "name": "new-webservers",
+        "security_group_rules": [
+            {
+                "direction": "egress",
+                "ethertype": "IPv4",
+                "id": "38ce2d8e-e8f1-48bd-83c2-d33cb9f50c3d",
+                "port_range_max": null,
+                "port_range_min": null,
+                "protocol": null,
+                "remote_group_id": null,
+                "remote_ip_prefix": null,
+                "security_group_id": "2076db17-a522-4506-91de-c6dd8e837028",
+                "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+            },
+            {
+                "direction": "egress",
+                "ethertype": "IPv6",
+                "id": "565b9502-12de-4ffd-91e9-68885cff6ae1",
+                "port_range_max": null,
+                "port_range_min": null,
+                "protocol": null,
+                "remote_group_id": null,
+                "remote_ip_prefix": null,
+                "security_group_id": "2076db17-a522-4506-91de-c6dd8e837028",
+                "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+            }
+        ],
+        "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_get_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_get_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_get_response.json
new file mode 100644
index 0000000..126b5d2
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_get_response.json
@@ -0,0 +1,58 @@
+{
+    "security_group": {
+        "description": "default",
+        "id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+        "name": "default",
+        "security_group_rules": [
+            {
+                "direction": "egress",
+                "ethertype": "IPv6",
+                "id": "3c0e45ff-adaf-4124-b083-bf390e5482ff",
+                "port_range_max": null,
+                "port_range_min": null,
+                "protocol": null,
+                "remote_group_id": null,
+                "remote_ip_prefix": null,
+                "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+            },
+            {
+                "direction": "egress",
+                "ethertype": "IPv4",
+                "id": "93aa42e5-80db-4581-9391-3a608bd0e448",
+                "port_range_max": null,
+                "port_range_min": null,
+                "protocol": null,
+                "remote_group_id": null,
+                "remote_ip_prefix": null,
+                "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+            },
+            {
+                "direction": "ingress",
+                "ethertype": "IPv6",
+                "id": "c0b09f00-1d49-4e64-a0a7-8a186d928138",
+                "port_range_max": null,
+                "port_range_min": null,
+                "protocol": null,
+                "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                "remote_ip_prefix": null,
+                "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+            },
+            {
+                "direction": "ingress",
+                "ethertype": "IPv4",
+                "id": "f7d45c89-008e-4bab-88ad-d6811724c51c",
+                "port_range_max": null,
+                "port_range_min": null,
+                "protocol": null,
+                "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                "remote_ip_prefix": null,
+                "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+            }
+        ],
+        "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_list_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_list_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_list_response.json
new file mode 100644
index 0000000..c0cf747
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_list_response.json
@@ -0,0 +1,116 @@
+{
+    "security_groups": [
+        {
+            "description": "default",
+            "id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "name": "default",
+            "security_group_rules": [
+                {
+                    "direction": "egress",
+                    "ethertype": "IPv6",
+                    "id": "3c0e45ff-adaf-4124-b083-bf390e5482ff",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": null,
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "egress",
+                    "ethertype": "IPv4",
+                    "id": "93aa42e5-80db-4581-9391-3a608bd0e448",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": null,
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "ingress",
+                    "ethertype": "IPv6",
+                    "id": "c0b09f00-1d49-4e64-a0a7-8a186d928138",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "ingress",
+                    "ethertype": "IPv4",
+                    "id": "f7d45c89-008e-4bab-88ad-d6811724c51c",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                }
+            ],
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        },
+        {
+            "description": "default",
+            "id": "85cc3048-abc3-43cc-89b3-377341426ac52",
+            "name": "default",
+            "security_group_rules": [
+                {
+                    "direction": "egress",
+                    "ethertype": "IPv6",
+                    "id": "3c0e45ff-adaf-4124-b083-bf390e5482ff2",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": null,
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "egress",
+                    "ethertype": "IPv4",
+                    "id": "93aa42e5-80db-4581-9391-3a608bd0e4482",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": null,
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "ingress",
+                    "ethertype": "IPv6",
+                    "id": "c0b09f00-1d49-4e64-a0a7-8a186d9281382",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "ingress",
+                    "ethertype": "IPv4",
+                    "id": "f7d45c89-008e-4bab-88ad-d6811724c51c2",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                }
+            ],
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_list_response_paged1.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_list_response_paged1.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_list_response_paged1.json
new file mode 100644
index 0000000..dcf91c8
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_list_response_paged1.json
@@ -0,0 +1,126 @@
+{
+    "security_groups": [
+        {
+            "description": "default",
+            "id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "name": "default",
+            "security_group_rules": [
+                {
+                    "direction": "egress",
+                    "ethertype": "IPv6",
+                    "id": "3c0e45ff-adaf-4124-b083-bf390e5482ff",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": null,
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "egress",
+                    "ethertype": "IPv4",
+                    "id": "93aa42e5-80db-4581-9391-3a608bd0e448",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": null,
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "ingress",
+                    "ethertype": "IPv6",
+                    "id": "c0b09f00-1d49-4e64-a0a7-8a186d928138",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "ingress",
+                    "ethertype": "IPv4",
+                    "id": "f7d45c89-008e-4bab-88ad-d6811724c51c",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                }
+            ],
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        },
+        {
+            "description": "default",
+            "id": "85cc3048-abc3-43cc-89b3-377341426ac52",
+            "name": "default",
+            "security_group_rules": [
+                {
+                    "direction": "egress",
+                    "ethertype": "IPv6",
+                    "id": "3c0e45ff-adaf-4124-b083-bf390e5482ff2",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": null,
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "egress",
+                    "ethertype": "IPv4",
+                    "id": "93aa42e5-80db-4581-9391-3a608bd0e4482",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": null,
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "ingress",
+                    "ethertype": "IPv6",
+                    "id": "c0b09f00-1d49-4e64-a0a7-8a186d9281382",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "ingress",
+                    "ethertype": "IPv4",
+                    "id": "f7d45c89-008e-4bab-88ad-d6811724c51c2",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                }
+            ],
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        }
+    ],
+    "security_groups_links": [
+        {
+            "href": 
"/v2.0/security-groups.json?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718",
+            "rel": "next"
+        },
+        {
+            "href": 
"/v2.0/security-groups.json?marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
+            "rel": "previous"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_list_response_paged2.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_list_response_paged2.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_list_response_paged2.json
new file mode 100644
index 0000000..ded8067
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_list_response_paged2.json
@@ -0,0 +1,122 @@
+{
+    "security_groups": [
+        {
+            "description": "default",
+            "id": "85cc3048-abc3-43cc-89b3-377341426ac53",
+            "name": "default",
+            "security_group_rules": [
+                {
+                    "direction": "egress",
+                    "ethertype": "IPv6",
+                    "id": "3c0e45ff-adaf-4124-b083-bf390e5482ff",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": null,
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "egress",
+                    "ethertype": "IPv4",
+                    "id": "93aa42e5-80db-4581-9391-3a608bd0e448",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": null,
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "ingress",
+                    "ethertype": "IPv6",
+                    "id": "c0b09f00-1d49-4e64-a0a7-8a186d928138",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "ingress",
+                    "ethertype": "IPv4",
+                    "id": "f7d45c89-008e-4bab-88ad-d6811724c51c",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                }
+            ],
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        },
+        {
+            "description": "default",
+            "id": "85cc3048-abc3-43cc-89b3-377341426ac524",
+            "name": "default",
+            "security_group_rules": [
+                {
+                    "direction": "egress",
+                    "ethertype": "IPv6",
+                    "id": "3c0e45ff-adaf-4124-b083-bf390e5482ff2",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": null,
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "egress",
+                    "ethertype": "IPv4",
+                    "id": "93aa42e5-80db-4581-9391-3a608bd0e4482",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": null,
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "ingress",
+                    "ethertype": "IPv6",
+                    "id": "c0b09f00-1d49-4e64-a0a7-8a186d9281382",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                },
+                {
+                    "direction": "ingress",
+                    "ethertype": "IPv4",
+                    "id": "f7d45c89-008e-4bab-88ad-d6811724c51c2",
+                    "port_range_max": null,
+                    "port_range_min": null,
+                    "protocol": null,
+                    "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "remote_ip_prefix": null,
+                    "security_group_id": 
"85cc3048-abc3-43cc-89b3-377341426ac5",
+                    "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+                }
+            ],
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        }
+    ],
+    "security_groups_links": [
+        {
+            "href": 
"/v2.0/security-groups.json?marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
+            "rel": "previous"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_create_request.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_create_request.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_create_request.json
new file mode 100644
index 0000000..14bea85
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_create_request.json
@@ -0,0 +1,11 @@
+{
+    "security_group_rule": {
+        "direction": "ingress",
+        "port_range_min": 80,
+        "ethertype": "IPv4",
+        "port_range_max": 80,
+        "protocol": "tcp",
+        "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+        "security_group_id": "a7734e61-b545-452d-a3cd-0189cbd9747a"
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_create_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_create_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_create_response.json
new file mode 100644
index 0000000..0037e94
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_create_response.json
@@ -0,0 +1,15 @@
+{
+    "security_group_rule": {
+        "direction": "ingress",
+        "ethertype": "IPv4",
+        "id": "2bc0accf-312e-429a-956e-e4407625eb62",
+        "port_range_max": 80,
+        "port_range_min": 80,
+        "protocol": "tcp",
+        "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+        "remote_ip_prefix": null,
+        "security_group_id": "a7734e61-b545-452d-a3cd-0189cbd9747a",
+        "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_get_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_get_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_get_response.json
new file mode 100644
index 0000000..7225101
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_get_response.json
@@ -0,0 +1,14 @@
+{
+    "security_group_rule": {
+        "direction": "egress",
+        "ethertype": "IPv6",
+        "id": "3c0e45ff-adaf-4124-b083-bf390e5482ff",
+        "port_range_max": null,
+        "port_range_min": null,
+        "protocol": null,
+        "remote_group_id": null,
+        "remote_ip_prefix": null,
+        "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+        "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_list_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_list_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_list_response.json
new file mode 100644
index 0000000..fbdeddf
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_list_response.json
@@ -0,0 +1,52 @@
+{
+    "security_group_rules": [
+        {
+            "direction": "egress",
+            "ethertype": "IPv6",
+            "id": "3c0e45ff-adaf-4124-b083-bf390e5482ff",
+            "port_range_max": null,
+            "port_range_min": null,
+            "protocol": null,
+            "remote_group_id": null,
+            "remote_ip_prefix": null,
+            "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        },
+        {
+            "direction": "egress",
+            "ethertype": "IPv4",
+            "id": "93aa42e5-80db-4581-9391-3a608bd0e448",
+            "port_range_max": null,
+            "port_range_min": null,
+            "protocol": null,
+            "remote_group_id": null,
+            "remote_ip_prefix": null,
+            "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        },
+        {
+            "direction": "ingress",
+            "ethertype": "IPv6",
+            "id": "c0b09f00-1d49-4e64-a0a7-8a186d928138",
+            "port_range_max": null,
+            "port_range_min": null,
+            "protocol": null,
+            "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "remote_ip_prefix": null,
+            "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        },
+        {
+            "direction": "ingress",
+            "ethertype": "IPv4",
+            "id": "f7d45c89-008e-4bab-88ad-d6811724c51c",
+            "port_range_max": null,
+            "port_range_min": null,
+            "protocol": null,
+            "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "remote_ip_prefix": null,
+            "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_list_response_paged1.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_list_response_paged1.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_list_response_paged1.json
new file mode 100644
index 0000000..5ecbfd3
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_list_response_paged1.json
@@ -0,0 +1,62 @@
+{
+    "security_group_rules": [
+        {
+            "direction": "egress",
+            "ethertype": "IPv6",
+            "id": "3c0e45ff-adaf-4124-b083-bf390e5482ff",
+            "port_range_max": null,
+            "port_range_min": null,
+            "protocol": null,
+            "remote_group_id": null,
+            "remote_ip_prefix": null,
+            "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        },
+        {
+            "direction": "egress",
+            "ethertype": "IPv4",
+            "id": "93aa42e5-80db-4581-9391-3a608bd0e448",
+            "port_range_max": null,
+            "port_range_min": null,
+            "protocol": null,
+            "remote_group_id": null,
+            "remote_ip_prefix": null,
+            "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        },
+        {
+            "direction": "ingress",
+            "ethertype": "IPv6",
+            "id": "c0b09f00-1d49-4e64-a0a7-8a186d928138",
+            "port_range_max": null,
+            "port_range_min": null,
+            "protocol": null,
+            "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "remote_ip_prefix": null,
+            "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        },
+        {
+            "direction": "ingress",
+            "ethertype": "IPv4",
+            "id": "f7d45c89-008e-4bab-88ad-d6811724c51c",
+            "port_range_max": null,
+            "port_range_min": null,
+            "protocol": null,
+            "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "remote_ip_prefix": null,
+            "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        }
+    ],
+    "security_group_rules_links": [
+        {
+            "href": 
"/v2.0/security-group-rules.json?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718",
+            "rel": "next"
+        },
+        {
+            "href": 
"/v2.0/security-group-rules.json?marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
+            "rel": "previous"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_list_response_paged2.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_list_response_paged2.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_list_response_paged2.json
new file mode 100644
index 0000000..1688ede
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/security_group_rule_list_response_paged2.json
@@ -0,0 +1,58 @@
+{
+    "security_group_rules": [
+        {
+            "direction": "egress",
+            "ethertype": "IPv6",
+            "id": "3c0e45ff-adaf-4124-b083-bf390e5482ff2",
+            "port_range_max": null,
+            "port_range_min": null,
+            "protocol": null,
+            "remote_group_id": null,
+            "remote_ip_prefix": null,
+            "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        },
+        {
+            "direction": "egress",
+            "ethertype": "IPv4",
+            "id": "93aa42e5-80db-4581-9391-3a608bd0e4482",
+            "port_range_max": null,
+            "port_range_min": null,
+            "protocol": null,
+            "remote_group_id": null,
+            "remote_ip_prefix": null,
+            "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        },
+        {
+            "direction": "ingress",
+            "ethertype": "IPv6",
+            "id": "c0b09f00-1d49-4e64-a0a7-8a186d9281382",
+            "port_range_max": null,
+            "port_range_min": null,
+            "protocol": null,
+            "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "remote_ip_prefix": null,
+            "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        },
+        {
+            "direction": "ingress",
+            "ethertype": "IPv4",
+            "id": "f7d45c89-008e-4bab-88ad-d6811724c51c2",
+            "port_range_max": null,
+            "port_range_min": null,
+            "protocol": null,
+            "remote_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "remote_ip_prefix": null,
+            "security_group_id": "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+        }
+    ],
+    "security_group_rules_links": [
+        {
+            "href": 
"/v2.0/security-group-rules.json?marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
+            "rel": "previous"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet.json
new file mode 100644
index 0000000..58c4382
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet.json
@@ -0,0 +1,8 @@
+{"subnet": {
+    "ip_version": 4,
+    "cidr": "10.0.3.0/24",
+    "network_id": "1234567890",
+    "name": "jclouds-wibble",
+    "tenant_id": "1234567890",
+    "id": "624312ff-d14b-4ba3-9834-1c78d23d574d"
+}}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_bulk_create_request.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_bulk_create_request.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_bulk_create_request.json
new file mode 100644
index 0000000..0bb8460
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_bulk_create_request.json
@@ -0,0 +1,14 @@
+{
+    "subnets": [
+        {
+            "cidr": "192.168.199.0/24",
+            "ip_version": 4,
+            "network_id": "e6031bc2-901a-4c66-82da-f4c32ed89406"
+        },
+        {
+            "cidr": "10.56.4.0/22",
+            "ip_version": 4,
+            "network_id": "64239a54-dcc4-4b39-920b-b37c2144effa"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_bulk_create_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_bulk_create_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_bulk_create_response.json
new file mode 100644
index 0000000..f643084
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_bulk_create_response.json
@@ -0,0 +1,48 @@
+{
+    "subnets": [
+        {
+            "allocation_pools": [
+                {
+                    "end": "192.168.199.254",
+                    "start": "192.168.199.2"
+                }
+            ],
+            "cidr": "192.168.199.0/24",
+            "dns_nameservers": [
+
+            ],
+            "enable_dhcp": true,
+            "gateway_ip": "192.168.199.1",
+            "host_routes": [
+
+            ],
+            "id": "0468a7a7-290d-4127-aedd-6c9449775a24",
+            "ip_version": 4,
+            "name": "",
+            "network_id": "e6031bc2-901a-4c66-82da-f4c32ed89406",
+            "tenant_id": "d19231fc08ec4bc4829b668040d34512"
+        },
+        {
+            "allocation_pools": [
+                {
+                    "end": "10.56.7.254",
+                    "start": "10.56.4.2"
+                }
+            ],
+            "cidr": "10.56.4.0/22",
+            "dns_nameservers": [
+
+            ],
+            "enable_dhcp": true,
+            "gateway_ip": "10.56.4.1",
+            "host_routes": [
+
+            ],
+            "id": "b0e7435c-1512-45fb-aa9e-9a7c5932fb30",
+            "ip_version": 4,
+            "name": "",
+            "network_id": "64239a54-dcc4-4b39-920b-b37c2144effa",
+            "tenant_id": "d19231fc08ec4bc4829b668040d34512"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_create_request.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_create_request.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_create_request.json
new file mode 100644
index 0000000..49a53b6
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_create_request.json
@@ -0,0 +1,6 @@
+{"subnet": {
+    "ip_version": 4,
+    "cidr": "10.0.3.0/24",
+    "network_id": "1234567890",
+    "name": "jclouds-wibble"
+}}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_create_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_create_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_create_response.json
new file mode 100644
index 0000000..58c4382
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_create_response.json
@@ -0,0 +1,8 @@
+{"subnet": {
+    "ip_version": 4,
+    "cidr": "10.0.3.0/24",
+    "network_id": "1234567890",
+    "name": "jclouds-wibble",
+    "tenant_id": "1234567890",
+    "id": "624312ff-d14b-4ba3-9834-1c78d23d574d"
+}}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_get_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_get_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_get_response.json
new file mode 100644
index 0000000..aead0f9
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_get_response.json
@@ -0,0 +1,9 @@
+{"subnet": {
+    "ip_version": 4,
+    "cidr": "10.0.3.0/24",
+    "network_id": "1234567890",
+    "name": "jclouds-wibble",
+    "tenant_id": "1234567890",
+    "id": "624312ff-d14b-4ba3-9834-1c78d23d574d",
+    "ipv6_address_mode": "slaac"
+}}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_list_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_list_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_list_response.json
new file mode 100644
index 0000000..b0061e9
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_list_response.json
@@ -0,0 +1,98 @@
+{"subnets": [
+    {
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "16dba3bc-f3fa-4775-afdc-237e12c72f6a"
+    },
+    {
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "network_id": "1234567890",
+        "name": "wibble",
+        "tenant_id": "1234567890",
+        "id": "1a104cf5-cb18-4d35-9407-2fd2646d9d0b"
+    },
+    {
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "31083ae2-420d-48b2-ac98-9f7a4fd8dbdc"
+    },
+    {
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "49c6d6fa-ff2a-459d-b975-75a8d31c9a89"
+    },
+    {
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "network_id": "1234567890",
+        "name": "wibble",
+        "tenant_id": "1234567890",
+        "id": "5cb3d6f4-62cb-41c9-b964-ba7d9df79e4e"
+    },
+    {
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "5d51d012-3491-4db7-b1b5-6f254015015d"
+    },
+    {
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "network_id": "1234567890",
+        "name": "wibble",
+        "tenant_id": "1234567890",
+        "id": "5f9cf7dc-22ca-4097-8e49-1cc8b23faf17"
+    },
+    {
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "6319ecad-6bff-48b2-9b53-02ede8cb7588"
+    },
+    {
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "6ba4c788-661f-49ab-9bf8-5f10cbbb2f57"
+    },
+    {
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "74ed170b-5069-4353-ab38-9719766dc57e"
+    },
+    {
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "network_id": "1234567890",
+        "name": "wibble",
+        "tenant_id": "1234567890",
+        "id": "b71fcac1-e864-4031-8c5b-edbecd9ece36"
+    },
+    {
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "c7681895-d84d-4650-9ca0-82c72036b855"
+    }
+]}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_list_response_pages1.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_list_response_pages1.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_list_response_pages1.json
new file mode 100644
index 0000000..10b3aaa
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_list_response_pages1.json
@@ -0,0 +1,30 @@
+{
+    "subnets": [
+        {
+            "ip_version": 4,
+            "cidr": "10.0.3.0/24",
+            "network_id": "1234567890",
+            "name": "jclouds-test",
+            "tenant_id": "1234567890",
+            "id": "16dba3bc-f3fa-4775-afdc-237e12c72f6a"
+        },
+        {
+            "ip_version": 4,
+            "cidr": "10.0.3.0/24",
+            "network_id": "1234567890",
+            "name": "wibble",
+            "tenant_id": "1234567890",
+            "id": "1a104cf5-cb18-4d35-9407-2fd2646d9d0b"
+        }
+    ],
+    "subnets_links": [
+        {
+            "href": 
"/v2.0/subnets.json?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718",
+            "rel": "next"
+        },
+        {
+            "href": 
"/v2.0/subnets.json?marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
+            "rel": "previous"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_list_response_pages2.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_list_response_pages2.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_list_response_pages2.json
new file mode 100644
index 0000000..0319fbe
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_list_response_pages2.json
@@ -0,0 +1,26 @@
+{
+    "subnets": [
+        {
+            "ip_version": 4,
+            "cidr": "10.0.3.0/24",
+            "network_id": "1234567890",
+            "name": "jclouds-test",
+            "tenant_id": "1234567890",
+            "id": "6319ecad-6bff-48b2-9b53-02ede8cb7588"
+        },
+        {
+            "ip_version": 4,
+            "cidr": "10.0.3.0/24",
+            "network_id": "1234567890",
+            "name": "jclouds-test",
+            "tenant_id": "1234567890",
+            "id": "6ba4c788-661f-49ab-9bf8-5f10cbbb2f57"
+        }
+    ],
+    "subnets_links": [
+        {
+            "href": 
"/v2.0/subnets.json?marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
+            "rel": "previous"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_update_request.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_update_request.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_update_request.json
new file mode 100644
index 0000000..6345647
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_update_request.json
@@ -0,0 +1,6 @@
+{
+    "subnet": {
+        "gateway_ip": "10.0.3.254",
+        "name": "new_name"
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_update_response.json
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_update_response.json
 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_update_response.json
new file mode 100644
index 0000000..40c65e9
--- /dev/null
+++ 
b/dependencies/jclouds/apis/openstack-neutron/1.8.1-stratos/src/test/resources/subnet_update_response.json
@@ -0,0 +1,18 @@
+{
+    "subnet": {
+        "name": "new_name",
+        "network_id": "ed2e3c10-2e43-4297-9006-2863a2d1abbc",
+        "tenant_id": "c1210485b2424d48804aad5d39c61b8f",
+        "allocation_pools": [
+            {
+                "start": "10.0.3.20",
+                "end": "10.0.3.150"
+            }
+        ],
+        "gateway_ip": "10.0.3.254",
+        "ip_version": 4,
+        "cidr": "10.0.3.0/24",
+        "enable_dhcp": true,
+        "id": "9436e561-47bf-436a-b1f1-fe23a926e031"
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/openstack-neutron/README.md
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/openstack-neutron/README.md 
b/dependencies/jclouds/apis/openstack-neutron/README.md
new file mode 100644
index 0000000..acf9320
--- /dev/null
+++ b/dependencies/jclouds/apis/openstack-neutron/README.md
@@ -0,0 +1,23 @@
+Why OpenStack Neutron forked?
+============================
+
+Openstack-neutron 1.8.1 manifest file is malformed in released version. 
+This message is passed to Jclouds team and they fixed it in master branch. But 
it will not be back ported to 1.8.1 release.
+So we have to clone openstack-neutron temporarly. 
+When we upgrade to next version we can safely remove openstack-neutron clone 
from Stratos code base. 
+
+Custom changes
+==============
+
+In openstack-neutron/pom.xml,
+
+- 
<jclouds.osgi.export>org.jclouds.openstack.neutron.v2_0*;version="${project.version}"</jclouds.osgi.export>
+- <jclouds.osgi.import>
+- org.jclouds.rest.internal;version="${jclouds.version}",
+- org.jclouds.labs*;version="${project.version}",
+- org.jclouds*;version="${jclouds.version}",
+- *
+- </jclouds.osgi.import>
++ 
<jclouds.osgi.export>org.jclouds.openstack.neutron.v2*;version="${project.version}"</jclouds.osgi.export>
++ 
<jclouds.osgi.import>org.jclouds*;version="${project.version}",*</jclouds.osgi.import>
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/README.txt
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/README.txt 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/README.txt
new file mode 100644
index 0000000..b00a7af
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/README.txt
@@ -0,0 +1,6 @@
+#
+# The jclouds API for VMware vCloud (http://www.vmware.com/products/vcloud/).
+#
+# TODO: Implementation status.
+# TODO: Supported features.
+# TODO: Usage example.

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/pom.xml 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/pom.xml
new file mode 100644
index 0000000..bc8951a
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/pom.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.jclouds</groupId>
+        <artifactId>jclouds-project</artifactId>
+        <version>1.8.1</version>
+    </parent>
+    <groupId>org.apache.stratos</groupId>
+    <artifactId>vcloud</artifactId>
+    <version>1.8.1-stratosv1</version>
+    <name>jclouds vcloud api</name>
+    <description>jclouds components to access an implementation of VMWare 
vCloud</description>
+    <packaging>bundle</packaging>
+
+    <properties>
+        <jclouds.version>1.8.1</jclouds.version>
+        <test.vcloud.endpoint>FIXME_ENDPOINT</test.vcloud.endpoint>
+        <test.vcloud.api-version>1.0</test.vcloud.api-version>
+        <test.vcloud.build-version/>
+        <test.vcloud.identity>FIXME_IDENTITY</test.vcloud.identity>
+        <test.vcloud.credential>FIXME_CREDENTIAL</test.vcloud.credential>
+        <test.vcloud.template/>
+        
<jclouds.osgi.export>org.jclouds.vcloud*;version="${project.version}"</jclouds.osgi.export>
+        <jclouds.osgi.import>
+            org.jclouds.compute.internal;version="${jclouds.version}",
+            org.jclouds.rest.internal;version="${jclouds.version}",
+            org.jclouds*;version="${jclouds.version}",
+            *
+        </jclouds.osgi.import>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.jamesmurty.utils</groupId>
+            <artifactId>java-xmlbuilder</artifactId>
+            <version>0.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds</groupId>
+            <artifactId>jclouds-core</artifactId>
+            <version>${jclouds.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds</groupId>
+            <artifactId>jclouds-core</artifactId>
+            <version>${jclouds.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds</groupId>
+            <artifactId>jclouds-compute</artifactId>
+            <version>${jclouds.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds</groupId>
+            <artifactId>jclouds-compute</artifactId>
+            <version>${jclouds.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds.driver</groupId>
+            <artifactId>jclouds-sshj</artifactId>
+            <version>${jclouds.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds.driver</groupId>
+            <artifactId>jclouds-log4j</artifactId>
+            <version>${jclouds.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <profiles>
+        <profile>
+            <id>live</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>integration</id>
+                                <phase>integration-test</phase>
+                                <goals>
+                                    <goal>test</goal>
+                                </goals>
+                                <configuration>
+                                    <systemPropertyVariables>
+                                        
<test.vcloud.endpoint>${test.vcloud.endpoint}</test.vcloud.endpoint>
+                                        
<test.vcloud.api-version>${test.vcloud.api-version}</test.vcloud.api-version>
+                                        
<test.vcloud.build-version>${test.vcloud.build-version}
+                                        </test.vcloud.build-version>
+                                        
<test.vcloud.identity>${test.vcloud.identity}</test.vcloud.identity>
+                                        
<test.vcloud.credential>${test.vcloud.credential}</test.vcloud.credential>
+                                        
<test.vcloud.template>${test.vcloud.template}</test.vcloud.template>
+                                    </systemPropertyVariables>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskInErrorStateException.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskInErrorStateException.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskInErrorStateException.java
new file mode 100644
index 0000000..fb54599
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskInErrorStateException.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.vcloud;
+
+import org.jclouds.vcloud.domain.Task;
+
+public class TaskInErrorStateException extends RuntimeException {
+
+   private final Task task;
+
+   public TaskInErrorStateException(Task task) {
+      super("error on task: " + task + " error: " + task.getError());
+      this.task = task;
+   }
+
+   public Task getTask() {
+      return task;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskStillRunningException.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskStillRunningException.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskStillRunningException.java
new file mode 100644
index 0000000..64eafbe
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskStillRunningException.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.vcloud;
+
+import org.jclouds.vcloud.domain.Task;
+
+public class TaskStillRunningException extends RuntimeException {
+
+   private final Task task;
+
+   public TaskStillRunningException(Task task) {
+      super("task still running: " + task);
+      this.task = task;
+   }
+
+   public Task getTask() {
+      return task;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApi.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApi.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApi.java
new file mode 100644
index 0000000..1c3b46c
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApi.java
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.vcloud;
+
+import java.io.Closeable;
+
+import org.jclouds.rest.annotations.Delegate;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.vcloud.features.CatalogApi;
+import org.jclouds.vcloud.features.NetworkApi;
+import org.jclouds.vcloud.features.OrgApi;
+import org.jclouds.vcloud.features.TaskApi;
+import org.jclouds.vcloud.features.VAppApi;
+import org.jclouds.vcloud.features.VAppTemplateApi;
+import org.jclouds.vcloud.features.VDCApi;
+import org.jclouds.vcloud.features.VmApi;
+import org.jclouds.vcloud.filters.AddVCloudAuthorizationAndCookieToRequest;
+
+/**
+ * Provides access to VCloud resources via their REST API.
+ * <p/>
+ * 
+ * @see <a 
href="http://communities.vmware.com/community/developer/forums/vcloudapi"; />
+ */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
+public interface VCloudApi extends Closeable {
+   /**
+    * Provides asynchronous access to VApp Template features.
+    * 
+    */
+   @Delegate
+   VAppTemplateApi getVAppTemplateApi();
+
+   /**
+    * Provides synchronous access to VApp features.
+    */
+   @Delegate
+   VAppApi getVAppApi();
+
+   /**
+    * Provides synchronous access to Vm features.
+    */
+   @Delegate
+   VmApi getVmApi();
+
+   /**
+    * Provides synchronous access to Catalog features.
+    */
+   @Delegate
+   CatalogApi getCatalogApi();
+
+   /**
+    * Provides synchronous access to Task features.
+    */
+   @Delegate
+   TaskApi getTaskApi();
+
+   /**
+    * Provides synchronous access to VDC features.
+    */
+   @Delegate
+   VDCApi getVDCApi();
+
+   /**
+    * Provides synchronous access to Network features.
+    */
+   @Delegate
+   NetworkApi getNetworkApi();
+
+   /**
+    * Provides synchronous access to Org features.
+    */
+   @Delegate
+   OrgApi getOrgApi();
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApiMetadata.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApiMetadata.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApiMetadata.java
new file mode 100644
index 0000000..4c88d8a
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApiMetadata.java
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.vcloud;
+import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL;
+import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE;
+import static org.jclouds.reflect.Reflection2.typeToken;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_FENCEMODE;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_TIMEOUT_TASK_COMPLETED;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_VERSION_SCHEMA;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_NAMESPACE;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_SCHEMA;
+
+import java.net.URI;
+import java.util.Properties;
+
+import org.jclouds.compute.ComputeServiceContext;
+import org.jclouds.rest.internal.BaseHttpApiMetadata;
+import org.jclouds.vcloud.compute.config.VCloudComputeServiceContextModule;
+import org.jclouds.vcloud.config.VCloudHttpApiModule;
+import org.jclouds.vcloud.domain.network.FenceMode;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.inject.Module;
+
+/**
+ * Implementation of {@link ApiMetadata} for VCloud 1.0 API
+ */
+public class VCloudApiMetadata extends BaseHttpApiMetadata<VCloudApi> {
+
+
+   @Override
+   public Builder toBuilder() {
+      return new Builder().fromApiMetadata(this);
+   }
+
+   public VCloudApiMetadata() {
+      this(new Builder());
+   }
+
+   protected VCloudApiMetadata(Builder builder) {
+      super(builder);
+   }
+
+   public static Properties defaultProperties() {
+      Properties properties = BaseHttpApiMetadata.defaultProperties();
+      properties.setProperty(PROPERTY_VCLOUD_VERSION_SCHEMA, "1");
+      properties.setProperty(PROPERTY_VCLOUD_XML_NAMESPACE,
+            String.format("http://www.vmware.com/vcloud/v${%s}";, 
PROPERTY_VCLOUD_VERSION_SCHEMA));
+      properties.setProperty(PROPERTY_SESSION_INTERVAL, 8 * 60 + "");
+      properties.setProperty(PROPERTY_VCLOUD_XML_SCHEMA, 
"http://vcloud.safesecureweb.com/ns/vcloud.xsd";);
+      properties.setProperty("jclouds.dns_name_length_min", "1");
+      properties.setProperty("jclouds.dns_name_length_max", "80");
+      properties.setProperty(PROPERTY_VCLOUD_DEFAULT_FENCEMODE, 
FenceMode.BRIDGED.toString());
+      // TODO integrate this with the {@link ComputeTimeouts} instead of having
+      // a single timeout for
+      // everything.
+      properties.setProperty(PROPERTY_VCLOUD_TIMEOUT_TASK_COMPLETED, 1200l * 
1000l + "");
+      properties.setProperty(PROPERTY_SESSION_INTERVAL, 300 + "");
+      // CIM ostype does not include version info
+      properties.setProperty(TEMPLATE, "osFamily=UBUNTU,os64Bit=true");
+      return properties;
+   }
+
+   public static class Builder extends BaseHttpApiMetadata.Builder<VCloudApi, 
Builder> {
+      protected Builder() {
+          id("vcloud")
+         .name("VCloud 1.0 API")
+         .identityName("User at Organization (user@org)")
+         .credentialName("Password")
+         
.documentation(URI.create("http://www.vmware.com/support/pubs/vcd_pubs.html";))
+         .version("1.0")
+         .defaultProperties(VCloudApiMetadata.defaultProperties())
+         .view(typeToken(ComputeServiceContext.class))
+         .defaultModules(ImmutableSet.<Class<? extends 
Module>>of(VCloudHttpApiModule.class, VCloudComputeServiceContextModule.class));
+      }
+
+      @Override
+      public VCloudApiMetadata build() {
+         return new VCloudApiMetadata(this);
+      }
+
+      @Override
+      protected Builder self() {
+         return this;
+      }
+   }
+}

Reply via email to