fog-rackspace 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (711) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/CODE_OF_CONDUCT.md +49 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +41 -0
  9. data/Rakefile +6 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/fog-rackspace.gemspec +32 -0
  13. data/lib/fog/rackspace.rb +25 -0
  14. data/lib/fog/rackspace/auto_scale.rb +134 -0
  15. data/lib/fog/rackspace/block_storage.rb +175 -0
  16. data/lib/fog/rackspace/cdn.rb +198 -0
  17. data/lib/fog/rackspace/cdn_v2.rb +123 -0
  18. data/lib/fog/rackspace/compute.rb +256 -0
  19. data/lib/fog/rackspace/compute_v2.rb +251 -0
  20. data/lib/fog/rackspace/core.rb +150 -0
  21. data/lib/fog/rackspace/databases.rb +164 -0
  22. data/lib/fog/rackspace/dns.rb +172 -0
  23. data/lib/fog/rackspace/docs/auto_scale.md +503 -0
  24. data/lib/fog/rackspace/docs/block_storage.md +417 -0
  25. data/lib/fog/rackspace/docs/cdn_v2.md +351 -0
  26. data/lib/fog/rackspace/docs/compute_v2.md +723 -0
  27. data/lib/fog/rackspace/docs/getting_started.md +88 -0
  28. data/lib/fog/rackspace/docs/networking_v2.md +422 -0
  29. data/lib/fog/rackspace/docs/orchestration.md +356 -0
  30. data/lib/fog/rackspace/docs/queues.md +312 -0
  31. data/lib/fog/rackspace/docs/storage.md +557 -0
  32. data/lib/fog/rackspace/errors.rb +33 -0
  33. data/lib/fog/rackspace/examples/README.md +47 -0
  34. data/lib/fog/rackspace/examples/auto_scale/add_policy.rb +66 -0
  35. data/lib/fog/rackspace/examples/auto_scale/add_webhook.rb +74 -0
  36. data/lib/fog/rackspace/examples/auto_scale/create_scaling_group.rb +111 -0
  37. data/lib/fog/rackspace/examples/auto_scale/delete_policy.rb +71 -0
  38. data/lib/fog/rackspace/examples/auto_scale/delete_scaling_group.rb +59 -0
  39. data/lib/fog/rackspace/examples/auto_scale/delete_webhook.rb +89 -0
  40. data/lib/fog/rackspace/examples/block_storage/create_snapshot.rb +116 -0
  41. data/lib/fog/rackspace/examples/block_storage/create_volume.rb +58 -0
  42. data/lib/fog/rackspace/examples/block_storage/delete_volume.rb +53 -0
  43. data/lib/fog/rackspace/examples/compute_v2/bootstrap_server.rb +96 -0
  44. data/lib/fog/rackspace/examples/compute_v2/create_image.rb +59 -0
  45. data/lib/fog/rackspace/examples/compute_v2/create_network.rb +81 -0
  46. data/lib/fog/rackspace/examples/compute_v2/create_server.rb +87 -0
  47. data/lib/fog/rackspace/examples/compute_v2/delete_image.rb +60 -0
  48. data/lib/fog/rackspace/examples/compute_v2/delete_network.rb +78 -0
  49. data/lib/fog/rackspace/examples/compute_v2/delete_server.rb +55 -0
  50. data/lib/fog/rackspace/examples/compute_v2/detach_volume.rb +93 -0
  51. data/lib/fog/rackspace/examples/compute_v2/resize_server.rb +106 -0
  52. data/lib/fog/rackspace/examples/compute_v2/server_attachments.rb +68 -0
  53. data/lib/fog/rackspace/examples/compute_v2/server_metadata.rb +83 -0
  54. data/lib/fog/rackspace/examples/queues/claim_messages.rb +60 -0
  55. data/lib/fog/rackspace/examples/queues/create_queue.rb +45 -0
  56. data/lib/fog/rackspace/examples/queues/delete_message.rb +71 -0
  57. data/lib/fog/rackspace/examples/queues/delete_queue.rb +53 -0
  58. data/lib/fog/rackspace/examples/queues/list_messages.rb +64 -0
  59. data/lib/fog/rackspace/examples/queues/post_message.rb +59 -0
  60. data/lib/fog/rackspace/examples/storage/create_cdn_directory.rb +43 -0
  61. data/lib/fog/rackspace/examples/storage/create_private_directory.rb +43 -0
  62. data/lib/fog/rackspace/examples/storage/delete_directory.rb +62 -0
  63. data/lib/fog/rackspace/examples/storage/delete_file.rb +70 -0
  64. data/lib/fog/rackspace/examples/storage/download_file.rb +75 -0
  65. data/lib/fog/rackspace/examples/storage/lorem.txt +1 -0
  66. data/lib/fog/rackspace/examples/storage/storage_metadata.rb +76 -0
  67. data/lib/fog/rackspace/examples/storage/upload_file.rb +44 -0
  68. data/lib/fog/rackspace/examples/storage/upload_large_files.rb +101 -0
  69. data/lib/fog/rackspace/identity.rb +83 -0
  70. data/lib/fog/rackspace/load_balancers.rb +206 -0
  71. data/lib/fog/rackspace/mock_data.rb +252 -0
  72. data/lib/fog/rackspace/models/auto_scale/group.rb +214 -0
  73. data/lib/fog/rackspace/models/auto_scale/group_builder.rb +86 -0
  74. data/lib/fog/rackspace/models/auto_scale/group_config.rb +76 -0
  75. data/lib/fog/rackspace/models/auto_scale/groups.rb +45 -0
  76. data/lib/fog/rackspace/models/auto_scale/launch_config.rb +61 -0
  77. data/lib/fog/rackspace/models/auto_scale/policies.rb +65 -0
  78. data/lib/fog/rackspace/models/auto_scale/policy.rb +220 -0
  79. data/lib/fog/rackspace/models/auto_scale/webhook.rb +116 -0
  80. data/lib/fog/rackspace/models/auto_scale/webhooks.rb +62 -0
  81. data/lib/fog/rackspace/models/block_storage/snapshot.rb +93 -0
  82. data/lib/fog/rackspace/models/block_storage/snapshots.rb +39 -0
  83. data/lib/fog/rackspace/models/block_storage/volume.rb +135 -0
  84. data/lib/fog/rackspace/models/block_storage/volume_type.rb +19 -0
  85. data/lib/fog/rackspace/models/block_storage/volume_types.rb +39 -0
  86. data/lib/fog/rackspace/models/block_storage/volumes.rb +39 -0
  87. data/lib/fog/rackspace/models/cdn_v2/flavor.rb +14 -0
  88. data/lib/fog/rackspace/models/cdn_v2/flavors.rb +24 -0
  89. data/lib/fog/rackspace/models/cdn_v2/service.rb +66 -0
  90. data/lib/fog/rackspace/models/cdn_v2/services.rb +24 -0
  91. data/lib/fog/rackspace/models/compute/flavor.rb +42 -0
  92. data/lib/fog/rackspace/models/compute/flavors.rb +24 -0
  93. data/lib/fog/rackspace/models/compute/image.rb +44 -0
  94. data/lib/fog/rackspace/models/compute/images.rb +31 -0
  95. data/lib/fog/rackspace/models/compute/server.rb +102 -0
  96. data/lib/fog/rackspace/models/compute/servers.rb +32 -0
  97. data/lib/fog/rackspace/models/compute_v2/attachment.rb +61 -0
  98. data/lib/fog/rackspace/models/compute_v2/attachments.rb +38 -0
  99. data/lib/fog/rackspace/models/compute_v2/flavor.rb +33 -0
  100. data/lib/fog/rackspace/models/compute_v2/flavors.rb +39 -0
  101. data/lib/fog/rackspace/models/compute_v2/image.rb +117 -0
  102. data/lib/fog/rackspace/models/compute_v2/images.rb +73 -0
  103. data/lib/fog/rackspace/models/compute_v2/key_pair.rb +54 -0
  104. data/lib/fog/rackspace/models/compute_v2/key_pairs.rb +40 -0
  105. data/lib/fog/rackspace/models/compute_v2/meta_parent.rb +40 -0
  106. data/lib/fog/rackspace/models/compute_v2/metadata.rb +108 -0
  107. data/lib/fog/rackspace/models/compute_v2/metadatum.rb +39 -0
  108. data/lib/fog/rackspace/models/compute_v2/network.rb +27 -0
  109. data/lib/fog/rackspace/models/compute_v2/networks.rb +23 -0
  110. data/lib/fog/rackspace/models/compute_v2/server.rb +655 -0
  111. data/lib/fog/rackspace/models/compute_v2/servers.rb +64 -0
  112. data/lib/fog/rackspace/models/compute_v2/virtual_interface.rb +85 -0
  113. data/lib/fog/rackspace/models/compute_v2/virtual_interfaces.rb +46 -0
  114. data/lib/fog/rackspace/models/databases/database.rb +43 -0
  115. data/lib/fog/rackspace/models/databases/databases.rb +30 -0
  116. data/lib/fog/rackspace/models/databases/flavor.rb +15 -0
  117. data/lib/fog/rackspace/models/databases/flavors.rb +24 -0
  118. data/lib/fog/rackspace/models/databases/instance.rb +104 -0
  119. data/lib/fog/rackspace/models/databases/instances.rb +24 -0
  120. data/lib/fog/rackspace/models/databases/user.rb +33 -0
  121. data/lib/fog/rackspace/models/databases/users.rb +30 -0
  122. data/lib/fog/rackspace/models/dns/callback.rb +28 -0
  123. data/lib/fog/rackspace/models/dns/record.rb +98 -0
  124. data/lib/fog/rackspace/models/dns/records.rb +58 -0
  125. data/lib/fog/rackspace/models/dns/zone.rb +66 -0
  126. data/lib/fog/rackspace/models/dns/zones.rb +74 -0
  127. data/lib/fog/rackspace/models/identity/credential.rb +13 -0
  128. data/lib/fog/rackspace/models/identity/credentials.rb +32 -0
  129. data/lib/fog/rackspace/models/identity/role.rb +14 -0
  130. data/lib/fog/rackspace/models/identity/roles.rb +31 -0
  131. data/lib/fog/rackspace/models/identity/service_catalog.rb +84 -0
  132. data/lib/fog/rackspace/models/identity/tenant.rb +15 -0
  133. data/lib/fog/rackspace/models/identity/tenants.rb +27 -0
  134. data/lib/fog/rackspace/models/identity/user.rb +53 -0
  135. data/lib/fog/rackspace/models/identity/users.rb +35 -0
  136. data/lib/fog/rackspace/models/load_balancers/access_rule.rb +38 -0
  137. data/lib/fog/rackspace/models/load_balancers/access_rules.rb +29 -0
  138. data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +286 -0
  139. data/lib/fog/rackspace/models/load_balancers/load_balancers.rb +25 -0
  140. data/lib/fog/rackspace/models/load_balancers/node.rb +65 -0
  141. data/lib/fog/rackspace/models/load_balancers/nodes.rb +29 -0
  142. data/lib/fog/rackspace/models/load_balancers/virtual_ip.rb +34 -0
  143. data/lib/fog/rackspace/models/load_balancers/virtual_ips.rb +32 -0
  144. data/lib/fog/rackspace/models/monitoring/agent_token.rb +38 -0
  145. data/lib/fog/rackspace/models/monitoring/agent_tokens.rb +29 -0
  146. data/lib/fog/rackspace/models/monitoring/alarm.rb +58 -0
  147. data/lib/fog/rackspace/models/monitoring/alarm_example.rb +24 -0
  148. data/lib/fog/rackspace/models/monitoring/alarm_examples.rb +29 -0
  149. data/lib/fog/rackspace/models/monitoring/alarms.rb +41 -0
  150. data/lib/fog/rackspace/models/monitoring/base.rb +29 -0
  151. data/lib/fog/rackspace/models/monitoring/check.rb +72 -0
  152. data/lib/fog/rackspace/models/monitoring/check_type.rb +15 -0
  153. data/lib/fog/rackspace/models/monitoring/check_types.rb +21 -0
  154. data/lib/fog/rackspace/models/monitoring/checks.rb +41 -0
  155. data/lib/fog/rackspace/models/monitoring/data_point.rb +18 -0
  156. data/lib/fog/rackspace/models/monitoring/data_points.rb +47 -0
  157. data/lib/fog/rackspace/models/monitoring/entities.rb +47 -0
  158. data/lib/fog/rackspace/models/monitoring/entity.rb +62 -0
  159. data/lib/fog/rackspace/models/monitoring/metric.rb +22 -0
  160. data/lib/fog/rackspace/models/monitoring/metrics.rb +25 -0
  161. data/lib/fog/rackspace/models/monitoring/notification.rb +40 -0
  162. data/lib/fog/rackspace/models/monitoring/notifications.rb +28 -0
  163. data/lib/fog/rackspace/models/networking/network.rb +27 -0
  164. data/lib/fog/rackspace/models/networking/networks.rb +23 -0
  165. data/lib/fog/rackspace/models/networking/virtual_interface.rb +85 -0
  166. data/lib/fog/rackspace/models/networking/virtual_interfaces.rb +45 -0
  167. data/lib/fog/rackspace/models/networking_v2/network.rb +36 -0
  168. data/lib/fog/rackspace/models/networking_v2/networks.rb +23 -0
  169. data/lib/fog/rackspace/models/networking_v2/port.rb +39 -0
  170. data/lib/fog/rackspace/models/networking_v2/ports.rb +23 -0
  171. data/lib/fog/rackspace/models/networking_v2/security_group.rb +32 -0
  172. data/lib/fog/rackspace/models/networking_v2/security_group_rule.rb +38 -0
  173. data/lib/fog/rackspace/models/networking_v2/security_group_rules.rb +23 -0
  174. data/lib/fog/rackspace/models/networking_v2/security_groups.rb +23 -0
  175. data/lib/fog/rackspace/models/networking_v2/subnet.rb +38 -0
  176. data/lib/fog/rackspace/models/networking_v2/subnets.rb +23 -0
  177. data/lib/fog/rackspace/models/orchestration/event.rb +18 -0
  178. data/lib/fog/rackspace/models/orchestration/events.rb +28 -0
  179. data/lib/fog/rackspace/models/orchestration/resource.rb +30 -0
  180. data/lib/fog/rackspace/models/orchestration/resource_schemas.rb +16 -0
  181. data/lib/fog/rackspace/models/orchestration/resources.rb +35 -0
  182. data/lib/fog/rackspace/models/orchestration/stack.rb +48 -0
  183. data/lib/fog/rackspace/models/orchestration/stacks.rb +40 -0
  184. data/lib/fog/rackspace/models/orchestration/template.rb +13 -0
  185. data/lib/fog/rackspace/models/orchestration/templates.rb +31 -0
  186. data/lib/fog/rackspace/models/queues/claim.rb +139 -0
  187. data/lib/fog/rackspace/models/queues/claims.rb +64 -0
  188. data/lib/fog/rackspace/models/queues/message.rb +88 -0
  189. data/lib/fog/rackspace/models/queues/messages.rb +90 -0
  190. data/lib/fog/rackspace/models/queues/queue.rb +135 -0
  191. data/lib/fog/rackspace/models/queues/queues.rb +46 -0
  192. data/lib/fog/rackspace/models/storage/account.rb +50 -0
  193. data/lib/fog/rackspace/models/storage/directories.rb +62 -0
  194. data/lib/fog/rackspace/models/storage/directory.rb +194 -0
  195. data/lib/fog/rackspace/models/storage/file.rb +286 -0
  196. data/lib/fog/rackspace/models/storage/files.rb +201 -0
  197. data/lib/fog/rackspace/models/storage/metadata.rb +165 -0
  198. data/lib/fog/rackspace/monitoring.rb +184 -0
  199. data/lib/fog/rackspace/networking.rb +192 -0
  200. data/lib/fog/rackspace/networking_v2.rb +222 -0
  201. data/lib/fog/rackspace/orchestration.rb +227 -0
  202. data/lib/fog/rackspace/queues.rb +406 -0
  203. data/lib/fog/rackspace/requests/auto_scale/create_group.rb +58 -0
  204. data/lib/fog/rackspace/requests/auto_scale/create_policy.rb +42 -0
  205. data/lib/fog/rackspace/requests/auto_scale/create_webhook.rb +54 -0
  206. data/lib/fog/rackspace/requests/auto_scale/delete_group.rb +22 -0
  207. data/lib/fog/rackspace/requests/auto_scale/delete_policy.rb +29 -0
  208. data/lib/fog/rackspace/requests/auto_scale/delete_webhook.rb +33 -0
  209. data/lib/fog/rackspace/requests/auto_scale/execute_anonymous_webhook.rb +21 -0
  210. data/lib/fog/rackspace/requests/auto_scale/execute_policy.rb +21 -0
  211. data/lib/fog/rackspace/requests/auto_scale/get_group.rb +26 -0
  212. data/lib/fog/rackspace/requests/auto_scale/get_group_config.rb +27 -0
  213. data/lib/fog/rackspace/requests/auto_scale/get_group_state.rb +58 -0
  214. data/lib/fog/rackspace/requests/auto_scale/get_launch_config.rb +27 -0
  215. data/lib/fog/rackspace/requests/auto_scale/get_policy.rb +31 -0
  216. data/lib/fog/rackspace/requests/auto_scale/get_webhook.rb +36 -0
  217. data/lib/fog/rackspace/requests/auto_scale/list_groups.rb +34 -0
  218. data/lib/fog/rackspace/requests/auto_scale/list_policies.rb +22 -0
  219. data/lib/fog/rackspace/requests/auto_scale/list_webhooks.rb +31 -0
  220. data/lib/fog/rackspace/requests/auto_scale/pause_group_state.rb +22 -0
  221. data/lib/fog/rackspace/requests/auto_scale/resume_group_state.rb +21 -0
  222. data/lib/fog/rackspace/requests/auto_scale/update_group_config.rb +37 -0
  223. data/lib/fog/rackspace/requests/auto_scale/update_launch_config.rb +34 -0
  224. data/lib/fog/rackspace/requests/auto_scale/update_policy.rb +31 -0
  225. data/lib/fog/rackspace/requests/auto_scale/update_webhook.rb +41 -0
  226. data/lib/fog/rackspace/requests/block_storage/create_snapshot.rb +77 -0
  227. data/lib/fog/rackspace/requests/block_storage/create_volume.rb +96 -0
  228. data/lib/fog/rackspace/requests/block_storage/delete_snapshot.rb +31 -0
  229. data/lib/fog/rackspace/requests/block_storage/delete_volume.rb +42 -0
  230. data/lib/fog/rackspace/requests/block_storage/get_snapshot.rb +45 -0
  231. data/lib/fog/rackspace/requests/block_storage/get_volume.rb +55 -0
  232. data/lib/fog/rackspace/requests/block_storage/get_volume_type.rb +41 -0
  233. data/lib/fog/rackspace/requests/block_storage/list_snapshots.rb +39 -0
  234. data/lib/fog/rackspace/requests/block_storage/list_volume_types.rb +34 -0
  235. data/lib/fog/rackspace/requests/block_storage/list_volumes.rb +42 -0
  236. data/lib/fog/rackspace/requests/cdn/delete_object.rb +39 -0
  237. data/lib/fog/rackspace/requests/cdn/get_containers.rb +66 -0
  238. data/lib/fog/rackspace/requests/cdn/head_container.rb +58 -0
  239. data/lib/fog/rackspace/requests/cdn/post_container.rb +52 -0
  240. data/lib/fog/rackspace/requests/cdn/put_container.rb +52 -0
  241. data/lib/fog/rackspace/requests/cdn_v2/create_service.rb +10 -0
  242. data/lib/fog/rackspace/requests/cdn_v2/delete_assets.rb +12 -0
  243. data/lib/fog/rackspace/requests/cdn_v2/delete_service.rb +9 -0
  244. data/lib/fog/rackspace/requests/cdn_v2/get_flavor.rb +9 -0
  245. data/lib/fog/rackspace/requests/cdn_v2/get_home_document.rb +9 -0
  246. data/lib/fog/rackspace/requests/cdn_v2/get_ping.rb +10 -0
  247. data/lib/fog/rackspace/requests/cdn_v2/get_service.rb +9 -0
  248. data/lib/fog/rackspace/requests/cdn_v2/list_flavors.rb +9 -0
  249. data/lib/fog/rackspace/requests/cdn_v2/list_services.rb +9 -0
  250. data/lib/fog/rackspace/requests/cdn_v2/update_service.rb +13 -0
  251. data/lib/fog/rackspace/requests/compute/confirm_resized_server.rb +30 -0
  252. data/lib/fog/rackspace/requests/compute/create_image.rb +56 -0
  253. data/lib/fog/rackspace/requests/compute/create_server.rb +90 -0
  254. data/lib/fog/rackspace/requests/compute/delete_image.rb +40 -0
  255. data/lib/fog/rackspace/requests/compute/delete_server.rb +39 -0
  256. data/lib/fog/rackspace/requests/compute/get_flavor_details.rb +48 -0
  257. data/lib/fog/rackspace/requests/compute/get_image_details.rb +25 -0
  258. data/lib/fog/rackspace/requests/compute/get_server_details.rb +48 -0
  259. data/lib/fog/rackspace/requests/compute/list_addresses.rb +39 -0
  260. data/lib/fog/rackspace/requests/compute/list_flavors.rb +41 -0
  261. data/lib/fog/rackspace/requests/compute/list_flavors_detail.rb +43 -0
  262. data/lib/fog/rackspace/requests/compute/list_images.rb +36 -0
  263. data/lib/fog/rackspace/requests/compute/list_images_detail.rb +45 -0
  264. data/lib/fog/rackspace/requests/compute/list_private_addresses.rb +37 -0
  265. data/lib/fog/rackspace/requests/compute/list_public_addresses.rb +37 -0
  266. data/lib/fog/rackspace/requests/compute/list_servers.rb +37 -0
  267. data/lib/fog/rackspace/requests/compute/list_servers_detail.rb +52 -0
  268. data/lib/fog/rackspace/requests/compute/reboot_server.rb +26 -0
  269. data/lib/fog/rackspace/requests/compute/resize_server.rb +35 -0
  270. data/lib/fog/rackspace/requests/compute/revert_resized_server.rb +31 -0
  271. data/lib/fog/rackspace/requests/compute/server_action.rb +23 -0
  272. data/lib/fog/rackspace/requests/compute/update_server.rb +41 -0
  273. data/lib/fog/rackspace/requests/compute_v2/attach_volume.rb +78 -0
  274. data/lib/fog/rackspace/requests/compute_v2/change_server_password.rb +38 -0
  275. data/lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb +41 -0
  276. data/lib/fog/rackspace/requests/compute_v2/create_image.rb +97 -0
  277. data/lib/fog/rackspace/requests/compute_v2/create_keypair.rb +62 -0
  278. data/lib/fog/rackspace/requests/compute_v2/create_network.rb +36 -0
  279. data/lib/fog/rackspace/requests/compute_v2/create_server.rb +243 -0
  280. data/lib/fog/rackspace/requests/compute_v2/create_virtual_interface.rb +30 -0
  281. data/lib/fog/rackspace/requests/compute_v2/delete_attachment.rb +39 -0
  282. data/lib/fog/rackspace/requests/compute_v2/delete_image.rb +32 -0
  283. data/lib/fog/rackspace/requests/compute_v2/delete_keypair.rb +34 -0
  284. data/lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb +36 -0
  285. data/lib/fog/rackspace/requests/compute_v2/delete_network.rb +21 -0
  286. data/lib/fog/rackspace/requests/compute_v2/delete_server.rb +35 -0
  287. data/lib/fog/rackspace/requests/compute_v2/delete_virtual_interface.rb +23 -0
  288. data/lib/fog/rackspace/requests/compute_v2/get_attachment.rb +38 -0
  289. data/lib/fog/rackspace/requests/compute_v2/get_flavor.rb +43 -0
  290. data/lib/fog/rackspace/requests/compute_v2/get_image.rb +47 -0
  291. data/lib/fog/rackspace/requests/compute_v2/get_keypair.rb +39 -0
  292. data/lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb +38 -0
  293. data/lib/fog/rackspace/requests/compute_v2/get_network.rb +21 -0
  294. data/lib/fog/rackspace/requests/compute_v2/get_server.rb +63 -0
  295. data/lib/fog/rackspace/requests/compute_v2/get_vnc_console.rb +45 -0
  296. data/lib/fog/rackspace/requests/compute_v2/list_addresses.rb +39 -0
  297. data/lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb +48 -0
  298. data/lib/fog/rackspace/requests/compute_v2/list_attachments.rb +37 -0
  299. data/lib/fog/rackspace/requests/compute_v2/list_flavors.rb +35 -0
  300. data/lib/fog/rackspace/requests/compute_v2/list_flavors_detail.rb +38 -0
  301. data/lib/fog/rackspace/requests/compute_v2/list_images.rb +45 -0
  302. data/lib/fog/rackspace/requests/compute_v2/list_images_detail.rb +52 -0
  303. data/lib/fog/rackspace/requests/compute_v2/list_keypairs.rb +35 -0
  304. data/lib/fog/rackspace/requests/compute_v2/list_metadata.rb +37 -0
  305. data/lib/fog/rackspace/requests/compute_v2/list_networks.rb +18 -0
  306. data/lib/fog/rackspace/requests/compute_v2/list_servers.rb +56 -0
  307. data/lib/fog/rackspace/requests/compute_v2/list_virtual_interfaces.rb +22 -0
  308. data/lib/fog/rackspace/requests/compute_v2/reboot_server.rb +44 -0
  309. data/lib/fog/rackspace/requests/compute_v2/rebuild_server.rb +71 -0
  310. data/lib/fog/rackspace/requests/compute_v2/rescue_server.rb +43 -0
  311. data/lib/fog/rackspace/requests/compute_v2/resize_server.rb +44 -0
  312. data/lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb +42 -0
  313. data/lib/fog/rackspace/requests/compute_v2/set_metadata.rb +39 -0
  314. data/lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb +40 -0
  315. data/lib/fog/rackspace/requests/compute_v2/unrescue_server.rb +40 -0
  316. data/lib/fog/rackspace/requests/compute_v2/update_metadata.rb +39 -0
  317. data/lib/fog/rackspace/requests/compute_v2/update_server.rb +44 -0
  318. data/lib/fog/rackspace/requests/databases/check_root_user.rb +15 -0
  319. data/lib/fog/rackspace/requests/databases/create_database.rb +24 -0
  320. data/lib/fog/rackspace/requests/databases/create_instance.rb +28 -0
  321. data/lib/fog/rackspace/requests/databases/create_user.rb +25 -0
  322. data/lib/fog/rackspace/requests/databases/delete_database.rb +15 -0
  323. data/lib/fog/rackspace/requests/databases/delete_instance.rb +15 -0
  324. data/lib/fog/rackspace/requests/databases/delete_user.rb +15 -0
  325. data/lib/fog/rackspace/requests/databases/enable_root_user.rb +15 -0
  326. data/lib/fog/rackspace/requests/databases/get_flavor.rb +15 -0
  327. data/lib/fog/rackspace/requests/databases/get_instance.rb +15 -0
  328. data/lib/fog/rackspace/requests/databases/grant_user_access.rb +32 -0
  329. data/lib/fog/rackspace/requests/databases/list_databases.rb +15 -0
  330. data/lib/fog/rackspace/requests/databases/list_flavors.rb +15 -0
  331. data/lib/fog/rackspace/requests/databases/list_instances.rb +15 -0
  332. data/lib/fog/rackspace/requests/databases/list_users.rb +15 -0
  333. data/lib/fog/rackspace/requests/databases/resize_instance.rb +22 -0
  334. data/lib/fog/rackspace/requests/databases/resize_instance_volume.rb +24 -0
  335. data/lib/fog/rackspace/requests/databases/restart_instance.rb +20 -0
  336. data/lib/fog/rackspace/requests/databases/revoke_user_access.rb +26 -0
  337. data/lib/fog/rackspace/requests/dns/add_records.rb +37 -0
  338. data/lib/fog/rackspace/requests/dns/callback.rb +18 -0
  339. data/lib/fog/rackspace/requests/dns/create_domains.rb +48 -0
  340. data/lib/fog/rackspace/requests/dns/list_domain_details.rb +31 -0
  341. data/lib/fog/rackspace/requests/dns/list_domains.rb +20 -0
  342. data/lib/fog/rackspace/requests/dns/list_record_details.rb +20 -0
  343. data/lib/fog/rackspace/requests/dns/list_records.rb +22 -0
  344. data/lib/fog/rackspace/requests/dns/list_subdomains.rb +22 -0
  345. data/lib/fog/rackspace/requests/dns/modify_domain.rb +35 -0
  346. data/lib/fog/rackspace/requests/dns/modify_record.rb +36 -0
  347. data/lib/fog/rackspace/requests/dns/remove_domain.rb +28 -0
  348. data/lib/fog/rackspace/requests/dns/remove_domains.rb +26 -0
  349. data/lib/fog/rackspace/requests/dns/remove_record.rb +20 -0
  350. data/lib/fog/rackspace/requests/dns/remove_records.rb +19 -0
  351. data/lib/fog/rackspace/requests/identity/create_token.rb +222 -0
  352. data/lib/fog/rackspace/requests/identity/create_user.rb +25 -0
  353. data/lib/fog/rackspace/requests/identity/delete_user.rb +15 -0
  354. data/lib/fog/rackspace/requests/identity/get_user_by_id.rb +15 -0
  355. data/lib/fog/rackspace/requests/identity/get_user_by_name.rb +15 -0
  356. data/lib/fog/rackspace/requests/identity/list_credentials.rb +22 -0
  357. data/lib/fog/rackspace/requests/identity/list_tenants.rb +45 -0
  358. data/lib/fog/rackspace/requests/identity/list_user_roles.rb +22 -0
  359. data/lib/fog/rackspace/requests/identity/list_users.rb +22 -0
  360. data/lib/fog/rackspace/requests/identity/update_user.rb +24 -0
  361. data/lib/fog/rackspace/requests/load_balancers/create_access_rule.rb +24 -0
  362. data/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb +109 -0
  363. data/lib/fog/rackspace/requests/load_balancers/create_node.rb +30 -0
  364. data/lib/fog/rackspace/requests/load_balancers/create_virtual_ip.rb +20 -0
  365. data/lib/fog/rackspace/requests/load_balancers/delete_access_rule.rb +15 -0
  366. data/lib/fog/rackspace/requests/load_balancers/delete_all_access_rules.rb +15 -0
  367. data/lib/fog/rackspace/requests/load_balancers/delete_load_balancer.rb +23 -0
  368. data/lib/fog/rackspace/requests/load_balancers/delete_node.rb +15 -0
  369. data/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb +16 -0
  370. data/lib/fog/rackspace/requests/load_balancers/delete_virtual_ip.rb +15 -0
  371. data/lib/fog/rackspace/requests/load_balancers/get_connection_logging.rb +15 -0
  372. data/lib/fog/rackspace/requests/load_balancers/get_connection_throttling.rb +15 -0
  373. data/lib/fog/rackspace/requests/load_balancers/get_content_caching.rb +15 -0
  374. data/lib/fog/rackspace/requests/load_balancers/get_error_page.rb +15 -0
  375. data/lib/fog/rackspace/requests/load_balancers/get_load_balancer.rb +44 -0
  376. data/lib/fog/rackspace/requests/load_balancers/get_load_balancer_usage.rb +21 -0
  377. data/lib/fog/rackspace/requests/load_balancers/get_monitor.rb +15 -0
  378. data/lib/fog/rackspace/requests/load_balancers/get_node.rb +15 -0
  379. data/lib/fog/rackspace/requests/load_balancers/get_session_persistence.rb +15 -0
  380. data/lib/fog/rackspace/requests/load_balancers/get_ssl_termination.rb +15 -0
  381. data/lib/fog/rackspace/requests/load_balancers/get_stats.rb +30 -0
  382. data/lib/fog/rackspace/requests/load_balancers/get_usage.rb +20 -0
  383. data/lib/fog/rackspace/requests/load_balancers/list_access_rules.rb +15 -0
  384. data/lib/fog/rackspace/requests/load_balancers/list_algorithms.rb +15 -0
  385. data/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb +21 -0
  386. data/lib/fog/rackspace/requests/load_balancers/list_nodes.rb +15 -0
  387. data/lib/fog/rackspace/requests/load_balancers/list_protocols.rb +15 -0
  388. data/lib/fog/rackspace/requests/load_balancers/list_virtual_ips.rb +15 -0
  389. data/lib/fog/rackspace/requests/load_balancers/remove_connection_throttling.rb +15 -0
  390. data/lib/fog/rackspace/requests/load_balancers/remove_error_page.rb +15 -0
  391. data/lib/fog/rackspace/requests/load_balancers/remove_monitor.rb +15 -0
  392. data/lib/fog/rackspace/requests/load_balancers/remove_session_persistence.rb +15 -0
  393. data/lib/fog/rackspace/requests/load_balancers/remove_ssl_termination.rb +15 -0
  394. data/lib/fog/rackspace/requests/load_balancers/set_connection_logging.rb +21 -0
  395. data/lib/fog/rackspace/requests/load_balancers/set_connection_throttling.rb +22 -0
  396. data/lib/fog/rackspace/requests/load_balancers/set_content_caching.rb +21 -0
  397. data/lib/fog/rackspace/requests/load_balancers/set_error_page.rb +21 -0
  398. data/lib/fog/rackspace/requests/load_balancers/set_monitor.rb +31 -0
  399. data/lib/fog/rackspace/requests/load_balancers/set_session_persistence.rb +21 -0
  400. data/lib/fog/rackspace/requests/load_balancers/set_ssl_termination.rb +31 -0
  401. data/lib/fog/rackspace/requests/load_balancers/update_load_balancer.rb +26 -0
  402. data/lib/fog/rackspace/requests/load_balancers/update_node.rb +29 -0
  403. data/lib/fog/rackspace/requests/monitoring/create_agent_token.rb +47 -0
  404. data/lib/fog/rackspace/requests/monitoring/create_alarm.rb +47 -0
  405. data/lib/fog/rackspace/requests/monitoring/create_check.rb +47 -0
  406. data/lib/fog/rackspace/requests/monitoring/create_entity.rb +47 -0
  407. data/lib/fog/rackspace/requests/monitoring/create_notification.rb +17 -0
  408. data/lib/fog/rackspace/requests/monitoring/delete_agent_token.rb +45 -0
  409. data/lib/fog/rackspace/requests/monitoring/delete_alarm.rb +41 -0
  410. data/lib/fog/rackspace/requests/monitoring/delete_check.rb +40 -0
  411. data/lib/fog/rackspace/requests/monitoring/delete_entity.rb +40 -0
  412. data/lib/fog/rackspace/requests/monitoring/delete_notification.rb +15 -0
  413. data/lib/fog/rackspace/requests/monitoring/evaluate_alarm_example.rb +18 -0
  414. data/lib/fog/rackspace/requests/monitoring/get_agent.rb +44 -0
  415. data/lib/fog/rackspace/requests/monitoring/get_agent_token.rb +47 -0
  416. data/lib/fog/rackspace/requests/monitoring/get_alarm.rb +51 -0
  417. data/lib/fog/rackspace/requests/monitoring/get_alarm_example.rb +15 -0
  418. data/lib/fog/rackspace/requests/monitoring/get_check.rb +56 -0
  419. data/lib/fog/rackspace/requests/monitoring/get_cpus_info.rb +61 -0
  420. data/lib/fog/rackspace/requests/monitoring/get_disks_info.rb +54 -0
  421. data/lib/fog/rackspace/requests/monitoring/get_entity.rb +55 -0
  422. data/lib/fog/rackspace/requests/monitoring/get_filesystems_info.rb +62 -0
  423. data/lib/fog/rackspace/requests/monitoring/get_logged_in_user_info.rb +56 -0
  424. data/lib/fog/rackspace/requests/monitoring/get_memory_info.rb +57 -0
  425. data/lib/fog/rackspace/requests/monitoring/get_monitoring_zone.rb +15 -0
  426. data/lib/fog/rackspace/requests/monitoring/get_network_interfaces_info.rb +89 -0
  427. data/lib/fog/rackspace/requests/monitoring/get_notification.rb +46 -0
  428. data/lib/fog/rackspace/requests/monitoring/get_processes_info.rb +70 -0
  429. data/lib/fog/rackspace/requests/monitoring/get_system_info.rb +51 -0
  430. data/lib/fog/rackspace/requests/monitoring/list_agent_tokens.rb +55 -0
  431. data/lib/fog/rackspace/requests/monitoring/list_agents.rb +61 -0
  432. data/lib/fog/rackspace/requests/monitoring/list_alarm_examples.rb +15 -0
  433. data/lib/fog/rackspace/requests/monitoring/list_alarms.rb +64 -0
  434. data/lib/fog/rackspace/requests/monitoring/list_check_types.rb +86 -0
  435. data/lib/fog/rackspace/requests/monitoring/list_checks.rb +70 -0
  436. data/lib/fog/rackspace/requests/monitoring/list_data_points.rb +51 -0
  437. data/lib/fog/rackspace/requests/monitoring/list_entities.rb +70 -0
  438. data/lib/fog/rackspace/requests/monitoring/list_metrics.rb +80 -0
  439. data/lib/fog/rackspace/requests/monitoring/list_monitoring_zones.rb +15 -0
  440. data/lib/fog/rackspace/requests/monitoring/list_notification_plans.rb +70 -0
  441. data/lib/fog/rackspace/requests/monitoring/list_notifications.rb +63 -0
  442. data/lib/fog/rackspace/requests/monitoring/list_overview.rb +111 -0
  443. data/lib/fog/rackspace/requests/monitoring/update_alarm.rb +45 -0
  444. data/lib/fog/rackspace/requests/monitoring/update_check.rb +45 -0
  445. data/lib/fog/rackspace/requests/monitoring/update_entity.rb +45 -0
  446. data/lib/fog/rackspace/requests/monitoring/update_notification.rb +16 -0
  447. data/lib/fog/rackspace/requests/networking/create_network.rb +36 -0
  448. data/lib/fog/rackspace/requests/networking/create_virtual_interface.rb +30 -0
  449. data/lib/fog/rackspace/requests/networking/delete_network.rb +21 -0
  450. data/lib/fog/rackspace/requests/networking/delete_virtual_interface.rb +23 -0
  451. data/lib/fog/rackspace/requests/networking/get_network.rb +21 -0
  452. data/lib/fog/rackspace/requests/networking/list_networks.rb +18 -0
  453. data/lib/fog/rackspace/requests/networking/list_virtual_interfaces.rb +22 -0
  454. data/lib/fog/rackspace/requests/networking_v2/create_network.rb +18 -0
  455. data/lib/fog/rackspace/requests/networking_v2/create_port.rb +18 -0
  456. data/lib/fog/rackspace/requests/networking_v2/create_security_group.rb +12 -0
  457. data/lib/fog/rackspace/requests/networking_v2/create_security_group_rule.rb +12 -0
  458. data/lib/fog/rackspace/requests/networking_v2/create_subnet.rb +18 -0
  459. data/lib/fog/rackspace/requests/networking_v2/delete_network.rb +11 -0
  460. data/lib/fog/rackspace/requests/networking_v2/delete_port.rb +11 -0
  461. data/lib/fog/rackspace/requests/networking_v2/delete_security_group.rb +5 -0
  462. data/lib/fog/rackspace/requests/networking_v2/delete_security_group_rule.rb +5 -0
  463. data/lib/fog/rackspace/requests/networking_v2/delete_subnet.rb +11 -0
  464. data/lib/fog/rackspace/requests/networking_v2/list_networks.rb +11 -0
  465. data/lib/fog/rackspace/requests/networking_v2/list_ports.rb +11 -0
  466. data/lib/fog/rackspace/requests/networking_v2/list_security_group_rules.rb +5 -0
  467. data/lib/fog/rackspace/requests/networking_v2/list_security_groups.rb +5 -0
  468. data/lib/fog/rackspace/requests/networking_v2/list_subnets.rb +11 -0
  469. data/lib/fog/rackspace/requests/networking_v2/show_network.rb +11 -0
  470. data/lib/fog/rackspace/requests/networking_v2/show_port.rb +11 -0
  471. data/lib/fog/rackspace/requests/networking_v2/show_security_group.rb +5 -0
  472. data/lib/fog/rackspace/requests/networking_v2/show_security_group_rule.rb +5 -0
  473. data/lib/fog/rackspace/requests/networking_v2/show_subnet.rb +11 -0
  474. data/lib/fog/rackspace/requests/networking_v2/update_network.rb +18 -0
  475. data/lib/fog/rackspace/requests/networking_v2/update_port.rb +18 -0
  476. data/lib/fog/rackspace/requests/networking_v2/update_security_group.rb +12 -0
  477. data/lib/fog/rackspace/requests/networking_v2/update_subnet.rb +23 -0
  478. data/lib/fog/rackspace/requests/orchestration/abandon_stack.rb +15 -0
  479. data/lib/fog/rackspace/requests/orchestration/build_info.rb +15 -0
  480. data/lib/fog/rackspace/requests/orchestration/create_stack.rb +16 -0
  481. data/lib/fog/rackspace/requests/orchestration/delete_stack.rb +15 -0
  482. data/lib/fog/rackspace/requests/orchestration/get_stack_template.rb +20 -0
  483. data/lib/fog/rackspace/requests/orchestration/list_resource_events.rb +19 -0
  484. data/lib/fog/rackspace/requests/orchestration/list_resource_types.rb +22 -0
  485. data/lib/fog/rackspace/requests/orchestration/list_resources.rb +19 -0
  486. data/lib/fog/rackspace/requests/orchestration/list_stack_data.rb +22 -0
  487. data/lib/fog/rackspace/requests/orchestration/list_stack_events.rb +19 -0
  488. data/lib/fog/rackspace/requests/orchestration/preview_stack.rb +16 -0
  489. data/lib/fog/rackspace/requests/orchestration/show_event_details.rb +22 -0
  490. data/lib/fog/rackspace/requests/orchestration/show_resource_data.rb +22 -0
  491. data/lib/fog/rackspace/requests/orchestration/show_resource_metadata.rb +22 -0
  492. data/lib/fog/rackspace/requests/orchestration/show_resource_schema.rb +15 -0
  493. data/lib/fog/rackspace/requests/orchestration/show_resource_template.rb +20 -0
  494. data/lib/fog/rackspace/requests/orchestration/show_stack_details.rb +22 -0
  495. data/lib/fog/rackspace/requests/orchestration/update_stack.rb +16 -0
  496. data/lib/fog/rackspace/requests/orchestration/validate_template.rb +16 -0
  497. data/lib/fog/rackspace/requests/queues/create_claim.rb +72 -0
  498. data/lib/fog/rackspace/requests/queues/create_message.rb +56 -0
  499. data/lib/fog/rackspace/requests/queues/create_queue.rb +39 -0
  500. data/lib/fog/rackspace/requests/queues/delete_claim.rb +42 -0
  501. data/lib/fog/rackspace/requests/queues/delete_message.rb +62 -0
  502. data/lib/fog/rackspace/requests/queues/delete_queue.rb +33 -0
  503. data/lib/fog/rackspace/requests/queues/get_claim.rb +37 -0
  504. data/lib/fog/rackspace/requests/queues/get_message.rb +41 -0
  505. data/lib/fog/rackspace/requests/queues/get_queue.rb +36 -0
  506. data/lib/fog/rackspace/requests/queues/get_queue_stats.rb +57 -0
  507. data/lib/fog/rackspace/requests/queues/list_messages.rb +73 -0
  508. data/lib/fog/rackspace/requests/queues/list_queues.rb +62 -0
  509. data/lib/fog/rackspace/requests/queues/update_claim.rb +39 -0
  510. data/lib/fog/rackspace/requests/storage/copy_object.rb +29 -0
  511. data/lib/fog/rackspace/requests/storage/delete_container.rb +36 -0
  512. data/lib/fog/rackspace/requests/storage/delete_multiple_objects.rb +128 -0
  513. data/lib/fog/rackspace/requests/storage/delete_object.rb +36 -0
  514. data/lib/fog/rackspace/requests/storage/delete_static_large_object.rb +78 -0
  515. data/lib/fog/rackspace/requests/storage/extract_archive.rb +37 -0
  516. data/lib/fog/rackspace/requests/storage/get_container.rb +69 -0
  517. data/lib/fog/rackspace/requests/storage/get_containers.rb +51 -0
  518. data/lib/fog/rackspace/requests/storage/get_object.rb +54 -0
  519. data/lib/fog/rackspace/requests/storage/get_object_http_url.rb +35 -0
  520. data/lib/fog/rackspace/requests/storage/get_object_https_url.rb +71 -0
  521. data/lib/fog/rackspace/requests/storage/head_container.rb +41 -0
  522. data/lib/fog/rackspace/requests/storage/head_containers.rb +44 -0
  523. data/lib/fog/rackspace/requests/storage/head_object.rb +48 -0
  524. data/lib/fog/rackspace/requests/storage/post_set_meta_temp_url_key.rb +46 -0
  525. data/lib/fog/rackspace/requests/storage/put_container.rb +42 -0
  526. data/lib/fog/rackspace/requests/storage/put_dynamic_obj_manifest.rb +63 -0
  527. data/lib/fog/rackspace/requests/storage/put_object.rb +77 -0
  528. data/lib/fog/rackspace/requests/storage/put_object_manifest.rb +22 -0
  529. data/lib/fog/rackspace/requests/storage/put_static_obj_manifest.rb +102 -0
  530. data/lib/fog/rackspace/service.rb +142 -0
  531. data/lib/fog/rackspace/storage.rb +465 -0
  532. data/lib/fog/rackspace/version.rb +5 -0
  533. data/tests/helper.rb +28 -0
  534. data/tests/helpers/collection_helper.rb +97 -0
  535. data/tests/helpers/compute/flavors_helper.rb +32 -0
  536. data/tests/helpers/compute/server_helper.rb +25 -0
  537. data/tests/helpers/compute/servers_helper.rb +10 -0
  538. data/tests/helpers/formats_helper.rb +98 -0
  539. data/tests/helpers/formats_helper_tests.rb +110 -0
  540. data/tests/helpers/mock_helper.rb +16 -0
  541. data/tests/helpers/model_helper.rb +31 -0
  542. data/tests/helpers/responds_to_helper.rb +11 -0
  543. data/tests/helpers/schema_validator_tests.rb +107 -0
  544. data/tests/helpers/succeeds_helper.rb +9 -0
  545. data/tests/lorem.txt +1 -0
  546. data/tests/rackspace/auto_scale_tests.rb +83 -0
  547. data/tests/rackspace/block_storage_tests.rb +119 -0
  548. data/tests/rackspace/cdn_tests.rb +186 -0
  549. data/tests/rackspace/compute_tests.rb +100 -0
  550. data/tests/rackspace/compute_v2_tests.rb +118 -0
  551. data/tests/rackspace/databases_tests.rb +140 -0
  552. data/tests/rackspace/dns_tests.rb +110 -0
  553. data/tests/rackspace/helper.rb +106 -0
  554. data/tests/rackspace/identity_tests.rb +26 -0
  555. data/tests/rackspace/load_balancer_tests.rb +135 -0
  556. data/tests/rackspace/models/auto_scale/group_builder_tests.rb +145 -0
  557. data/tests/rackspace/models/auto_scale/group_tests.rb +35 -0
  558. data/tests/rackspace/models/auto_scale/groups_tests.rb +17 -0
  559. data/tests/rackspace/models/auto_scale/policies_tests.rb +24 -0
  560. data/tests/rackspace/models/auto_scale/policy_tests.rb +35 -0
  561. data/tests/rackspace/models/auto_scale/webhook_tests.rb +42 -0
  562. data/tests/rackspace/models/auto_scale/webhooks_tests.rb +28 -0
  563. data/tests/rackspace/models/block_storage/snapshot_tests.rb +25 -0
  564. data/tests/rackspace/models/block_storage/snapshots_tests.rb +18 -0
  565. data/tests/rackspace/models/block_storage/volume_tests.rb +31 -0
  566. data/tests/rackspace/models/block_storage/volume_types_tests.rb +18 -0
  567. data/tests/rackspace/models/block_storage/volumes_tests.rb +9 -0
  568. data/tests/rackspace/models/compute_v2/flavors_tests.rb +17 -0
  569. data/tests/rackspace/models/compute_v2/image_tests.rb +74 -0
  570. data/tests/rackspace/models/compute_v2/images_tests.rb +20 -0
  571. data/tests/rackspace/models/compute_v2/keypairs_tests.rb +47 -0
  572. data/tests/rackspace/models/compute_v2/metadata_tests.rb +44 -0
  573. data/tests/rackspace/models/compute_v2/network_tests.rb +10 -0
  574. data/tests/rackspace/models/compute_v2/networks_tests.rb +10 -0
  575. data/tests/rackspace/models/compute_v2/server_tests.rb +274 -0
  576. data/tests/rackspace/models/compute_v2/servers_tests.rb +22 -0
  577. data/tests/rackspace/models/compute_v2/virtual_interface_tests.rb +33 -0
  578. data/tests/rackspace/models/compute_v2/virtual_interfaces_tests.rb +24 -0
  579. data/tests/rackspace/models/databases/database_tests.rb +29 -0
  580. data/tests/rackspace/models/databases/databases_tests.rb +17 -0
  581. data/tests/rackspace/models/databases/flavors_tests.rb +20 -0
  582. data/tests/rackspace/models/databases/instance_tests.rb +43 -0
  583. data/tests/rackspace/models/databases/instances_tests.rb +14 -0
  584. data/tests/rackspace/models/databases/user_tests.rb +21 -0
  585. data/tests/rackspace/models/databases/users_tests.rb +21 -0
  586. data/tests/rackspace/models/dns/zone_tests.rb +14 -0
  587. data/tests/rackspace/models/dns/zones_tests.rb +36 -0
  588. data/tests/rackspace/models/identity/credentials_tests.rb +25 -0
  589. data/tests/rackspace/models/identity/roles_tests.rb +16 -0
  590. data/tests/rackspace/models/identity/service_catalog_tests.rb +154 -0
  591. data/tests/rackspace/models/identity/tenants_tests.rb +21 -0
  592. data/tests/rackspace/models/identity/user_tests.rb +17 -0
  593. data/tests/rackspace/models/identity/users_tests.rb +17 -0
  594. data/tests/rackspace/models/load_balancers/access_list_tests.rb +12 -0
  595. data/tests/rackspace/models/load_balancers/access_lists_tests.rb +12 -0
  596. data/tests/rackspace/models/load_balancers/load_balancer_tests.rb +229 -0
  597. data/tests/rackspace/models/load_balancers/load_balancers_tests.rb +19 -0
  598. data/tests/rackspace/models/load_balancers/node_tests.rb +19 -0
  599. data/tests/rackspace/models/load_balancers/nodes_tests.rb +12 -0
  600. data/tests/rackspace/models/load_balancers/virtual_ip_tests.rb +16 -0
  601. data/tests/rackspace/models/load_balancers/virtual_ips_tests.rb +12 -0
  602. data/tests/rackspace/models/monitoring/agent_token_tests.rb +9 -0
  603. data/tests/rackspace/models/monitoring/agent_tokens_tests.rb +9 -0
  604. data/tests/rackspace/models/monitoring/alarm_example_tests.rb +18 -0
  605. data/tests/rackspace/models/monitoring/alarm_examples_tests.rb +19 -0
  606. data/tests/rackspace/models/monitoring/alarm_tests.rb +59 -0
  607. data/tests/rackspace/models/monitoring/alarms_tests.rb +25 -0
  608. data/tests/rackspace/models/monitoring/check_tests.rb +49 -0
  609. data/tests/rackspace/models/monitoring/check_types_tests.rb +14 -0
  610. data/tests/rackspace/models/monitoring/checks_tests.rb +16 -0
  611. data/tests/rackspace/models/monitoring/data_points_tests.rb +19 -0
  612. data/tests/rackspace/models/monitoring/entities_tests.rb +14 -0
  613. data/tests/rackspace/models/monitoring/entity_tests.rb +26 -0
  614. data/tests/rackspace/models/monitoring/metric_tests.rb +19 -0
  615. data/tests/rackspace/models/monitoring/metrics_tests.rb +17 -0
  616. data/tests/rackspace/models/monitoring/notification_tests.rb +19 -0
  617. data/tests/rackspace/models/monitoring/notifications_tests.rb +10 -0
  618. data/tests/rackspace/models/networking/network_tests.rb +10 -0
  619. data/tests/rackspace/models/networking/networks_tests.rb +10 -0
  620. data/tests/rackspace/models/networking/virtual_interface_tests.rb +33 -0
  621. data/tests/rackspace/models/networking/virtual_interfaces_tests.rb +24 -0
  622. data/tests/rackspace/models/queues/claim_tests.rb +41 -0
  623. data/tests/rackspace/models/queues/claims_tests.rb +53 -0
  624. data/tests/rackspace/models/queues/message_tests.rb +49 -0
  625. data/tests/rackspace/models/queues/messages_tests.rb +16 -0
  626. data/tests/rackspace/models/queues/queue_tests.rb +37 -0
  627. data/tests/rackspace/models/queues/queues_tests.rb +8 -0
  628. data/tests/rackspace/models/storage/account_tests.rb +26 -0
  629. data/tests/rackspace/models/storage/directories_tests.rb +26 -0
  630. data/tests/rackspace/models/storage/directory_tests.rb +138 -0
  631. data/tests/rackspace/models/storage/file_tests.rb +400 -0
  632. data/tests/rackspace/models/storage/files_tests.rb +39 -0
  633. data/tests/rackspace/models/storage/metadata_tests.rb +208 -0
  634. data/tests/rackspace/monitoring_tests.rb +76 -0
  635. data/tests/rackspace/networking_tests.rb +118 -0
  636. data/tests/rackspace/queues_tests.rb +105 -0
  637. data/tests/rackspace/rackspace_tests.rb +56 -0
  638. data/tests/rackspace/requests/auto_scale/config_tests.rb +97 -0
  639. data/tests/rackspace/requests/auto_scale/group_tests.rb +50 -0
  640. data/tests/rackspace/requests/auto_scale/helper.rb +224 -0
  641. data/tests/rackspace/requests/auto_scale/policy_tests.rb +71 -0
  642. data/tests/rackspace/requests/auto_scale/webhook_tests.rb +58 -0
  643. data/tests/rackspace/requests/block_storage/snapshot_tests.rb +80 -0
  644. data/tests/rackspace/requests/block_storage/volume_tests.rb +75 -0
  645. data/tests/rackspace/requests/block_storage/volume_type_tests.rb +21 -0
  646. data/tests/rackspace/requests/cdn/cdn_tests.rb +75 -0
  647. data/tests/rackspace/requests/compute/address_tests.rb +42 -0
  648. data/tests/rackspace/requests/compute/flavor_tests.rb +39 -0
  649. data/tests/rackspace/requests/compute/helper.rb +10 -0
  650. data/tests/rackspace/requests/compute/image_tests.rb +70 -0
  651. data/tests/rackspace/requests/compute/resize_tests.rb +35 -0
  652. data/tests/rackspace/requests/compute/server_tests.rb +94 -0
  653. data/tests/rackspace/requests/compute_v2/address_tests.rb +45 -0
  654. data/tests/rackspace/requests/compute_v2/attachment_tests.rb +66 -0
  655. data/tests/rackspace/requests/compute_v2/flavor_tests.rb +47 -0
  656. data/tests/rackspace/requests/compute_v2/image_tests.rb +77 -0
  657. data/tests/rackspace/requests/compute_v2/keypair_tests.rb +55 -0
  658. data/tests/rackspace/requests/compute_v2/metadata_tests.rb +104 -0
  659. data/tests/rackspace/requests/compute_v2/network_tests.rb +49 -0
  660. data/tests/rackspace/requests/compute_v2/server_tests.rb +172 -0
  661. data/tests/rackspace/requests/compute_v2/virtual_interface_tests.rb +49 -0
  662. data/tests/rackspace/requests/databases/database_tests.rb +39 -0
  663. data/tests/rackspace/requests/databases/flavor_tests.rb +16 -0
  664. data/tests/rackspace/requests/databases/helper.rb +79 -0
  665. data/tests/rackspace/requests/databases/instance_tests.rb +77 -0
  666. data/tests/rackspace/requests/databases/user_tests.rb +37 -0
  667. data/tests/rackspace/requests/dns/dns_tests.rb +125 -0
  668. data/tests/rackspace/requests/dns/helper.rb +124 -0
  669. data/tests/rackspace/requests/dns/records_tests.rb +83 -0
  670. data/tests/rackspace/requests/identity/tenants_tests.rb +21 -0
  671. data/tests/rackspace/requests/identity/token_tests.rb +70 -0
  672. data/tests/rackspace/requests/identity/user_tests.rb +106 -0
  673. data/tests/rackspace/requests/load_balancers/access_list_tests.rb +56 -0
  674. data/tests/rackspace/requests/load_balancers/algorithm_tests.rb +19 -0
  675. data/tests/rackspace/requests/load_balancers/connection_logging_tests.rb +25 -0
  676. data/tests/rackspace/requests/load_balancers/connection_throttling_tests.rb +37 -0
  677. data/tests/rackspace/requests/load_balancers/content_caching_tests.rb +25 -0
  678. data/tests/rackspace/requests/load_balancers/error_page_tests.rb +31 -0
  679. data/tests/rackspace/requests/load_balancers/get_stats_tests.rb +13 -0
  680. data/tests/rackspace/requests/load_balancers/helper.rb +229 -0
  681. data/tests/rackspace/requests/load_balancers/load_balancer_tests.rb +86 -0
  682. data/tests/rackspace/requests/load_balancers/load_balancer_usage_tests.rb +19 -0
  683. data/tests/rackspace/requests/load_balancers/monitor_tests.rb +46 -0
  684. data/tests/rackspace/requests/load_balancers/node_tests.rb +93 -0
  685. data/tests/rackspace/requests/load_balancers/protocol_tests.rb +21 -0
  686. data/tests/rackspace/requests/load_balancers/session_persistence_tests.rb +33 -0
  687. data/tests/rackspace/requests/load_balancers/ssl_termination_tests.rb +38 -0
  688. data/tests/rackspace/requests/load_balancers/usage_tests.rb +19 -0
  689. data/tests/rackspace/requests/load_balancers/virtual_ip_tests.rb +40 -0
  690. data/tests/rackspace/requests/monitoring/agent_tests.rb +74 -0
  691. data/tests/rackspace/requests/monitoring/alarm_example_tests.rb +30 -0
  692. data/tests/rackspace/requests/monitoring/alarm_tests.rb +55 -0
  693. data/tests/rackspace/requests/monitoring/check_tests.rb +39 -0
  694. data/tests/rackspace/requests/monitoring/entity_tests.rb +36 -0
  695. data/tests/rackspace/requests/monitoring/helper.rb +139 -0
  696. data/tests/rackspace/requests/monitoring/list_tests.rb +83 -0
  697. data/tests/rackspace/requests/monitoring/notification_tests.rb +46 -0
  698. data/tests/rackspace/requests/networking/network_tests.rb +49 -0
  699. data/tests/rackspace/requests/networking/virtual_interface_tests.rb +49 -0
  700. data/tests/rackspace/requests/queues/claim_tests.rb +60 -0
  701. data/tests/rackspace/requests/queues/helper.rb +50 -0
  702. data/tests/rackspace/requests/queues/messages_tests.rb +54 -0
  703. data/tests/rackspace/requests/queues/queues_tests.rb +38 -0
  704. data/tests/rackspace/requests/storage/account_tests.rb +15 -0
  705. data/tests/rackspace/requests/storage/container_tests.rb +67 -0
  706. data/tests/rackspace/requests/storage/large_object_tests.rb +355 -0
  707. data/tests/rackspace/requests/storage/object_tests.rb +230 -0
  708. data/tests/rackspace/service_tests.rb +82 -0
  709. data/tests/rackspace/storage_tests.rb +128 -0
  710. data/tests/rackspace/url_encoding_tests.rb +5 -0
  711. metadata +880 -0
