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,6 +1,7 @@
1
1
  module Fog
2
2
  module Rackspace
3
3
  class Queues
4
+
4
5
  class Real
5
6
 
6
7
  # This operation claims a set of messages (up to the value of the limit parameter) from oldest to newest and skips any messages that are already claimed.
@@ -33,7 +34,43 @@ module Fog
33
34
  :query => query
34
35
  )
35
36
  end
37
+
38
+ end
39
+
40
+ class Mock
41
+ def create_claim(queue_name, ttl, grace, options = {})
42
+ queue = mock_queue!(queue_name)
43
+
44
+ limit = options[:limit] || 10
45
+
46
+ claim = queue.add_claim(ttl, grace)
47
+
48
+ claimed = queue.messages.select do |message|
49
+ ! message.claimed?
50
+ end.first(limit)
51
+
52
+ if claimed.empty?
53
+ response = Excon::Response.new
54
+ response.status = 204
55
+ return response
56
+ end
57
+
58
+ claimed.each do |message|
59
+ message.claim = claim
60
+
61
+ # Extend the message's lifetime to include the lifetime of the claim, plus the claim's
62
+ # grace period.
63
+ message.extend_life
64
+ end
65
+
66
+ response = Excon::Response.new
67
+ response.status = 201
68
+ response.body = claimed.map { |msg| msg.to_h }
69
+ response.headers['Location'] = "#{PATH_BASE}/#{queue_name}/claims/#{claim.id}"
70
+ response
71
+ end
36
72
  end
73
+
37
74
  end
38
75
  end
39
76
  end
@@ -1,6 +1,7 @@
1
1
  module Fog
2
2
  module Rackspace
3
3
  class Queues
4
+
4
5
  class Real
5
6
 
6
7
  # This operation posts the specified message or messages.
@@ -31,6 +32,28 @@ module Fog
31
32
  )
32
33
  end
33
34
  end
35
+
36
+ class Mock
37
+ def create_message(client_id, queue_name, body, ttl)
38
+ queue = mock_queue!(queue_name)
39
+
40
+ raise BadRequest.new if body.nil? || body.empty?
41
+
42
+ # Ensure that any Symbol keys within +body+ are converted to Strings, just as being
43
+ # round-tripped through the API will.
44
+ converted = MockData.stringify(body)
45
+ message = queue.add_message(client_id, converted, ttl)
46
+
47
+ response = Excon::Response.new
48
+ response.status = 201
49
+ response.body = {
50
+ "partial" => false,
51
+ "resources" => ["#{PATH_BASE}/#{queue_name}/messages/#{message.id}"]
52
+ }
53
+ response
54
+ end
55
+ end
56
+
34
57
  end
35
58
  end
36
59
  end
@@ -1,8 +1,8 @@
1
1
  module Fog
2
2
  module Rackspace
3
3
  class Queues
4
- class Real
5
4
 
5
+ class Real
6
6
  # This operation creates a new queue.
7
7
  # The body of the request is empty.
8
8
  #
@@ -22,6 +22,20 @@ module Fog
22
22
  )
23
23
  end
24
24
  end
25
+
26
+ class Mock
27
+ def create_queue(queue_name)
28
+ raise MethodNotAllowed.new if queue_name.nil? || queue_name.empty?
29
+
30
+ existed = ! mock_queue(queue_name).nil?
31
+ add_queue(queue_name) unless existed
32
+
33
+ response = Excon::Response.new
34
+ response.status = existed ? 201 : 204
35
+ response
36
+ end
37
+ end
38
+
25
39
  end
26
40
  end
27
41
  end
@@ -1,6 +1,7 @@
1
1
  module Fog
2
2
  module Rackspace
3
3
  class Queues
4
+
4
5
  class Real
5
6
 
6
7
  # This operation immediately releases a claim, making any remaining, undeleted) messages that are associated with the claim available to other workers.
@@ -22,6 +23,23 @@ module Fog
22
23
  )
23
24
  end
24
25
  end
26
+
27
+ class Mock
28
+ def delete_claim(queue_name, claim_id)
29
+ queue = mock_queue!(queue_name)
30
+ claim = queue.claim!(claim_id)
31
+
32
+ claim.messages.each do |message|
33
+ message.claim = nil
34
+ end
35
+ queue.claims.delete(claim_id)
36
+
37
+ response = Excon::Response.new
38
+ response.status = 204
39
+ response
40
+ end
41
+ end
42
+
25
43
  end
26
44
  end
27
45
  end
@@ -1,6 +1,7 @@
1
1
  module Fog
2
2
  module Rackspace
