fog-maestrodev 1.19.0.20140212012611 → 1.20.0.20140305101305

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (513) hide show
  1. checksums.yaml +8 -8
  2. data/.gitignore +2 -0
  3. data/.travis.yml +10 -0
  4. data/CONTRIBUTORS.md +694 -0
  5. data/Gemfile.1.8.7 +1 -1
  6. data/LICENSE.md +17 -17
  7. data/Rakefile +1 -1
  8. data/benchs/each_provider.sh +6 -0
  9. data/benchs/each_service.sh +6 -0
  10. data/benchs/load_times.rb +6 -0
  11. data/changelog.txt +312 -0
  12. data/fog.gemspec +3 -5
  13. data/lib/fog.rb +1 -0
  14. data/lib/fog/atmos.rb +1 -11
  15. data/lib/fog/atmos/core.rb +11 -0
  16. data/lib/fog/atmos/requests/storage/get_namespace.rb +1 -1
  17. data/lib/fog/atmos/requests/storage/head_namespace.rb +1 -1
  18. data/lib/fog/atmos/storage.rb +1 -1
  19. data/lib/fog/aws.rb +22 -323
  20. data/lib/fog/aws/auto_scaling.rb +1 -1
  21. data/lib/fog/aws/beanstalk.rb +1 -1
  22. data/lib/fog/aws/cdn.rb +1 -1
  23. data/lib/fog/aws/cloud_formation.rb +1 -1
  24. data/lib/fog/aws/cloud_watch.rb +1 -1
  25. data/lib/fog/aws/compute.rb +12 -1
  26. data/lib/fog/aws/core.rb +329 -0
  27. data/lib/fog/aws/data_pipeline.rb +1 -1
  28. data/lib/fog/aws/dns.rb +1 -1
  29. data/lib/fog/aws/dynamodb.rb +1 -1
  30. data/lib/fog/aws/elasticache.rb +10 -3
  31. data/lib/fog/aws/elb.rb +1 -1
  32. data/lib/fog/aws/emr.rb +1 -2
  33. data/lib/fog/aws/glacier.rb +1 -1
  34. data/lib/fog/aws/iam.rb +1 -1
  35. data/lib/fog/aws/models/compute/dhcp_option.rb +2 -2
  36. data/lib/fog/aws/models/compute/flavor.rb +2 -0
  37. data/lib/fog/aws/models/compute/flavors.rb +363 -49
  38. data/lib/fog/aws/models/compute/network_acl.rb +170 -0
  39. data/lib/fog/aws/models/compute/network_acls.rb +138 -0
  40. data/lib/fog/aws/models/compute/server.rb +2 -2
  41. data/lib/fog/aws/models/compute/servers.rb +7 -2
  42. data/lib/fog/aws/models/compute/subnet.rb +2 -2
  43. data/lib/fog/aws/models/elasticache/cluster.rb +6 -0
  44. data/lib/fog/aws/models/elasticache/subnet_group.rb +35 -0
  45. data/lib/fog/aws/models/elasticache/subnet_groups.rb +27 -0
  46. data/lib/fog/aws/models/rds/snapshot.rb +1 -0
  47. data/lib/fog/aws/models/storage/file.rb +1 -1
  48. data/lib/fog/aws/parsers/compute/create_network_acl.rb +28 -0
  49. data/lib/fog/aws/parsers/compute/create_subnet.rb +2 -3
  50. data/lib/fog/aws/parsers/compute/describe_network_acls.rb +42 -0
  51. data/lib/fog/aws/parsers/compute/describe_reserved_instances.rb +29 -3
  52. data/lib/fog/aws/parsers/compute/network_acl_parser.rb +105 -0
  53. data/lib/fog/aws/parsers/compute/network_interface_parser.rb +16 -0
  54. data/lib/fog/aws/parsers/compute/replace_network_acl_association.rb +20 -0
  55. data/lib/fog/aws/parsers/compute/run_instances.rb +1 -1
  56. data/lib/fog/aws/parsers/elasticache/cache_cluster_parser.rb +2 -2
  57. data/lib/fog/aws/parsers/elasticache/create_cache_subnet_group.rb +38 -0
  58. data/lib/fog/aws/parsers/elasticache/describe_cache_subnet_groups.rb +38 -0
  59. data/lib/fog/aws/parsers/elasticache/subnet_group_parser.rb +38 -0
  60. data/lib/fog/aws/parsers/iam/upload_server_certificate.rb +1 -1
  61. data/lib/fog/aws/parsers/rds/db_parser.rb +6 -0
  62. data/lib/fog/aws/parsers/rds/snapshot_parser.rb +1 -0
  63. data/lib/fog/aws/rds.rb +1 -1
  64. data/lib/fog/aws/redshift.rb +1 -1
  65. data/lib/fog/aws/requests/compute/create_network_acl.rb +105 -0
  66. data/lib/fog/aws/requests/compute/create_network_acl_entry.rb +80 -0
  67. data/lib/fog/aws/requests/compute/create_subnet.rb +14 -4
  68. data/lib/fog/aws/requests/compute/create_vpc.rb +7 -1
  69. data/lib/fog/aws/requests/compute/delete_network_acl.rb +52 -0
  70. data/lib/fog/aws/requests/compute/delete_network_acl_entry.rb +55 -0
  71. data/lib/fog/aws/requests/compute/delete_vpc.rb +4 -0
  72. data/lib/fog/aws/requests/compute/describe_network_acls.rb +104 -0
  73. data/lib/fog/aws/requests/compute/describe_network_interfaces.rb +4 -0
  74. data/lib/fog/aws/requests/compute/disassociate_address.rb +4 -3
  75. data/lib/fog/aws/requests/compute/replace_network_acl_association.rb +66 -0
  76. data/lib/fog/aws/requests/compute/replace_network_acl_entry.rb +81 -0
  77. data/lib/fog/aws/requests/compute/replace_route.rb +84 -0
  78. data/lib/fog/aws/requests/compute/request_spot_instances.rb +8 -0
  79. data/lib/fog/aws/requests/compute/run_instances.rb +23 -3
  80. data/lib/fog/aws/requests/data_pipeline/put_pipeline_definition.rb +29 -21
  81. data/lib/fog/aws/requests/elasticache/create_cache_cluster.rb +18 -11
  82. data/lib/fog/aws/requests/elasticache/create_cache_subnet_group.rb +66 -0
  83. data/lib/fog/aws/requests/elasticache/delete_cache_subnet_group.rb +40 -0
  84. data/lib/fog/aws/requests/elasticache/describe_cache_subnet_groups.rb +63 -0
  85. data/lib/fog/aws/requests/elb/create_load_balancer.rb +3 -2
  86. data/lib/fog/aws/requests/iam/delete_server_certificate.rb +3 -1
  87. data/lib/fog/aws/requests/rds/create_db_instance.rb +2 -0
  88. data/lib/fog/aws/requests/rds/create_db_instance_read_replica.rb +1 -0
  89. data/lib/fog/aws/requests/rds/create_db_snapshot.rb +1 -1
  90. data/lib/fog/aws/requests/rds/create_db_subnet_group.rb +2 -0
  91. data/lib/fog/aws/requests/rds/modify_db_instance.rb +1 -0
  92. data/lib/fog/aws/requests/storage/abort_multipart_upload.rb +18 -0
  93. data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +23 -0
  94. data/lib/fog/aws/requests/storage/initiate_multipart_upload.rb +24 -0
  95. data/lib/fog/aws/requests/storage/put_object.rb +18 -54
  96. data/lib/fog/aws/requests/storage/shared_mock_methods.rb +87 -0
  97. data/lib/fog/aws/requests/storage/upload_part.rb +18 -0
  98. data/lib/fog/aws/ses.rb +1 -1
  99. data/lib/fog/aws/simpledb.rb +1 -1
  100. data/lib/fog/aws/sns.rb +1 -2
  101. data/lib/fog/aws/sqs.rb +5 -4
  102. data/lib/fog/aws/storage.rb +15 -5
  103. data/lib/fog/aws/sts.rb +1 -1
  104. data/lib/fog/bare_metal_cloud.rb +1 -11
  105. data/lib/fog/bare_metal_cloud/compute.rb +1 -1
  106. data/lib/fog/bare_metal_cloud/core.rb +11 -0
  107. data/lib/fog/bin.rb +1 -0
  108. data/lib/fog/bin/rage4.rb +31 -0
  109. data/lib/fog/bluebox.rb +3 -13
  110. data/lib/fog/bluebox/blb.rb +2 -2
  111. data/lib/fog/bluebox/compute.rb +1 -1
  112. data/lib/fog/bluebox/core.rb +13 -0
  113. data/lib/fog/bluebox/dns.rb +2 -2
  114. data/lib/fog/bluebox/models/compute/server.rb +1 -1
  115. data/lib/fog/brightbox.rb +1 -10
  116. data/lib/fog/brightbox/compute.rb +20 -1
  117. data/lib/fog/brightbox/core.rb +10 -0
  118. data/lib/fog/brightbox/models/compute/cloud_ip.rb +5 -0
  119. data/lib/fog/brightbox/models/compute/database_server.rb +91 -0
  120. data/lib/fog/brightbox/models/compute/database_servers.rb +28 -0
  121. data/lib/fog/brightbox/models/compute/database_snapshot.rb +52 -0
  122. data/lib/fog/brightbox/models/compute/database_snapshots.rb +24 -0
  123. data/lib/fog/brightbox/models/compute/database_type.rb +19 -0
  124. data/lib/fog/brightbox/models/compute/database_types.rb +26 -0
  125. data/lib/fog/brightbox/requests/compute/create_database_server.rb +25 -0
  126. data/lib/fog/brightbox/requests/compute/delete_database_server.rb +26 -0
  127. data/lib/fog/brightbox/requests/compute/delete_database_snapshot.rb +26 -0
  128. data/lib/fog/brightbox/requests/compute/get_database_server.rb +19 -0
  129. data/lib/fog/brightbox/requests/compute/get_database_snapshot.rb +19 -0
  130. data/lib/fog/brightbox/requests/compute/get_database_type.rb +21 -0
  131. data/lib/fog/brightbox/requests/compute/list_database_servers.rb +17 -0
  132. data/lib/fog/brightbox/requests/compute/list_database_snapshots.rb +17 -0
  133. data/lib/fog/brightbox/requests/compute/list_database_types.rb +19 -0
  134. data/lib/fog/brightbox/requests/compute/reset_password_database_server.rb +19 -0
  135. data/lib/fog/brightbox/requests/compute/snapshot_database_server.rb +19 -0
  136. data/lib/fog/brightbox/requests/compute/update_database_server.rb +25 -0
  137. data/lib/fog/brightbox/requests/compute/update_database_snapshot.rb +26 -0
  138. data/lib/fog/clodo.rb +1 -34
  139. data/lib/fog/clodo/compute.rb +2 -0
  140. data/lib/fog/clodo/core.rb +34 -0
  141. data/lib/fog/clodo/models/compute/server.rb +2 -2
  142. data/lib/fog/cloudsigma.rb +1 -9
  143. data/lib/fog/cloudsigma/compute.rb +2 -2
  144. data/lib/fog/cloudsigma/core.rb +9 -0
  145. data/lib/fog/cloudstack.rb +1 -40
  146. data/lib/fog/cloudstack/compute.rb +1 -1
  147. data/lib/fog/cloudstack/core.rb +40 -0
  148. data/lib/fog/cloudstack/models/compute/server.rb +3 -0
  149. data/lib/fog/compute/models/server.rb +33 -7
  150. data/lib/fog/core/collection.rb +1 -3
  151. data/lib/fog/core/errors.rb +2 -0
  152. data/lib/fog/core/hmac.rb +3 -16
  153. data/lib/fog/core/logger.rb +3 -3
  154. data/lib/fog/core/provider.rb +1 -2
  155. data/lib/fog/digitalocean.rb +1 -9
  156. data/lib/fog/digitalocean/compute.rb +1 -1
  157. data/lib/fog/digitalocean/core.rb +9 -0
  158. data/lib/fog/digitalocean/models/compute/server.rb +3 -2
  159. data/lib/fog/digitalocean/models/compute/servers.rb +23 -4
  160. data/lib/fog/digitalocean/requests/compute/create_server.rb +2 -1
  161. data/lib/fog/digitalocean/requests/compute/destroy_server.rb +3 -1
  162. data/lib/fog/dnsimple.rb +1 -11
  163. data/lib/fog/dnsimple/core.rb +11 -0
  164. data/lib/fog/dnsimple/dns.rb +5 -2
  165. data/lib/fog/dnsimple/models/dns/record.rb +3 -3
  166. data/lib/fog/dnsimple/requests/dns/create_domain.rb +26 -22
  167. data/lib/fog/dnsimple/requests/dns/create_record.rb +21 -24
  168. data/lib/fog/dnsimple/requests/dns/delete_domain.rb +7 -6
  169. data/lib/fog/dnsimple/requests/dns/delete_record.rb +7 -5
  170. data/lib/fog/dnsimple/requests/dns/get_domain.rb +12 -18
  171. data/lib/fog/dnsimple/requests/dns/get_record.rb +11 -17
  172. data/lib/fog/dnsimple/requests/dns/list_domains.rb +7 -15
  173. data/lib/fog/dnsimple/requests/dns/list_records.rb +10 -15
  174. data/lib/fog/dnsimple/requests/dns/update_record.rb +14 -19
  175. data/lib/fog/dnsmadeeasy.rb +1 -11
  176. data/lib/fog/dnsmadeeasy/core.rb +11 -0
  177. data/lib/fog/dnsmadeeasy/dns.rb +1 -1
  178. data/lib/fog/dreamhost.rb +1 -11
  179. data/lib/fog/dreamhost/core.rb +11 -0
  180. data/lib/fog/dreamhost/dns.rb +1 -1
  181. data/lib/fog/dynect.rb +1 -26
  182. data/lib/fog/dynect/core.rb +26 -0
  183. data/lib/fog/dynect/dns.rb +1 -1
  184. data/lib/fog/dynect/requests/dns/put_record.rb +5 -4
  185. data/lib/fog/dynect/requests/dns/put_zone.rb +5 -4
  186. data/lib/fog/ecloud.rb +1 -31
  187. data/lib/fog/ecloud/compute.rb +1 -0
  188. data/lib/fog/ecloud/core.rb +31 -0
  189. data/lib/fog/glesys.rb +1 -11
  190. data/lib/fog/glesys/compute.rb +6 -4
  191. data/lib/fog/glesys/core.rb +11 -0
  192. data/lib/fog/glesys/models/compute/server.rb +2 -2
  193. data/lib/fog/go_grid.rb +1 -11
  194. data/lib/fog/go_grid/compute.rb +1 -1
  195. data/lib/fog/go_grid/core.rb +11 -0
  196. data/lib/fog/go_grid/models/compute/server.rb +2 -2
  197. data/lib/fog/google.rb +2 -24
  198. data/lib/fog/google/README.md +8 -5
  199. data/lib/fog/google/compute.rb +10 -3
  200. data/lib/fog/google/core.rb +24 -0
  201. data/lib/fog/google/models/compute/flavors.rb +1 -1
  202. data/lib/fog/google/models/compute/images.rb +2 -0
  203. data/lib/fog/google/models/compute/servers.rb +1 -1
  204. data/lib/fog/google/models/compute/zones.rb +1 -1
  205. data/lib/fog/google/requests/compute/attach_disk.rb +29 -0
  206. data/lib/fog/google/requests/compute/delete_address.rb +31 -0
  207. data/lib/fog/google/requests/compute/delete_snapshot.rb +35 -0
  208. data/lib/fog/google/requests/compute/detach_disk.rb +29 -0
  209. data/lib/fog/google/requests/compute/get_address.rb +31 -0
  210. data/lib/fog/google/requests/compute/insert_address.rb +30 -0
  211. data/lib/fog/google/requests/compute/insert_firewall.rb +6 -9
  212. data/lib/fog/google/requests/compute/list_addresses.rb +28 -0
  213. data/lib/fog/google/requests/compute/set_metadata.rb +4 -5
  214. data/lib/fog/google/requests/compute/set_tags.rb +33 -0
  215. data/lib/fog/google/requests/storage/get_bucket_acl.rb +2 -2
  216. data/lib/fog/google/requests/storage/put_bucket_acl.rb +39 -48
  217. data/lib/fog/google/requests/storage/put_object_acl.rb +55 -0
  218. data/lib/fog/google/storage.rb +2 -1
  219. data/lib/fog/hp.rb +9 -352
  220. data/lib/fog/hp/block_storage.rb +1 -1
  221. data/lib/fog/hp/block_storage_v2.rb +1 -1
  222. data/lib/fog/hp/cdn.rb +1 -1
  223. data/lib/fog/hp/compute.rb +1 -1
  224. data/lib/fog/hp/compute_v2.rb +1 -1
  225. data/lib/fog/hp/core.rb +352 -0
  226. data/lib/fog/hp/dns.rb +1 -1
  227. data/lib/fog/hp/lb.rb +1 -1
  228. data/lib/fog/hp/models/compute/server.rb +2 -2
  229. data/lib/fog/hp/models/compute_v2/server.rb +2 -2
  230. data/lib/fog/hp/models/storage/directory.rb +12 -6
  231. data/lib/fog/hp/network.rb +1 -1
  232. data/lib/fog/hp/storage.rb +1 -1
  233. data/lib/fog/ibm.rb +2 -176
  234. data/lib/fog/ibm/compute.rb +1 -1
  235. data/lib/fog/ibm/core.rb +176 -0
  236. data/lib/fog/ibm/storage.rb +1 -1
  237. data/lib/fog/internet_archive.rb +1 -292
  238. data/lib/fog/internet_archive/core.rb +292 -0
  239. data/lib/fog/internet_archive/models/storage/file.rb +1 -1
  240. data/lib/fog/internet_archive/storage.rb +1 -1
  241. data/lib/fog/joyent.rb +2 -10
  242. data/lib/fog/joyent/compute.rb +1 -1
  243. data/lib/fog/joyent/core.rb +10 -0
  244. data/lib/fog/joyent/errors.rb +1 -0
  245. data/lib/fog/libvirt.rb +1 -11
  246. data/lib/fog/libvirt/compute.rb +1 -1
  247. data/lib/fog/libvirt/core.rb +11 -0
  248. data/lib/fog/libvirt/models/compute/README.md +1 -1
  249. data/lib/fog/libvirt/models/compute/server.rb +6 -6
  250. data/lib/fog/libvirt/models/compute/templates/volume.xml.erb +12 -0
  251. data/lib/fog/libvirt/models/compute/volume.rb +1 -0
  252. data/lib/fog/linode.rb +2 -10
  253. data/lib/fog/linode/compute.rb +1 -1
  254. data/lib/fog/linode/core.rb +10 -0
  255. data/lib/fog/linode/dns.rb +1 -1
  256. data/lib/fog/local.rb +1 -11
  257. data/lib/fog/local/core.rb +11 -0
  258. data/lib/fog/local/storage.rb +1 -1
  259. data/lib/fog/ninefold.rb +1 -12
  260. data/lib/fog/ninefold/compute.rb +1 -1
  261. data/lib/fog/ninefold/core.rb +12 -0
  262. data/lib/fog/openstack.rb +8 -249
  263. data/lib/fog/openstack/compute.rb +3 -1
  264. data/lib/fog/openstack/core.rb +249 -0
  265. data/lib/fog/openstack/docs/compute.md +681 -0
  266. data/lib/fog/openstack/docs/getting_started.md +81 -0
  267. data/lib/fog/openstack/docs/storage.md +441 -0
  268. data/lib/fog/openstack/identity.rb +1 -1
  269. data/lib/fog/openstack/image.rb +1 -1
  270. data/lib/fog/openstack/metering.rb +1 -1
  271. data/lib/fog/openstack/models/compute/server.rb +13 -5
  272. data/lib/fog/openstack/models/compute/servers.rb +13 -0
  273. data/lib/fog/openstack/models/network/network.rb +9 -11
  274. data/lib/fog/openstack/models/network/security_group.rb +32 -0
  275. data/lib/fog/openstack/models/network/security_group_rule.rb +33 -0
  276. data/lib/fog/openstack/models/network/security_group_rules.rb +33 -0
  277. data/lib/fog/openstack/models/network/security_groups.rb +34 -0
  278. data/lib/fog/openstack/models/storage/directories.rb +1 -0
  279. data/lib/fog/openstack/network.rb +19 -1
  280. data/lib/fog/openstack/orchestration.rb +1 -1
  281. data/lib/fog/openstack/requests/compute/add_security_group.rb +24 -0
  282. data/lib/fog/openstack/requests/compute/create_flavor.rb +1 -1
  283. data/lib/fog/openstack/requests/compute/create_server.rb +3 -3
  284. data/lib/fog/openstack/requests/compute/remove_security_group.rb +24 -0
  285. data/lib/fog/openstack/requests/image/update_image_members.rb +2 -2
  286. data/lib/fog/openstack/requests/network/create_security_group.rb +94 -0
  287. data/lib/fog/openstack/requests/network/create_security_group_rule.rb +79 -0
  288. data/lib/fog/openstack/requests/network/delete_security_group.rb +32 -0
  289. data/lib/fog/openstack/requests/network/delete_security_group_rule.rb +36 -0
  290. data/lib/fog/openstack/requests/network/get_security_group.rb +52 -0
  291. data/lib/fog/openstack/requests/network/get_security_group_rule.rb +47 -0
  292. data/lib/fog/openstack/requests/network/list_networks.rb +0 -1
  293. data/lib/fog/openstack/requests/network/list_security_group_rules.rb +52 -0
  294. data/lib/fog/openstack/requests/network/list_security_groups.rb +57 -0
  295. data/lib/fog/openstack/storage.rb +2 -2
  296. data/lib/fog/openstack/volume.rb +1 -1
  297. data/lib/fog/openvz.rb +1 -9
  298. data/lib/fog/openvz/compute.rb +1 -1
  299. data/lib/fog/openvz/core.rb +9 -0
  300. data/lib/fog/ovirt.rb +1 -17
  301. data/lib/fog/ovirt/compute.rb +2 -0
  302. data/lib/fog/ovirt/core.rb +17 -0
  303. data/lib/fog/rackspace.rb +12 -145
  304. data/lib/fog/rackspace/auto_scale.rb +1 -1
  305. data/lib/fog/rackspace/block_storage.rb +5 -1
  306. data/lib/fog/rackspace/cdn.rb +22 -16
  307. data/lib/fog/rackspace/compute.rb +1 -1
  308. data/lib/fog/rackspace/compute_v2.rb +6 -2
  309. data/lib/fog/rackspace/core.rb +145 -0
  310. data/lib/fog/rackspace/databases.rb +5 -1
  311. data/lib/fog/rackspace/dns.rb +1 -1
  312. data/lib/fog/rackspace/docs/compute_v2.md +2 -10
  313. data/lib/fog/rackspace/errors.rb +1 -1
  314. data/lib/fog/rackspace/examples/storage/upload_file.rb +1 -1
  315. data/lib/fog/rackspace/identity.rb +26 -16
  316. data/lib/fog/rackspace/load_balancers.rb +7 -1
  317. data/lib/fog/rackspace/mock_data.rb +17 -0
  318. data/lib/fog/rackspace/models/compute/server.rb +2 -2
  319. data/lib/fog/rackspace/models/compute_v2/key_pair.rb +1 -1
  320. data/lib/fog/rackspace/models/compute_v2/server.rb +42 -5
  321. data/lib/fog/rackspace/models/monitoring/entities.rb +1 -1
  322. data/lib/fog/rackspace/models/queues/claim.rb +9 -1
  323. data/lib/fog/rackspace/models/storage/directory.rb +5 -2
  324. data/lib/fog/rackspace/models/storage/file.rb +14 -0
  325. data/lib/fog/rackspace/monitoring.rb +11 -2
  326. data/lib/fog/rackspace/queues.rb +318 -34
  327. data/lib/fog/rackspace/requests/compute_v2/create_keypair.rb +16 -5
  328. data/lib/fog/rackspace/requests/compute_v2/create_server.rb +7 -1
  329. data/lib/fog/rackspace/requests/compute_v2/delete_keypair.rb +1 -1
  330. data/lib/fog/rackspace/requests/identity/create_token.rb +192 -0
  331. data/lib/fog/rackspace/requests/identity/list_tenants.rb +23 -0
  332. data/lib/fog/rackspace/requests/monitoring/get_agent.rb +45 -0
  333. data/lib/fog/rackspace/requests/monitoring/get_cpus_info.rb +63 -0
  334. data/lib/fog/rackspace/requests/monitoring/get_disks_info.rb +56 -0
  335. data/lib/fog/rackspace/requests/monitoring/get_filesystems_info.rb +64 -0
  336. data/lib/fog/rackspace/requests/monitoring/get_logged_in_user_info.rb +58 -0
  337. data/lib/fog/rackspace/requests/monitoring/get_memory_info.rb +59 -0
  338. data/lib/fog/rackspace/requests/monitoring/get_network_interfaces_info.rb +91 -0
  339. data/lib/fog/rackspace/requests/monitoring/get_processes_info.rb +72 -0
  340. data/lib/fog/rackspace/requests/monitoring/get_system_info.rb +53 -0
  341. data/lib/fog/rackspace/requests/monitoring/list_agents.rb +62 -0
  342. data/lib/fog/rackspace/requests/queues/create_claim.rb +37 -0
  343. data/lib/fog/rackspace/requests/queues/create_message.rb +23 -0
  344. data/lib/fog/rackspace/requests/queues/create_queue.rb +15 -1
  345. data/lib/fog/rackspace/requests/queues/delete_claim.rb +18 -0
  346. data/lib/fog/rackspace/requests/queues/delete_message.rb +34 -0
  347. data/lib/fog/rackspace/requests/queues/delete_queue.rb +12 -0
  348. data/lib/fog/rackspace/requests/queues/get_claim.rb +15 -0
  349. data/lib/fog/rackspace/requests/queues/get_message.rb +17 -0
  350. data/lib/fog/rackspace/requests/queues/get_queue.rb +14 -1
  351. data/lib/fog/rackspace/requests/queues/get_queue_stats.rb +36 -0
  352. data/lib/fog/rackspace/requests/queues/list_messages.rb +33 -0
  353. data/lib/fog/rackspace/requests/queues/list_queues.rb +35 -1
  354. data/lib/fog/rackspace/requests/queues/update_claim.rb +17 -0
  355. data/lib/fog/rackspace/requests/storage/delete_container.rb +15 -0
  356. data/lib/fog/rackspace/requests/storage/delete_multiple_objects.rb +57 -0
  357. data/lib/fog/rackspace/requests/storage/delete_object.rb +14 -0
  358. data/lib/fog/rackspace/requests/storage/delete_static_large_object.rb +33 -0
  359. data/lib/fog/rackspace/requests/storage/extract_archive.rb +39 -0
  360. data/lib/fog/rackspace/requests/storage/get_container.rb +25 -0
  361. data/lib/fog/rackspace/requests/storage/get_containers.rb +17 -0
  362. data/lib/fog/rackspace/requests/storage/get_object.rb +26 -0
  363. data/lib/fog/rackspace/requests/storage/get_object_http_url.rb +9 -2
  364. data/lib/fog/rackspace/requests/storage/get_object_https_url.rb +8 -1
  365. data/lib/fog/rackspace/requests/storage/head_container.rb +12 -0
  366. data/lib/fog/rackspace/requests/storage/head_containers.rb +19 -0
  367. data/lib/fog/rackspace/requests/storage/head_object.rb +26 -0
  368. data/lib/fog/rackspace/requests/storage/post_set_meta_temp_url_key.rb +10 -0
  369. data/lib/fog/rackspace/requests/storage/put_container.rb +16 -0
  370. data/lib/fog/rackspace/requests/storage/put_dynamic_obj_manifest.rb +23 -0
  371. data/lib/fog/rackspace/requests/storage/put_object.rb +39 -0
  372. data/lib/fog/rackspace/requests/storage/put_object_manifest.rb +9 -1
  373. data/lib/fog/rackspace/requests/storage/put_static_obj_manifest.rb +48 -0
  374. data/lib/fog/rackspace/storage.rb +320 -67
  375. data/lib/fog/rage4.rb +2 -0
  376. data/lib/fog/rage4/core.rb +11 -0
  377. data/lib/fog/rage4/dns.rb +74 -0
  378. data/lib/fog/rage4/models/dns/record.rb +77 -0
  379. data/lib/fog/rage4/models/dns/records.rb +42 -0
  380. data/lib/fog/rage4/models/dns/zone.rb +46 -0
  381. data/lib/fog/rage4/models/dns/zones.rb +34 -0
  382. data/lib/fog/rage4/requests/dns/create_domain.rb +33 -0
  383. data/lib/fog/rage4/requests/dns/create_domain_vanity.rb +34 -0
  384. data/lib/fog/rage4/requests/dns/create_record.rb +65 -0
  385. data/lib/fog/rage4/requests/dns/create_reverse_domain_4.rb +32 -0
  386. data/lib/fog/rage4/requests/dns/delete_domain.rb +28 -0
  387. data/lib/fog/rage4/requests/dns/delete_record.rb +28 -0
  388. data/lib/fog/rage4/requests/dns/get_domain.rb +30 -0
  389. data/lib/fog/rage4/requests/dns/get_domain_by_name.rb +30 -0
  390. data/lib/fog/rage4/requests/dns/list_domains.rb +41 -0
  391. data/lib/fog/rage4/requests/dns/list_geo_regions.rb +27 -0
  392. data/lib/fog/rage4/requests/dns/list_record_types.rb +26 -0
  393. data/lib/fog/rage4/requests/dns/list_records.rb +31 -0
  394. data/lib/fog/rage4/requests/dns/set_record_failover.rb +29 -0
  395. data/lib/fog/rage4/requests/dns/show_current_usage.rb +25 -0
  396. data/lib/fog/rage4/requests/dns/show_global_usage.rb +25 -0
  397. data/lib/fog/rage4/requests/dns/update_domain.rb +43 -0
  398. data/lib/fog/rage4/requests/dns/update_record.rb +64 -0
  399. data/lib/fog/riakcs.rb +2 -122
  400. data/lib/fog/riakcs/core.rb +122 -0
  401. data/lib/fog/riakcs/provisioning.rb +1 -1
  402. data/lib/fog/riakcs/usage.rb +1 -1
  403. data/lib/fog/serverlove.rb +1 -10
  404. data/lib/fog/serverlove/compute.rb +2 -0
  405. data/lib/fog/serverlove/core.rb +10 -0
  406. data/lib/fog/storm_on_demand.rb +9 -20
  407. data/lib/fog/storm_on_demand/account.rb +1 -1
  408. data/lib/fog/storm_on_demand/billing.rb +1 -1
  409. data/lib/fog/storm_on_demand/compute.rb +1 -1
  410. data/lib/fog/storm_on_demand/core.rb +20 -0
  411. data/lib/fog/storm_on_demand/dns.rb +1 -1
  412. data/lib/fog/storm_on_demand/monitoring.rb +1 -1
  413. data/lib/fog/storm_on_demand/network.rb +1 -1
  414. data/lib/fog/storm_on_demand/shared.rb +0 -1
  415. data/lib/fog/storm_on_demand/storage.rb +1 -1
  416. data/lib/fog/storm_on_demand/support.rb +1 -1
  417. data/lib/fog/storm_on_demand/vpn.rb +1 -1
  418. data/lib/fog/vcloud.rb +1 -11
  419. data/lib/fog/vcloud/compute.rb +1 -1
  420. data/lib/fog/vcloud/core.rb +11 -0
  421. data/lib/fog/vcloud_director.rb +1 -67
  422. data/lib/fog/vcloud_director/compute.rb +1 -1
  423. data/lib/fog/vcloud_director/core.rb +67 -0
  424. data/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb +1 -1
  425. data/lib/fog/version.rb +1 -1
  426. data/lib/fog/vmfusion.rb +1 -11
  427. data/lib/fog/vmfusion/compute.rb +1 -1
  428. data/lib/fog/vmfusion/core.rb +11 -0
  429. data/lib/fog/vmfusion/models/compute/server.rb +5 -5
  430. data/lib/fog/voxel.rb +1 -16
  431. data/lib/fog/voxel/compute.rb +1 -1
  432. data/lib/fog/voxel/core.rb +16 -0
  433. data/lib/fog/vsphere.rb +1 -17
  434. data/lib/fog/vsphere/compute.rb +1 -0
  435. data/lib/fog/vsphere/core.rb +17 -0
  436. data/lib/fog/xenserver.rb +1 -83
  437. data/lib/fog/xenserver/compute.rb +1 -1
  438. data/lib/fog/xenserver/core.rb +83 -0
  439. data/lib/fog/xenserver/models/compute/storage_manager.rb +1 -1
  440. data/lib/fog/zerigo.rb +1 -11
  441. data/lib/fog/zerigo/core.rb +11 -0
  442. data/lib/fog/zerigo/dns.rb +1 -1
  443. data/lib/tasks/changelog_task.rb +2 -0
  444. data/tests/aws/models/compute/network_acl_tests.rb +109 -0
  445. data/tests/aws/models/compute/network_acls_tests.rb +7 -0
  446. data/tests/aws/models/elasticache/subnet_groups_tests.rb +44 -0
  447. data/tests/aws/requests/compute/network_acl_tests.rb +86 -0
  448. data/tests/aws/requests/compute/route_tests.rb +64 -3
  449. data/tests/aws/requests/compute/subnet_tests.rb +18 -11
  450. data/tests/aws/requests/elasticache/helper.rb +19 -0
  451. data/tests/aws/requests/elasticache/subnet_group_tests.rb +52 -0
  452. data/tests/aws/requests/iam/server_certificate_tests.rb +3 -0
  453. data/tests/aws/requests/rds/subnet_groups_tests.rb +1 -1
  454. data/tests/aws/requests/storage/multipart_upload_tests.rb +3 -14
  455. data/tests/brightbox/compute/schema.rb +118 -2
  456. data/tests/brightbox/helper.rb +1 -0
  457. data/tests/brightbox/models/compute/cloud_ip_tests.rb +32 -0
  458. data/tests/brightbox/models/compute/database_server_tests.rb +66 -0
  459. data/tests/brightbox/models/compute/database_snapshot_tests.rb +26 -0
  460. data/tests/brightbox/models/compute/database_type_tests.rb +27 -0
  461. data/tests/brightbox/requests/compute/database_server_tests.rb +54 -0
  462. data/tests/brightbox/requests/compute/database_snapsnot_tests.rb +47 -0
  463. data/tests/brightbox/requests/compute/database_type_tests.rb +17 -0
  464. data/tests/compute/models/server_tests.rb +20 -2
  465. data/tests/digitalocean/helper.rb +9 -4
  466. data/tests/digitalocean/models/compute/server_tests.rb +1 -0
  467. data/tests/digitalocean/models/compute/servers_tests.rb +19 -4
  468. data/tests/digitalocean/requests/compute/create_server_tests.rb +13 -6
  469. data/tests/digitalocean/requests/compute/list_servers_tests.rb +2 -1
  470. data/tests/dns/helper.rb +3 -0
  471. data/tests/dns/models/record_tests.rb +1 -1
  472. data/tests/dns/models/records_tests.rb +1 -1
  473. data/tests/dns/models/zone_tests.rb +1 -1
  474. data/tests/dns/models/zones_tests.rb +1 -1
  475. data/tests/helper.rb +7 -1
  476. data/tests/helpers/compute/server_helper.rb +1 -0
  477. data/tests/helpers/compute/servers_helper.rb +1 -0
  478. data/tests/openstack/models/network/security_group_rule_tests.rb +27 -0
  479. data/tests/openstack/models/network/security_group_rules_tests.rb +25 -0
  480. data/tests/openstack/models/network/security_group_tests.rb +17 -0
  481. data/tests/openstack/models/network/security_groups_tests.rb +16 -0
  482. data/tests/openstack/requests/compute/helper.rb +5 -0
  483. data/tests/openstack/requests/compute/server_tests.rb +11 -0
  484. data/tests/openstack/requests/network/security_group_rule_tests.rb +58 -0
  485. data/tests/openstack/requests/network/security_group_tests.rb +43 -0
  486. data/tests/rackspace/identity_tests.rb +0 -4
  487. data/tests/rackspace/models/compute_v2/server_tests.rb +36 -8
  488. data/tests/rackspace/models/queues/claim_tests.rb +1 -3
  489. data/tests/rackspace/models/queues/claims_tests.rb +1 -3
  490. data/tests/rackspace/models/queues/message_tests.rb +1 -3
  491. data/tests/rackspace/models/queues/messages_tests.rb +1 -3
  492. data/tests/rackspace/models/queues/queue_tests.rb +1 -3
  493. data/tests/rackspace/models/queues/queues_tests.rb +1 -3
  494. data/tests/rackspace/models/storage/account_tests.rb +0 -2
  495. data/tests/rackspace/models/storage/directories_tests.rb +0 -3
  496. data/tests/rackspace/models/storage/directory_tests.rb +2 -5
  497. data/tests/rackspace/models/storage/file_tests.rb +49 -2
  498. data/tests/rackspace/models/storage/files_tests.rb +1 -4
  499. data/tests/rackspace/queues_tests.rb +0 -13
  500. data/tests/rackspace/requests/identity/token_tests.rb +1 -3
  501. data/tests/rackspace/requests/monitoring/agent_tests.rb +42 -0
  502. data/tests/rackspace/requests/queues/claim_tests.rb +1 -3
  503. data/tests/rackspace/requests/queues/messages_tests.rb +0 -6
  504. data/tests/rackspace/requests/queues/queues_tests.rb +0 -5
  505. data/tests/rackspace/requests/storage/account_tests.rb +0 -1
  506. data/tests/rackspace/requests/storage/container_tests.rb +7 -11
  507. data/tests/rackspace/requests/storage/large_object_tests.rb +33 -43
  508. data/tests/rackspace/requests/storage/object_tests.rb +2 -27
  509. data/tests/rackspace/storage_tests.rb +9 -15
  510. data/tests/rage4/requests/dns/dns_tests.rb +241 -0
  511. data/tests/vcloud/requests/compute/disk_configure_tests.rb +0 -8
  512. metadata +190 -33
  513. data/lib/fog/brightbox/requests/compute/destroy_user_collaboration.rb +0 -21
