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": "t...@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-...@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='t...@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='t...@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')