3
3
  class Queues
4
+
4
5
  class Real
5
6
 
6
7
  # This operation immediately deletes the specified message.
@@ -26,7 +27,40 @@ module Fog
26
27
  :query => query
27
28
  )
28
29
  end
30
+
31
+ end
32
+
33
+ class Mock
34
+ def delete_message(queue_name, message_id, options = {})
35
+ queue = mock_queue!(queue_name)
36
+
37
+ claim_id = options[:claim_id]
38
+
39
+ message = queue.messages.detect { |m| m.id == message_id }
40
+
41
+ perform_delete = true
42
+ if message && message.claimed?
43
+ unless message.claim.id == claim_id
44
+ # Currently returns a 204 without deleting!
45
+ perform_delete = false
46
+ end
47
+ else
48
+ if claim_id
49
+ # Currently returns a 204 without deleting!
50
+ perform_delete = false
51
+ end
52
+ end
53
+
54
+ if perform_delete
55
+ queue.messages.reject! { |m| m.id == message_id }
56
+ end
57
+
58
+ response = Excon::Response.new
59
+ response.status = 204
60
+ response
61
+ end
29
62
  end
63
+
30
64
  end
31
65
  end
32
66
  end
@@ -1,6 +1,7 @@
1
1
  module Fog
2
2
  module Rackspace
3
3
  class Queues
4
+
4
5
  class Real
5
6
 
6
7
  # This operation immediately deletes a queue and all of its existing messages.
@@ -19,7 +20,18 @@ module Fog
19
20
  :path => "queues/#{queue_name}"
20
21
  )
21
22
  end
23
+
22
24
  end
25
+
26
+ class Mock
27
+ def delete_queue(queue_name)
28
+ data.delete(queue_name)
29
+ response = Excon::Response.new
30
+ response.status = 204
31
+ response
32
+ end
33
+ end
34
+
23
35
  end
24
36
  end
25
37
  end
@@ -1,6 +1,7 @@
1
1
  module Fog
2
2
  module Rackspace
3
3
  class Queues
4
+
4
5
  class Real
5
6
 
6
7
  # This operation queries the specified claim for the specified queue. Claims with malformed IDs or claims that are not found by ID are ignored.
@@ -20,7 +21,21 @@ module Fog
20
21
  :path => "queues/#{queue_name}/claims/#{claim_id}"
21
22
  )
22
23
  end
24
+
25
+ end
26
+
27
+ class Mock
28
+ def get_claim(queue_name, claim_id)
29
+ queue = mock_queue!(queue_name)
30
+ claim = queue.claim!(claim_id)
31
+
32
+ response = Excon::Response.new
33
+ response.status = 200
34
+ response.body = claim.to_h
35
+ response
36
+ end
23
37
  end
38
+
24
39
  end
25
40
  end
26
41
  end
@@ -1,6 +1,7 @@
1
1
  module Fog
2
2
  module Rackspace
3
3
  class Queues
4
+
4
5
  class Real
5
6
 
6
7
  # This operation gets the specified message from the specified queue.
@@ -22,7 +23,23 @@ module Fog
22
23
  :headers => { 'Client-ID' => client_id }
23
24
  )
24
25
  end
26
+
25
27
  end
28
+
29
+ class Mock
30
+ def get_message(client_id, queue_name, message_id)
31
+ queue = mock_queue!(queue_name)
32
+
33
+ message = queue.messages.find { |msg| msg.id == message_id }
34
+ raise NotFound.new unless message
35
+
36
+ response = Excon::Response.new
37
+ response.status = 200
38
+ response.body = message.to_h
39
+ response
40
+ end
41
+ end
42
+
26
43
  end
27
44
  end
28
45
  end
@@ -1,8 +1,8 @@
1
1
  module Fog
2
2
  module Rackspace
3
3
  class Queues
4
- class Real
5
4
 
5
+ class Real
6
6
  # This operation verifies whether the specified queue exists.
7
7
  #
8
8
  # @param [String] queue_name Specifies the name of the queue.
@@ -20,6 +20,19 @@ module Fog
20
20
  )
21
21
  end
22
22
  end
23
+
24
+ class Mock
25
+ def get_queue(queue_name)
26
+ if mock_queue(queue_name).nil?
27
+ raise NotFound.new
28
+ else
29
+ response = Excon::Response.new
30
+ response.status = 204
31
+ response
32
+ end
33
+ end
34
+ end
35
+
23
36
  end
24
37
  end
25
38
  end
@@ -1,6 +1,7 @@
1
1
  module Fog
2
2
  module Rackspace