@@ -1,3 +1,5 @@
1
+ require 'fog/ovirt/core'
2
+
1
3
  module Fog
2
4
  module Compute
3
5
  class Ovirt < Fog::Service
@@ -0,0 +1,17 @@
1
+ require 'fog/core'
2
+
3
+ module Fog
4
+ module Ovirt
5
+
6
+ extend Fog::Provider
7
+
8
+ module Errors
9
+ class ServiceError < Fog::Errors::Error; end
10
+ class SecurityError < ServiceError; end
11
+ class NotFound < ServiceError; end
12
+ end
13
+
14
+ service(:compute, 'Compute')
15
+
16
+ end
17
+ end
data/lib/fog/rackspace.rb CHANGED
@@ -1,145 +1,12 @@
1
- require 'fog/core'
2
- require 'fog/rackspace/mock_data'
3
- require 'fog/rackspace/service'
4
- require 'fog/rackspace/errors'
5
-
6
- module Fog
7
- module Rackspace
8
- extend Fog::Provider
9
-
10
- US_AUTH_ENDPOINT = 'https://identity.api.rackspacecloud.com/v2.0' unless defined? US_AUTH_ENDPOINT
11
- UK_AUTH_ENDPOINT = 'https://lon.identity.api.rackspacecloud.com/v2.0' unless defined? UK_AUTH_ENDPOINT
12
-
13
- module Errors
14
- class ServiceError < Fog::Errors::Error
15
- attr_reader :response_data, :status_code, :transaction_id
16
-
17
- def to_s
18
- status = status_code ? "HTTP #{status_code}" : "HTTP <Unknown>"
19
- "[#{status} | #{transaction_id}] #{super}"
20
- end
21
-
22
- def self.slurp(error, service=nil)
23
- data = nil
24
- message = nil
25
- status_code = nil
26
-
27
- if error.response
28
- status_code = error.response.status
29
- unless error.response.body.empty?
30
- begin
31
- data = Fog::JSON.decode(error.response.body)
32
- message = extract_message(data)
33
- rescue => e
34
- Fog::Logger.warning("Received exception '#{e}' while decoding>> #{error.response.body}")
35
- message = error.response.body
36
- data = error.response.body
37
- end
38
- end
39
- end
40
-
41
- new_error = super(error, message)
42
- new_error.instance_variable_set(:@response_data, data)
43
- new_error.instance_variable_set(:@status_code, status_code)
44
- new_error.set_transaction_id(error, service)
45
- new_error
46
- end
47
-
48
- def set_transaction_id(error, service)
49
- return unless service && service.respond_to?(:request_id_header) && error.response
50
- @transaction_id = error.response.headers[service.request_id_header]
51
- end
52
-
53
- def self.extract_message(data)
54
- if data.is_a?(Hash)
55
- message = data.values.first['message'] if data.values.first.is_a?(Hash)
56
- message ||= data['message']
57
- end
58
- message || data.inspect
59
- end
60
- end
61
-
62
- class InternalServerError < ServiceError; end
63
- class Conflict < ServiceError; end
64
- class ServiceUnavailable < ServiceError; end
65
- class MethodNotAllowed < ServiceError; end
66
- class BadRequest < ServiceError
67
- attr_reader :validation_errors
68
-
69
- def to_s
70
- "#{super} - #{validation_errors}"
71
- end
72
-
73
- def self.slurp(error, service=nil)
74
- new_error = super(error)
75
- unless new_error.response_data.nil? or new_error.response_data['badRequest'].nil?
76
- new_error.instance_variable_set(:@validation_errors, new_error.response_data['badRequest']['validationErrors'])
77
- end
78
-
79
- status_code = error.response ? error.response.status : nil
80
- new_error.instance_variable_set(:@status_code, status_code)
81
- new_error.set_transaction_id(error, service)
82
- new_error
83
- end
84
- end
85
- end
86
-
87
- service(:auto_scale, 'rackspace/auto_scale', 'AutoScale')
88
- service(:block_storage, 'rackspace/block_storage', 'BlockStorage')
89
- service(:cdn, 'rackspace/cdn', 'CDN')
90
- service(:compute, 'rackspace/compute', 'Compute')
91
- service(:compute_v2, 'rackspace/compute_v2', 'Compute v2')
92
- service(:dns, 'rackspace/dns', 'DNS')
93
- service(:storage, 'rackspace/storage', 'Storage')
94
- service(:load_balancers, 'rackspace/load_balancers', 'LoadBalancers')
95
- service(:identity, 'rackspace/identity', 'Identity')
96
- service(:databases, 'rackspace/databases', 'Databases')
97
- service(:monitoring, 'rackspace/monitoring', 'Monitoring')
98
- service(:queues, 'rackspace/queues', 'Queues')
99
-
100
- def self.authenticate(options, connection_options = {})
101
- rackspace_auth_url = options[:rackspace_auth_url]
102
- rackspace_auth_url ||= options[:rackspace_endpoint] == Fog::Compute::RackspaceV2::LON_ENDPOINT ? "lon.auth.api.rackspacecloud.com" : "auth.api.rackspacecloud.com"
103
- url = rackspace_auth_url.match(/^https?:/) ? \
104
- rackspace_auth_url : 'https://' + rackspace_auth_url
105
- uri = URI.parse(url)
106
- connection = Fog::Connection.new(url, false, connection_options)
107
- @rackspace_api_key = options[:rackspace_api_key]
108
- @rackspace_username = options[:rackspace_username]
109
- response = connection.request({
110
- :expects => [200, 204],
111
- :headers => {
112
- 'X-Auth-Key' => @rackspace_api_key,
113
- 'X-Auth-User' => @rackspace_username
114
- },
115
- :method => 'GET',
116
- :path => (uri.path and not uri.path.empty?) ? uri.path : 'v1.0'
117
- })
118
- response.headers.reject do |key, value|
119
- !['X-Server-Management-Url', 'X-Storage-Url', 'X-CDN-Management-Url', 'X-Auth-Token'].include?(key)
120
- end
121
- end
122
-
123
- def self.json_response?(response)
124
- return false unless response && response.headers
125
- response.headers['Content-Type'] =~ %r{application/json}i ? true : false
126
- end
127
-
128
- def self.normalize_url(endpoint)
129
- return nil unless endpoint
130
- str = endpoint.chomp " "
131
- str = str.chomp "/"
132
- str.downcase
133
- end
134
-
135
- # CGI.escape, but without special treatment on spaces
136
- def self.escape(str,extra_exclude_chars = '')
137
- # '-' is a special character inside a regex class so it must be first or last.
138
- # Add extra excludes before the final '-' so it always remains trailing, otherwise
139
- # an unwanted range is created by mistake.
140
- str.gsub(/([^a-zA-Z0-9_.#{extra_exclude_chars}-]+)/) do
141
- '%' + $1.unpack('H2' * $1.bytesize).join('%').upcase
142
- end
143
- end
144
- end
145
- end
1
+ require 'fog/rackspace/auto_scale'
2
+ require 'fog/rackspace/block_storage'
3
+ require 'fog/rackspace/cdn'
4
+ require 'fog/rackspace/compute'
5
+ require 'fog/rackspace/compute_v2'
6
+ require 'fog/rackspace/databases'
7
+ require 'fog/rackspace/dns'
8
+ require 'fog/rackspace/identity'
9
+ require 'fog/rackspace/load_balancers'
10
+ require 'fog/rackspace/monitoring'
11
+ require 'fog/rackspace/queues'
12
+ require 'fog/rackspace/storage'
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'rackspace'))
1
+ require 'fog/rackspace/core'
2
2
 
3
3
  module Fog
4
4
  module Rackspace
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'rackspace'))
1
+ require 'fog/rackspace/core'
2
2
 
