libcloud-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From anthonys...@apache.org
Subject [01/11] libcloud git commit: 1&1 Compute Driver
Date Tue, 11 Apr 2017 00:23:55 GMT
Repository: libcloud
Updated Branches:
  refs/heads/trunk 30715a44c -> bcdf8b594


http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/list_load_balancer.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/list_load_balancer.json b/libcloud/test/compute/fixtures/oneandone/list_load_balancer.json
new file mode 100644
index 0000000..93a542a
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/list_load_balancer.json
@@ -0,0 +1,78 @@
+[
+  {
+    "id": "B23F1B4F84E983B4FEDD5459E877058A",
+    "name": "My load balancer",
+    "state": "CONFIGURING",
+    "creation_date": "2015-03-03T11:12:00+00:00",
+    "description": "My load balancer description",
+    "ip": "10.5.138.52",
+    "health_check_test": "TCP",
+    "health_check_interval": 40,
+    "health_check_path": null,
+    "health_check_path_parser": null,
+    "persistence": true,
+    "persistence_time": 1200,
+    "method": "ROUND_ROBIN",
+    "datacenter": {
+      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
+      "location": "USA",
+      "country_code": "US"
+    },
+    "rules": [
+      {
+        "id": "D7A0A7C445D844848EBB439C28B46183",
+        "protocol": "TCP",
+        "port_balancer": 22,
+        "port_server": 22,
+        "source": "0.0.0.0"
+      },
+      {
+        "id": "9AE836CDE379EEB361287F07B3300F84",
+        "protocol": "TCP",
+        "port_balancer": 85,
+        "port_server": 85,
+        "source": "0.0.0.0"
+      }
+    ],
+    "server_ips": [],
+    "cloudpanel_id": "LB99AA4_1"
+  },
+  {
+    "id": "B23F1B4F84E983B4FEDD5459E877058B",
+    "name": "My Load Balancer II",
+    "state": "CONFIGURING",
+    "creation_date": "2015-03-03T11:12:00+00:00",
+    "description": "My load balancer II description",
+    "ip": "10.5.138.53",
+    "health_check_test": "TCP",
+    "health_check_interval": 40,
+    "health_check_path": null,
+    "health_check_path_parser": null,
+    "persistence": true,
+    "persistence_time": 1200,
+    "method": "ROUND_ROBIN",
+    "region": {
+      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
+      "location": "USA",
+      "country_code": "US"
+    },
+    "rules": [
+      {
+        "id": "D7A0A7C445D844848EBB439C28B46184",
+        "protocol": "TCP",
+        "port_balancer": 22,
+        "port_server": 22,
+        "source": "0.0.0.0"
+      },
+      {
+        "id": "9AE836CDE379EEB361287F07B3300F85",
+        "protocol": "TCP",
+        "port_balancer": 9999,
+        "port_server": 9999,
+        "source": "0.0.0.0"
+      }
+    ],
+    "server_ips": [],
+    "cloudpanel_id": "LB99AA4_1"
+  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/list_monitoring_policies.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/list_monitoring_policies.json b/libcloud/test/compute/fixtures/oneandone/list_monitoring_policies.json
new file mode 100644
index 0000000..7d3c75b
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/list_monitoring_policies.json
@@ -0,0 +1,152 @@
+[
+  {
+    "id": "0F9A1604FC80EB625FC6AEE7394893BE",
+    "name": "Default Policy",
+    "description": "Default Policy Description",
+    "default": 1,
+    "state": "ACTIVE",
+    "creation_date": "2014-10-29T07:52:46+00:00",
+    "email": "",
+    "agent": false,
+    "servers": [
+      {
+        "id": "E83777750130E1111AA89623B9557CAF",
+        "name": "My Server 1"
+      },
+      {
+        "id": "CB22C6E0428239348A6B70BAE0D67E66",
+        "name": "My Server 2"
+      },
+      {
+        "id": "6AAA2BD60813F419DEC8D69C6E4F6477",
+        "name": "My Server 3"
+      }
+    ],
+    "thresholds": {
+      "cpu": {
+        "warning": {
+          "value": 90,
+          "alert": false
+        },
+        "critical": {
+          "value": 95,
+          "alert": false
+        }
+      },
+      "ram": {
+        "warning": {
+          "value": 90,
+          "alert": false
+        },
+        "critical": {
+          "value": 95,
+          "alert": false
+        }
+      },
+      "transfer": {
+        "warning": {
+          "value": 1000,
+          "alert": false
+        },
+        "critical": {
+          "value": 2000,
+          "alert": false
+        }
+      },
+      "internal_ping": {
+        "warning": {
+          "value": 50,
+          "alert": false
+        },
+        "critical": {
+          "value": 100,
+          "alert": false
+        }
+      }
+    },
+    "ports": [],
+    "processes": [],
+    "cloudpanel_id": "mo99AA4_1"
+  },
+  {
+    "id": "C81F17AF6F6F6717372B79A882B25E92",
+    "name": "My monitoring policy",
+    "description": null,
+    "default": 0,
+    "state": "ACTIVE",
+    "creation_date": "2015-02-26T07:23:42+00:00",
+    "email": "",
+    "agent": true,
+    "servers": [],
+    "thresholds": {
+      "cpu": {
+        "warning": {
+          "value": 90,
+          "alert": false
+        },
+        "critical": {
+          "value": 95,
+          "alert": false
+        }
+      },
+      "ram": {
+        "warning": {
+          "value": 90,
+          "alert": false
+        },
+        "critical": {
+          "value": 95,
+          "alert": false
+        }
+      },
+      "disk": {
+        "warning": {
+          "value": 80,
+          "alert": false
+        },
+        "critical": {
+          "value": 90,
+          "alert": false
+        }
+      },
+      "transfer": {
+        "warning": {
+          "value": 1000,
+          "alert": false
+        },
+        "critical": {
+          "value": 2000,
+          "alert": false
+        }
+      },
+      "internal_ping": {
+        "warning": {
+          "value": 50,
+          "alert": false
+        },
+        "critical": {
+          "value": 100,
+          "alert": false
+        }
+      }
+    },
+    "ports": [
+      {
+        "id": "5F67F2706335AF34FFCDF71E5AF08B2B",
+        "protocol": "TCP",
+        "port": "22",
+        "alert_when": false,
+        "alert": true
+      }
+    ],
+    "processes": [
+      {
+        "id": "13CF2BEADA60230C6241C81C248F3C4B",
+        "process": "test",
+        "alert_when": false,
+        "alert": true
+      }
+    ],
+    "cloudpanel_id": "mo99AA4_2"
+  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/list_public_ips.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/list_public_ips.json b/libcloud/test/compute/fixtures/oneandone/list_public_ips.json
new file mode 100644
index 0000000..6d4260e
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/list_public_ips.json
@@ -0,0 +1,59 @@
+[
+  {
+    "id": "569FA2EC06DD48C9E8635F3384A018DB",
+    "ip": "10.5.138.52",
+    "type": "IPV4",
+    "datacenter": {
+      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
+      "location": "USA",
+      "country_code": "US"
+    },
+    "assigned_to": {
+      "id": "B23F1B4F84E983B4FEDD5459E877058A",
+      "name": "My load balancer",
+      "type": "LOAD_BALANCER"
+    },
+    "reverse_dns": null,
+    "is_dhcp": false,
+    "state": "ACTIVE",
+    "creation_date": "2015-03-03T11:12:10+00:00"
+  },
+  {
+    "id": "6F033A13C3EFCE0FB60783280A118D63",
+    "ip": "10.5.133.191",
+    "type": "IPV4",
+    "datacenter": {
+      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
+      "location": "USA",
+      "country_code": "US"
+    },
+    "assigned_to": {
+      "id": "BDAF0EC6A36E9E554B80B7E7365821F5",
+      "name": "My Server 1",
+      "type": "SERVER"
+    },
+    "reverse_dns": null,
+    "is_dhcp": true,
+    "state": "ACTIVE",
+    "creation_date": "2015-05-04T07:21:37+00:00"
+  },
+  {
+    "id": "39C73A57B33DAF2F9FA1EBEA4C301FCF",
+    "ip": "10.5.138.81",
+    "type": "IPV4",
+    "datacenter": {
+      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
+      "location": "USA",
+      "country_code": "US"
+    },
+    "assigned_to": {
+      "id": "B23F1B4F84E983B4FEDD5459E877058A",
+      "name": "My load balancer",
+      "type": "LOAD_BALANCER"
+    },
+    "reverse_dns": null,
+    "is_dhcp": false,
+    "state": "ACTIVE",
+    "creation_date": "2015-03-03T11:13:16+00:00"
+  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/list_servers.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/list_servers.json b/libcloud/test/compute/fixtures/oneandone/list_servers.json
new file mode 100644
index 0000000..f9e05b2
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/list_servers.json
@@ -0,0 +1,197 @@
+[
+   {
+      "id":"8A7D5122BDC173B6E52223878CEF2748",
+      "name":"Docs Content Ubuntu 16.04-1",
+      "description":"",
+      "status":{
+         "state":"POWERED_ON",
+         "percent":null
+      },
+      "datacenter":{
+         "id":"908DC2072407C94C8054610AD5A53B8C",
+         "country_code":"US",
+         "location":"United States of America"
+      },
+      "creation_date":"2016-10-03T16:44:34+00:00",
+      "image":{
+         "id":"4DBFA2D31B1A303A9CE0E4ECF8838FDE",
+         "name":"ubuntu1604-64std"
+      },
+      "hardware":{
+         "fixed_instance_size_id":"65929629F35BBFBA63022008F773F3EB",
+         "vcore":1,
+         "cores_per_processor":1,
+         "ram":1,
+         "hdds":[
+            {
+               "id":"F92B0519D2F9A7EFA961F956C4B381B4",
+               "size":40,
+               "is_main":true
+            }
+         ]
+      },
+      "ips":[
+         {
+            "id":"9774FB2A6DCC45733B115A98FCD59CC6",
+            "ip":"50.21.182.126"
+         }
+      ],
+      "alerts":null
+   },
+   {
+      "id":"E7D36EC025C73796035BF4F171379025",
+      "name":"Docs Content Test Server: CentOS 7-1",
+      "description":"",
+      "status":{
+         "state":"POWERED_ON",
+         "percent":null
+      },
+      "datacenter":{
+         "id":"908DC2072407C94C8054610AD5A53B8C",
+         "country_code":"US",
+         "location":"United States of America"
+      },
+      "creation_date":"2016-05-05T17:39:50+00:00",
+      "image":{
+         "id":"B5F778B85C041347BCDCFC3172AB3F3C",
+         "name":"centos7-64std"
+      },
+      "hardware":{
+         "fixed_instance_size_id":"65929629F35BBFBA63022008F773F3EB",
+         "vcore":1,
+         "cores_per_processor":1,
+         "ram":1,
+         "hdds":[
+            {
+               "id":"CDB278D95A92CB4C379A9CAAD6759F02",
+               "size":40,
+               "is_main":true
+            }
+         ]
+      },
+      "ips":[
+         {
+            "id":"FDBE99EDD57F8596CBF71B6B64BD0A92",
+            "ip":"62.151.179.99"
+         }
+      ],
+      "alerts":null
+   },
+   {
+      "id":"DDDC4CCA34AAB08132FA1E40F9FEAC25",
+      "name":"App Dev Server 5",
+      "description":"",
+      "status":{
+         "state":"POWERED_ON",
+         "percent":null
+      },
+      "datacenter":{
+         "id":"908DC2072407C94C8054610AD5A53B8C",
+         "country_code":"US",
+         "location":"United States of America"
+      },
+      "creation_date":"2016-03-04T21:29:00+00:00",
+      "image":{
+         "id":"96D5CEB497043FD54E834DEC4B8FF70A",
+         "name":"centos7-64cpanel"
+      },
+      "hardware":{
+         "fixed_instance_size_id":"65929629F35BBFBA63022008F773F3EB",
+         "vcore":1,
+         "cores_per_processor":1,
+         "ram":1,
+         "hdds":[
+            {
+               "id":"5E23F849DD3D6A47615D8EE441FE74CC",
+               "size":40,
+               "is_main":true
+            }
+         ]
+      },
+      "ips":[
+         {
+            "id":"E193E9D2213088B3CCE8AD69646CEF18",
+            "ip":"70.35.206.196"
+         }
+      ],
+      "alerts":null
+   },
+   {
+      "id":"D5C5C1D01249DE9B88BE3DAE973AA090",
+      "name":"Docs Test Server: CentOS 7-2",
+      "description":"",
+      "status":{
+         "state":"POWERED_ON",
+         "percent":null
+      },
+      "datacenter":{
+         "id":"908DC2072407C94C8054610AD5A53B8C",
+         "country_code":"US",
+         "location":"United States of America"
+      },
+      "creation_date":"2016-10-24T18:13:41+00:00",
+      "image":{
+         "id":"B5F778B85C041347BCDCFC3172AB3F3C",
+         "name":"centos7-64std"
+      },
+      "hardware":{
+         "fixed_instance_size_id":"3D4C49EAEDD42FBC23DB58FE3DEF464F",
+         "vcore":1,
+         "cores_per_processor":1,
+         "ram":0.5,
+         "hdds":[
+            {
+               "id":"35F875003212E7F083728E4072A188B0",
+               "size":30,
+               "is_main":true
+            }
+         ]
+      },
+      "ips":[
+         {
+            "id":"1C79CF2066A5AEEACCB97A68FF41DD00",
+            "ip":"74.208.88.88"
+         }
+      ],
+      "alerts":null
+   },
+   {
+      "id":"FB1765588A90364835782061CE48BA8E",
+      "name":"Docs Content Test Server Ubuntu 16.04-2",
+      "description":"",
+      "status":{
+         "state":"POWERED_ON",
+         "percent":null
+      },
+      "datacenter":{
+         "id":"908DC2072407C94C8054610AD5A53B8C",
+         "country_code":"US",
+         "location":"United States of America"
+      },
+      "creation_date":"2016-11-28T21:45:50+00:00",
+      "image":{
+         "id":"4DBFA2D31B1A303A9CE0E4ECF8838FDE",
+         "name":"ubuntu1604-64std"
+      },
+      "hardware":{
+         "fixed_instance_size_id":"65929629F35BBFBA63022008F773F3EB",
+         "vcore":1,
+         "cores_per_processor":1,
+         "ram":1,
+         "hdds":[
+            {
+               "id":"B45F054C54B5AAE9C45253C6D0A47E74",
+               "size":40,
+               "is_main":true
+            }
+         ]
+      },
+      "ips":[
+         {
+            "id":"7D8EA6722183DA82AEDFA09AECE243C4",
+            "ip":"70.35.206.233"
+         }
+      ],
+      "alerts":null
+   }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/list_shared_storages.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/list_shared_storages.json b/libcloud/test/compute/fixtures/oneandone/list_shared_storages.json
new file mode 100644
index 0000000..fd059a4
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/list_shared_storages.json
@@ -0,0 +1,64 @@
+[
+  {
+    "id": "6AD2F180B7B666539EF75A02FE227084",
+    "size": 200,
+    "state": "ACTIVE",
+    "description": "My shared storage test description",
+    "datacenter": {
+      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
+      "location": "USA",
+      "country_code": "US"
+    },
+    "cloudpanel_id": "vid35780",
+    "size_used": "0.00",
+    "cifs_path": "vid50995.nas1.lanvid50995",
+    "nfs_path": "vid50995.nas1.lan/:vid50995",
+    "name": "My shared storage test",
+    "creation_date": "2015-05-06T08:33:25+00:00",
+    "servers": [
+      {
+        "id": "638ED28205B1AFD7ADEF569C725DD85F",
+        "name": "My server 1",
+        "rights": "RW"
+      }
+    ]
+  },
+  {
+    "id": "4406CE4723BB441C7956E25C51CE8C1B",
+    "size": 50,
+    "state": "ACTIVE",
+    "description": "My shared storage description",
+    "datacenter": {
+      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
+      "location": "USA",
+      "country_code": "US"
+    },
+    "cloudpanel_id": "vid30534",
+    "size_used": "0.00",
+    "cifs_path": "vid50995.nas1.lanvid50995",
+    "nfs_path": "vid50995.nas1.lan/:vid50995",
+    "name": "My shared storage",
+    "creation_date": "2015-03-17T11:57:48+00:00",
+    "servers": [
+    ]
+  },
+  {
+    "id": "1A5418172DD3BD39F8010A6633F1018A",
+    "size": 250,
+    "state": "ACTIVE",
+    "description": null,
+    "cloudpanel_id": "vid19857",
+    "datacenter": {
+      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
+      "location": "USA",
+      "country_code": "US"
+    },
+    "size_used": "0.00",
+    "cifs_path": "vid50995.nas1.lanvid50995",
+    "nfs_path": "vid50995.nas1.lan/:vid50995",
+    "name": "My shared storage 2",
+    "creation_date": "2015-05-05T09:36:31+00:00",
+    "servers": [
+    ]
+  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/load_balancer.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/load_balancer.json b/libcloud/test/compute/fixtures/oneandone/load_balancer.json
new file mode 100644
index 0000000..c3d2e68
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/load_balancer.json
@@ -0,0 +1,38 @@
+{
+  "id": "BD8318616581A9C3C53F94402503230F",
+  "name": "My load balancer",
+  "state": "CONFIGURING",
+  "creation_date": "2015-05-04T07:26:24+00:00",
+  "description": "My load balancer description",
+  "ip": null,
+  "health_check_test": "TCP",
+  "health_check_interval": 40,
+  "health_check_path": null,
+  "health_check_path_parser": null,
+  "persistence": true,
+  "persistence_time": 1200,
+  "method": "ROUND_ROBIN",
+  "datacenter": {
+    "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
+    "location": "USA",
+    "country_code": "US"
+  },
+  "rules": [
+    {
+      "id": "BCFAF421227674B2B324F779C1163ECB",
+      "protocol": "TCP",
+      "port_balancer": 80,
+      "port_server": 80,
+      "source": "0.0.0.0"
+    },
+    {
+      "id": "7390C04142800E006FF1B0132FFD8F9A",
+      "protocol": "TCP",
+      "port_balancer": 9999,
+      "port_server": 8888,
+      "source": "0.0.0.0"
+    }
+  ],
+  "server_ips": [],
+  "cloudpanel_id": "LB99AA4_1"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/load_balancer_rule.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/load_balancer_rule.json b/libcloud/test/compute/fixtures/oneandone/load_balancer_rule.json
new file mode 100644
index 0000000..a5c3d37
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/load_balancer_rule.json
@@ -0,0 +1,7 @@
+{
+  "id": "BCFAF421227674B2B324F779C1163ECB",
+  "protocol": "TCP",
+  "port_balancer": 80,
+  "port_server": 80,
+  "source": "0.0.0.0"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/load_balancer_rules.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/load_balancer_rules.json b/libcloud/test/compute/fixtures/oneandone/load_balancer_rules.json
new file mode 100644
index 0000000..0f20841
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/load_balancer_rules.json
@@ -0,0 +1,16 @@
+[
+  {
+    "id": "BCFAF421227674B2B324F779C1163ECB",
+    "protocol": "TCP",
+    "port_balancer": 80,
+    "port_server": 80,
+    "source": "0.0.0.0"
+  },
+  {
+    "id": "7390C04142800E006FF1B0132FFD8F9A",
+    "protocol": "TCP",
+    "port_balancer": 9999,
+    "port_server": 8888,
+    "source": "0.0.0.0"
+  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ip.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ip.json b/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ip.json
new file mode 100644
index 0000000..fdc4a2a
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ip.json
@@ -0,0 +1,5 @@
+{
+  "id": "7C88E50FBC500A3D9D7F94E414255D6B",
+  "ip": "123.46.79.100",
+  "server_name": "My server 1"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ips.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ips.json b/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ips.json
new file mode 100644
index 0000000..21c945b
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ips.json
@@ -0,0 +1,6 @@
+{
+  "server_ips": [
+    "7C88E50FBC500A3D9D7F94E414255D6B",
+    "7288E50FBC500A3D9D7F94E414255D6B"
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/monitoring_policy.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/monitoring_policy.json b/libcloud/test/compute/fixtures/oneandone/monitoring_policy.json
new file mode 100644
index 0000000..510c3c7
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/monitoring_policy.json
@@ -0,0 +1,73 @@
+{
+  "name": "Monitoring Policy",
+  "description": "Monitoring Policy Description",
+  "email": "test@test.com",
+  "agent": false,
+  "thresholds": {
+    "disk": {
+      "warning": {
+        "value": 80,
+        "alert": false
+      },
+      "critical": {
+        "value": 90,
+        "alert": false
+      }
+    },
+    "transfer": {
+      "warning": {
+        "value": 1000,
+        "alert": false
+      },
+      "critical": {
+        "value": 2000,
+        "alert": false
+      }
+    },
+    "ram": {
+      "warning": {
+        "value": 90,
+        "alert": false
+      },
+      "critical": {
+        "value": 95,
+        "alert": false
+      }
+    },
+    "internal_ping": {
+      "warning": {
+        "value": 50,
+        "alert": false
+      },
+      "critical": {
+        "value": 100,
+        "alert": true
+      }
+    },
+    "cpu": {
+      "warning": {
+        "value": 90,
+        "alert": false
+      },
+      "critical": {
+        "value": 95,
+        "alert": false
+      }
+    }
+  },
+  "ports": [
+    {
+      "alert_if": "NOT_RESPONDING",
+      "email_notification": true,
+      "protocol": "TCP",
+      "port": 443
+    }
+  ],
+  "processes": [
+    {
+      "process": "httpdeamon",
+      "alert_if": "NOT_RUNNING",
+      "email_notification": false
+    }
+  ]
+}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/monitoring_policy_port.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_port.json b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_port.json
new file mode 100644
index 0000000..909d587
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_port.json
@@ -0,0 +1,7 @@
+{
+  "id": "663D21E232530D79E4E584104C400EE4",
+  "protocol": "TCP",
+  "port": 22,
+  "alert_if": "RESPONDING",
+  "email_notifications": true
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/monitoring_policy_ports.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_ports.json b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_ports.json
new file mode 100644
index 0000000..a3f1f89
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_ports.json
@@ -0,0 +1,16 @@
+[
+  {
+    "id": "663D21E232530D79E4E584104C400EE4",
+    "protocol": "TCP",
+    "port": 22,
+    "alert_if": "RESPONDING",
+    "email_notifications": true
+  },
+  {
+    "id": "663D21E232530D79E4E584104C400AAA",
+    "protocol": "TCP",
+    "port": 80,
+    "alert_if": "NOT_RESPONDING",
+    "email_notifications": true
+  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/monitoring_policy_process.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_process.json b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_process.json
new file mode 100644
index 0000000..9f49bfa
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_process.json
@@ -0,0 +1,6 @@
+{
+  "id": "663D21E232530D79E4E584104C400EE4",
+  "process": "iexplorer",
+  "alert_if": "NOT_RUNNING",
+  "email_notifications": true
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/monitoring_policy_processes.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_processes.json b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_processes.json
new file mode 100644
index 0000000..a79b2f5
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_processes.json
@@ -0,0 +1,14 @@
+[
+  {
+    "id": "663D21E232530D79E4E584104C400EE4",
+    "process": "iexplorer",
+    "alert_if": "NOT_RUNNING",
+    "email_notifications": true
+  },
+  {
+    "id": "663D21E232530D79E4E584104C400EE4",
+    "process": "winword",
+    "alert_if": "NOT_RUNNING",
+    "email_notifications": true
+  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/monitoring_policy_servers.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_servers.json b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_servers.json
new file mode 100644
index 0000000..19dea3c
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_servers.json
@@ -0,0 +1,10 @@
+[
+  {
+    "id": "C72CF0A681B0CCE7EC624DD194D585C6",
+    "name": "My server 1"
+  },
+  {
+    "id": "4ECD9D188EB457317B2CF8F07885E7B4",
+    "name": "My server 2"
+  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/public_ip.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/public_ip.json b/libcloud/test/compute/fixtures/oneandone/public_ip.json
new file mode 100644
index 0000000..4bb51b0
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/public_ip.json
@@ -0,0 +1,15 @@
+{
+  "id": "44972922D045B9648118AA80FF2A51C9",
+  "ip": "10.4.140.155",
+  "type": "IPV4",
+  "datacenter": {
+    "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
+    "location": "USA",
+    "country_code": "US"
+  },
+  "assigned_to": null,
+  "reverse_dns": "example.com",
+  "is_dhcp": false,
+  "state": "ACTIVE",
+  "creation_date": "2015-05-06T08:17:33+00:00"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/server_hardware.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/server_hardware.json b/libcloud/test/compute/fixtures/oneandone/server_hardware.json
new file mode 100644
index 0000000..899e757
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/server_hardware.json
@@ -0,0 +1,13 @@
+{
+  "fixed_instance_size_id": 0,
+  "vcore": 1,
+  "cores_per_processor": 1,
+  "ram": 2,
+  "hdds": [
+  {
+    "id": "8C626C1A7005D0D1F527143C413D461E",
+    "size": 40,
+    "is_main": true
+  }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/server_ip.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/server_ip.json b/libcloud/test/compute/fixtures/oneandone/server_ip.json
new file mode 100644
index 0000000..7cef3fc
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/server_ip.json
@@ -0,0 +1,8 @@
+{
+  "id": "01D4A802798AB77AA72DA2D05E1379E1",
+  "ip": "10.5.135.140",
+  "type": "IPV4",
+  "reverse_dns": null,
+  "firewall_policy": null,
+  "load_balancers": []
+}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/server_ips.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/server_ips.json b/libcloud/test/compute/fixtures/oneandone/server_ips.json
new file mode 100644
index 0000000..6d4f6e5
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/server_ips.json
@@ -0,0 +1,10 @@
+[
+  {
+    "id": "01D4A802798AB77AA72DA2D05E1379E1",
+    "ip": "10.5.135.140",
+    "type": "IPV4",
+    "reverse_dns": null,
+    "firewall_policy": null,
+    "load_balancers": []
+  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/shared_storage.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/shared_storage.json b/libcloud/test/compute/fixtures/oneandone/shared_storage.json
new file mode 100644
index 0000000..566b240
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/shared_storage.json
@@ -0,0 +1,24 @@
+{
+  "id": "6AD2F180B7B666539EF75A02FE227084",
+  "size": 200,
+  "state": "ACTIVE",
+  "description": "My shared storage test description",
+  "datacenter": {
+    "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
+    "location": "USA",
+    "country_code": "US"
+  },
+  "cloudpanel_id": "vid35780",
+  "size_used": "0.00",
+  "cifs_path": "vid50995.nas1.lanvid50995",
+  "nfs_path": "vid50995.nas1.lan/:vid50995",
+  "name": "My shared storage test",
+  "creation_date": "2015-05-06T08:33:25+00:00",
+  "servers": [
+    {
+      "id": "638ED28205B1AFD7ADEF569C725DD85F",
+      "name": "My server 1",
+      "rights": "RW"
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/fixtures/oneandone/ttt.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/oneandone/ttt.json b/libcloud/test/compute/fixtures/oneandone/ttt.json
new file mode 100644
index 0000000..fd75651
--- /dev/null
+++ b/libcloud/test/compute/fixtures/oneandone/ttt.json
@@ -0,0 +1,73 @@
+{
+  "name": "MonitoringPolicy_674",
+  "description": "MonitoringPolicy_674 description",
+  "email": "test-go-sdk@oneandone.com",
+  "agent": true,
+  "thresholds": {
+    "cpu": {
+      "warning": {
+        "value": 90,
+        "alert": false
+      },
+      "critical": {
+        "value": 95,
+        "alert": false
+      }
+    },
+    "ram": {
+      "warning": {
+        "value": 90,
+        "alert": false
+      },
+      "critical": {
+        "value": 95,
+        "alert": false
+      }
+    },
+    "disk": {
+      "warning": {
+        "value": 80,
+        "alert": false
+      },
+      "critical": {
+        "value": 90,
+        "alert": false
+      }
+    },
+    "transfer": {
+      "warning": {
+        "value": 1000,
+        "alert": false
+      },
+      "critical": {
+        "value": 2000,
+        "alert": false
+      }
+    },
+    "internal_ping": {
+      "warning": {
+        "value": 50,
+        "alert": false
+      },
+      "critical": {
+        "value": 100,
+        "alert": true
+      }
+    }
+  },
+  "ports": [
+    {
+      "protocol": "TCP",
+      "port": 443,
+      "alert_if": "NOT_RESPONDING",
+      "email_notification": true
+    }
+  ],
+  "processes": [
+    {
+      "process": "httpdeamon",
+      "alert_if": "NOT_RUNNING",
+      "email_notification": false
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/compute/test_oneandone.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_oneandone.py b/libcloud/test/compute/test_oneandone.py
new file mode 100644
index 0000000..7de5e38
--- /dev/null
+++ b/libcloud/test/compute/test_oneandone.py
@@ -0,0 +1,1281 @@
+# 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.
+import sys
+
+from libcloud.compute.base import NodeImage, NodeAuthPassword, NodeLocation
+from libcloud.utils.py3 import httplib
+from libcloud.test import unittest, MockHttp
+from libcloud.test.file_fixtures import ComputeFileFixtures
+from libcloud.compute.types import Provider, NodeState
+from libcloud.test.secrets import ONEANDONE_PARAMS
+from libcloud.compute.providers import get_driver
+
+
+class OneAndOneTests(unittest.TestCase):
+    def setUp(self):
+        oneAndOne = get_driver(Provider.ONEANDONE)
+        oneAndOne.connectionCls.conn_class = OneAndOneMockHttp
+        self.driver = oneAndOne(ONEANDONE_PARAMS)
+
+    '''
+    Function tests for listing items
+    '''
+
+    def test_list_sizes(self):
+        sizes = self.driver.list_sizes()
+        self.assertEqual(len(sizes), 4)
+
+    def test_list_locations(self):
+        sizes = self.driver.list_locations()
+        self.assertEqual(len(sizes), 4)
+
+    def test_list_images(self):
+        appliances = self.driver.list_images("IMAGE")
+        self.assertEqual(len(appliances), 102)
+
+    def test_get_image(self):
+        appliance = self.driver.get_image('img_1')
+        self.assertNotEqual(appliance, None)
+
+    def test_list_nodes(self):
+        nodes = self.driver.list_nodes()
+        self.assertEqual(len(nodes), 5)
+
+        counter = 0
+
+        for node in nodes:
+            if counter == 0:
+                self.assertEqual(node.id, '8A7D5122BDC173B6E52223878CEF2748')
+                self.assertEqual(node.name, 'Docs Content Ubuntu 16.04-1')
+                self.assertEqual(node.state, NodeState.RUNNING)
+                self.assertEqual(node.public_ips, ['50.21.182.126'])
+                self.assertEqual(node.private_ips, [])
+            if counter == 1:
+                self.assertEqual(node.id, 'E7D36EC025C73796035BF4F171379025')
+                self.assertEqual(node.name,
+                                 'Docs Content Test Server: CentOS 7-1')
+                self.assertEqual(node.state, NodeState.RUNNING)
+                self.assertEqual(node.public_ips, ['62.151.179.99'])
+                self.assertEqual(node.private_ips, [])
+            if counter == 2:
+                self.assertEqual(node.id, 'DDDC4CCA34AAB08132FA1E40F9FEAC25')
+                self.assertEqual(node.name, 'App Dev Server 5')
+                self.assertEqual(node.state, NodeState.RUNNING)
+                self.assertEqual(node.public_ips, ['70.35.206.196'])
+                self.assertEqual(node.private_ips, [])
+            if counter == 3:
+                self.assertEqual(node.id, 'D5C5C1D01249DE9B88BE3DAE973AA090')
+                self.assertEqual(node.name, 'Docs Test Server: CentOS 7-2')
+                self.assertEqual(node.state, NodeState.RUNNING)
+                self.assertEqual(node.public_ips, ['74.208.88.88'])
+                self.assertEqual(node.private_ips, [])
+            if counter == 4:
+                self.assertEqual(node.id, 'FB1765588A90364835782061CE48BA8E')
+                self.assertEqual(node.name,
+                                 'Docs Content Test Server Ubuntu 16.04-2')
+                self.assertEqual(node.state, NodeState.RUNNING)
+                self.assertEqual(node.public_ips, ['70.35.206.233'])
+                self.assertEqual(node.private_ips, [])
+            counter += 1
+
+    def test_create_node(self):
+        node = self.driver.create_node(name="name",
+                                       image=NodeImage(
+                                           id="image_id",
+                                           name=None,
+                                           driver=self.driver),
+                                       ex_fixed_instance_size_id="instance_id",
+                                       location=NodeLocation(
+                                           "datacenter_id",
+                                           name="name",
+                                           country="GB",
+                                           driver=self.driver),
+                                       auth=NodeAuthPassword("password"),
+                                       ex_ip="1.1.1.1",
+                                       ex_monitoring_policy_id="mp_id",
+                                       ex_firewall_policy_id="fw_id",
+                                       ex_loadbalancer_id="lb_id",
+                                       ex_description="description",
+                                       ex_power_on="SHUTDOWN")
+
+        self.assertEqual(node.id, "E7D36EC025C73796035BF4F171379025")
+        self.assertEqual(node.name, "Docs Content Test Server: CentOS 7-1")
+        self.assertEqual(node.extra["description"], "My server description")
+
+        self.assertEqual(node.extra["status"]["percent"], None)
+        self.assertEqual(node.extra["status"]["state"], "POWERED_ON")
+
+        self.assertEqual(node.extra["image"]["id"],
+                         "B5F778B85C041347BCDCFC3172AB3F3C")
+        self.assertEqual(node.extra["image"]["name"], "centos7-64std")
+
+        self.assertEqual(node.extra["datacenter"]["id"],
+                         "908DC2072407C94C8054610AD5A53B8C")
+        self.assertEqual(node.extra["datacenter"]["country_code"], "US")
+        self.assertEqual(node.extra["datacenter"]["location"],
+                         "United States of America")
+
+        self.assertEqual(node.extra["hardware"]["fixed_instance_size_id"],
+                         "65929629F35BBFBA63022008F773F3EB")
+        self.assertEqual(node.extra["hardware"]["vcore"], 1)
+        self.assertEqual(node.extra["hardware"]["hdds"][0]["id"],
+                         "CDB278D95A92CB4C379A9CAAD6759F02")
+        self.assertEqual(node.extra["hardware"]["hdds"][0]["size"], 40)
+        self.assertEqual(node.extra["hardware"]["hdds"][0]["is_main"], True)
+        self.assertEqual(node.extra["hardware"]["cores_per_processor"], 1)
+        self.assertEqual(node.extra["hardware"]["vcore"], 1)
+        self.assertEqual(node.extra["hardware"]["ram"], 1)
+
+        self.assertEqual(node.extra["ips"][0]["id"],
+                         "FDBE99EDD57F8596CBF71B6B64BD0A92")
+        self.assertEqual(node.extra["ips"][0]["ip"], "62.151.179.99")
+
+        self.assertEqual(node.extra["monitoring_policy"], None)
+        self.assertEqual(node.extra["alerts"], [])
+        self.assertEqual(node.extra["snapshot"], None)
+        self.assertEqual(node.extra["dvd"], None)
+        self.assertEqual(node.extra["private_networks"], None)
+
+    def test_ex_list_datacenters(self):
+        datacenters = self.driver.ex_list_datacenters()
+
+        self.assertEqual(len(datacenters), 4)
+
+    def test_ex_shutdown_server(self):
+        server = self.driver.ex_shutdown_server("srv_1")
+        self.assertNotEqual(server, None)
+
+    def test_reboot_node(self):
+        node = self.driver.ex_get_server("srv_1")
+        node = self.driver.reboot_node(node)
+        self.assertNotEqual(node, None)
+
+    def test_ex_get_server(self):
+        server = self.driver.ex_get_server("srv_1")
+        self.assertNotEqual(server, None)
+
+    def test_destroy_node(self):
+        server = self.driver.ex_get_server("srv_1")
+
+        node = self.driver.destroy_node(server)
+        self.assertNotEqual(node, None)
+
+    def test_get_server_hardware(self):
+        hardware = self.driver.ex_get_server_hardware("srv_1")
+        self.assertNotEqual(hardware, None)
+        self.assertEqual(hardware['vcore'], 1)
+        self.assertEqual(hardware['cores_per_processor'], 1)
+        self.assertEqual(hardware['ram'], 2)
+        self.assertEqual(hardware['fixed_instance_size_id'], 0)
+        self.assertNotEqual(hardware['hdds'], None)
+        self.assertEqual(hardware['hdds'][0]['id'],
+                         '8C626C1A7005D0D1F527143C413D461E')
+        self.assertEqual(hardware['hdds'][0]['is_main'], True)
+        self.assertEqual(hardware['hdds'][0]['size'], 40)
+
+    def test_rename_server(self):
+        server = self.driver.ex_rename_server("srv_1", "name")
+        self.assertNotEqual(server, None)
+
+    def test_ex_modify_server_hardware(self):
+        node = self.driver.ex_modify_server_hardware("srv_1", vcore=1)
+        self.assertNotEqual(node, None)
+
+    def test_add_hdd(self):
+        node = self.driver.ex_add_hdd("srv_1", 1, True)
+        self.assertNotEqual(node, None)
+
+    def test_modify_hdd(self):
+        node = self.driver.ex_modify_server_hardware("srv_1", "hdd_id", 50)
+        self.assertNotEqual(node, None)
+
+    def test_remove_hdd(self):
+        node = self.driver.ex_remove_hdd("srv_1", "hdd_id")
+        self.assertNotEqual(node, None)
+
+    def test_ex_get_server_image(self):
+        image = self.driver.ex_get_server_image("srv_1")
+        self.assertNotEqual(image, None)
+        self.assertEqual(image['id'], "76EBF29C1250167C8754B2B3D1C05F68")
+        self.assertEqual(image['name'], "centos7-64std")
+
+    def test_ex_reinstall_server_image(self):
+        node = self.driver.ex_reinstall_server_image("srv_1", "img_id",
+                                                     "password")
+        self.assertNotEqual(node, None)
+
+    def test_ex_list_server_ips(self):
+        ips = self.driver.ex_list_server_ips("srv_1")
+        self.assertEqual(len(ips), 1)
+
+    def test_ex_get_server_ip(self):
+        ip = self.driver.ex_get_server_ip("srv_1", "ip_id")
+        self.assertNotEqual(ip, None)
+
+    def test_ex_assign_server(self):
+        node = self.driver.ex_assign_server_ip("srv_1", "IPV$")
+        self.assertNotEqual(node, None)
+
+    def test_ex_remove_server_ip(self):
+        node = self.driver.ex_remove_server_ip("srv_1", "ip_id", keep_ip=True)
+        self.assertNotEqual(node, None)
+
+    def test_ex_create_firewall_policy(self):
+        rules = [
+            {
+                "protocol": "TCP",
+                "port_from": 80,
+                "port_to": 80,
+                "source": "0.0.0.0"
+            },
+            {
+                "protocol": "TCP",
+                "port_from": 443,
+                "port_to": 443,
+                "source": "0.0.0.0"
+            }
+        ]
+        firewall = self.driver \
+            .ex_create_firewall_policy("name", rules,
+                                       description="desc")
+
+        self.assertNotEqual(firewall, None)
+
+    def test_ex_list_firewall_policies(self):
+        firewall = self.driver.ex_list_firewall_policies()
+        self.assertNotEqual(firewall, None)
+        self.assertEqual(len(firewall), 2)
+
+    def test_ex_get_firewall_policy(self):
+        firewall = self.driver.ex_get_firewall_policy("fw_id")
+        self.assertNotEqual(firewall, None)
+
+    def test_ex_delete_firewall_policy(self):
+        firewall = self.driver.ex_delete_firewall_policy("fw_id")
+        self.assertNotEqual(firewall, None)
+
+    def test_ex_get_server_firewall_policies(self):
+        firewall = self.driver \
+            .ex_get_server_firewall_policies("srv_id", "ip_id")
+        self.assertNotEqual(firewall, None)
+
+    def test_ex_remove_server_firewall_policies(self):
+        node = self.driver \
+            .ex_remove_server_firewall_policy("srv_id", "ip_id")
+        self.assertNotEqual(node, None)
+
+    def test_ex_add_server_firewall_policy(self):
+        node = self.driver \
+            .ex_add_server_firewall_policy("srv_id", "ip_id", "fw_id")
+        self.assertNotEqual(node, None)
+
+    def test_ex_list_shared_storages(self):
+        storages = self.driver.ex_list_shared_storages()
+        self.assertEquals(len(storages), 3)
+
+    def test_ex_get_shared_storage(self):
+        storage = self.driver.ex_get_shared_storage('storage_1')
+
+        self.assertNotEqual(storage, None)
+        self.assertEqual(storage['id'], "6AD2F180B7B666539EF75A02FE227084")
+        self.assertEqual(storage['size'], 200)
+        self.assertEqual(storage['state'], 'ACTIVE')
+        self.assertEqual(storage['description'],
+                         'My shared storage test description')
+        self.assertEqual(storage['datacenter']['id'],
+                         'D0F6D8C8ED29D3036F94C27BBB7BAD36')
+        self.assertEqual(storage['datacenter']['location'], 'USA')
+        self.assertEqual(storage['datacenter']['country_code'], 'US')
+        self.assertEqual(storage['cloudpanel_id'], 'vid35780')
+        self.assertEqual(storage['size_used'], '0.00')
+        self.assertEqual(storage["cifs_path"], "vid50995.nas1.lanvid50995")
+        self.assertEqual(storage["nfs_path"], "vid50995.nas1.lan/:vid50995")
+        self.assertEqual(storage["name"], "My shared storage test")
+        self.assertEqual(storage["creation_date"], "2015-05-06T08:33:25+00:00")
+        self.assertEqual(storage['servers'][0]['id'],
+                         '638ED28205B1AFD7ADEF569C725DD85F')
+        self.assertEqual(storage['servers'][0]["name"], "My server 1")
+        self.assertEqual(storage['servers'][0]["rights"], "RW")
+
+    def test_ex_create_shared_storage(self):
+        storage = self.driver.ex_create_shared_storage(
+            name='TEST', size=2, datacenter_id='dc_id')
+        self.assertNotEqual(storage, None)
+
+    def test_ex_delete_shared_storage(self):
+        storage = self.driver.ex_delete_shared_storage('storage_1')
+        self.assertNotEqual(storage, None)
+
+    def test_ex_attach_server_to_shared_storage(self):
+        storage = self.driver.ex_attach_server_to_shared_storage(
+            'storage_1', 'srv_1', 'RW')
+        self.assertNotEqual(storage, None)
+
+    def test_ex_get_shared_storage_server(self):
+        storage = self.driver.ex_get_shared_storage_server(
+            'storage_1', 'srv_1')
+        self.assertNotEqual(storage, None)
+
+    def test_ex_detach_server_from_shared_storage(self):
+        storage = self.driver.ex_detach_server_from_shared_storage(
+            'storage_1', 'srv_1')
+        self.assertNotEqual(storage, None)
+
+    def test_ex_create_load_balancers(self):
+        rules = [
+            {
+                "protocol": "TCP",
+                "port_balancer": 80,
+                "port_server": 80,
+                "source": "0.0.0.0"
+            },
+            {
+                "protocol": "TCP",
+                "port_balancer": 9999,
+                "port_server": 8888,
+                "source": "0.0.0.0"
+            }
+        ]
+        load_balancer = self.driver. \
+            ex_create_load_balancer(name='name',
+                                    method='ROUNDROBIN',
+                                    rules=rules,
+                                    persistence=True,
+                                    persistence_time=1)
+
+        self.assertNotEqual(load_balancer, None)
+
+    def test_ex_list_load_balancers(self):
+        load_balancers = self.driver.ex_list_load_balancers()
+        self.assertEqual(len(load_balancers), 2)
+
+    def test_update_load_balancer(self):
+        load_balancer = self.driver. \
+            ex_update_load_balancer("lb_1", name='new name')
+        self.assertNotEqual(load_balancer, None)
+
+    def test_ex_add_servers_to_load_balancer(self):
+        load_balancer = self.driver. \
+            ex_add_servers_to_load_balancer('lb_1', server_ips=["1.1.1.1"])
+        self.assertNotEqual(load_balancer, None)
+
+    def test_ex_remove_server_from_load_balancer(self):
+        load_balancer = self.driver. \
+            ex_remove_server_from_load_balancer('lb_1', server_ip="srv_1")
+        self.assertNotEqual(load_balancer, None)
+
+    def test_ex_add_load_balancer_rule(self):
+        load_balancer = self.driver. \
+            ex_add_load_balancer_rule('lb_1', protocol='TCP', port_balancer=82,
+                                      port_server=81, source='0.0.0.0')
+        self.assertNotEqual(load_balancer, None)
+
+    def test_ex_remove_load_balancer_rule(self):
+        load_balancer = self.driver. \
+            ex_remove_load_balancer_rule('lb_1', 'rule_1')
+        self.assertNotEqual(load_balancer, None)
+
+    def test_ex_get_load_balancer(self):
+        load_balancer = self.driver. \
+            ex_get_load_balancer('lb_1')
+        self.assertNotEqual(load_balancer, None)
+
+    def test_ex_get_load_balancer_server_ip(self):
+        server_ip = self.driver. \
+            ex_get_load_balancer_server_ip('lb_1', 'srv_1')
+        self.assertNotEqual(server_ip, None)
+
+    def test_ex_list_load_balancer_rules(self):
+        rules = self.driver. \
+            ex_list_load_balancer_rules('lb_1')
+        self.assertNotEqual(rules, None)
+        self.assertEqual(len(rules), 2)
+
+    def test_ex_get_load_balancer_rule(self):
+        rule = self.driver. \
+            ex_get_load_balancer_rule('lb_1', 'rule_1')
+        self.assertNotEqual(rule, None)
+
+    def test_ex_delete_load_balancer(self):
+        load_balancer = self.driver. \
+            ex_delete_load_balancer('lb_1')
+        self.assertNotEqual(load_balancer, None)
+
+    def test_ex_list_public_ips(self):
+        ips = self.driver.ex_list_public_ips()
+        self.assertNotEqual(ips, None)
+        self.assertEqual(len(ips), 3)
+
+    def test_ex_create_public_ip(self):
+        ip = self.driver.ex_create_public_ip('IPv4')
+        self.assertNotEqual(ip, None)
+
+    def test_ex_get_public_ip(self):
+        ip = self.driver.ex_get_public_ip('ip_1')
+        self.assertNotEqual(ip, None)
+
+    def test_ex_delete_public_ip(self):
+        ip = self.driver.ex_delete_public_ip('ip_1')
+        self.assertNotEqual(ip, None)
+
+    def test_ex_update_public_ip(self):
+        ip = self.driver.ex_update_public_ip('ip_1', "reverse.dns")
+        self.assertNotEqual(ip, None)
+
+    def test_ex_create_monitoring_policy(self):
+        thresholds = {
+            "cpu": {
+                "warning": {
+                    "value": 90,
+                    "alert": False
+                },
+                "critical": {
+                    "value": 95,
+                    "alert": False
+                }
+            },
+            "ram": {
+                "warning": {
+                    "value": 90,
+                    "alert": False
+                },
+                "critical": {
+                    "value": 95,
+                    "alert": False
+                }
+            },
+            "disk": {
+                "warning": {
+                    "value": 80,
+                    "alert": False
+                },
+                "critical": {
+                    "value": 90,
+                    "alert": False
+                }
+            },
+            "transfer": {
+                "warning": {
+                    "value": 1000,
+                    "alert": False
+                },
+                "critical": {
+                    "value": 2000,
+                    "alert": False
+                }
+            },
+            "internal_ping": {
+                "warning": {
+                    "value": 50,
+                    "alert": False
+                },
+                "critical": {
+                    "value": 100,
+                    "alert": False
+                }
+            }
+        }
+
+        ports = [
+            {
+                "protocol": "TCP",
+                "port": "22",
+                "alert_if": "RESPONDING",
+                "email_notification": True
+            }
+        ]
+
+        processes = [
+            {
+                "process": "test",
+                "alert_if": "NOT_RUNNING",
+                "email_notification": True
+            }
+        ]
+
+        policy = self.driver. \
+            ex_create_monitoring_policy(name='test_name',
+                                        thresholds=thresholds,
+                                        ports=ports,
+                                        processes=processes,
+                                        description='description',
+                                        email='test@domain.com',
+                                        agent=True)
+        self.assertNotEqual(policy, None)
+
+    def test_ex_list_monitoring_policies(self):
+        policies = self.driver.ex_list_monitoring_policies()
+        self.assertNotEqual(policies, None)
+        self.assertEqual(len(policies), 2)
+
+    def test_ex_get_monitoring_policy(self):
+        policy = self.driver.ex_get_monitoring_policy('pol_1')
+        self.assertNotEqual(policy, None)
+
+    def test_ex_update_monitoring_policy(self):
+        thresholds = {
+            "cpu": {
+                "warning": {
+                    "value": 90,
+                    "alert": False
+                },
+                "critical": {
+                    "value": 95,
+                    "alert": False
+                }
+            },
+            "ram": {
+                "warning": {
+                    "value": 90,
+                    "alert": False
+                },
+                "critical": {
+                    "value": 95,
+                    "alert": False
+                }
+            },
+            "disk": {
+                "warning": {
+                    "value": 80,
+                    "alert": False
+                },
+                "critical": {
+                    "value": 90,
+                    "alert": False
+                }
+            },
+            "transfer": {
+                "warning": {
+                    "value": 1000,
+                    "alert": False
+                },
+                "critical": {
+                    "value": 2000,
+                    "alert": False
+                }
+            },
+            "internal_ping": {
+                "warning": {
+                    "value": 50,
+                    "alert": False
+                },
+                "critical": {
+                    "value": 100,
+                    "alert": False
+                }
+            }
+        }
+
+        policy = self.driver. \
+            ex_update_monitoring_policy('pol_1', email='test@domain.com',
+                                        thresholds=thresholds,
+                                        name='new name',
+                                        description='new description')
+        self.assertNotEqual(policy, None)
+
+    def test_ex_get_monitoring_policy_ports(self):
+        ports = self.driver. \
+            ex_get_monitoring_policy_ports('pol_1')
+        self.assertNotEqual(ports, None)
+        self.assertEqual(len(ports), 2)
+
+    def test_ex_get_monitoring_policy_port(self):
+        port = self.driver. \
+            ex_get_monitoring_policy_port('pol_1', 'port_1')
+        self.assertNotEqual(port, None)
+
+    def test_ex_remove_monitoring_policy_port(self):
+        port = self.driver. \
+            ex_remove_monitoring_policy_port('pol_1', 'port_1')
+        self.assertNotEqual(port, None)
+
+    def test_ex_add_monitoring_policy_ports(self):
+        new_ports = [
+            {
+                "protocol": "TCP",
+                "port": "80",
+                "alert_if": "RESPONDING",
+                "email_notification": True
+            }
+        ]
+        ports = self.driver. \
+            ex_add_monitoring_policy_ports('pol_1', new_ports)
+        self.assertNotEqual(ports, None)
+        self.assertEqual(len(ports), 2)
+
+    def test_ex_get_monitoring_policy_processes(self):
+        processes = self.driver. \
+            ex_get_monitoring_policy_processes('pol_1')
+        self.assertNotEqual(processes, None)
+
+    def test_ex_get_monitoring_policy_process(self):
+        process = self.driver. \
+            ex_get_monitoring_policy_process('pol_1', 'proc_1')
+        self.assertNotEqual(process, None)
+
+    def test_ex_remove_monitoring_policy_process(self):
+        policy = self.driver. \
+            ex_remove_monitoring_policy_process('pol_1', 'proc_1')
+        self.assertNotEqual(policy, None)
+
+    def test_ex_add_monitoring_policy_processes(self):
+        processes = {
+            "processes": [
+                {
+                    "process": "taskmmgr",
+                    "alert_if": "RUNNING",
+                    "email_notification": True
+                }
+            ]
+        }
+        processes = self.driver. \
+            ex_add_monitoring_policy_processes(policy_id='pol_1',
+                                               processes=processes)
+        self.assertNotEqual(processes, None)
+        self.assertEqual(len(processes), 2)
+
+    def test_ex_list_monitoring_policy_servers(self):
+        servers = self.driver.ex_list_monitoring_policy_servers('pol_1')
+        self.assertNotEqual(servers, None)
+        self.assertEqual(len(servers), 2)
+
+    def test_ex_add_servers_to_monitoring_policy(self):
+        servers = self.driver. \
+            ex_add_servers_to_monitoring_policy('pol_1', 'serv_1')
+        self.assertNotEqual(servers, None)
+        self.assertEqual(len(servers), 2)
+
+    def test_ex_remove_server_from_monitoring_policy(self):
+        policy = self.driver. \
+            ex_remove_server_from_monitoring_policy('pol_1', 'serv_1')
+        self.assertNotEqual(policy, None)
+
+
+class OneAndOneMockHttp(MockHttp):
+    fixtures = ComputeFileFixtures('oneandone')
+
+    '''
+    Operation on Server Appliances
+
+    GET - Fetches Server Appliances
+    '''
+
+    def _v1_server_appliances(self, method, url, body, headers):
+        body = self.fixtures.load('list_images.json')
+        return (
+            httplib.OK,
+            body,
+            {},
+            httplib.responses[httplib.OK]
+        )
+
+    def _v1_server_appliances_img_1(self, method, url, body, headers):
+        body = self.fixtures.load('get_image.json')
+        return (
+            httplib.OK,
+            body,
+            {},
+            httplib.responses[httplib.OK]
+        )
+
+    def _v1_servers(self, method, url, body, headers):
+        if method == "GET":
+            body = self.fixtures.load('list_servers.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == "POST":
+            body = self.fixtures.load('create_node.json')
+            return (
+                httplib.ACCEPTED,
+                body,
+                {},
+                httplib.responses[httplib.ACCEPTED]
+            )
+
+    def _v1_create_node(self, method, url, body_headers):
+
+        body = self.fixtures.load('list_servers.json')
+
+        return (
+            httplib.ACCEPTED,
+            {},
+            body,
+            httplib.responses[httplib.ACCEPTED]
+        )
+
+    def _v1_datacenters(
+        self, method, url, body, headers
+    ):
+        if method == 'GET':
+            body = self.fixtures.load('ex_list_datacenters.json')
+            return (
+                httplib.OK,
+                body,
+                {'content-type': 'application/json'},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_servers_srv_1(
+        self, method, url, body, headers
+    ):
+        pass
+
+        if method == 'PUT':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.OK,
+                body,
+                {'content-type': 'application/json'},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'GET':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.OK,
+                body,
+                {'content-type': 'application/json'},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'DELETE':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_servers_srv_1_status_action(self, method, url, body_headers, id):
+        body = self.fixtures.load('describe_server.json')
+
+        return (
+            httplib.ACCEPTED,
+            body,
+            {},
+            httplib.responses[httplib.ACCEPTED]
+        )
+
+    def _v1_servers_srv_1_hardware(
+        self, method, url, body, headers
+    ):
+        if method == 'GET':
+            body = self.fixtures.load('server_hardware.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'PUT':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.ACCEPTED,
+                body,
+                {},
+                httplib.responses[httplib.ACCEPTED]
+            )
+
+    def _v1_servers_srv_1_hardware_hdds(
+        self, method, url, body, headers
+    ):
+        if method == 'POST':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'PUT':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.ACCEPTED,
+                body,
+                {},
+                httplib.responses[httplib.ACCEPTED]
+            )
+
+    def _v1_servers_srv_1_hardware_hdds_hdd_id(
+        self, method, url, body, headers
+    ):
+        if method == 'DELETE':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'PUT':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.ACCEPTED,
+                body,
+                {},
+                httplib.responses[httplib.ACCEPTED]
+            )
+
+    def _v1_servers_srv_1_image(
+        self, method, url, body, headers
+    ):
+        if method == 'GET':
+            body = self.fixtures.load('get_server_image.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'PUT':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_servers_srv_1_ips(
+        self, method, url, body, headers
+    ):
+
+        if method == 'GET':
+            body = self.fixtures.load('server_ips.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'POST':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_servers_srv_1_ips_ip_id(
+        self, method, url, body, headers
+    ):
+        if method == 'GET':
+            body = self.fixtures.load('server_ip.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'DELETE':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_firewall_policies(
+        self, method, url, body, headers
+    ):
+
+        if method == 'POST':
+            body = self.fixtures.load('describe_firewall_policy.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+        if method == 'GET':
+            body = self.fixtures.load('list_firewall_policies.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_firewall_policy_fw_id(
+        self, method, url, body, headers
+    ):
+        if method == 'GET':
+            body = self.fixtures.load('describe_firewall_policy.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+        if method == 'DELETE':
+            body = self.fixtures.load('describe_firewall_policy.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_servers_srv_id_ips_ip_id_firewall_policy(
+        self, method, url, body, header
+    ):
+        if method == 'GET':
+            body = self.fixtures.load('describe_id_firewall_policy.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'DELETE':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'POST':
+            body = self.fixtures.load('describe_server.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_shared_storages(
+        self, method, url, body, header
+    ):
+        if method == 'GET' or method == 'POST':
+            body = self.fixtures.load('list_shared_storages.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_shared_storages_storage_1(
+        self, method, url, body, header
+    ):
+        if method == 'GET' or method == 'DELETE':
+            body = self.fixtures.load('shared_storage.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_shared_storages_storage_1_servers(
+        self, method, url, body, header
+    ):
+        if method == 'POST' or method == 'DELETE':
+            body = self.fixtures.load('shared_storage.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_shared_storages_storage_1_servers_srv_1(
+        self, method, url, body, header
+    ):
+        if method == 'GET' or method == 'DELETE':
+            body = self.fixtures.load('shared_storage.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_load_balancers(
+        self, method, url, body, header
+    ):
+        if method == 'POST':
+            body = self.fixtures.load('load_balancer.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'GET':
+            body = self.fixtures.load('list_load_balancer.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_load_balancers_lb_1(
+        self, method, url, body, header
+    ):
+
+        body = self.fixtures.load('load_balancer.json')
+        return (
+            httplib.OK,
+            body,
+            {},
+            httplib.responses[httplib.OK]
+        )
+
+    def _v1_load_balancers_lb_1_server_ips(
+        self, method, url, body, header
+    ):
+        if method == 'GET':
+            body = self.fixtures.load('load_balancer_server_ips.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+        if method == 'POST':
+            body = self.fixtures.load('load_balancer.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_load_balancers_lb_1_rules(
+        self, method, url, body, header
+    ):
+        if method == 'POST':
+            body = self.fixtures.load('load_balancer.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'GET':
+            body = self.fixtures.load('load_balancer_rules.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_load_balancers_lb_1_server_ips_srv_1(
+        self, method, url, body, header
+    ):
+        if method == 'DELETE':
+            body = self.fixtures.load('load_balancer.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+        if method == 'GET':
+            body = self.fixtures.load('load_balancer_server_ip.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_load_balancers_lb_1_rules_rule_1(
+        self, method, url, body, header
+    ):
+        if method == 'DELETE':
+            body = self.fixtures.load('load_balancer.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'GET':
+            body = self.fixtures.load('load_balancer_rule.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_public_ips(
+        self, method, url, body, header
+    ):
+        if method == 'GET':
+            body = self.fixtures.load('list_public_ips.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'POST':
+            body = self.fixtures.load('public_ip.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_public_ips_ip_1(
+        self, method, url, body, header
+    ):
+        body = self.fixtures.load('public_ip.json')
+        return (
+            httplib.OK,
+            body,
+            {},
+            httplib.responses[httplib.OK]
+        )
+
+    def _v1_monitoring_policies(
+        self, method, url, body, header
+    ):
+        if method == 'POST':
+            body = self.fixtures.load('monitoring_policy.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+        if method == 'GET':
+            body = self.fixtures.load('list_monitoring_policies.json')
+            return (
+                httplib.OK,
+                body,
+                {},
+                httplib.responses[httplib.OK]
+            )
+
+    def _v1_monitoring_policies_pol_1(
+        self, method, url, body, header
+    ):
+        body = self.fixtures.load('monitoring_policy.json')
+        return (
+            httplib.OK,
+            body,
+            {},
+            httplib.responses[httplib.OK]
+        )
+
+    def _v1_monitoring_policies_pol_1_ports(
+        self, method, url, body, header
+    ):
+        body = self.fixtures.load('monitoring_policy_ports.json')
+        return (
+            httplib.OK,
+            body,
+            {},
+            httplib.responses[httplib.OK]
+        )
+
+    def _v1_monitoring_policies_pol_1_ports_port_1(
+        self, method, url, body, header
+    ):
+        if method == 'GET':
+            body = self.fixtures.load('monitoring_policy_port.json')
+        elif method == 'POST':
+            body = self.fixtures.load('monitoring_policy.json')
+
+        return (
+            httplib.OK,
+            body,
+            {},
+            httplib.responses[httplib.OK]
+        )
+
+    def _v1_monitoring_policies_pol_1_processes(
+        self, method, url, body, header
+    ):
+        body = self.fixtures.load('monitoring_policy_processes.json')
+        return (
+            httplib.OK,
+            body,
+            {},
+            httplib.responses[httplib.OK]
+        )
+
+    def _v1_monitoring_policies_pol_1_processes_proc_1(
+        self, method, url, body, header
+    ):
+        if method == 'GET':
+            body = self.fixtures.load('monitoring_policy_process.json')
+        elif method == 'POST':
+            body = self.fixtures.load('monitoring_policy.json')
+
+        return (
+            httplib.OK,
+            body,
+            {},
+            httplib.responses[httplib.OK]
+        )
+
+    def _v1_monitoring_policies_pol_1_servers(
+        self, method, url, body, header
+    ):
+        body = self.fixtures.load('monitoring_policy_servers.json')
+        return (
+            httplib.OK,
+            body,
+            {},
+            httplib.responses[httplib.OK]
+        )
+
+    def _v1_monitoring_policies_pol_1_servers_serv_1(
+        self, method, url, body, header
+    ):
+        if method == 'GET':
+            body = self.fixtures.load('monitoring_policy_servers.json')
+        elif method == 'POST':
+            body = self.fixtures.load('monitoring_policy.json')
+
+        return (
+            httplib.OK,
+            body,
+            {},
+            httplib.responses[httplib.OK]
+        )
+
+    def _v1_servers_fixed_instance_sizes(
+        self, method, url, body, header
+    ):
+        body = self.fixtures.load('fixed_instance_sizes.json')
+        return (
+            httplib.OK,
+            body,
+            {},
+            httplib.responses[httplib.OK]
+        )
+
+
+if __name__ == '__main__':
+    sys.exit(unittest.main())

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ff028ae2/libcloud/test/secrets.py-dist
----------------------------------------------------------------------
diff --git a/libcloud/test/secrets.py-dist b/libcloud/test/secrets.py-dist
index 2c21f84..6018a2a 100644
--- a/libcloud/test/secrets.py-dist
+++ b/libcloud/test/secrets.py-dist
@@ -28,6 +28,7 @@ HOSTINGCOM_PARAMS = ('user', 'secret')
 IBM_PARAMS = ('user', 'secret')
 ONAPP_PARAMS = ('key',)
 # OPENSTACK_PARAMS = ('user_name', 'api_key', secure_bool, 'host', port_int)
+ONEANDONE_PARAMS =('token')
 OPENSTACK_PARAMS = ('user_name', 'api_key', False, 'host', 8774)
 OPENNEBULA_PARAMS = ('user', 'key')
 DIMENSIONDATA_PARAMS = ('user', 'password')


Mime
View raw message