fog 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (388) hide show
  1. data/.gitignore +1 -0
  2. data/Gemfile.lock +3 -3
  3. data/bin/fog +0 -5
  4. data/changelog.txt +88 -0
  5. data/fog.gemspec +3 -3
  6. data/lib/fog.rb +1 -2
  7. data/lib/fog/aws/elb.rb +2 -0
  8. data/lib/fog/aws/iam.rb +7 -0
  9. data/lib/fog/aws/parsers/iam/get_group.rb +55 -0
  10. data/lib/fog/aws/parsers/iam/get_user_policy.rb +27 -0
  11. data/lib/fog/aws/parsers/iam/update_group.rb +26 -0
  12. data/lib/fog/aws/parsers/iam/update_user.rb +27 -0
  13. data/lib/fog/aws/requests/iam/create_access_key.rb +1 -1
  14. data/lib/fog/aws/requests/iam/get_group.rb +44 -0
  15. data/lib/fog/aws/requests/iam/get_user_policy.rb +36 -0
  16. data/lib/fog/aws/requests/iam/update_group.rb +39 -0
  17. data/lib/fog/aws/requests/iam/update_signing_certificate.rb +32 -0
  18. data/lib/fog/aws/requests/iam/update_user.rb +39 -0
  19. data/lib/fog/aws/ses.rb +2 -0
  20. data/lib/fog/aws/simpledb.rb +2 -0
  21. data/lib/fog/bin.rb +3 -8
  22. data/lib/fog/bin/aws.rb +2 -14
  23. data/lib/fog/bin/bluebox.rb +6 -8
  24. data/lib/fog/bin/dnsimple.rb +30 -0
  25. data/lib/fog/bin/ecloud.rb +30 -0
  26. data/lib/fog/bin/go_grid.rb +1 -7
  27. data/lib/fog/bin/linode.rb +0 -6
  28. data/lib/fog/bin/local.rb +1 -7
  29. data/lib/fog/bin/new_servers.rb +1 -7
  30. data/lib/fog/bin/rackspace.rb +2 -14
  31. data/lib/fog/bin/slicehost.rb +2 -8
  32. data/lib/fog/bin/terremark.rb +0 -5
  33. data/lib/fog/bin/voxel.rb +30 -0
  34. data/lib/fog/cdn/aws.rb +2 -0
  35. data/lib/fog/compute.rb +6 -3
  36. data/lib/fog/compute/aws.rb +4 -18
  37. data/lib/fog/compute/ecloud.rb +1306 -0
  38. data/lib/fog/compute/models/aws/key_pair.rb +0 -2
  39. data/lib/fog/compute/models/aws/security_group.rb +4 -4
  40. data/lib/fog/compute/models/aws/server.rb +13 -3
  41. data/lib/fog/compute/models/aws/snapshot.rb +0 -2
  42. data/lib/fog/compute/models/aws/volume.rb +0 -2
  43. data/lib/fog/compute/models/bluebox/server.rb +23 -11
  44. data/lib/fog/compute/models/brightbox/server.rb +8 -0
  45. data/lib/fog/compute/models/ecloud/backup_internet_service.rb +56 -0
  46. data/lib/fog/compute/models/ecloud/backup_internet_services.rb +33 -0
  47. data/lib/fog/compute/models/ecloud/catalog.rb +28 -0
  48. data/lib/fog/compute/models/ecloud/catalog_item.rb +29 -0
  49. data/lib/fog/compute/models/ecloud/firewall_acl.rb +24 -0
  50. data/lib/fog/compute/models/ecloud/firewall_acls.rb +31 -0
  51. data/lib/fog/compute/models/ecloud/internet_service.rb +117 -0
  52. data/lib/fog/compute/models/ecloud/internet_services.rb +33 -0
  53. data/lib/fog/compute/models/ecloud/ip.rb +49 -0
  54. data/lib/fog/compute/models/ecloud/ips.rb +32 -0
  55. data/lib/fog/compute/models/ecloud/network.rb +72 -0
  56. data/lib/fog/compute/models/ecloud/networks.rb +33 -0
  57. data/lib/fog/compute/models/ecloud/node.rb +43 -0
  58. data/lib/fog/compute/models/ecloud/nodes.rb +31 -0
  59. data/lib/fog/compute/models/ecloud/public_ip.rb +22 -0
  60. data/lib/fog/compute/models/ecloud/public_ips.rb +36 -0
  61. data/lib/fog/compute/models/ecloud/server.rb +209 -0
  62. data/lib/fog/compute/models/ecloud/servers.rb +55 -0
  63. data/lib/fog/compute/models/ecloud/task.rb +21 -0
  64. data/lib/fog/compute/models/ecloud/tasks.rb +31 -0
  65. data/lib/fog/compute/models/ecloud/vdc.rb +81 -0
  66. data/lib/fog/compute/models/ecloud/vdcs.rb +40 -0
  67. data/lib/fog/compute/models/go_grid/server.rb +15 -1
  68. data/lib/fog/compute/models/rackspace/server.rb +16 -0
  69. data/lib/fog/compute/models/slicehost/server.rb +16 -0
  70. data/lib/fog/compute/models/voxel/image.rb +12 -0
  71. data/lib/fog/compute/models/voxel/images.rb +30 -0
  72. data/lib/fog/compute/models/voxel/server.rb +77 -0
  73. data/lib/fog/compute/models/voxel/servers.rb +31 -0
  74. data/lib/fog/compute/new_servers.rb +2 -2
  75. data/lib/fog/compute/parsers/voxel/basic.rb +31 -0
  76. data/lib/fog/compute/parsers/voxel/devices_list.rb +111 -0
  77. data/lib/fog/compute/parsers/voxel/images_list.rb +59 -0
  78. data/lib/fog/compute/parsers/voxel/voxcloud_create.rb +40 -0
  79. data/lib/fog/compute/parsers/voxel/voxcloud_delete.rb +31 -0
  80. data/lib/fog/compute/parsers/voxel/voxcloud_status.rb +42 -0
  81. data/lib/fog/compute/rackspace.rb +0 -16
  82. data/lib/fog/compute/requests/aws/associate_address.rb +2 -0
  83. data/lib/fog/compute/requests/aws/authorize_security_group_ingress.rb +28 -8
  84. data/lib/fog/compute/requests/aws/create_security_group.rb +2 -0
  85. data/lib/fog/compute/requests/aws/create_tags.rb +2 -0
  86. data/lib/fog/compute/requests/aws/delete_key_pair.rb +2 -0
  87. data/lib/fog/compute/requests/aws/delete_security_group.rb +2 -0
  88. data/lib/fog/compute/requests/aws/delete_snapshot.rb +2 -0
  89. data/lib/fog/compute/requests/aws/delete_tags.rb +2 -0
  90. data/lib/fog/compute/requests/aws/delete_volume.rb +2 -0
  91. data/lib/fog/compute/requests/aws/disassociate_address.rb +2 -0
  92. data/lib/fog/compute/requests/aws/modify_image_attributes.rb +2 -0
  93. data/lib/fog/compute/requests/aws/modify_snapshot_attribute.rb +2 -0
  94. data/lib/fog/compute/requests/aws/reboot_instances.rb +2 -0
  95. data/lib/fog/compute/requests/aws/release_address.rb +2 -0
  96. data/lib/fog/compute/requests/aws/revoke_security_group_ingress.rb +2 -0
  97. data/lib/fog/compute/requests/ecloud/add_backup_internet_service.rb +109 -0
  98. data/lib/fog/compute/requests/ecloud/add_internet_service.rb +149 -0
  99. data/lib/fog/compute/requests/ecloud/add_node.rb +62 -0
  100. data/lib/fog/compute/requests/ecloud/clone_vapp.rb +40 -0
  101. data/lib/fog/compute/requests/ecloud/configure_internet_service.rb +112 -0
  102. data/lib/fog/compute/requests/ecloud/configure_network.rb +44 -0
  103. data/lib/fog/compute/requests/ecloud/configure_network_ip.rb +66 -0
  104. data/lib/fog/compute/requests/ecloud/configure_node.rb +56 -0
  105. data/lib/fog/compute/requests/ecloud/configure_vapp.rb +144 -0
  106. data/lib/fog/compute/requests/ecloud/delete_internet_service.rb +22 -0
  107. data/lib/fog/compute/requests/ecloud/delete_node.rb +22 -0
  108. data/lib/fog/compute/requests/ecloud/delete_vapp.rb +29 -0
  109. data/lib/fog/compute/requests/ecloud/get_catalog.rb +44 -0
  110. data/lib/fog/compute/requests/ecloud/get_catalog_item.rb +47 -0
  111. data/lib/fog/compute/requests/ecloud/get_customization_options.rb +22 -0
  112. data/lib/fog/compute/requests/ecloud/get_firewall_acl.rb +11 -0
  113. data/lib/fog/compute/requests/ecloud/get_firewall_acls.rb +11 -0
  114. data/lib/fog/compute/requests/ecloud/get_internet_services.rb +82 -0
  115. data/lib/fog/compute/requests/ecloud/get_network.rb +44 -0
  116. data/lib/fog/compute/requests/ecloud/get_network_extensions.rb +33 -0
  117. data/lib/fog/compute/requests/ecloud/get_network_ip.rb +43 -0
  118. data/lib/fog/compute/requests/ecloud/get_network_ips.rb +35 -0
  119. data/lib/fog/compute/requests/ecloud/get_node.rb +40 -0
  120. data/lib/fog/compute/requests/ecloud/get_nodes.rb +41 -0
  121. data/lib/fog/compute/requests/ecloud/get_organization.rb +49 -0
  122. data/lib/fog/compute/requests/ecloud/get_public_ip.rb +34 -0
  123. data/lib/fog/compute/requests/ecloud/get_public_ips.rb +38 -0
  124. data/lib/fog/compute/requests/ecloud/get_task.rb +11 -0
  125. data/lib/fog/compute/requests/ecloud/get_task_list.rb +11 -0
  126. data/lib/fog/compute/requests/ecloud/get_vapp.rb +99 -0
  127. data/lib/fog/compute/requests/ecloud/get_vapp_template.rb +11 -0
  128. data/lib/fog/compute/requests/ecloud/get_vdc.rb +84 -0
  129. data/lib/fog/compute/requests/ecloud/get_versions.rb +37 -0
  130. data/lib/fog/compute/requests/ecloud/instantiate_vapp_template.rb +142 -0
  131. data/lib/fog/compute/requests/ecloud/login.rb +48 -0
  132. data/lib/fog/compute/requests/ecloud/power_off.rb +23 -0
  133. data/lib/fog/compute/requests/ecloud/power_on.rb +23 -0
  134. data/lib/fog/compute/requests/ecloud/power_reset.rb +11 -0
  135. data/lib/fog/compute/requests/ecloud/power_shutdown.rb +11 -0
  136. data/lib/fog/compute/requests/voxel/devices_list.rb +24 -0
  137. data/lib/fog/compute/requests/voxel/devices_power.rb +22 -0
  138. data/lib/fog/compute/requests/voxel/images_list.rb +31 -0
  139. data/lib/fog/compute/requests/voxel/voxcloud_create.rb +22 -0
  140. data/lib/fog/compute/requests/voxel/voxcloud_delete.rb +20 -0
  141. data/lib/fog/compute/requests/voxel/voxcloud_status.rb +29 -0
  142. data/lib/fog/compute/slicehost.rb +2 -0
  143. data/lib/fog/compute/voxel.rb +112 -0
  144. data/lib/fog/core.rb +1 -0
  145. data/lib/fog/core/credentials.rb +6 -2
  146. data/lib/fog/core/parser.rb +2 -0
  147. data/lib/fog/core/scp.rb +67 -0
  148. data/lib/fog/dns.rb +6 -0
  149. data/lib/fog/dns/aws.rb +2 -0
  150. data/lib/fog/dns/bluebox.rb +110 -0
  151. data/lib/fog/dns/dnsimple.rb +95 -0
  152. data/lib/fog/dns/models/bluebox/record.rb +52 -0
  153. data/lib/fog/dns/models/bluebox/records.rb +36 -0
  154. data/lib/fog/dns/models/bluebox/zone.rb +63 -0
  155. data/lib/fog/dns/models/bluebox/zones.rb +28 -0
  156. data/lib/fog/dns/models/dnsimple/record.rb +54 -0
  157. data/lib/fog/dns/models/dnsimple/records.rb +38 -0
  158. data/lib/fog/dns/models/dnsimple/zone.rb +50 -0
  159. data/lib/fog/dns/models/dnsimple/zones.rb +28 -0
  160. data/lib/fog/dns/parsers/bluebox/create_record.rb +26 -0
  161. data/lib/fog/dns/parsers/bluebox/create_zone.rb +26 -0
  162. data/lib/fog/dns/parsers/bluebox/get_record.rb +21 -0
  163. data/lib/fog/dns/parsers/bluebox/get_records.rb +27 -0
  164. data/lib/fog/{compute/parsers/terremark_ecloud/get_ip_address.rb → dns/parsers/bluebox/get_zone.rb} +6 -6
  165. data/lib/fog/dns/parsers/bluebox/get_zones.rb +30 -0
  166. data/lib/fog/dns/requests/bluebox/create_record.rb +48 -0
  167. data/lib/fog/dns/requests/bluebox/create_zone.rb +52 -0
  168. data/lib/fog/dns/requests/bluebox/delete_record.rb +31 -0
  169. data/lib/fog/dns/requests/bluebox/delete_zone.rb +31 -0
  170. data/lib/fog/dns/requests/bluebox/get_record.rb +40 -0
  171. data/lib/fog/dns/requests/bluebox/get_records.rb +41 -0
  172. data/lib/fog/dns/requests/bluebox/get_zone.rb +44 -0
  173. data/lib/fog/dns/requests/bluebox/get_zones.rb +43 -0
  174. data/lib/fog/dns/requests/bluebox/update_record.rb +34 -0
  175. data/lib/fog/dns/requests/bluebox/update_zone.rb +30 -0
  176. data/lib/fog/dns/requests/dnsimple/create_domain.rb +27 -0
  177. data/lib/fog/dns/requests/dnsimple/create_record.rb +48 -0
  178. data/lib/fog/dns/requests/dnsimple/delete_domain.rb +26 -0
  179. data/lib/fog/dns/requests/dnsimple/delete_record.rb +21 -0
  180. data/lib/fog/dns/requests/dnsimple/get_domain.rb +37 -0
  181. data/lib/fog/dns/requests/dnsimple/list_domains.rb +35 -0
  182. data/lib/fog/dns/requests/dnsimple/list_records.rb +32 -0
  183. data/lib/fog/dns/requests/dnsimple/update_record.rb +42 -0
  184. data/lib/fog/dns/slicehost.rb +2 -0
  185. data/lib/fog/dns/zerigo.rb +2 -0
  186. data/lib/fog/providers.rb +3 -1
  187. data/lib/fog/providers/aws.rb +0 -4
  188. data/lib/fog/providers/bluebox.rb +1 -8
  189. data/lib/fog/providers/dnsimple.rb +11 -0
  190. data/lib/fog/providers/ecloud.rb +11 -0
  191. data/lib/fog/providers/go_grid.rb +0 -8
  192. data/lib/fog/providers/google.rb +0 -3
  193. data/lib/fog/providers/linode.rb +0 -8
  194. data/lib/fog/providers/local.rb +0 -8
  195. data/lib/fog/providers/new_servers.rb +0 -11
  196. data/lib/fog/providers/rackspace.rb +0 -2
  197. data/lib/fog/providers/slicehost.rb +0 -11
  198. data/lib/fog/providers/voxel.rb +16 -0
  199. data/lib/fog/providers/zerigo.rb +0 -3
  200. data/lib/fog/storage/aws.rb +7 -19
  201. data/lib/fog/storage/google.rb +2 -2
  202. data/lib/fog/storage/models/aws/directory.rb +0 -3
  203. data/lib/fog/storage/models/aws/file.rb +0 -3
  204. data/lib/fog/storage/models/google/directory.rb +0 -3
  205. data/lib/fog/storage/models/google/file.rb +0 -3
  206. data/lib/fog/storage/models/local/directory.rb +0 -3
  207. data/lib/fog/storage/models/local/file.rb +29 -1
  208. data/lib/fog/storage/models/local/files.rb +8 -5
  209. data/lib/fog/storage/models/rackspace/directory.rb +1 -3
  210. data/lib/fog/storage/parsers/aws/get_bucket_website.rb +26 -0
  211. data/lib/fog/storage/rackspace.rb +0 -16
  212. data/lib/fog/storage/requests/aws/delete_bucket_website.rb +32 -0
  213. data/lib/fog/storage/requests/aws/get_bucket_website.rb +42 -0
  214. data/lib/fog/storage/requests/aws/put_bucket_website.rb +49 -0
  215. data/lib/fog/terremark.rb +0 -5
  216. data/spec/ecloud/bin_spec.rb +22 -0
  217. data/spec/{vcloud/terremark/ecloud → ecloud}/models/backup_internet_service_spec.rb +5 -5
  218. data/spec/{vcloud/terremark/ecloud → ecloud}/models/backup_internet_services_spec.rb +4 -4
  219. data/spec/{vcloud/terremark/ecloud → ecloud}/models/internet_service_spec.rb +5 -5
  220. data/spec/{vcloud/terremark/ecloud → ecloud}/models/internet_services_spec.rb +4 -4
  221. data/spec/{vcloud/terremark/ecloud → ecloud}/models/ip_spec.rb +5 -5
  222. data/spec/{vcloud/terremark/ecloud → ecloud}/models/ips_spec.rb +4 -4
  223. data/spec/{vcloud/terremark/ecloud → ecloud}/models/network_spec.rb +5 -5
  224. data/spec/{vcloud/terremark/ecloud → ecloud}/models/networks_spec.rb +4 -4
  225. data/spec/{vcloud/terremark/ecloud → ecloud}/models/node_spec.rb +5 -5
  226. data/spec/{vcloud/terremark/ecloud → ecloud}/models/nodes_spec.rb +4 -4
  227. data/spec/{vcloud/terremark/ecloud → ecloud}/models/public_ip_spec.rb +5 -5
  228. data/spec/{vcloud/terremark/ecloud → ecloud}/models/public_ips_spec.rb +4 -4
  229. data/spec/{vcloud/terremark/ecloud → ecloud}/models/server_spec.rb +4 -4
  230. data/spec/{vcloud/terremark/ecloud → ecloud}/models/vdc_spec.rb +5 -5
  231. data/spec/{vcloud/terremark/ecloud → ecloud}/models/vdcs_spec.rb +4 -4
  232. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/add_backup_internet_service_spec.rb +2 -2
  233. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/add_internet_service_spec.rb +2 -2
  234. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/add_node_spec.rb +2 -2
  235. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/configure_internet_service_spec.rb +2 -2
  236. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/configure_network_ip_spec.rb +2 -2
  237. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/configure_node_spec.rb +2 -2
  238. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/configure_vapp_spec.rb +2 -2
  239. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/delete_internet_service_spec.rb +2 -2
  240. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/delete_node_spec.rb +2 -2
  241. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/delete_vapp_spec.rb +2 -2
  242. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_catalog_item_spec.rb +2 -2
  243. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_catalog_spec.rb +2 -2
  244. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_customization_options_spec.rb +2 -2
  245. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_internet_services_spec.rb +2 -2
  246. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_network_ip_spec.rb +2 -2
  247. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_network_ips_spec.rb +2 -2
  248. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_network_spec.rb +2 -2
  249. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_node_spec.rb +2 -2
  250. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_nodes_spec.rb +2 -2
  251. data/spec/{vcloud → ecloud}/requests/get_organization_spec.rb +2 -2
  252. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_public_ip_spec.rb +2 -2
  253. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_public_ips_spec.rb +2 -2
  254. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_vapp_spec.rb +2 -2
  255. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_vdc_spec.rb +2 -2
  256. data/spec/ecloud/requests/get_versions_spec.rb +57 -0
  257. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/instantiate_vapp_template_spec.rb +3 -3
  258. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/login_spec.rb +2 -2
  259. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/power_off_spec.rb +2 -2
  260. data/spec/{vcloud/terremark/ecloud → ecloud}/requests/power_on_spec.rb +2 -2
  261. data/spec/{vcloud → ecloud}/spec_helper.rb +14 -29
  262. data/spec/{vcloud → ecloud}/vcloud_spec.rb +4 -4
  263. data/spec/spec_helper.rb +0 -1
  264. data/tests/compute/helper.rb +12 -1
  265. data/tests/compute/models/flavors_tests.rb +2 -0
  266. data/tests/compute/models/server_tests.rb +28 -1
  267. data/tests/compute/requests/voxel/image_tests.rb +46 -0
  268. data/tests/compute/requests/voxel/server_tests.rb +123 -0
  269. data/tests/dns/helper.rb +10 -1
  270. data/tests/dns/models/record_tests.rb +0 -1
  271. data/tests/dns/requests/bluebox/dns_tests.rb +271 -0
  272. data/tests/dns/requests/dnsimple/dns_tests.rb +130 -0
  273. data/tests/helper.rb +1 -1
  274. data/tests/helpers/mock_helper.rb +2 -0
  275. data/tests/storage/models/directory_test.rb +2 -1
  276. metadata +244 -224
  277. data/lib/fog/bin/terremark_ecloud.rb +0 -28
  278. data/lib/fog/bin/vcloud.rb +0 -59
  279. data/lib/fog/compute/parsers/terremark_ecloud/get_catalog.rb +0 -36
  280. data/lib/fog/compute/parsers/terremark_ecloud/get_catalog_item.rb +0 -43
  281. data/lib/fog/compute/parsers/terremark_ecloud/get_ip_addresses.rb +0 -27
  282. data/lib/fog/compute/parsers/terremark_ecloud/get_network.rb +0 -59
  283. data/lib/fog/compute/parsers/terremark_ecloud/get_organization.rb +0 -35
  284. data/lib/fog/compute/parsers/terremark_ecloud/get_task.rb +0 -42
  285. data/lib/fog/compute/parsers/terremark_ecloud/get_task_list.rb +0 -51
  286. data/lib/fog/compute/parsers/terremark_ecloud/get_vdc.rb +0 -110
  287. data/lib/fog/compute/parsers/terremark_ecloud/get_versions.rb +0 -28
  288. data/lib/fog/compute/parsers/terremark_ecloud/login.rb +0 -27
  289. data/lib/fog/compute/requests/terremark_ecloud/get_catalog.rb +0 -19
  290. data/lib/fog/compute/requests/terremark_ecloud/get_catalog_item.rb +0 -19
  291. data/lib/fog/compute/requests/terremark_ecloud/get_ip_address.rb +0 -19
  292. data/lib/fog/compute/requests/terremark_ecloud/get_ip_addresses.rb +0 -19
  293. data/lib/fog/compute/requests/terremark_ecloud/get_network.rb +0 -19
  294. data/lib/fog/compute/requests/terremark_ecloud/get_organization.rb +0 -19
  295. data/lib/fog/compute/requests/terremark_ecloud/get_task.rb +0 -19
  296. data/lib/fog/compute/requests/terremark_ecloud/get_task_list.rb +0 -19
  297. data/lib/fog/compute/requests/terremark_ecloud/get_vdc.rb +0 -19
  298. data/lib/fog/compute/requests/terremark_ecloud/get_versions.rb +0 -26
  299. data/lib/fog/compute/requests/terremark_ecloud/login.rb +0 -29
  300. data/lib/fog/compute/terremark_ecloud.rb +0 -93
  301. data/lib/fog/providers/terremark_ecloud.rb +0 -17
  302. data/lib/fog/terremark/ecloud.rb +0 -73
  303. data/lib/fog/vcloud.rb +0 -337
  304. data/lib/fog/vcloud/collection.rb +0 -30
  305. data/lib/fog/vcloud/generators.rb +0 -33
  306. data/lib/fog/vcloud/mock_data_classes.rb +0 -767
  307. data/lib/fog/vcloud/model.rb +0 -22
  308. data/lib/fog/vcloud/models/vdc.rb +0 -26
  309. data/lib/fog/vcloud/models/vdcs.rb +0 -35
  310. data/lib/fog/vcloud/requests/get_network.rb +0 -47
  311. data/lib/fog/vcloud/requests/get_organization.rb +0 -47
  312. data/lib/fog/vcloud/requests/get_vdc.rb +0 -82
  313. data/lib/fog/vcloud/requests/get_versions.rb +0 -34
  314. data/lib/fog/vcloud/requests/login.rb +0 -46
  315. data/lib/fog/vcloud/terremark/ecloud.rb +0 -187
  316. data/lib/fog/vcloud/terremark/ecloud/models/backup_internet_service.rb +0 -60
  317. data/lib/fog/vcloud/terremark/ecloud/models/backup_internet_services.rb +0 -36
  318. data/lib/fog/vcloud/terremark/ecloud/models/catalog.rb +0 -31
  319. data/lib/fog/vcloud/terremark/ecloud/models/catalog_item.rb +0 -31
  320. data/lib/fog/vcloud/terremark/ecloud/models/firewall_acl.rb +0 -28
  321. data/lib/fog/vcloud/terremark/ecloud/models/firewall_acls.rb +0 -34
  322. data/lib/fog/vcloud/terremark/ecloud/models/internet_service.rb +0 -121
  323. data/lib/fog/vcloud/terremark/ecloud/models/internet_services.rb +0 -36
  324. data/lib/fog/vcloud/terremark/ecloud/models/ip.rb +0 -51
  325. data/lib/fog/vcloud/terremark/ecloud/models/ips.rb +0 -35
  326. data/lib/fog/vcloud/terremark/ecloud/models/network.rb +0 -77
  327. data/lib/fog/vcloud/terremark/ecloud/models/networks.rb +0 -36
  328. data/lib/fog/vcloud/terremark/ecloud/models/node.rb +0 -47
  329. data/lib/fog/vcloud/terremark/ecloud/models/nodes.rb +0 -33
  330. data/lib/fog/vcloud/terremark/ecloud/models/public_ip.rb +0 -25
  331. data/lib/fog/vcloud/terremark/ecloud/models/public_ips.rb +0 -39
  332. data/lib/fog/vcloud/terremark/ecloud/models/server.rb +0 -211
  333. data/lib/fog/vcloud/terremark/ecloud/models/servers.rb +0 -57
  334. data/lib/fog/vcloud/terremark/ecloud/models/task.rb +0 -23
  335. data/lib/fog/vcloud/terremark/ecloud/models/tasks.rb +0 -33
  336. data/lib/fog/vcloud/terremark/ecloud/models/vdc.rb +0 -83
  337. data/lib/fog/vcloud/terremark/ecloud/models/vdcs.rb +0 -42
  338. data/lib/fog/vcloud/terremark/ecloud/requests/add_backup_internet_service.rb +0 -111
  339. data/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +0 -152
  340. data/lib/fog/vcloud/terremark/ecloud/requests/add_node.rb +0 -64
  341. data/lib/fog/vcloud/terremark/ecloud/requests/clone_vapp.rb +0 -42
  342. data/lib/fog/vcloud/terremark/ecloud/requests/configure_internet_service.rb +0 -115
  343. data/lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb +0 -46
  344. data/lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb +0 -68
  345. data/lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb +0 -58
  346. data/lib/fog/vcloud/terremark/ecloud/requests/configure_vapp.rb +0 -147
  347. data/lib/fog/vcloud/terremark/ecloud/requests/delete_internet_service.rb +0 -25
  348. data/lib/fog/vcloud/terremark/ecloud/requests/delete_node.rb +0 -24
  349. data/lib/fog/vcloud/terremark/ecloud/requests/delete_vapp.rb +0 -32
  350. data/lib/fog/vcloud/terremark/ecloud/requests/get_catalog.rb +0 -46
  351. data/lib/fog/vcloud/terremark/ecloud/requests/get_catalog_item.rb +0 -49
  352. data/lib/fog/vcloud/terremark/ecloud/requests/get_customization_options.rb +0 -24
  353. data/lib/fog/vcloud/terremark/ecloud/requests/get_firewall_acl.rb +0 -13
  354. data/lib/fog/vcloud/terremark/ecloud/requests/get_firewall_acls.rb +0 -13
  355. data/lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb +0 -84
  356. data/lib/fog/vcloud/terremark/ecloud/requests/get_network.rb +0 -47
  357. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_extensions.rb +0 -35
  358. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ip.rb +0 -45
  359. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ips.rb +0 -37
  360. data/lib/fog/vcloud/terremark/ecloud/requests/get_node.rb +0 -42
  361. data/lib/fog/vcloud/terremark/ecloud/requests/get_nodes.rb +0 -43
  362. data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb +0 -36
  363. data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ips.rb +0 -41
  364. data/lib/fog/vcloud/terremark/ecloud/requests/get_task.rb +0 -13
  365. data/lib/fog/vcloud/terremark/ecloud/requests/get_task_list.rb +0 -14
  366. data/lib/fog/vcloud/terremark/ecloud/requests/get_vapp.rb +0 -101
  367. data/lib/fog/vcloud/terremark/ecloud/requests/get_vapp_template.rb +0 -13
  368. data/lib/fog/vcloud/terremark/ecloud/requests/get_vdc.rb +0 -87
  369. data/lib/fog/vcloud/terremark/ecloud/requests/instantiate_vapp_template.rb +0 -144
  370. data/lib/fog/vcloud/terremark/ecloud/requests/power_off.rb +0 -25
  371. data/lib/fog/vcloud/terremark/ecloud/requests/power_on.rb +0 -25
  372. data/lib/fog/vcloud/terremark/ecloud/requests/power_reset.rb +0 -13
  373. data/lib/fog/vcloud/terremark/ecloud/requests/power_shutdown.rb +0 -13
  374. data/lib/fog/vcloud/terremark/vcloud.rb +0 -39
  375. data/lib/fog/vcloud/terremark/vcloud/requests/get_vdc.rb +0 -57
  376. data/spec/vcloud/bin_spec.rb +0 -28
  377. data/spec/vcloud/models/vdc_spec.rb +0 -51
  378. data/spec/vcloud/models/vdcs_spec.rb +0 -1
  379. data/spec/vcloud/requests/get_network_spec.rb +0 -44
  380. data/spec/vcloud/requests/get_vdc_spec.rb +0 -62
  381. data/spec/vcloud/requests/get_versions_spec.rb +0 -54
  382. data/spec/vcloud/requests/login_spec.rb +0 -24
  383. data/tests/compute/requests/terremark_ecloud/catalog_tests.rb +0 -47
  384. data/tests/compute/requests/terremark_ecloud/helper.rb +0 -45
  385. data/tests/compute/requests/terremark_ecloud/network_tests.rb +0 -30
  386. data/tests/compute/requests/terremark_ecloud/organization_tests.rb +0 -28
  387. data/tests/compute/requests/terremark_ecloud/task_tests.rb +0 -39
  388. data/tests/compute/requests/terremark_ecloud/vdc_tests.rb +0 -60