3
3
  module Fog
4
4
  module Rackspace
@@ -154,6 +154,10 @@ module Fog
154
154
  regions = @identity_service.service_catalog.display_service_regions(service_name)
155
155
  Fog::Logger.deprecation("Please specify region using :rackspace_region rather than :rackspace_endpoint. Valid region for :rackspace_region are #{regions}.")
156
156
  end
157
+
158
+ unless options[:rackspace_region]
159
+ Fog::Logger.deprecation("Default region support will be removed in an upcoming release. Please switch to manually setting your endpoint. This requires settng the :rackspace_region option")
160
+ end
157
161
  end
158
162
 
159
163
  def append_tenant_v1(credentials)
@@ -1,4 +1,4 @@
1
- require 'fog/rackspace'
1
+ require 'fog/rackspace/core'
2
2
  require 'fog/cdn'
3
3
 
4
4
  module Fog
@@ -23,6 +23,17 @@ module Fog
23
23
  "X-Cdn-Ssl-Uri" => :ssl_uri
24
24
  }.freeze
25
25
 
26
+ def apply_options(options)
27
+ # api_key and username missing from instance variable sets
28
+ @rackspace_api_key = options[:rackspace_api_key]
29
+ @rackspace_username = options[:rackspace_username]
30
+
31
+ @connection_options = options[:connection_options] || {}
32
+ @rackspace_auth_url = options[:rackspace_auth_url]
33
+ @rackspace_cdn_url = options[:rackspace_cdn_url]
34
+ @rackspace_region = options[:rackspace_region] || :dfw
35
+ end
36
+
26
37
  def service_name
