Repository: jclouds-labs-openstack
Updated Branches:
  refs/heads/master 1f4a3c0f5 -> 9c4bd9448


http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/util/PredicateUtil.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/util/PredicateUtil.java
 
b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/util/PredicateUtil.java
new file mode 100644
index 0000000..a3c39ce
--- /dev/null
+++ 
b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/util/PredicateUtil.java
@@ -0,0 +1,47 @@
+/*
+ * 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.openstack.neutron.v2.util;
+
+import com.google.common.base.Predicate;
+import org.jclouds.javax.annotation.Nullable;
+
+import java.lang.reflect.Field;
+
+public class PredicateUtil {
+
+    public static <T> Predicate<T> createIdEqualsPredicate(final String id) {
+        return new Predicate<T>() {
+            @Override
+            public boolean apply(@Nullable T input) {
+                if (input == null) return false;
+
+                try {
+                    Class clazz = input.getClass();
+                    Field field = ClassUtil.findField(clazz, "id");
+                    field.setAccessible(true);
+                    String value = (String) field.get(input);
+                    field.setAccessible(false);
+                    return value != null && value.equals(id);
+                } catch (IllegalAccessException iae) {
+                    return false;
+                }
+            }
+        };
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/internal/BaseNeutronApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/internal/BaseNeutronApiLiveTest.java
 
b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/internal/BaseNeutronApiLiveTest.java
index 9c57b82..de5755e 100644
--- 
a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/internal/BaseNeutronApiLiveTest.java
+++ 
b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/internal/BaseNeutronApiLiveTest.java
@@ -31,7 +31,7 @@ import java.util.Properties;
 public class BaseNeutronApiLiveTest extends BaseApiLiveTest<NeutronApi> {
 
    public BaseNeutronApiLiveTest() {
-      provider = "openstack-neutron";
+      provider = "openstack-neutron-legacy";
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/internal/BaseNeutronExpectTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/internal/BaseNeutronExpectTest.java
 
b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/internal/BaseNeutronExpectTest.java
index 3849abd..d8c024c 100644
--- 
a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/internal/BaseNeutronExpectTest.java
+++ 
b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/internal/BaseNeutronExpectTest.java
@@ -38,7 +38,7 @@ public class BaseNeutronExpectTest<T> extends 
BaseRestApiExpectTest<T> {
    protected String endpoint = "https://csnode.jclouds.org:9696/v2.0";;
 
    public BaseNeutronExpectTest() {
-      provider = "openstack-neutron";
+      provider = "openstack-neutron-legacy";
       keystoneAuthWithUsernameAndPassword = 
KeystoneFixture.INSTANCE.initialAuthWithUsernameAndPassword(identity,
               credential);
       keystoneAuthWithUsernameAndPasswordAndTenantName = 
KeystoneFixture.INSTANCE.initialAuthWithUsernameAndPasswordAndTenantName(identity,

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/access.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/access.json 
b/openstack-neutron/src/test/resources/access.json
new file mode 100644
index 0000000..fab1645
--- /dev/null
+++ b/openstack-neutron/src/test/resources/access.json
@@ -0,0 +1,228 @@
+{
+    "access": {
+        "metadata": {
+            "roles": [
+                "9fe2ff9ee4384b1894a90878d3e92bab",
+                "b926cb0f4e2642678735f86c2b06205e",
+                "33484487e73d4da0918a19b9c7e1f8ae",
+                "f2e54c2105fb49e29479af047115cebc"
+            ],
+            "is_admin": 0
+        },
+        "user": {
+            "name": "joe",
+            "roles": [
+                {
+                    "name": "_member_"
+                },
+                {
+                    "name": "anotherrole"
+                },
+                {
+                    "name": "heat_stack_owner"
+                },
+                {
+                    "name": "Member"
+                }
+            ],
+            "id": "8fbf8e68d36e4ac7bcf912a26213bd49",
+            "roles_links": [],
+            "username": "joe"
+        },
+        "serviceCatalog": [
+            {
+                "name": "nova",
+                "type": "compute",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": "URL/v2/da0d12be20394afb851716e10a49e4a7",
+                        "id": "2122bcaa704343c19ad2578410d4961d",
+                        "internalURL": 
"URL/v2/da0d12be20394afb851716e10a49e4a7",
+                        "region": "RegionOne",
+                        "adminURL": "URL/v2/da0d12be20394afb851716e10a49e4a7"
+                    }
+                ]
+            },
+            {
+                "name": "neutron",
+                "type": "network",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": "URL/",
+                        "id": "65a4d3f13cfb49a6a57a04e205cc2158",
+                        "internalURL": "URL/",
+                        "region": "RegionOne",
+                        "adminURL": "URL/"
+                    }
+                ]
+            },
+            {
+                "name": "cinderv2",
+                "type": "volumev2",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": "URL/v2/da0d12be20394afb851716e10a49e4a7",
+                        "id": "31fe4d92eac44044b05be21c6f44cebc",
+                        "internalURL": 
"URL/v2/da0d12be20394afb851716e10a49e4a7",
+                        "region": "RegionOne",
+                        "adminURL": "URL/v2/da0d12be20394afb851716e10a49e4a7"
+                    }
+                ]
+            },
+            {
+                "name": "trove",
+                "type": "database",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": 
"URL/v1.0/da0d12be20394afb851716e10a49e4a7",
+                        "id": "06b7a7dbd25c4a01819c879700a9712a",
+                        "internalURL": 
"URL/v1.0/da0d12be20394afb851716e10a49e4a7",
+                        "region": "RegionOne",
+                        "adminURL": "URL/v1.0/da0d12be20394afb851716e10a49e4a7"
+                    }
+                ]
+            },
+            {
+                "name": "s3",
+                "type": "s3",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": "URL",
+                        "id": "93b0b67091324e8ba01b62ee0584994c",
+                        "internalURL": "URL",
+                        "region": "RegionOne",
+                        "adminURL": "URL"
+                    }
+                ]
+            },
+            {
+                "name": "glance",
+                "type": "image",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": "URL",
+                        "id": "a542e91bcfa046bfa1bf2397356d1414",
+                        "internalURL": "URL",
+                        "region": "RegionOne",
+                        "adminURL": "URL"
+                    }
+                ]
+            },
+            {
+                "name": "novav3",
+                "type": "computev3",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": "URL/v3",
+                        "id": "9c3e8abb576d483db93bcef70c67bc1d",
+                        "internalURL": "URL/v3",
+                        "region": "RegionOne",
+                        "adminURL": "URL/v3"
+                    }
+                ]
+            },
+            {
+                "name": "heat",
+                "type": "cloudformation",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": "URL/v1",
+                        "id": "6f4ca5ca9698425b85c300b3fc176c39",
+                        "internalURL": "URL/v1",
+                        "region": "RegionOne",
+                        "adminURL": "URL/v1"
+                    }
+                ]
+            },
+            {
+                "name": "cinder",
+                "type": "volume",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": "URL/v1/da0d12be20394afb851716e10a49e4a7",
+                        "id": "037039c676694a35aa28d34fce09e51d",
+                        "internalURL": 
"URL/v1/da0d12be20394afb851716e10a49e4a7",
+                        "region": "RegionOne",
+                        "adminURL": "URL/v1/da0d12be20394afb851716e10a49e4a7"
+                    }
+                ]
+            },
+            {
+                "name": "ec2",
+                "type": "ec2",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": "URL/services/Cloud",
+                        "id": "1d242631bccb4ff4ba7a395dbcb51648",
+                        "internalURL": "URL/services/Cloud",
+                        "region": "RegionOne",
+                        "adminURL": "URL/services/Admin"
+                    }
+                ]
+            },
+            {
+                "name": "heat",
+                "type": "orchestration",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": "URL/v1/da0d12be20394afb851716e10a49e4a7",
+                        "id": "199d00075e4a40308a6ad2aa8980d0cd",
+                        "internalURL": 
"URL/v1/da0d12be20394afb851716e10a49e4a7",
+                        "region": "RegionOne",
+                        "adminURL": "URL/v1/da0d12be20394afb851716e10a49e4a7"
+                    }
+                ]
+            },
+            {
+                "name": "swift",
+                "type": "object-store",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": 
"URL/v1/AUTH_da0d12be20394afb851716e10a49e4a7",
+                        "id": "26b2cb1efb044193b847fc3f2fb12e82",
+                        "internalURL": 
"URL/v1/AUTH_da0d12be20394afb851716e10a49e4a7",
+                        "region": "RegionOne",
+                        "adminURL": "URL"
+                    }
+                ]
+            },
+            {
+                "name": "keystone",
+                "type": "identity",
+                "endpoints_links": [],
+                "endpoints": [
+                    {
+                        "publicURL": "URL/v2.0",
+                        "id": "1bbfe80b50df4c4a84040aa782e42140",
+                        "internalURL": "URL/v2.0",
+                        "region": "RegionOne",
+                        "adminURL": "URL/v2.0"
+                    }
+                ]
+            }
+        ],
+        "token": {
+            "tenant": {
+                "name": "jclouds",
+                "id": "da0d12be20394afb851716e10a49e4a7",
+                "enabled": true,
+                "description": null
+            },
+            "id": "TOKEN",
+            "expires": "2014-04-28T22:48:24Z",
+            "issued_at": "2014-04-28T21:48:24.972896"
+        }
+    }
+}

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

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/list_ports.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/list_ports.json 
b/openstack-neutron/src/test/resources/list_ports.json
index 392ef89..29c3a2b 100644
--- a/openstack-neutron/src/test/resources/list_ports.json
+++ b/openstack-neutron/src/test/resources/list_ports.json
@@ -1,86 +1,86 @@
-{"ports":[
-   {
-      "status":"ACTIVE",
-      "network_id":"1234567890",
-      "name":"jclouds-test",
-      "tenant_id":"1234567890",
-      "id":"16dba3bc-f3fa-4775-afdc-237e12c72f6a"
-   },
-   {
-      "status":"ACTIVE",
-      "network_id":"1234567890",
-      "name":"wibble",
-      "tenant_id":"1234567890",
-      "id":"1a104cf5-cb18-4d35-9407-2fd2646d9d0b"
-   },
-   {
-      "status":"ACTIVE",
-      "network_id":"1234567890",
-      "name":"jclouds-test",
-      "tenant_id":"1234567890",
-      "id":"31083ae2-420d-48b2-ac98-9f7a4fd8dbdc"
-   },
-   {
-      "status":"ACTIVE",
-      "network_id":"1234567890",
-      "name":"jclouds-test",
-      "tenant_id":"1234567890",
-      "id":"49c6d6fa-ff2a-459d-b975-75a8d31c9a89"
-   },
-   {
-      "status":"ACTIVE",
-      "network_id":"1234567890",
-      "name":"wibble",
-      "tenant_id":"1234567890",
-      "id":"5cb3d6f4-62cb-41c9-b964-ba7d9df79e4e"
-   },
-   {
-      "status":"ACTIVE",
-      "network_id":"1234567890",
-      "name":"jclouds-test",
-      "tenant_id":"1234567890",
-      "id":"5d51d012-3491-4db7-b1b5-6f254015015d"
-   },
-   {
-      "status":"ACTIVE",
-      "network_id":"1234567890",
-      "name":"wibble",
-      "tenant_id":"1234567890",
-      "id":"5f9cf7dc-22ca-4097-8e49-1cc8b23faf17"
-   },
-   {
-      "status":"ACTIVE",
-      "network_id":"1234567890",
-      "name":"jclouds-test",
-      "tenant_id":"1234567890",
-      "id":"6319ecad-6bff-48b2-9b53-02ede8cb7588"
-   },
-   {
-      "status":"ACTIVE",
-      "network_id":"1234567890",
-      "name":"jclouds-test",
-      "tenant_id":"1234567890",
-      "id":"6ba4c788-661f-49ab-9bf8-5f10cbbb2f57"
-   },
-   {
-      "status":"ACTIVE",
-      "network_id":"1234567890",
-      "name":"jclouds-test",
-      "tenant_id":"1234567890",
-      "id":"74ed170b-5069-4353-ab38-9719766dc57e"
-   },
-   {
-      "status":"ACTIVE",
-      "network_id":"1234567890",
-      "name":"wibble",
-      "tenant_id":"1234567890",
-      "id":"b71fcac1-e864-4031-8c5b-edbecd9ece36"
-   },
-   {
-      "status":"ACTIVE",
-      "network_id":"1234567890",
-      "name":"jclouds-test",
-      "tenant_id":"1234567890",
-      "id":"c7681895-d84d-4650-9ca0-82c72036b855"
-   }
-]}
\ No newline at end of file
+{"ports": [
+    {
+        "status": "ACTIVE",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "16dba3bc-f3fa-4775-afdc-237e12c72f6a"
+    },
+    {
+        "status": "ACTIVE",
+        "network_id": "1234567890",
+        "name": "wibble",
+        "tenant_id": "1234567890",
+        "id": "1a104cf5-cb18-4d35-9407-2fd2646d9d0b"
+    },
+    {
+        "status": "ACTIVE",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "31083ae2-420d-48b2-ac98-9f7a4fd8dbdc"
+    },
+    {
+        "status": "ACTIVE",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "49c6d6fa-ff2a-459d-b975-75a8d31c9a89"
+    },
+    {
+        "status": "ACTIVE",
+        "network_id": "1234567890",
+        "name": "wibble",
+        "tenant_id": "1234567890",
+        "id": "5cb3d6f4-62cb-41c9-b964-ba7d9df79e4e"
+    },
+    {
+        "status": "ACTIVE",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "5d51d012-3491-4db7-b1b5-6f254015015d"
+    },
+    {
+        "status": "ACTIVE",
+        "network_id": "1234567890",
+        "name": "wibble",
+        "tenant_id": "1234567890",
+        "id": "5f9cf7dc-22ca-4097-8e49-1cc8b23faf17"
+    },
+    {
+        "status": "ACTIVE",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "6319ecad-6bff-48b2-9b53-02ede8cb7588"
+    },
+    {
+        "status": "ACTIVE",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "6ba4c788-661f-49ab-9bf8-5f10cbbb2f57"
+    },
+    {
+        "status": "ACTIVE",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "74ed170b-5069-4353-ab38-9719766dc57e"
+    },
+    {
+        "status": "ACTIVE",
+        "network_id": "1234567890",
+        "name": "wibble",
+        "tenant_id": "1234567890",
+        "id": "b71fcac1-e864-4031-8c5b-edbecd9ece36"
+    },
+    {
+        "status": "ACTIVE",
+        "network_id": "1234567890",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "c7681895-d84d-4650-9ca0-82c72036b855"
+    }
+]}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/list_routers.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/list_routers.json 
b/openstack-neutron/src/test/resources/list_routers.json
index 0e5b95d..14dcfae 100644
--- a/openstack-neutron/src/test/resources/list_routers.json
+++ b/openstack-neutron/src/test/resources/list_routers.json
@@ -1,74 +1,74 @@
-{"routers":[
+{"routers": [
     {
-        "status":"ACTIVE",
-        "name":"jclouds-test",
-        "tenant_id":"1234567890",
-        "id":"16dba3bc-f3fa-4775-afdc-237e12c72f6a"
+        "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": "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": "31083ae2-420d-48b2-ac98-9f7a4fd8dbdc"
     },
     {
-        "status":"ACTIVE",
-        "name":"jclouds-test",
-        "tenant_id":"1234567890",
-        "id":"49c6d6fa-ff2a-459d-b975-75a8d31c9a89"
+        "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": "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": "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": "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": "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": "6ba4c788-661f-49ab-9bf8-5f10cbbb2f57"
     },
     {
-        "status":"ACTIVE",
-        "name":"jclouds-test",
-        "tenant_id":"1234567890",
-        "id":"74ed170b-5069-4353-ab38-9719766dc57e"
+        "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": "wibble",
+        "tenant_id": "1234567890",
+        "id": "b71fcac1-e864-4031-8c5b-edbecd9ece36"
     },
     {
-        "status":"ACTIVE",
-        "name":"jclouds-test",
-        "tenant_id":"1234567890",
-        "id":"c7681895-d84d-4650-9ca0-82c72036b855"
+        "status": "ACTIVE",
+        "name": "jclouds-test",
+        "tenant_id": "1234567890",
+        "id": "c7681895-d84d-4650-9ca0-82c72036b855"
     }
-]}
\ No newline at end of file
+]}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/list_subnets.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/list_subnets.json 
b/openstack-neutron/src/test/resources/list_subnets.json
index dc59bd5..b0061e9 100644
--- a/openstack-neutron/src/test/resources/list_subnets.json
+++ b/openstack-neutron/src/test/resources/list_subnets.json
@@ -1,98 +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"
-   }
-]}
\ No newline at end of file
+{"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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/network.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/network.json 
b/openstack-neutron/src/test/resources/network.json
index e2d5395..06d5d07 100644
--- a/openstack-neutron/src/test/resources/network.json
+++ b/openstack-neutron/src/test/resources/network.json
@@ -1,7 +1,7 @@
-{"network":{
-   "provider:network_type":"local",
-   "status":"ACTIVE",
-   "name":"jclouds-wibble",
-   "tenant_id":"1234567890",
-   "id":"624312ff-d14b-4ba3-9834-1c78d23d574d"
-}}
\ No newline at end of file
+{"network": {
+    "provider:network_type": "local",
+    "status": "ACTIVE",
+    "name": "jclouds-wibble",
+    "tenant_id": "1234567890",
+    "id": "624312ff-d14b-4ba3-9834-1c78d23d574d"
+}}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/network_bulk_create_request.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/network_bulk_create_request.json 
b/openstack-neutron/src/test/resources/network_bulk_create_request.json
new file mode 100644
index 0000000..e732dde
--- /dev/null
+++ b/openstack-neutron/src/test/resources/network_bulk_create_request.json
@@ -0,0 +1,12 @@
+{
+    "networks": [
+        {
+            "provider:network_type": "local",
+            "name": "jclouds-wibble"
+        },
+        {
+            "provider:network_type": "local",
+            "name": "jclouds-wibble2"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/network_bulk_create_response.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/network_bulk_create_response.json 
b/openstack-neutron/src/test/resources/network_bulk_create_response.json
new file mode 100644
index 0000000..ebde974
--- /dev/null
+++ b/openstack-neutron/src/test/resources/network_bulk_create_response.json
@@ -0,0 +1,18 @@
+{
+    "networks": [
+        {
+            "provider:network_type": "local",
+            "status": "ACTIVE",
+            "name": "jclouds-wibble",
+            "tenant_id": "1234567890",
+            "id": "624312ff-d14b-4ba3-9834-1c78d23d574d"
+        },
+        {
+            "provider:network_type": "local",
+            "status": "ACTIVE",
+            "name": "jclouds-wibble2",
+            "tenant_id": "1234567890",
+            "id": "624312ff-d14b-4ba3-9834-1c78d23d574e"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/network_create_request.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/network_create_request.json 
b/openstack-neutron/src/test/resources/network_create_request.json
new file mode 100644
index 0000000..f6bcfad
--- /dev/null
+++ b/openstack-neutron/src/test/resources/network_create_request.json
@@ -0,0 +1,4 @@
+{"network": {
+    "provider:network_type": "local",
+    "name": "jclouds-wibble"
+}}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/network_create_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/network_create_response.json 
b/openstack-neutron/src/test/resources/network_create_response.json
new file mode 100644
index 0000000..06d5d07
--- /dev/null
+++ b/openstack-neutron/src/test/resources/network_create_response.json
@@ -0,0 +1,7 @@
+{"network": {
+    "provider:network_type": "local",
+    "status": "ACTIVE",
+    "name": "jclouds-wibble",
+    "tenant_id": "1234567890",
+    "id": "624312ff-d14b-4ba3-9834-1c78d23d574d"
+}}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/network_get_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/network_get_response.json 
b/openstack-neutron/src/test/resources/network_get_response.json
new file mode 100644
index 0000000..06d5d07
--- /dev/null
+++ b/openstack-neutron/src/test/resources/network_get_response.json
@@ -0,0 +1,7 @@
+{"network": {
+    "provider:network_type": "local",
+    "status": "ACTIVE",
+    "name": "jclouds-wibble",
+    "tenant_id": "1234567890",
+    "id": "624312ff-d14b-4ba3-9834-1c78d23d574d"
+}}

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

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/network_list_response_paged1.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/network_list_response_paged1.json 
b/openstack-neutron/src/test/resources/network_list_response_paged1.json
new file mode 100644
index 0000000..9fe7e54
--- /dev/null
+++ b/openstack-neutron/src/test/resources/network_list_response_paged1.json
@@ -0,0 +1,40 @@
+{
+    "networks": [
+        {
+            "admin_state_up": true,
+            "id": "396f12f8-521e-4b91-8e21-2e003500433a",
+            "name": "net3",
+            "provider:network_type": "vlan",
+            "provider:physical_network": "physnet1",
+            "provider:segmentation_id": 1002,
+            "router:external": false,
+            "shared": false,
+            "status": "ACTIVE",
+            "subnets": [],
+            "tenant_id": "20bd52ff3e1b40039c312395b04683cf"
+        },
+        {
+            "admin_state_up": true,
+            "id": "71c1e68c-171a-4aa2-aca5-50ea153a3718",
+            "name": "net2",
+            "provider:network_type": "vlan",
+            "provider:physical_network": "physnet1",
+            "provider:segmentation_id": 1001,
+            "router:external": false,
+            "shared": false,
+            "status": "ACTIVE",
+            "subnets": [],
+            "tenant_id": "20bd52ff3e1b40039c312395b04683cf"
+        }
+    ],
+    "networks_links": [
+        {
+            "href": 
"/v2.0/networks.json?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718",
+            "rel": "next"
+        },
+        {
+            "href": 
"/v2.0/networks.json?marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
+            "rel": "previous"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/network_list_response_paged2.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/network_list_response_paged2.json 
b/openstack-neutron/src/test/resources/network_list_response_paged2.json
new file mode 100644
index 0000000..b03714f
--- /dev/null
+++ b/openstack-neutron/src/test/resources/network_list_response_paged2.json
@@ -0,0 +1,36 @@
+{
+    "networks": [
+        {
+            "admin_state_up": true,
+            "id": "396f12f8-521e-4b91-8e21-2e003500433a_2",
+            "name": "net3",
+            "provider:network_type": "vlan",
+            "provider:physical_network": "physnet1",
+            "provider:segmentation_id": 1002,
+            "router:external": false,
+            "shared": false,
+            "status": "ACTIVE",
+            "subnets": [],
+            "tenant_id": "20bd52ff3e1b40039c312395b04683cf"
+        },
+        {
+            "admin_state_up": true,
+            "id": "71c1e68c-171a-4aa2-aca5-50ea153a3718_2",
+            "name": "net2",
+            "provider:network_type": "vlan",
+            "provider:physical_network": "physnet1",
+            "provider:segmentation_id": 1001,
+            "router:external": false,
+            "shared": false,
+            "status": "ACTIVE",
+            "subnets": [],
+            "tenant_id": "20bd52ff3e1b40039c312395b04683cf"
+        }
+    ],
+    "networks_links": [
+        {
+            "href": 
"/v2.0/networks.json?marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
+            "rel": "previous"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/network_update_request.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/network_update_request.json 
b/openstack-neutron/src/test/resources/network_update_request.json
new file mode 100644
index 0000000..a9f0aee
--- /dev/null
+++ b/openstack-neutron/src/test/resources/network_update_request.json
@@ -0,0 +1,4 @@
+{"network": {
+    "provider:network_type": "local",
+    "name": "jclouds-wibble-updated"
+}}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/network_update_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/network_update_response.json 
b/openstack-neutron/src/test/resources/network_update_response.json
new file mode 100644
index 0000000..140b648
--- /dev/null
+++ b/openstack-neutron/src/test/resources/network_update_response.json
@@ -0,0 +1,11 @@
+{
+    "network": {
+        "status": "ACTIVE",
+        "subnets": [],
+        "name": "updated_name",
+        "admin_state_up": false,
+        "shared": false,
+        "tenant_id": "c1210485b2424d48804aad5d39c61b8f",
+        "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766"
+    }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/port.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/port.json 
b/openstack-neutron/src/test/resources/port.json
index 386303f..15629a6 100644
--- a/openstack-neutron/src/test/resources/port.json
+++ b/openstack-neutron/src/test/resources/port.json
@@ -1,7 +1,7 @@
-{"port":{
-   "status":"ACTIVE",
-   "network_id":"1234567890",
-   "name":"jclouds-wibble",
-   "tenant_id":"1234567890",
-   "id":"624312ff-d14b-4ba3-9834-1c78d23d574d"
-}}
\ No newline at end of file
+{"port": {
+    "status": "ACTIVE",
+    "network_id": "1234567890",
+    "name": "jclouds-wibble",
+    "tenant_id": "1234567890",
+    "id": "624312ff-d14b-4ba3-9834-1c78d23d574d"
+}}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/port_create_bulk_request.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/port_create_bulk_request.json 
b/openstack-neutron/src/test/resources/port_create_bulk_request.json
new file mode 100644
index 0000000..c0567c6
--- /dev/null
+++ b/openstack-neutron/src/test/resources/port_create_bulk_request.json
@@ -0,0 +1,22 @@
+{
+    "ports": [
+        {
+            "admin_state_up": true,
+            "device_id": "24df1d04-d5cb-41e1-8de5-61ed77c558df",
+            "name": "port1",
+            "network_id": "64239a54-dcc4-4b39-920b-b37c2144effa",
+            "security_groups": [
+                "dbc107f4-afcd-4d5a-9352-f68f82241d5b"
+            ]
+        },
+        {
+            "admin_state_up": false,
+            "name": "port2",
+            "network_id": "e6031bc2-901a-4c66-82da-f4c32ed89406",
+            "security_groups": [
+                "8bf3f7cc-8471-40b1-815f-9da47e79775b",
+                "dbc107f4-afcd-4d5a-9352-f68f82241d5b"
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/port_create_bulk_response.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/port_create_bulk_response.json 
b/openstack-neutron/src/test/resources/port_create_bulk_response.json
new file mode 100644
index 0000000..3ecfb52
--- /dev/null
+++ b/openstack-neutron/src/test/resources/port_create_bulk_response.json
@@ -0,0 +1,47 @@
+{
+    "ports": [
+        {
+            "admin_state_up": true,
+            "allowed_address_pairs": [],
+            "device_id": "24df1d04-d5cb-41e1-8de5-61ed77c558df",
+            "device_owner": "",
+            "fixed_ips": [
+                {
+                    "ip_address": "10.56.4.2",
+                    "subnet_id": "b0e7435c-1512-45fb-aa9e-9a7c5932fb30"
+                }
+            ],
+            "id": "4fa2a5b2-d758-449d-80d6-dff31df9e91e",
+            "mac_address": "fa:16:3e:63:b0:82",
+            "name": "port1",
+            "network_id": "64239a54-dcc4-4b39-920b-b37c2144effa",
+            "security_groups": [
+                "dbc107f4-afcd-4d5a-9352-f68f82241d5b"
+            ],
+            "status": "DOWN",
+            "tenant_id": "d19231fc08ec4bc4829b668040d34512"
+        },
+        {
+            "admin_state_up": false,
+            "allowed_address_pairs": [],
+            "device_id": "",
+            "device_owner": "",
+            "fixed_ips": [
+                {
+                    "ip_address": "192.168.199.2",
+                    "subnet_id": "0468a7a7-290d-4127-aedd-6c9449775a24"
+                }
+            ],
+            "id": "d3c059b8-40fd-489a-8d17-97bde9370987",
+            "mac_address": "fa:16:3e:86:09:06",
+            "name": "port2",
+            "network_id": "e6031bc2-901a-4c66-82da-f4c32ed89406",
+            "security_groups": [
+                "8bf3f7cc-8471-40b1-815f-9da47e79775b",
+                "dbc107f4-afcd-4d5a-9352-f68f82241d5b"
+            ],
+            "status": "DOWN",
+            "tenant_id": "d19231fc08ec4bc4829b668040d34512"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/port_create_request.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/port_create_request.json 
b/openstack-neutron/src/test/resources/port_create_request.json
new file mode 100644
index 0000000..d9e8d33
--- /dev/null
+++ b/openstack-neutron/src/test/resources/port_create_request.json
@@ -0,0 +1,14 @@
+{
+    "port": {
+        "admin_state_up": true,
+        "device_id": "d6b4d3a5-c700-476f-b609-1493dd9dadc0",
+        "name": "port1",
+        "network_id": "6aeaf34a-c482-4bd3-9dc3-7faf36412f12",
+        "allowed_address_pairs": [
+            {
+                "ip_address": "111.222.333.444",
+                "mac_address": "12"
+            }
+        ]
+    }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/port_create_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/port_create_response.json 
b/openstack-neutron/src/test/resources/port_create_response.json
new file mode 100644
index 0000000..696ac44
--- /dev/null
+++ b/openstack-neutron/src/test/resources/port_create_response.json
@@ -0,0 +1,29 @@
+{
+    "port": {
+        "admin_state_up": true,
+        "device_id": "d6b4d3a5-c700-476f-b609-1493dd9dadc0",
+        "device_owner": "",
+        "allowed_address_pairs": [
+            {
+                "ip_address": "192.168.1.1",
+                "mac_address": "12:12"
+            },
+            {
+                "mac_address": "12:13",
+                "ip_address": "192.168.1.2"
+            }
+        ],
+        "fixed_ips": [
+            {
+                "ip_address": "192.168.111.4",
+                "subnet_id": "22b44fc2-4ffb-4de4-b0f9-69d58b37ae27"
+            }
+        ],
+        "id": "ebe69f1e-bc26-4db5-bed0-c0afb4afe3db",
+        "mac_address": "fa:16:3e:a6:50:c1",
+        "name": "port1",
+        "network_id": "6aeaf34a-c482-4bd3-9dc3-7faf36412f12",
+        "status": "ACTIVE",
+        "tenant_id": "cf1a5775e766426cb1968766d0191908"
+    }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/port_get_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/port_get_response.json 
b/openstack-neutron/src/test/resources/port_get_response.json
new file mode 100644
index 0000000..d9c154d
--- /dev/null
+++ b/openstack-neutron/src/test/resources/port_get_response.json
@@ -0,0 +1,10 @@
+{"port": {
+    "status": "ACTIVE",
+    "network_id": "1234567890",
+    "name": "jclouds-wibble",
+    "tenant_id": "1234567890",
+    "id": "624312ff-d14b-4ba3-9834-1c78d23d574d",
+    "binding:vnic_type": "normal",
+    "binding:vif_type": "hyperv",
+    "binding:vif_details": {"name1": "value1", "name2": {"mapname2": 3}}
+}}

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

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/port_list_response_paged1.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/port_list_response_paged1.json 
b/openstack-neutron/src/test/resources/port_list_response_paged1.json
new file mode 100644
index 0000000..f3bd818
--- /dev/null
+++ b/openstack-neutron/src/test/resources/port_list_response_paged1.json
@@ -0,0 +1,48 @@
+{
+    "ports": [
+        {
+            "admin_state_up": true,
+            "device_id": "257614cc-e178-4c92-9c61-3b28d40eca44",
+            "device_owner": "",
+            "fixed_ips": [
+                {
+                    "ip_address": "192.168.111.3",
+                    "subnet_id": "22b44fc2-4ffb-4de4-b0f9-69d58b37ae27"
+                }
+            ],
+            "id": "24e6637e-c521-45fc-8b8b-d7331aa3c99f",
+            "mac_address": "fa:16:3e:0f:3f:b5",
+            "name": "",
+            "network_id": "6aeaf34a-c482-4bd3-9dc3-7faf36412f12",
+            "status": "ACTIVE",
+            "tenant_id": "cf1a5775e766426cb1968766d0191908"
+        },
+        {
+            "admin_state_up": true,
+            "device_id": "d266f9de-fe2c-4705-93b3-9da71168c93b",
+            "device_owner": "",
+            "fixed_ips": [
+                {
+                    "ip_address": "192.168.111.2",
+                    "subnet_id": "22b44fc2-4ffb-4de4-b0f9-69d58b37ae27"
+                }
+            ],
+            "id": "e54dfd9b-ce6e-47f7-af47-1609cfd1cdb0",
+            "mac_address": "fa:16:3e:f5:41:7f",
+            "name": "",
+            "network_id": "6aeaf34a-c482-4bd3-9dc3-7faf36412f12",
+            "status": "ACTIVE",
+            "tenant_id": "cf1a5775e766426cb1968766d0191908"
+        }
+    ],
+    "ports_links": [
+        {
+            "href": 
"/v2.0/ports.json?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718",
+            "rel": "next"
+        },
+        {
+            "href": 
"/v2.0/ports.json?marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
+            "rel": "previous"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/port_list_response_paged2.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/port_list_response_paged2.json 
b/openstack-neutron/src/test/resources/port_list_response_paged2.json
new file mode 100644
index 0000000..ccd4c93
--- /dev/null
+++ b/openstack-neutron/src/test/resources/port_list_response_paged2.json
@@ -0,0 +1,44 @@
+{
+    "ports": [
+        {
+            "admin_state_up": true,
+            "device_id": "257614cc-e178-4c92-9c61-3b28d40eca44_3",
+            "device_owner": "",
+            "fixed_ips": [
+                {
+                    "ip_address": "192.168.111.3",
+                    "subnet_id": "22b44fc2-4ffb-4de4-b0f9-69d58b37ae27"
+                }
+            ],
+            "id": "24e6637e-c521-45fc-8b8b-d7331aa3c99f-2_3",
+            "mac_address": "fa:16:3e:0f:3f:b5",
+            "name": "3",
+            "network_id": "6aeaf34a-c482-4bd3-9dc3-7faf36412f12",
+            "status": "ACTIVE",
+            "tenant_id": "cf1a5775e766426cb1968766d0191908"
+        },
+        {
+            "admin_state_up": true,
+            "device_id": "d266f9de-fe2c-4705-93b3-9da71168c93b",
+            "device_owner": "",
+            "fixed_ips": [
+                {
+                    "ip_address": "192.168.111.2",
+                    "subnet_id": "22b44fc2-4ffb-4de4-b0f9-69d58b37ae27"
+                }
+            ],
+            "id": "e54dfd9b-ce6e-47f7-af47-1609cfd1cdb0_4",
+            "mac_address": "fa:16:3e:f5:41:7f",
+            "name": "4",
+            "network_id": "6aeaf34a-c482-4bd3-9dc3-7faf36412f12",
+            "status": "ACTIVE",
+            "tenant_id": "cf1a5775e766426cb1968766d0191908"
+        }
+    ],
+    "ports_links": [
+        {
+            "href": 
"/v2.0/ports.json?marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
+            "rel": "previous"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/port_update_request.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/port_update_request.json 
b/openstack-neutron/src/test/resources/port_update_request.json
new file mode 100644
index 0000000..f5af476
--- /dev/null
+++ b/openstack-neutron/src/test/resources/port_update_request.json
@@ -0,0 +1,8 @@
+{
+    "port": {
+        "security_groups": [
+            "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "c5ab5c29-2c99-44cb-a4b8-e70a88b77799"
+        ]
+    }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/port_update_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/port_update_response.json 
b/openstack-neutron/src/test/resources/port_update_response.json
new file mode 100644
index 0000000..b88db25
--- /dev/null
+++ b/openstack-neutron/src/test/resources/port_update_response.json
@@ -0,0 +1,23 @@
+{
+    "port": {
+        "admin_state_up": true,
+        "device_id": "24df1d04-d5cb-41e1-8de5-61ed77c558df",
+        "device_owner": "compute:None",
+        "fixed_ips": [
+            {
+                "ip_address": "10.0.0.3",
+                "subnet_id": "3b498f11-0a20-43ed-b992-0e4202d5f930"
+            }
+        ],
+        "id": "1d8591f4-7b62-428e-857d-e82a15e5a7f1",
+        "mac_address": "fa:16:3e:b6:da:54",
+        "name": "",
+        "network_id": "abaf2e70-4305-4e8d-ac70-3e4cc5f66a07",
+        "security_groups": [
+            "85cc3048-abc3-43cc-89b3-377341426ac5",
+            "c5ab5c29-2c99-44cb-a4b8-e70a88b77799"
+        ],
+        "status": "ACTIVE",
+        "tenant_id": "e4f50856753b4dc6afee5fa6b9b6c550"
+    }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/router.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/router.json 
b/openstack-neutron/src/test/resources/router.json
index 0b45db9..b39e3c8 100644
--- a/openstack-neutron/src/test/resources/router.json
+++ b/openstack-neutron/src/test/resources/router.json
@@ -1,7 +1,9 @@
-{"router":{
-    "status":"ACTIVE",
-    
"external_gateway_info":{"network_id":"624312ff-d14b-4ba3-9834-1c78d23d574d"},
-    "name":"jclouds-wibble",
-    "tenant_id":"1234567890",
-    "id":"16dba3bc-f3fa-4775-afdc-237e12c72f6a"
-}}
\ No newline at end of file
+{"router": {
+    "status": "ACTIVE",
+    "external_gateway_info": {
+        "network_id": "624312ff-d14b-4ba3-9834-1c78d23d574d"
+    },
+    "name": "jclouds-wibble",
+    "tenant_id": "1234567890",
+    "id": "16dba3bc-f3fa-4775-afdc-237e12c72f6a"
+}}

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

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

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/router_add_interface_response.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/router_add_interface_response.json 
b/openstack-neutron/src/test/resources/router_add_interface_response.json
new file mode 100644
index 0000000..d28007c
--- /dev/null
+++ b/openstack-neutron/src/test/resources/router_add_interface_response.json
@@ -0,0 +1,4 @@
+{
+    "subnet_id": "a2f1f29d-571b-4533-907f-5803ab96ead1",
+    "port_id": "3a44f4e5-1694-493a-a1fb-393881c673a4"
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/router_create_request.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/router_create_request.json 
b/openstack-neutron/src/test/resources/router_create_request.json
new file mode 100644
index 0000000..106e5d4
--- /dev/null
+++ b/openstack-neutron/src/test/resources/router_create_request.json
@@ -0,0 +1,9 @@
+{
+    "router": {
+        "name": "another_router",
+        "external_gateway_info": {
+            "network_id": "8ca37218-28ff-41cb-9b10-039601ea7e6b"
+        },
+        "admin_state_up": true
+    }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/router_create_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/router_create_response.json 
b/openstack-neutron/src/test/resources/router_create_response.json
new file mode 100644
index 0000000..d851d76
--- /dev/null
+++ b/openstack-neutron/src/test/resources/router_create_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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/router_get_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/router_get_response.json 
b/openstack-neutron/src/test/resources/router_get_response.json
new file mode 100644
index 0000000..77bdebf
--- /dev/null
+++ b/openstack-neutron/src/test/resources/router_get_response.json
@@ -0,0 +1,12 @@
+{
+    "router": {
+        "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"
+    }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/router_list_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/router_list_response.json 
b/openstack-neutron/src/test/resources/router_list_response.json
new file mode 100644
index 0000000..14dcfae
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/router_list_response_paged1.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/router_list_response_paged1.json 
b/openstack-neutron/src/test/resources/router_list_response_paged1.json
new file mode 100644
index 0000000..ef67e54
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/router_list_response_paged2.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/router_list_response_paged2.json 
b/openstack-neutron/src/test/resources/router_list_response_paged2.json
new file mode 100644
index 0000000..decec75
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/router_remove_interface_port_request.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/router_remove_interface_port_request.json
 
b/openstack-neutron/src/test/resources/router_remove_interface_port_request.json
new file mode 100644
index 0000000..bae800a
--- /dev/null
+++ 
b/openstack-neutron/src/test/resources/router_remove_interface_port_request.json
@@ -0,0 +1,3 @@
+{
+    "port_id": "portid"
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/router_remove_interface_subnet_request.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/router_remove_interface_subnet_request.json
 
b/openstack-neutron/src/test/resources/router_remove_interface_subnet_request.json
new file mode 100644
index 0000000..107e6e4
--- /dev/null
+++ 
b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/router_update_request.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/router_update_request.json 
b/openstack-neutron/src/test/resources/router_update_request.json
new file mode 100644
index 0000000..351c427
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/router_update_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/router_update_response.json 
b/openstack-neutron/src/test/resources/router_update_response.json
new file mode 100644
index 0000000..d851d76
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/subnet.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/subnet.json 
b/openstack-neutron/src/test/resources/subnet.json
index abc5ceb..58c4382 100644
--- a/openstack-neutron/src/test/resources/subnet.json
+++ b/openstack-neutron/src/test/resources/subnet.json
@@ -1,8 +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"
-}}
\ No newline at end of file
+{"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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/subnet_bulk_create_request.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/subnet_bulk_create_request.json 
b/openstack-neutron/src/test/resources/subnet_bulk_create_request.json
new file mode 100644
index 0000000..0bb8460
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/subnet_bulk_create_response.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/subnet_bulk_create_response.json 
b/openstack-neutron/src/test/resources/subnet_bulk_create_response.json
new file mode 100644
index 0000000..f643084
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/subnet_create_request.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/subnet_create_request.json 
b/openstack-neutron/src/test/resources/subnet_create_request.json
new file mode 100644
index 0000000..49a53b6
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/subnet_create_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/subnet_create_response.json 
b/openstack-neutron/src/test/resources/subnet_create_response.json
new file mode 100644
index 0000000..58c4382
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/subnet_get_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/subnet_get_response.json 
b/openstack-neutron/src/test/resources/subnet_get_response.json
new file mode 100644
index 0000000..aead0f9
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/subnet_list_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/subnet_list_response.json 
b/openstack-neutron/src/test/resources/subnet_list_response.json
new file mode 100644
index 0000000..b0061e9
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/subnet_list_response_pages1.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/subnet_list_response_pages1.json 
b/openstack-neutron/src/test/resources/subnet_list_response_pages1.json
new file mode 100644
index 0000000..10b3aaa
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/subnet_list_response_pages2.json
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/resources/subnet_list_response_pages2.json 
b/openstack-neutron/src/test/resources/subnet_list_response_pages2.json
new file mode 100644
index 0000000..0319fbe
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/subnet_update_request.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/subnet_update_request.json 
b/openstack-neutron/src/test/resources/subnet_update_request.json
new file mode 100644
index 0000000..6345647
--- /dev/null
+++ b/openstack-neutron/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/jclouds-labs-openstack/blob/9c4bd944/openstack-neutron/src/test/resources/subnet_update_response.json
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/subnet_update_response.json 
b/openstack-neutron/src/test/resources/subnet_update_response.json
new file mode 100644
index 0000000..40c65e9
--- /dev/null
+++ b/openstack-neutron/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"
+    }
+}

Reply via email to