@@ -5,8 +5,6 @@ module Fog
5
5
  class Compute
6
6
 
7
7
  class KeyPair < Fog::Model
8
- extend Fog::Deprecation
9
- deprecate(:material, :private_key)
10
8
 
11
9
  identity :name, :aliases => 'keyName'
12
10
 
@@ -42,7 +42,7 @@ module Fog
42
42
  requires :name
43
43
 
44
44
  connection.authorize_security_group_ingress(
45
- 'GroupName' => name,
45
+ name,
46
46
  'SourceSecurityGroupName' => group,
47
47
  'SourceSecurityGroupOwnerId' => owner
48
48
  )
@@ -80,9 +80,9 @@ module Fog
80
80
  requires :name
81
81
 
82
82
  connection.authorize_security_group_ingress(
83
+ name,
83
84
  'CidrIp' => options[:cidr_ip] || '0.0.0.0/0',
84
85
  'FromPort' => range.min,
85
- 'GroupName' => name,
86
86
  'ToPort' => range.max,
87
87
  'IpProtocol' => options[:ip_protocol] || 'tcp'
88
88
  )
@@ -134,7 +134,7 @@ module Fog
134
134
  requires :name
135
135
 
136
136
  connection.revoke_security_group_ingress(
137
- 'GroupName' => name,
137
+ name,
138
138
  'SourceSecurityGroupName' => group,
139
139
  'SourceSecurityGroupOwnerId' => owner
140
140
  )