27
38
  :cloudFilesCDN
28
39
  end
@@ -35,6 +46,12 @@ module Fog
35
46
  "X-Trans-Id"
36
47
  end
37
48
 
49
+ # Returns true if CDN service is enabled
50
+ # @return [Boolean]
51
+ def enabled?
52
+ @enabled
53
+ end
54
+
38
55
  def endpoint_uri(service_endpoint_url=nil)
39
56
  @uri = super(@rackspace_cdn_url || service_endpoint_url, :rackspace_cdn_url)
40
57
  end
@@ -97,7 +114,9 @@ module Fog
97
114
  end
98
115
 
99
116
  def initialize(options={})
100
- @rackspace_username = options[:rackspace_username]
117
+ apply_options(options)
118
+ authenticate(options)
119
+ @enabled = !! endpoint_uri
101
120
  end
102
121
 
103
122
  def data
@@ -119,14 +138,7 @@ module Fog
119
138
  include Base
120
139
 
121
140
  def initialize(options={})
122
- # api_key and username missing from instance variable sets
123
- @rackspace_api_key = options[:rackspace_api_key]
124
- @rackspace_username = options[:rackspace_username]
125
-
126
- @connection_options = options[:connection_options] || {}
127
- @rackspace_auth_url = options[:rackspace_auth_url]
128
- @rackspace_cdn_url = options[:rackspace_cdn_url]
129
- @rackspace_region = options[:rackspace_region] || :dfw
141
+ apply_options(options)
130
142
  authenticate(options)