3
3
  class Queues
4
+
4
5
  class Real
5
6
 
6
7
  # This operation returns queue statistics, including how many messages are in the queue, categorized by status.
@@ -19,7 +20,42 @@ module Fog
19
20
  :path => "queues/#{queue_name}/stats"
20
21
  )
21
22
  end
23
+
24
+ end
25
+
26
+ class Mock
27
+ def get_queue_stats(queue_name)
28
+ queue = mock_queue!(queue_name)
29
+
30
+ payload = {
31
+ "claimed" => queue.claimed,
32
+ "total" => queue.total,
33
+ "free" => queue.free
34
+ }
35
+
36
+ report_message(payload, "oldest", queue.oldest)
37
+ report_message(payload, "newest", queue.newest)
38
+
39
+ response = Excon::Response.new
40
+ response.status = 200
41
+ response.body = { "messages" => payload }
42
+ response
43
+ end
44
+
45
+ private
46
+
47
+ def report_message(payload, description, element)
48
+ return unless element
49
+
50
+ ctime = Time.at(element.created).utc
51
+ payload[description] = {
52
+ "age" => element.age,
53
+ "href" => element.href,
54
+ "created" => ctime.strftime("%Y-%m-%dT%I:%M:%SZ")
55
+ }
56
+ end
22
57
  end
58
+
23
59
  end
24
60
  end
25
61
  end
@@ -1,6 +1,7 @@
1
1
  module Fog
2
2
  module Rackspace
3
3
  class Queues
4
+
4
5
  class Real
5
6
 
6
7
  # This operation gets the message or messages in the specified queue.
@@ -38,6 +39,38 @@ module Fog
38
39
  )
39
40
  end
40
41
  end
42
+
43
+ class Mock
44
+ def list_messages(client_id, queue_name, options = {})
45
+ queue = mock_queue!(queue_name)
46
+
47
+ marker = (options[:marker] || "0").to_i
48
+ limit = options[:limit] || 10
49
+ echo = options[:echo] || false
50
+ include_claimed = options[:include_claimed] || false
51
+
52
+ next_marker = marker + limit + 1
53
+ messages = queue.messages[marker...next_marker]
54
+ messages.reject! { |m| m.producer_id == client_id } unless echo
55
+ messages.reject! { |m| m.claimed? } unless include_claimed
56
+
57
+ response = Excon::Response.new
58
+ if queue.messages.empty?
59
+ response.status = 204
60
+ else
61
+ response.status = 200
62
+ response.body = {
63
+ "messages" => messages.map { |m| m.to_h },
64
+ "links" => [{
65
+ "href" => "#{PATH_BASE}/#{queue_name}/messages?marker=#{next_marker}",
66
+ "rel" => "next"
67
+ }]
68
+ }
69
+ end
70
+ response
71
+ end
72
+ end
73
+
41
74
  end
42
75
  end
43
76
  end
@@ -1,8 +1,8 @@
1
1
  module Fog
2
2
  module Rackspace
3
3
  class Queues
4
- class Real
5
4
 
5
+ class Real
6
6
  # This operation lists queues for the project. The queues are sorted alphabetically by name.
7
7
  # @note A request to list queues when you have no queues in your account returns 204, instead of 200, because there was no information to send back.
8
8
  #
@@ -25,6 +25,40 @@ module Fog
25
25
  )
26
26
  end
27
27
  end
28
+
29
+ class Mock
30
+ def list_queues(options={})
31
+ limit = options[:limit] || 10
32
+ marker = options[:marker]
33
+ detailed = options[:detailed] || false
34
+
35
+ queue_names = data.keys.sort
36
+ start_index = marker.nil? ? 0 : queue_names.count { |name| name <= marker }
37
+ stop_index = start_index + limit
38
+
39
+ queue_names = queue_names[start_index..stop_index]
40
+ queue_data = queue_names.map do |qname|
41
+ { "href" => "#{PATH_BASE}/#{qname}", "name" => qname }
42
+ end
43
+
44
+ if detailed
45
+ queue_data.each { |d| d["metadata"] = data[d["name"]].metadata }
46
+ end
47
+
48
+ response = Excon::Response.new
49
+ if data.empty?
50
+ response.status = 204
51
+ else
52
+ response.status = 200
53
+ response.body = {
54
+ "queues" => queue_data,
55
+ "links" => [{ "href" => "#{PATH_BASE}?marker=#{queue_names.last}", "rel" => "next" }]
56
+ }
57
+ end
58
+ response
59
+ end
60
+ end
61
+
28
62
  end
29
63
  end
30
64
  end