@@ -172,9 +172,9 @@ module Fog
172
172
  requires :name
173
173
 
174
174
  connection.revoke_security_group_ingress(
175
+ name,
175
176
  'CidrIp' => options[:cidr_ip] || '0.0.0.0/0',
176
177
  'FromPort' => range.min,
177
- 'GroupName' => name,
178
178
  'ToPort' => range.max,
179
179
  'IpProtocol' => options[:ip_protocol] || 'tcp'
180
180
  )
@@ -5,6 +5,8 @@ module Fog
5
5
  class Compute
6
6
 
7
7
  class Server < Fog::Model
8
+ extend Fog::Deprecation
9
+ deprecate :ip_address, :public_ip_address
8
10
 
9
11
  identity :id, :aliases => 'instanceId'
10
12
 
@@ -18,7 +20,6 @@ module Fog
18
20
  attribute :flavor_id, :aliases => 'instanceType'
19
21
  attribute :image_id, :aliases => 'imageId'
20
22
  attr_accessor :instance_initiated_shutdown_behavior
21
- attribute :ip_address, :aliases => 'ipAddress'
22
23
  attribute :kernel_id, :aliases => 'kernelId'
23
24
  attribute :key_name, :aliases => 'keyName'
24
25
  attribute :created_at, :aliases => 'launchTime'