131
143
  @enabled = false
132
144
  @persistent = options[:persistent] || false
@@ -137,12 +149,6 @@ module Fog
137
149
  end
138
150
  end
139
151
 
140
- # Returns true if CDN service is enabled
141
- # @return [Boolean]
142
- def enabled?
143
- @enabled
144
- end
145
-
146
152
  # Resets CDN connection
147
153
  def reload
148
154
  @cdn_connection.reset
@@ -1,4 +1,4 @@
1
- require 'fog/rackspace'
1
+ require 'fog/rackspace/core'
2
2
  require 'fog/compute'
3
3
 
4
4
  module Fog
@@ -1,4 +1,4 @@
1
- require 'fog/rackspace'
1
+ require 'fog/rackspace/core'
2
2
  require 'fog/compute'
3
3
 
4
4
  module Fog
@@ -208,7 +208,7 @@ module Fog
208
208
  end
209
209
  else
210
210
  #if we are using auth1 and the endpoint is not set, default to DFW_ENDPOINT for historical reasons
211
- @rackspace_endpoint ||= DFW_ENDPOINT
211
+ @rackspace_endpoint ||= DFW_ENDPOINT
212
212
  end
213
213
  end
214
214
 
@@ -219,6 +219,10 @@ module Fog
219
219
  regions = @identity_service.service_catalog.display_service_regions(service_name)