@@ -0,0 +1,39 @@
1
+ require 'fog/core/model'
2
+ require 'fog/rackspace/models/compute_v2/meta_parent'
3
+
4
+ module Fog
5
+ module Compute
6
+ class RackspaceV2
7
+ class Metadatum < Fog::Model
8
+ include Fog::Compute::RackspaceV2::MetaParent
9
+
10
+ identity :key
11
+ attribute :value
12
+
13
+ # Remove metadatum from server
14
+ # @return [Boolean] return true if metadatum is deleting
15
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
16
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
17
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
18
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
19
+ def destroy
20
+ requires :identity
21
+ service.delete_metadata_item(collection_name, parent.id, key)
22
+ true
23
+ end
24
+
25
+ # Save metadatum on server
26
+ # @return [Boolean] return true if metadatum is saving
27
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
28
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
29
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
30
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
31
+ def save
32
+ requires :identity, :value
33
+ service.set_metadata_item(collection_name, parent.id, key, value)
34
+ true
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,27 @@
1
+ module Fog
2
+ module Compute
3
+ class RackspaceV2
4
+ class Network < Fog::Model
5
+ identity :id
6
+
7
+ attribute :label
8
+ attribute :cidr
9
+
10
+ def save
11
+ requires :label, :cidr
12
+
13
+ data = service.create_network(label, cidr)
14
+ merge_attributes(data.body['network'])
15
+ true
16
+ end
17
+
18
+ def destroy
19
+ requires :identity
20
+
21
+ service.delete_network(identity)
22
+ true
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,23 @@
1
+ require 'fog/rackspace/models/compute_v2/network'
2
+
3
+ module Fog
4
+ module Compute
5
+ class RackspaceV2
6
+ class Networks < Fog::Collection
7
+ model Fog::Compute::RackspaceV2::Network
8
+
9
+ def all
10
+ data = service.list_networks.body['networks']
11
+ load(data)
12
+ end
13
+
14
+ def get(id)
15
+ data = service.get_network(id).body['network']
16
+ new(data)
17
+ rescue Fog::Compute::RackspaceV2::NotFound
18
+ nil
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,655 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'fog/compute/models/server'
3
+ require 'fog/rackspace/models/compute_v2/metadata'
4
+
5
+ module Fog
6
+ module Compute
7
+ class RackspaceV2
8
+ class Server < Fog::Compute::Server
9
+ # States
10
+ ACTIVE = 'ACTIVE'
11
+ BUILD = 'BUILD'
12
+ DELETED = 'DELETED'
13
+ ERROR = 'ERROR'
14
+ HARD_REBOOT = 'HARD_REBOOT'
15
+ MIGRATING = 'MIGRATING'
16
+ PASSWORD = 'PASSWORD'
17
+ REBOOT = 'REBOOT'
18
+ REBUILD = 'REBUILD'
19
+ RESCUE = 'RESCUE'
20
+ RESIZE = 'RESIZE'
21
+ REVERT_RESIZE = 'REVERT_RESIZE'
22
+ SUSPENDED = 'SUSPENDED'
23
+ UNKNOWN = 'UNKNOWN'
24
+ VERIFY_RESIZE = 'VERIFY_RESIZE'
25
+
26
+ # @!attribute [r] id
27
+ # @return [String] The server id
28
+ identity :id
29
+
30
+ # @!attribute [rw] name
31
+ # @return [String] The server name.
32
+ attribute :name
33
+
34
+ # @!attribute [r] created
35
+ # @return [String] The time stamp for the creation date.
36
+ attribute :created
37
+
38
+ # @!attribute [r] updated
39
+ # @return [String] The time stamp for the last update.
40
+ attribute :updated
41
+
42
+ # @!attribute [r] host Id
43
+ # The host Id.
44
+ # The compute provisioning algorithm has an anti-affinity property that attempts to spread customer VMs across hosts.
45
+ # Under certain situations, VMs from the same customer might be placed on the same host.
46
+ # hostId represents the host your server runs on and can be used to determine this scenario if it is relevant to your application.
47
+ # HostId is unique per account and is not globally unique.
48
+ # @return [String] host id.
49
+ attribute :host_id, :aliases => 'hostId'
50
+
51
+ # @!attribute [r] state
52
+ # @return [String] server status.
53
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Servers-d1e2078.html#server_status
54
+ attribute :state, :aliases => 'status'
55
+
56
+ # @!attribute [r] state_ext
57
+ # @return [String] server (extended) status.
58
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Servers-d1e2078.html#server_status
59
+ attribute :state_ext, :aliases => 'OS-EXT-STS:task_state'
60
+
61
+ # @!attribute [r] progress
62
+ # @return [Fixnum] The build completion progress, as a percentage. Value is from 0 to 100.
63
+ attribute :progress
64
+
65
+ # @!attribute [r] user_id
66
+ # @return [String] The user Id.
67
+ attribute :user_id
68
+
69
+ # @!attribute [r] tenant_id
70
+ # @return [String] The tenant Id.
71
+ attribute :tenant_id
72
+
73
+ # @!attribute [r] links
74
+ # @return [Array] Server links.
75
+ attribute :links
76
+
77
+ # @!attribute [rw] personality
78
+ # @note This attribute is only used for server creation. This field will be nil on subsequent retrievals.
79
+ # @return [Hash] Hash containing data to inject into the file system of the cloud server instance during server creation.
80
+ # @example To inject fog.txt into file system
81
+ # :personality => [{ :path => '/root/fog.txt',
82
+ # :contents => Base64.encode64('Fog was here!')
83
+ # }]
84
+ # @see #create
85
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html
86
+ attribute :personality
87
+
88
+ # @!attribute [rw] ipv4_address
89
+ # @return [String] The public IP version 4 access address.
90
+ # @note This field will populate once the server is ready to use.
91
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Primary_Addresses-d1e2558.html
92
+ attribute :ipv4_address, :aliases => 'accessIPv4'
93
+
94
+ # @!attribute [rw] ipv6_address
95
+ # @return [String] The public IP version 6 access address.
96
+ # @note This field will populate once the server is ready to use.
97
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Primary_Addresses-d1e2558.html
98
+ attribute :ipv6_address, :aliases => 'accessIPv6'
99
+
100
+ # @!attribute [rw] disk_config
101
+ # @return [String<AUTO, MANUAL>] The disk configuration value.
102
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/ch_extensions.html#diskconfig_attribute
103
+ #
104
+ # The disk configuration value.
105
+ # * AUTO - The server is built with a single partition the size of the target flavor disk. The file system is automatically adjusted to fit the entire partition.
106
+ # This keeps things simple and automated. AUTO is valid only for images and servers with a single partition that use the EXT3 file system.
107
+ # This is the default setting for applicable Rackspace base images.
108
+ #
109
+ # * MANUAL - The server is built using whatever partition scheme and file system is in the source image. If the target flavor disk is larger,
110
+ # the remaining disk space is left unpartitioned. This enables images to have non-EXT3 file systems, multiple partitions,
111
+ # and so on, and enables you to manage the disk configuration.
112
+ attribute :disk_config, :aliases => 'OS-DCF:diskConfig'
113
+
114
+ # @!attribute [rw] config_drive_ext
115
+ # @return [Boolean] whether a read-only configuration drive is attached
116
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/config_drive_ext.html
117
+ attribute :config_drive
118
+
119
+ # @!attribute [rw] user_data
120
+ # @return [Boolean] User-data
121
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/config_drive_ext.html
122
+ attribute :user_data
123
+
124
+ # @!attribute [r] bandwidth
125
+ # @return [Array] The amount of bandwidth used for the specified audit period.
126
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/ch_extensions.html#bandwidth_extension
127
+ attribute :bandwidth, :aliases => 'rax-bandwidth:bandwidth'
128
+
129
+ # @!attribute [r] address
130
+ # @return [Hash<String, Array[Hash]>] IP addresses allocated for server by network
131
+ # @example
132
+ # {
133
+ # "public" => [
134
+ # {"version"=>4, "addr"=>"166.78.105.63"},
135
+ # {"version"=>6, "addr"=>"2001:4801:7817:0072:0fe1:75e8:ff10:61a9"}
136
+ # ],
137
+ # "private"=> [{"version"=>4, "addr"=>"10.177.18.209"}]
138
+ # }
139
+ attribute :addresses
140
+
141
+ # @!attribute [r] flavor_id
142
+ # @return [String] The flavor Id.
143
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Flavors-d1e4188.html
144
+ attribute :flavor_id, :aliases => 'flavor', :squash => 'id'
145
+
146
+ # @!attribute [r] image_id
147
+ # @return [String] The image Id.
148
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Images-d1e4435.html
149
+ attribute :image_id, :aliases => 'image', :squash => 'id'
150
+
151
+ # @!attribute [w] boot_volume_id
152
+ # @return [String] The ID of a bootable volume from the BlockStorage service.
153
+ # @see http://developer.openstack.org/api-ref-compute-v2-ext.html#ext-os-block-device-mapping-v2-boot
154
+ attribute :boot_volume_id
155
+
156
+ # @!attribute [w] boot_volume_size
157
+ # @return [Integer] The Size of the boot volume to be created by the BlockStorage service.
158
+ # @see http://developer.openstack.org/api-ref-compute-v2-ext.html#ext-os-block-device-mapping-v2-boot
159
+ attribute :boot_volume_size
160
+
161
+ # @!attribute [w] boot_image_id
162
+ # @return [String] The ID of an image to create a bootable volume from.
163
+ # @see http://developer.openstack.org/api-ref-compute-v2-ext.html#ext-os-block-device-mapping-v2-boot
164
+ attribute :boot_image_id
165
+
166
+ # @!attribute [rw] password
167
+ # @return [String] Password for system adminstrator account.
168
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Passwords-d1e2510.html
169
+ # @note Can be set while creating a server, but use change_admin_password instead of save/update for changes.
170
+ attribute :password
171
+
172
+ # @!attribute [rw] key_name
173
+ # @return [String] The name of the key_pair used for server.
174
+ # @note The key_pair/key_name is used to specify the keypair used for server creation. It is not populated by cloud servers.
175
+ attribute :key_name
176
+
177
+ def initialize(attributes={})
178
+ @service = attributes[:service]
179
+ super
180
+ end
181
+
182
+ alias_method :access_ipv4_address, :ipv4_address
183
+ alias_method :access_ipv4_address=, :ipv4_address=
184
+ alias_method :access_ipv6_address, :ipv6_address
185
+ alias_method :access_ipv6_address=, :ipv6_address=
186
+
187
+ # Server metadata
188
+ # @return [Fog::Compute::RackspaceV2::Metadata] metadata key value pairs.
189
+ def metadata
190
+ @metadata ||= begin
191
+ Fog::Compute::RackspaceV2::Metadata.new({
192
+ :service => service,
193
+ :parent => self
194
+ })
195
+ end
196
+ end
197
+
198
+ # Set server metadata
199
+ # @param [Hash] hash contains key value pairs
200
+ def metadata=(hash={})
201
+ metadata.from_hash(hash)
202
+ end
203
+
204
+ # Returns the key pair based on the key_name of the server
205
+ # @return [KeyPair]
206
+ # @note The key_pair/key_name is used to specify the keypair used for server creation. It is not populated by cloud servers.
207
+ def key_pair
208
+ requires :key_name
209
+
210
+ service.key_pairs.get(key_name)
211
+ end
212
+
213
+ # Sets the key_pair used by the server.
214
+ # @param new_keypair [KeyPair] key_pair object for server
215
+ # @note The key_pair/key_name is used to specify the keypair used for server creation. It is not populated by cloud servers.
216
+ def key_pair=(new_keypair)
217
+ if new_keypair.is_a?(String)
218
+ Fog::Logger.deprecation("#key_pair= should be used to set KeyPair objects. Please use #key_name method instead")
219
+ self.key_name = new_keypair
220
+ else
221
+ self.key_name = new_keypair && new_keypair.name
222
+ end
223
+ end
224
+
225
+ # Saves the server.
226
+ # Creates server if it is new, otherwise it will update server attributes name, accessIPv4, and accessIPv6.
227
+ # @return [Boolean] true if server has started saving
228
+ def save(options = {})
229
+ if persisted?
230
+ update
231
+ else
232
+ create(options)
233
+ end
234
+ true
235
+ end
236
+
237
+ # Creates server
238
+ # * requires attributes: service:, :name, :image_id, and :flavor_id
239
+ # * optional attributes :disk_config, :metadata, :personality, :config_drive, :boot_volume_id, :boot_image_id
240
+ # * :image_id should be "" if :boot_volume_id or :boot_image_id are provided.
241
+ # @return [Boolean] returns true if server is being created
242
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
243
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
244
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
245
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
246
+ # @note You should use servers.create to create servers instead calling this method directly
247
+ # @see Servers#create
248
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/CreateServers.html
249
+ #
250
+ # * State Transitions
251
+ # * BUILD -> ACTIVE
252
+ # * BUILD -> ERROR (on error)
253
+ def create(options)
254
+ requires :name, :image_id, :flavor_id
255
+ modified_options = Marshal.load(Marshal.dump(options))
256
+
257
+ if attributes[:keypair]
258
+ Fog::Logger.deprecation(":keypair has been depreciated. Please use :key_name instead.")
259
+ modified_options[:key_name] = attributes[:keypair]
260
+ end
261
+
262
+ modified_options[:password] ||= attributes[:password] unless password.nil?
263
+ modified_options[:networks] ||= attributes[:networks]
264
+ modified_options[:disk_config] = disk_config unless disk_config.nil?
265
+ modified_options[:metadata] = metadata.to_hash unless @metadata.nil?
266
+ modified_options[:personality] = personality unless personality.nil?
267
+ modified_options[:config_drive] = config_drive unless config_drive.nil?
268
+ modified_options[:user_data] = user_data_encoded unless user_data_encoded.nil?
269
+ modified_options[:key_name] ||= attributes[:key_name]
270
+ modified_options[:boot_volume_id] ||= attributes[:boot_volume_id]
271
+ modified_options[:boot_image_id] ||= attributes[:boot_image_id]
272
+ modified_options[:boot_volume_size] ||= attributes[:boot_volume_size]
273
+
274
+ if modified_options[:networks]
275
+ modified_options[:networks].map! { |id| { :uuid => id } }
276
+ end
277
+
278
+ data = service.create_server(name, image_id, flavor_id, 1, 1, modified_options)
279
+ merge_attributes(data.body['server'])
280
+ true
281
+ end
282
+
283
+ # Updates server
284
+ # This will update :name, :accessIPv4, and :accessIPv6 attributes.
285
+ # @note If you edit the server name, the server host name does not change. Also, server names are not guaranteed to be unique.
286
+ # @return true if update has started updating
287
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
288
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
289
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
290
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
291
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/ServerUpdate.html
292
+ #
293
+ # * State Transition
294
+ # * ACTIVE -> ACTIVE
295
+ def update
296
+ requires :identity
297
+ options = {
298
+ 'name' => name,
299
+ 'accessIPv4' => ipv4_address,
300
+ 'accessIPv6' => ipv6_address
301
+ }
302
+
303
+ data = service.update_server(identity, options)
304
+ merge_attributes(data.body['server'])
305
+ true
306
+ end
307
+
308
+ # Destroy the server
309
+ # @return [Boolean] returns true if server has started deleting
310
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
311
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
312
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
313
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
314
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Delete_Server-d1e2883.html
315
+ #
316
+ # * Status Transition:
317
+ # * ACTIVE -> DELETED
318
+ # * ERROR -> DELETED
319
+ def destroy
320
+ requires :identity
321
+ service.delete_server(identity)
322
+ true
323
+ end
324
+
325
+ # Server flavor
326
+ # @return [Fog::Compute::RackspaceV2::Flavor] server flavor
327
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
328
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
329
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
330
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
331
+ def flavor
332
+ requires :flavor_id
333
+ @flavor ||= service.flavors.get(flavor_id)
334
+ end
335
+
336
+ # Server image
337
+ # @return [Fog::Compute::RackspaceV2::Image] server image
338
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
339
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
340
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
341
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
342
+ def image
343
+ requires :image_id
344
+ @image ||= service.images.get(image_id)
345
+ end
346
+
347
+ # Creates Image from server. Once complete, a new image is available that you can use to rebuild or create servers.
348
+ # @param name [String] name of image to create
349
+ # @param options [Hash]:
350
+ # @option options [Hash<String, String>] metadata hash of containing metadata key value pairs.
351
+ # @return [Fog::ComputeRackspaceV2::Image] image being created
352
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
353
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
354
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
355
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
356
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Create_Image-d1e4655.html
357
+ #
358
+ # * State Transition:
359
+ # * SAVING -> ACTIVE
360
+ # * SAVING -> ERROR (on error)
361
+ def create_image(name, options = {})
362
+ requires :identity
363
+ response = service.create_image(identity, name, options)
364
+ begin
365
+ image_id = response.headers["Location"].match(/\/([^\/]+$)/)[1]
366
+ Fog::Compute::RackspaceV2::Image.new(:collection => service.images, :service => service, :id => image_id)
367
+ rescue
368
+ nil
369
+ end
370
+ end
371
+
372
+ # Attached Cloud Block Volumes
373
+ # @return [Fog::Compute::RackspaceV2::Attachments] attached Cloud Block Volumes
374
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
375
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
376
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
377
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
378
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Volume_Attachments.html
379
+ def attachments
380
+ @attachments ||= begin
381
+ Fog::Compute::RackspaceV2::Attachments.new({
382
+ :service => service,
383
+ :server => self
384
+ })
385
+ end
386
+ end
387
+
388
+ # Attaches Cloud Block Volume
389
+ # @param [Fog::Rackspace::BlockStorage::Volume, String] volume object or the volume id of volume to mount
390
+ # @param [String] device name of the device /dev/xvd[a-p] (optional)
391
+ # @return [Fog::Compute::RackspaceV2::Attachment] resulting attachment object
392
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
393
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
394
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
395
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
396
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Attach_Volume_to_Server.html
397
+ def attach_volume(volume, device=nil)
398
+ requires :identity
399
+ volume_id = volume.is_a?(String) ? volume : volume.id
400
+ attachments.create(:server_id => identity, :volume_id => volume_id, :device => device)
401
+ end
402
+
403
+ # Server's private IPv4 address
404
+ # @return [String] private IPv4 address
405
+ def private_ip_address
406
+ addresses['private'].select{|a| a["version"] == 4}[0]["addr"] rescue ''
407
+ end
408
+
409
+ # Server's public IPv4 address
410
+ # @return [String] public IPv4 address
411
+ def public_ip_address
412
+ ipv4_address
413
+ end
414
+
415
+ # Is server is in ready state
416
+ # @param [String] ready_state By default state is ACTIVE
417
+ # @param [Array,String] error_states By default state is ERROR
418
+ # @return [Boolean] returns true if server is in a ready state
419
+ # @raise [Fog::Compute::RackspaceV2::InvalidServerStateException] if server state is an error state
420
+ def ready?(ready_state = ACTIVE, error_states=[ERROR])
421
+ if error_states
422
+ error_states = Array(error_states)
423
+ raise InvalidServerStateException.new(ready_state, state) if error_states.include?(state)
424
+ end
425
+ state == ready_state
426
+ end
427
+
428
+ # Reboot server
429
+ # @param [String<SOFT, HARD>] type 'SOFT' will do a soft reboot. 'HARD' will do a hard reboot.
430
+ # @return [Boolean] returns true if server is being rebooted
431
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
432
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
433
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
434
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
435
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Reboot_Server-d1e3371.html
436
+ #
437
+ # * State transition:
438
+ # * ACTIVE -> REBOOT -> ACTIVE (soft reboot)
439
+ # * ACTIVE -> HARD_REBOOT -> ACTIVE (hard reboot)
440
+ def reboot(type = 'SOFT')
441
+ requires :identity
442
+ service.reboot_server(identity, type)
443
+ self.state = type == 'SOFT' ? REBOOT : HARD_REBOOT
444
+ true
445
+ end
446
+
447
+ # Rebuild removes all data on the server and replaces it with the specified image. The id and all IP addresses remain the same.
448
+ # @param [String] image_id image to use for rebuild
449
+ # @return [Boolean] returns true if rebuild is in process
450
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
451
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
452
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
453
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
454
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Rebuild_Server-d1e3538.html
455
+ #
456
+ # * Status Transition:
457
+ # * ACTIVE -> REBUILD -> ACTIVE
458
+ # * ACTIVE -> REBUILD -> ERROR (on error)
459
+ def rebuild(image_id, options={})
460
+ requires :identity
461
+ service.rebuild_server(identity, image_id, options)
462
+ self.state = REBUILD
463
+ true
464
+ end
465
+
466
+ # Resize existing server to a different flavor, in essence, scaling the server up or down. The original server is saved for a period of time to allow rollback if there is a problem. All resizes should be tested and explicitly confirmed, at which time the original server is removed. All resizes are automatically confirmed after 24 hours if they are not confirmed or reverted.
467
+ # @param [String] flavor_id to resize
468
+ # @return [Boolean] returns true if resize is in process
469
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
470
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
471
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
472
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
473
+ # @note All resizes are automatically confirmed after 24 hours if you do not explicitly confirm or revert the resize.
474
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Resize_Server-d1e3707.html
475
+ # @see #confirm_resize
476
+ # @see #revert_resize
477
+ #
478
+ # * Status Transition:
479
+ # * ACTIVE -> QUEUE_RESIZE -> PREP_RESIZE -> VERIFY_RESIZE
480
+ # * ACTIVE -> QUEUE_RESIZE -> ACTIVE (on error)
481
+ def resize(flavor_id)
482
+ requires :identity
483
+ service.resize_server(identity, flavor_id)
484
+ self.state = RESIZE
485
+ true
486
+ end
487
+
488
+ # Confirms server resize operation
489
+ # @return [Boolean] returns true if resize has been confirmed
490
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
491
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
492
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
493
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
494
+ # @note All resizes are automatically confirmed after 24 hours if you do not explicitly confirm or revert the resize.
495
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Confirm_Resized_Server-d1e3868.html
496
+ # @see #resize
497
+ #
498
+ # * Status Transition:
499
+ # * VERIFY_RESIZE -> ACTIVE
500
+ # * VERIFY_RESIZE -> ERROR (on error)å
501
+ def confirm_resize
502
+ requires :identity
503
+ service.confirm_resize_server(identity)
504
+ true
505
+ end
506
+
507
+ # Reverts server resize operation
508
+ # @return [Boolean] returns true if resize is being reverted
509
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
510
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
511
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
512
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
513
+ # @note All resizes are automatically confirmed after 24 hours if you do not explicitly confirm or revert the resize.
514
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Revert_Resized_Server-d1e4024.html
515
+ # @see #resize
516
+ #
517
+ # * Status Transition:
518
+ # * VERIFY_RESIZE -> ACTIVE
519
+ # * VERIFY_RESIZE -> ERROR (on error)
520
+ def revert_resize
521
+ requires :identity
522
+ service.revert_resize_server(identity)
523
+ true
524
+ end
525
+
526
+ # Place existing server into rescue mode, allowing for offline editing of configuration. The original server's disk is attached to a new instance of the same base image for a period of time to facilitate working within rescue mode. The original server will be automatically restored after 90 minutes.
527
+ # @return [Boolean] returns true if call to put server in rescue mode reports success
528
+ # @raise [Fog::Rackspace::Errors::NotFound] - HTTP 404
529
+ # @raise [Fog::Rackspace::Errors::BadRequest] - HTTP 400
530
+ # @raise [Fog::Rackspace::Errors::InternalServerError] - HTTP 500
531
+ # @raise [Fog::Rackspace::Errors::ServiceError]
532
+ # @note Rescue mode is only guaranteed to be active for 90 minutes.
533
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/rescue_mode.html
534
+ # @see #unrescue
535
+ #
536
+ # * Status Transition:
537
+ # * ACTIVE -> PREP_RESCUE -> RESCUE
538
+ def rescue
539
+ requires :identity
540
+ data = service.rescue_server(identity)
541
+ merge_attributes(data.body)
542
+ true
543
+ end
544
+
545
+ # Remove existing server from rescue mode.
546
+ # @return [Boolean] returns true if call to remove server from rescue mode reports success
547
+ # @raise [Fog::Rackspace::Errors::NotFound] - HTTP 404
548
+ # @raise [Fog::Rackspace::Errors::BadRequest] - HTTP 400
549
+ # @raise [Fog::Rackspace::Errors::InternalServerError] - HTTP 500
550
+ # @raise [Fog::Rackspace::Errors::ServiceError]
551
+ # @note Rescue mode is only guaranteed to be active for 90 minutes.
552
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/exit_rescue_mode.html
553
+ # @see #rescue
554
+ #
555
+ # * Status Transition:
556
+ # * PREP_UNRESCUE -> ACTIVE
557
+ def unrescue
558
+ requires :identity
559
+ service.unrescue_server(identity)
560
+ self.state = ACTIVE
561
+ true
562
+ end
563
+
564
+ # Change admin password
565
+ # @param [String] password The administrator password.
566
+ # @return [Boolean] returns true if operation was scheduled
567
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
568
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
569
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
570
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
571
+ # @note Though Rackspace does not enforce complexity requirements for the password, the operating system might. If the password is not complex enough, the server might enter an ERROR state.
572
+ # @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Change_Password-d1e3234.html
573
+ #
574
+ # * Status Transition:
575
+ # * ACTIVE -> PASSWORD -> ACTIVE
576
+ # * ACTIVE -> PASSWORD -> ERROR (on error)
577
+ def change_admin_password(password)
578
+ requires :identity
579
+ service.change_server_password(identity, password)
580
+ self.state = PASSWORD
581
+ self.password = password
582
+ true
583
+ end
584
+
585
+ # Setup server for SSH access
586
+ # @see Servers#bootstrap
587
+ def setup(credentials = {})
588
+ requires :ssh_ip_address, :identity, :public_key, :username
589
+
590
+ retried_disconnect = false
591
+
592
+ commands = [
593
+ %{mkdir .ssh},
594
+ %{echo "#{public_key}" >> ~/.ssh/authorized_keys},
595
+ password_lock,
596
+ %{echo "#{Fog::JSON.encode(attributes)}" >> ~/attributes.json},
597
+ %{echo "#{Fog::JSON.encode(metadata)}" >> ~/metadata.json}
598
+ ]
599
+ commands.compact
600
+
601
+ self.password = nil if password_lock
602
+
603
+ Fog::SSH.new(ssh_ip_address, username, credentials).run(commands)
604
+ rescue Errno::ECONNREFUSED
605
+ sleep(1)
606
+ retry
607
+ # Ubuntu 12.04 images seem to be disconnecting during the ssh setup process.
608
+ # This rescue block is an effort to address that issue.
609
+ rescue Net::SSH::Disconnect
610
+ unless retried_disconnect
611
+ retried_disconnect = true
612
+ sleep(1)
613
+ retry
614
+ end
615
+ end
616
+
617
+ def virtual_interfaces
618
+ @virtual_interfaces ||= Fog::Compute::RackspaceV2::VirtualInterfaces.new :server => self, :service => service
619
+ end
620
+
621
+ # VNC Console URL
622
+ # @param [String] Type of vnc console to get ('novnc' or 'xvpvnc')
623
+ # @return [String] returns URL to vnc console
624
+ # @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
625
+ # @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
626
+ # @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
627
+ # @raise [Fog::Compute::RackspaceV2::ServiceError]
628
+ # @note This URL will time out due to inactivity
629
+ def get_vnc_console(console_type = "xvpvnc")
630
+ requires :identity
631
+ data = service.get_vnc_console(identity, console_type)
632
+ data.body['console']['url']
633
+ end
634
+
635
+ private
636
+
637
+ def adminPass=(new_admin_pass)
638
+ self.password = new_admin_pass
639
+ end
640
+
641
+ def password_lock
642
+ if !attributes[:no_passwd_lock].nil?
643
+ Fog::Logger.warning("Rackspace[:no_passwd_lock] is deprecated since it is now the default behavior, use Rackspace[:passwd_lock] instead")
644
+ end
645
+
646
+ "passwd -l #{username}" if attributes[:passwd_lock]
647
+ end
648
+
649
+ def user_data_encoded
650
+ self.user_data.nil? ? nil : [self.user_data].pack('m')
651
+ end
652
+ end
653
+ end
654
+ end
655
+ end