@@ -26,6 +27,7 @@ module Fog
26
27
  attribute :product_codes, :aliases => 'productCodes'
27
28
  attribute :private_dns_name, :aliases => 'privateDnsName'
28
29
  attribute :private_ip_address, :aliases => 'privateIpAddress'
30
+ attribute :public_ip_address, :aliases => 'ipAddress'
29
31
  attribute :ramdisk_id, :aliases => 'ramdiskId'
30
32
  attribute :reason
31
33
  attribute :root_device_name, :aliases => 'rootDeviceName'
@@ -177,11 +179,19 @@ module Fog
177
179
  end
178
180
 
179
181
  def ssh(commands)
180
- requires :identity, :ip_address, :username
182
+ requires :identity, :public_ip_address, :username
183
+
184
+ options = {}
185
+ options[:key_data] = [private_key] if private_key
186
+ Fog::SSH.new(public_ip_address, username, options).run(commands)
187
+ end
188
+
189
+ def scp(local_path, remote_path)
190
+ requires :public_ip_address, :username
181
191
 
182
192
  options = {}
183
193
  options[:key_data] = [private_key] if private_key
184
- Fog::SSH.new(ip_address, username, options).run(commands)
194
+ Fog::SCP.new(public_ip_address, username, options).upload(local_path, remote_path)
185
195
  end