220
220
  Fog::Logger.deprecation("Please specify region using :rackspace_region rather than :rackspace_endpoint. Valid regions for :rackspace_region are #{regions}.")
221
221
  end
222
+
223
+ unless options[:rackspace_region]
224
+ Fog::Logger.deprecation("Default region support will be removed in an upcoming release. Please switch to manually setting your endpoint. This requires settng the :rackspace_region option")
225
+ end
222
226
  end
223
227
 
224
228
  def append_tenant_v1(credentials)
@@ -0,0 +1,145 @@
1
+ require 'fog/core'
2
+ require 'fog/rackspace/mock_data'
3
+ require 'fog/rackspace/service'
4
+ require 'fog/rackspace/errors'
5
+
6
+ module Fog
7
+ module Rackspace
8
+ extend Fog::Provider
9
+
10
+ US_AUTH_ENDPOINT = 'https://identity.api.rackspacecloud.com/v2.0' unless defined? US_AUTH_ENDPOINT
11
+ UK_AUTH_ENDPOINT = 'https://lon.identity.api.rackspacecloud.com/v2.0' unless defined? UK_AUTH_ENDPOINT
12
+
13
+ module Errors
14
+ class ServiceError < Fog::Errors::Error
15
+ attr_reader :response_data, :status_code, :transaction_id
16
+
17
+ def to_s
18
+ status = status_code ? "HTTP #{status_code}" : "HTTP <Unknown>"
19
+ "[#{status} | #{transaction_id}] #{super}"
20
+ end
21
+
22
+ def self.slurp(error, service=nil)
23
+ data = nil
24
+ message = nil
25
+ status_code = nil
26
+
27
+ if error.response
28
+ status_code = error.response.status
29
+ unless error.response.body.empty?
30
+ begin
31
+ data = Fog::JSON.decode(error.response.body)
32
+ message = extract_message(data)
33
+ rescue => e
34
+ Fog::Logger.warning("Received exception '#{e}' while decoding>> #{error.response.body}")
35
+ message = error.response.body
36
+ data = error.response.body
37
+ end
38
+ end
39
+ end
40
+
41
+ new_error = super(error, message)
42
+ new_error.instance_variable_set(:@response_data, data)
43
+ new_error.instance_variable_set(:@status_code, status_code)
44
+ new_error.set_transaction_id(error, service)
45
+ new_error
46
+ end
47
+
48
+ def set_transaction_id(error, service)
49
+ return unless service && service.respond_to?(:request_id_header) && error.response
50
+ @transaction_id = error.response.headers[service.request_id_header]
51
+ end
52
+
53
+ def self.extract_message(data)
54
+ if data.is_a?(Hash)
55
+ message = data.values.first['message'] if data.values.first.is_a?(Hash)
56
+ message ||= data['message']
57
+ end
58
+ message || data.inspect
59
+ end
60
+ end
61
+
62
+ class InternalServerError < ServiceError; end
63
+ class Conflict < ServiceError; end
64
+ class ServiceUnavailable < ServiceError; end
65
+ class MethodNotAllowed < ServiceError; end
66
+ class BadRequest < ServiceError
67
+ attr_reader :validation_errors
68
+
69
+ def to_s
70
+ "#{super} - #{validation_errors}"
71
+ end
72
+
73
+ def self.slurp(error, service=nil)
74
+ new_error = super(error)
75
+ unless new_error.response_data.nil? or new_error.response_data['badRequest'].nil?
76
+ new_error.instance_variable_set(:@validation_errors, new_error.response_data['badRequest']['validationErrors'])
77
+ end
78
+
79
+ status_code = error.response ? error.response.status : nil
80
+ new_error.instance_variable_set(:@status_code, status_code)
81
+ new_error.set_transaction_id(error, service)
82
+ new_error
83
+ end
84
+ end
85
+ end
86
+
87
+ service(:auto_scale, 'AutoScale')
88
+ service(:block_storage, 'BlockStorage')
89
+ service(:cdn, 'CDN')
90
+ service(:compute, 'Compute')
91
+ service(:compute_v2, 'Compute v2')
92
+ service(:dns, 'DNS')
93
+ service(:storage, 'Storage')
94
+ service(:load_balancers, 'LoadBalancers')
95
+ service(:identity, 'Identity')
96
+ service(:databases, 'Databases')
97
+ service(:monitoring, 'Monitoring')
98
+ service(:queues, 'Queues')
99
+
100
+ def self.authenticate(options, connection_options = {})
101
+ rackspace_auth_url = options[:rackspace_auth_url]
102
+ rackspace_auth_url ||= options[:rackspace_endpoint] == Fog::Compute::RackspaceV2::LON_ENDPOINT ? "lon.auth.api.rackspacecloud.com" : "auth.api.rackspacecloud.com"
103
+ url = rackspace_auth_url.match(/^https?:/) ? \
104
+ rackspace_auth_url : 'https://' + rackspace_auth_url
105
+ uri = URI.parse(url)
106
+ connection = Fog::Connection.new(url, false, connection_options)
107
+ @rackspace_api_key = options[:rackspace_api_key]
108
+ @rackspace_username = options[:rackspace_username]
109
+ response = connection.request({
110
+ :expects => [200, 204],
111
+ :headers => {
112
+ 'X-Auth-Key' => @rackspace_api_key,
113
+ 'X-Auth-User' => @rackspace_username
114
+ },
115
+ :method => 'GET',
116
+ :path => (uri.path and not uri.path.empty?) ? uri.path : 'v1.0'
117
+ })
118
+ response.headers.reject do |key, value|
119
+ !['X-Server-Management-Url', 'X-Storage-Url', 'X-CDN-Management-Url', 'X-Auth-Token'].include?(key)
120
+ end
121
+ end
122
+
123
+ def self.json_response?(response)
124
+ return false unless response && response.headers
125
+ response.get_header('Content-Type') =~ %r{application/json}i ? true : false
126
+ end
127
+
128
+ def self.normalize_url(endpoint)
129
+ return nil unless endpoint
130
+ str = endpoint.chomp " "
131
+ str = str.chomp "/"
132
+ str.downcase
133
+ end
134
+
135
+ # CGI.escape, but without special treatment on spaces
136
+ def self.escape(str,extra_exclude_chars = '')
137
+ # '-' is a special character inside a regex class so it must be first or last.
138
+ # Add extra excludes before the final '-' so it always remains trailing, otherwise
139
+ # an unwanted range is created by mistake.
140
+ str.gsub(/([^a-zA-Z0-9_.#{extra_exclude_chars}-]+)/) do
141
+ '%' + $1.unpack('H2' * $1.bytesize).join('%').upcase
142
+ end
143
+ end
144
+ end
145
+ end