186
196
 
187
197
  def start
@@ -5,8 +5,6 @@ module Fog
5
5
  class Compute
6
6
 
7
7
  class Snapshot < Fog::Model
8
- extend Fog::Deprecation
9
- deprecate(:status, :state)
10
8
 
11
9
  identity :id, :aliases => 'snapshotId'
12
10
 
@@ -5,8 +5,6 @@ module Fog
5
5
  class Compute
6
6
 
7
7
  class Volume < Fog::Model
8
- extend Fog::Deprecation
9
- deprecate(:status, :state)
10
8
 
11
9
  identity :id, :aliases => 'volumeId'
12
10
 
@@ -7,11 +7,6 @@ module Fog
7
7
  class BlockInstantiationError < StandardError; end
8
8
 
9
9
  class Server < Fog::Model
10
- extend Fog::Deprecation
11
- deprecate(:ssh_key, :public_key)
12
- deprecate(:ssh_key=, :public_key=)
13
- deprecate(:user, :username)
14
- deprecate(:user=, :username=)
15
10
 
16
11
  identity :id
17
12
 
@@ -50,6 +45,10 @@ module Fog
50
45
  connection.images.get(image_id)
51
46
  end
52
47
 
48
+ def private_ip_address
49
+ nil
50
+ end
51
+
53
52
  def private_key_path
54
53
  @private_key_path ||= Fog.credentials[:private_key_path]
55
54
  @private_key_path &&= File.expand_path(@private_key_path)
@@ -59,6 +58,10 @@ module Fog
59
58
  @private_key ||= private_key_path && File.read(private_key_path)
60
59
  end
61
60
 
61
+ def public_ip_address
62
+ ips.first
63
+ end
64
+
62
65
  def public_key_path
63
66
  @public_key_path ||= Fog.credentials[:public_key_path]
64
67
  @public_key_path &&= File.expand_path(@public_key_path)
@@ -81,13 +84,14 @@ module Fog
81
84
  def save
82
85
  raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
83
86
  requires :flavor_id, :image_id
84
- options = if !password && !public_key
85
- raise(ArgumentError, "password or public_key is required for this operation")
86
- elsif public_key
87
- {'ssh_public_key' => public_key}
88
- elsif @password
89
- {'password' => password}
87
+ options = {}
88
+
89
+ if identity.nil? # new record
90
+ raise(ArgumentError, "password or public_key is required for this operation") if !password && !public_key
91
+ options['ssh_public_key'] = public_key if @public_key
92
+ options['password'] = password if @password
90
93
  end
94
+
91
95
  options['username'] = username
92
96
  data = connection.create_block(flavor_id, image_id, options)
93
97
  merge_attributes(data.body)
@@ -115,6 +119,14 @@ module Fog
115
119
  Fog::SSH.new(ips.first['address'], username, options).run(commands)
116
120
  end
117
121
 
122
+ def scp(local_path, remote_path)
123
+ requires :ips, :username
124
+
125
+ options = {}
126
+ options[:key_data] = [private_key] if private_key
127
+ Fog::SCP.new(ips.first['address'], username, options).upload(local_path, remote_path)
128
+ end
129
+
118
130
  def username
119
131
  @username ||= 'deploy'
120
132
  end
@@ -71,6 +71,14 @@ module Fog
71
71
  connection.images.get(image_id)
72
72
  end
73
73
 
74
+ def private_ip_address
75
+ nil
76
+ end
77
+
78
+ def public_ip_address
79
+ cloud_ips.first
80
+ end
81
+
74
82
  def ready?
75
83
  status == 'active'
76
84
  end
@@ -0,0 +1,56 @@
1
+ module Fog
2
+ module Ecloud
3
+ class Compute
4
+ class BackupInternetService < Fog::Ecloud::Model
5
+
6
+ identity :href, :aliases => :Href
7
+
8
+ ignore_attributes :xmlns, :xmlns_i
9
+
10
+ attribute :name, :aliases => :Name
11
+ attribute :id, :aliases => :Id
12
+ attribute :protocol, :aliases => :Protocol
13
+ attribute :enabled, :aliases => :Enabled
14
+ attribute :description, :aliases => :Description
15
+ attribute :timeout, :aliases => :Timeout
16
+ attribute :redirect_url, :aliases => :RedirectURL
17
+ attribute :monitor, :aliases => :Monitor
18
+
19
+ def delete
20
+ requires :href
21
+
22
+ connection.delete_internet_service( href )
23
+ end
24
+
25
+ def monitor=(new_monitor = {})
26
+ if new_monitor.nil? || new_monitor.empty?
27
+ attributes[:monitor] = nil
28
+ end
29
+ end
30
+
31
+ def save
32
+ if new_record?
33
+ result = connection.add_backup_internet_service( collection.href, _compose_service_data )
34
+ merge_attributes(result.body)
35
+ else
36
+ connection.configure_backup_internet_service( href, _compose_service_data )
37
+ end
38
+ end
39
+
40
+ def nodes
41
+ @nodes ||= Fog::Ecloud::Compute::Nodes.new( :connection => connection, :href => href + "/nodeServices" )
42
+ end
43
+
44
+ private
45
+
46
+ def _compose_service_data
47
+ #For some reason inject didn't work
48
+ service_data = {}
49
+ self.class.attributes.select{ |attribute| !send(attribute).nil? }.each { |attribute| service_data[attribute] = send(attribute) }
50
+ service_data
51
+ end
52
+
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,33 @@
1
+ require 'fog/compute/models/ecloud/backup_internet_service'
2
+
3
+ module Fog
4
+ module Ecloud
5
+ class Compute
6
+ class BackupInternetServices < Fog::Ecloud::Collection
7
+
8
+ model Fog::Ecloud::Compute::BackupInternetService
9
+
10
+ attribute :href, :aliases => :Href
11
+
12
+ def all
13
+ check_href! :message => "the Internet Services for the Vdc you want to enumerate"
14
+ if data = connection.get_internet_services(href).body[:InternetService].find_all {|i| i[:IsBackupService] == "true" }
15
+ load(data)
16
+ end
17
+ end
18
+
19
+ # Optimize later, no need to get_internet_services again?
20
+ def get(uri)
21
+ internet_services = connection.get_internet_services(href).body[:InternetService]
22
+ internet_services = [ internet_services ] if internet_services.is_a?(Hash)
23
+ if data = internet_services.detect { |service| service[:Href] == uri }
24
+ new(data)
25
+ end
26
+ rescue Fog::Errors::NotFound
27
+ nil
28
+ end
29
+
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,28 @@
1
+ module Fog
2
+ module Ecloud
3
+ class Compute
4
+ class Catalog < Fog::Ecloud::Collection
5
+
6
+ model Fog::Ecloud::Compute::CatalogItem
7
+
8
+ attribute :href, :aliases => :Href
9
+
10
+ def all
11
+ check_href!
12
+ if data = connection.get_catalog(href).body[:CatalogItems][:CatalogItem]
13
+ load(data)
14
+ end
15
+ end
16
+
17
+ def get(uri)
18
+ if data = connection.get_catalog_item(uri)
19
+ new(data.body)
20
+ end
21
+ rescue Fog::Errors::NotFound
22
+ nil
23
+ end
24
+
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,29 @@
1
+ module Fog
2
+ module Ecloud
3
+ class Compute
4
+ class CatalogItem < Fog::Ecloud::Model
5
+
6
+ identity :href, :aliases => :Href
7
+
8
+ ignore_attributes :xmlns, :xmlns_i, :xmlns_xsi, :xmlns_xsd
9
+
10
+ attribute :type
11
+ attribute :name
12
+ attribute :entity, :aliases => :Entity
13
+ attribute :link, :aliases => :Link
14
+ attribute :property, :aliases => :Property
15
+
16
+ def customization_options
17
+ load_unless_loaded!
18
+ if data = connection.get_customization_options( link[:href] ).body
19
+ data.delete_if { |key, value| [:xmlns_i, :xmlns].include?(key) }
20
+ data
21
+ else
22
+ nil
23
+ end
24
+ end
25
+
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,24 @@
1
+ module Fog
2
+ module Ecloud
3
+ class Compute
4
+ class FirewallAcl < Fog::Ecloud::Model
5
+
6
+ identity :href, :aliases => :Href
7
+
8
+ ignore_attributes :xmlns, :xmlns_i
9
+
10
+ attribute :name, :aliases => :Name
11
+ attribute :id, :aliases => :Id
12
+ attribute :protocol, :aliases => :Protocol
13
+ attribute :source, :aliases => :Source
14
+ attribute :destination, :aliases => :Destination
15
+ attribute :permission, :aliases => :Permission
16
+ attribute :port_start, :aliases => :PortStart
17
+ attribute :port_end, :aliases => :PortEnd
18
+ attribute :port_type, :aliases => :PortType
19
+ attribute :type, :aliases => :Type
20
+
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,31 @@
1
+ require 'fog/compute/models/ecloud/firewall_acl'
2
+
3
+ module Fog
4
+ module Ecloud
5
+ class Compute
6
+ class FirewallAcls < Fog::Ecloud::Collection
7
+
8
+ model Fog::Ecloud::Compute::FirewallAcl
9
+
10
+ attribute :href, :aliases => :Href
11
+
12
+ def all
13
+ check_href! :message => "the Firewall ACL href for the network you want to enumerate"
14
+ if data = connection.get_firewall_acls(href).body[:FirewallAcl]
15
+ data = [ data ] if data.is_a?(Hash)
16
+ load(data)
17
+ end
18
+ end
19
+
20
+ def get(uri)
21
+ if data = connection.get_firewall_acl(uri).body
22
+ new(data)
23
+ end
24
+ rescue Fog::Errors::NotFound
25
+ nil
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,117 @@
1
+ module Fog
2
+ module Ecloud
3
+ class Compute
4
+ class InternetService < Fog::Ecloud::Model
5
+
6
+ identity :href, :aliases => :Href
7
+
8
+ ignore_attributes :xmlns, :xmlns_i
9
+
10
+ attribute :name, :aliases => :Name
11
+ attribute :id, :aliases => :Id
12
+ attribute :protocol, :aliases => :Protocol
13
+ attribute :port, :aliases => :Port
14
+ attribute :enabled, :aliases => :Enabled
15
+ attribute :description, :aliases => :Description
16
+ attribute :public_ip, :aliases => :PublicIpAddress
17
+ attribute :timeout, :aliases => :Timeout
18
+ attribute :redirect_url, :aliases => :RedirectURL
19
+ attribute :monitor, :aliases => :Monitor
20
+ attribute :backup_service_data, :aliases => :BackupService
21
+
22
+ def delete
23
+ requires :href
24
+
25
+ connection.delete_internet_service( href )
26
+ end
27
+
28
+ def save
29
+ if new_record?
30
+ result = connection.add_internet_service( collection.href, _compose_service_data )
31
+ merge_attributes(result.body)
32
+ else
33
+ connection.configure_internet_service( href, _compose_service_data, _compose_ip_data )
34
+ end
35
+ end
36
+
37
+ # disables monitoring for this service
38
+ def disable_monitor
39
+ if self.monitor and self.monitor[:type] == "Disabled"
40
+ raise RuntimeError.new("Monitoring already disabled")
41
+ else
42
+ self.monitor = {:type => "Disabled", :is_enabled => "true"}
43
+ self.save
44
+ end
45
+ end
46
+
47
+ # enable default ping monitoring, use monitor= for more exotic forms (ECV & HTTP)
48
+ def enable_ping_monitor
49
+ self.monitor = nil
50
+ self.save
51
+ end
52
+
53
+ def monitor=(new_monitor = {})
54
+ if new_monitor.nil? || new_monitor.empty?
55
+ attributes[:monitor] = nil
56
+ elsif new_monitor.is_a?(Hash)
57
+ attributes[:monitor] = {}
58
+ attributes[:monitor][:type] = new_monitor[:MonitorType] || new_monitor[:type]
59
+ attributes[:monitor][:url_send_string] = new_monitor[:UrlSendString] || new_monitor[:url_send_string]
60
+ attributes[:monitor][:http_headers] = new_monitor[:HttpHeader] || new_monitor[:http_headers]
61
+ if attributes[:monitor][:http_headers]
62
+ if attributes[:monitor][:http_headers].is_a?(String)
63
+ attributes[:monitor][:http_headers] = attributes[:monitor][:http_headers].split("\n")
64
+ else
65
+ attributes[:monitor][:http_headers] = attributes[:monitor][:http_headers]
66
+ end
67
+ end
68
+ attributes[:monitor][:receive_string] = new_monitor[:ReceiveString] || new_monitor[:receive_string]
69
+ attributes[:monitor][:interval] = new_monitor[:Interval] || new_monitor[:interval]
70
+ attributes[:monitor][:response_timeout] = new_monitor[:ResponseTimeOut] || new_monitor[:response_timeout]
71
+ attributes[:monitor][:downtime] = new_monitor[:DownTime] || new_monitor[:downtime]
72
+ attributes[:monitor][:retries] = new_monitor[:Retries] || new_monitor[:retries]
73
+ attributes[:monitor][:is_enabled] = new_monitor[:IsEnabled] || new_monitor[:is_enabled]
74
+ else
75
+ raise RuntimeError.new("monitor needs to either be nil or a Hash")
76
+ end
77
+ end
78
+
79
+ def nodes
80
+ @nodes ||= Fog::Ecloud::Compute::Nodes.new( :connection => connection, :href => href + "/nodeServices" )
81
+ end
82
+
83
+ def backup_service_uri
84
+ if backup_service_data
85
+ backup_service_data[:Href]
86
+ end
87
+ end
88
+
89
+ def backup_service_uri=(new_value)
90
+ self.backup_service_data = {
91
+ :Href => new_value
92
+ }
93
+ end
94
+
95
+ private
96
+
97
+ def _compose_service_data
98
+ #For some reason inject didn't work
99
+ service_data = {}
100
+ self.class.attributes.select{ |attribute| attribute != :backup_service_data }.each { |attribute| service_data[attribute] = send(attribute) }
101
+ service_data[:backup_service_uri] = backup_service_uri
102
+ service_data.reject! {|k, v| v.nil? }
103
+ service_data
104
+ end
105
+
106
+ def _compose_ip_data
107
+ if public_ip.nil?
108
+ {}
109
+ else
110
+ { :id => public_ip[:Id], :href => public_ip[:Href], :name => public_ip[:Name] }
111
+ end
112
+ end
113
+
114
+ end
115
+ end
116
+ end
117
+ end