fog 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (236) hide show
  1. data/.document +1 -1
  2. data/.irbrc +5 -10
  3. data/{README.rdoc → README.md} +66 -61
  4. data/Rakefile +4 -6
  5. data/changelog.txt +491 -0
  6. data/docs/about/users.markdown +1 -0
  7. data/fog.gemspec +4 -4
  8. data/lib/fog.rb +1 -1
  9. data/lib/fog/aws.rb +4 -0
  10. data/lib/fog/aws/auto_scaling.rb +3 -0
  11. data/lib/fog/aws/cloud_watch.rb +28 -0
  12. data/lib/fog/aws/compute.rb +7 -1
  13. data/lib/fog/aws/elasticache.rb +64 -6
  14. data/lib/fog/aws/models/auto_scaling/configuration.rb +3 -1
  15. data/lib/fog/aws/models/auto_scaling/group.rb +10 -9
  16. data/lib/fog/aws/models/auto_scaling/policies.rb +33 -0
  17. data/lib/fog/aws/models/auto_scaling/policy.rb +46 -0
  18. data/lib/fog/aws/models/cloud_watch/alarm.rb +50 -2
  19. data/lib/fog/aws/models/cloud_watch/alarms.rb +18 -1
  20. data/lib/fog/aws/models/compute/address.rb +2 -2
  21. data/lib/fog/aws/models/dns/records.rb +5 -0
  22. data/lib/fog/aws/models/elasticache/cluster.rb +1 -1
  23. data/lib/fog/aws/models/iam/users.rb +26 -4
  24. data/lib/fog/aws/parsers/auto_scaling/describe_policies.rb +7 -5
  25. data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +1 -1
  26. data/lib/fog/aws/rds.rb +1 -1
  27. data/lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb +8 -0
  28. data/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb +1 -2
  29. data/lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb +10 -2
  30. data/lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb +1 -1
  31. data/lib/fog/aws/requests/auto_scaling/delete_policy.rb +10 -1
  32. data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb +0 -1
  33. data/lib/fog/aws/requests/auto_scaling/describe_policies.rb +13 -1
  34. data/lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb +20 -1
  35. data/lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb +1 -1
  36. data/lib/fog/aws/requests/cloud_watch/delete_alarms.rb +19 -1
  37. data/lib/fog/aws/requests/cloud_watch/describe_alarms.rb +20 -2
  38. data/lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb +9 -0
  39. data/lib/fog/aws/requests/compute/allocate_address.rb +4 -5
  40. data/lib/fog/aws/requests/compute/create_dhcp_options.rb +6 -5
  41. data/lib/fog/aws/requests/compute/create_internet_gateway.rb +7 -6
  42. data/lib/fog/aws/requests/compute/create_subnet.rb +11 -10
  43. data/lib/fog/aws/requests/compute/create_vpc.rb +8 -7
  44. data/lib/fog/aws/requests/compute/delete_dhcp_options.rb +1 -0
  45. data/lib/fog/aws/requests/compute/delete_internet_gateway.rb +1 -0
  46. data/lib/fog/aws/requests/compute/delete_subnet.rb +1 -0
  47. data/lib/fog/aws/requests/compute/delete_vpc.rb +2 -1
  48. data/lib/fog/aws/requests/compute/describe_availability_zones.rb +1 -0
  49. data/lib/fog/aws/requests/compute/describe_dhcp_options.rb +1 -8
  50. data/lib/fog/aws/requests/compute/describe_instances.rb +3 -1
  51. data/lib/fog/aws/requests/compute/describe_internet_gateways.rb +1 -8
  52. data/lib/fog/aws/requests/compute/describe_subnets.rb +1 -9
  53. data/lib/fog/aws/requests/compute/describe_vpcs.rb +1 -8
  54. data/lib/fog/aws/requests/compute/release_address.rb +12 -4
  55. data/lib/fog/aws/requests/compute/start_instances.rb +1 -0
  56. data/lib/fog/aws/requests/compute/stop_instances.rb +1 -0
  57. data/lib/fog/aws/requests/elasticache/create_cache_cluster.rb +26 -2
  58. data/lib/fog/aws/requests/elasticache/delete_cache_cluster.rb +10 -1
  59. data/lib/fog/aws/requests/elasticache/describe_cache_clusters.rb +16 -1
  60. data/lib/fog/aws/requests/elasticache/modify_cache_cluster.rb +35 -3
  61. data/lib/fog/aws/requests/elasticache/reboot_cache_cluster.rb +10 -2
  62. data/lib/fog/aws/requests/elb/create_load_balancer.rb +1 -1
  63. data/lib/fog/aws/requests/rds/describe_db_instances.rb +3 -3
  64. data/lib/fog/aws/sqs.rb +1 -1
  65. data/lib/fog/aws/storage.rb +1 -1
  66. data/lib/fog/bin/rackspace.rb +4 -0
  67. data/lib/fog/cloudstack/compute.rb +25 -18
  68. data/lib/fog/cloudstack/models/compute/image.rb +34 -34
  69. data/lib/fog/cloudstack/models/compute/job.rb +14 -1
  70. data/lib/fog/cloudstack/models/compute/jobs.rb +1 -1
  71. data/lib/fog/cloudstack/models/compute/security_group.rb +50 -0
  72. data/lib/fog/cloudstack/models/compute/security_group_rule.rb +62 -0
  73. data/lib/fog/cloudstack/models/compute/security_group_rules.rb +37 -0
  74. data/lib/fog/cloudstack/models/compute/security_groups.rb +27 -0
  75. data/lib/fog/cloudstack/models/compute/server.rb +63 -39
  76. data/lib/fog/cloudstack/models/compute/volume.rb +3 -7
  77. data/lib/fog/cloudstack/models/compute/zone.rb +1 -2
  78. data/lib/fog/cloudstack/requests/compute/assign_virtual_machine.rb +18 -0
  79. data/lib/fog/cloudstack/requests/compute/authorize_security_group_egress.rb +68 -0
  80. data/lib/fog/cloudstack/requests/compute/authorize_security_group_ingress.rb +55 -4
  81. data/lib/fog/cloudstack/requests/compute/create_security_group.rb +12 -4
  82. data/lib/fog/cloudstack/requests/compute/create_zone.rb +20 -0
  83. data/lib/fog/cloudstack/requests/compute/delete_security_group.rb +17 -0
  84. data/lib/fog/cloudstack/requests/compute/destroy_virtual_machine.rb +23 -1
  85. data/lib/fog/cloudstack/requests/compute/list_firewall_rules.rb +15 -0
  86. data/lib/fog/cloudstack/requests/compute/list_security_groups.rb +22 -4
  87. data/lib/fog/cloudstack/requests/compute/query_async_job_result.rb +15 -3
  88. data/lib/fog/cloudstack/requests/compute/revoke_security_group_egress.rb +42 -0
  89. data/lib/fog/cloudstack/requests/compute/revoke_security_group_ingress.rb +29 -3
  90. data/lib/fog/core.rb +1 -0
  91. data/lib/fog/core/attributes.rb +1 -1
  92. data/lib/fog/core/current_machine.rb +2 -2
  93. data/lib/fog/core/scp.rb +8 -0
  94. data/lib/fog/core/ssh.rb +8 -0
  95. data/lib/fog/dynect/dns.rb +14 -5
  96. data/lib/fog/ibm/requests/compute/create_instance.rb +1 -1
  97. data/lib/fog/libvirt/requests/compute/create_volume.rb +1 -1
  98. data/lib/fog/libvirt/requests/compute/list_volumes.rb +1 -1
  99. data/lib/fog/local/models/storage/file.rb +12 -1
  100. data/lib/fog/local/storage.rb +25 -1
  101. data/lib/fog/ninefold/compute.rb +1 -0
  102. data/lib/fog/openstack.rb +3 -1
  103. data/lib/fog/openstack/compute.rb +13 -2
  104. data/lib/fog/openstack/models/compute/servers.rb +10 -2
  105. data/lib/fog/openstack/requests/compute/create_flavor.rb +2 -2
  106. data/lib/fog/openstack/requests/compute/create_security_group.rb +1 -1
  107. data/lib/fog/openstack/requests/compute/create_server.rb +1 -1
  108. data/lib/fog/openstack/requests/compute/create_volume.rb +1 -1
  109. data/lib/fog/openstack/requests/compute/get_flavor_details.rb +7 -7
  110. data/lib/fog/openstack/requests/compute/get_quota.rb +1 -12
  111. data/lib/fog/openstack/requests/compute/get_quota_defaults.rb +1 -12
  112. data/lib/fog/openstack/requests/compute/get_volume_details.rb +1 -1
  113. data/lib/fog/openstack/requests/compute/list_flavors.rb +7 -7
  114. data/lib/fog/openstack/requests/compute/list_flavors_detail.rb +7 -7
  115. data/lib/fog/openstack/requests/compute/list_security_groups.rb +7 -7
  116. data/lib/fog/openstack/requests/compute/list_servers_detail.rb +4 -3
  117. data/lib/fog/openstack/requests/compute/list_volumes.rb +6 -8
  118. data/lib/fog/openstack/requests/compute/update_quota.rb +2 -15
  119. data/lib/fog/openstack/requests/identity/delete_role.rb +1 -1
  120. data/lib/fog/openstack/requests/identity/list_roles.rb +1 -1
  121. data/lib/fog/openstack/requests/image/create_image.rb +3 -1
  122. data/lib/fog/openstack/requests/image/list_public_images.rb +19 -1
  123. data/lib/fog/openstack/requests/image/list_public_images_detailed.rb +20 -2
  124. data/lib/fog/openstack/requests/image/update_image.rb +1 -1
  125. data/lib/fog/rackspace.rb +2 -0
  126. data/lib/fog/rackspace/databases.rb +121 -0
  127. data/lib/fog/rackspace/identity.rb +83 -0
  128. data/lib/fog/rackspace/load_balancers.rb +3 -0
  129. data/lib/fog/rackspace/models/databases/database.rb +32 -0
  130. data/lib/fog/rackspace/models/databases/databases.rb +31 -0
  131. data/lib/fog/rackspace/models/databases/flavor.rb +15 -0
  132. data/lib/fog/rackspace/models/databases/flavors.rb +25 -0
  133. data/lib/fog/rackspace/models/databases/instance.rb +104 -0
  134. data/lib/fog/rackspace/models/databases/instances.rb +25 -0
  135. data/lib/fog/rackspace/models/databases/user.rb +32 -0
  136. data/lib/fog/rackspace/models/databases/users.rb +31 -0
  137. data/lib/fog/rackspace/models/identity/credential.rb +13 -0
  138. data/lib/fog/rackspace/models/identity/credentials.rb +32 -0
  139. data/lib/fog/rackspace/models/identity/role.rb +14 -0
  140. data/lib/fog/rackspace/models/identity/roles.rb +32 -0
  141. data/lib/fog/rackspace/models/identity/tenant.rb +15 -0
  142. data/lib/fog/rackspace/models/identity/tenants.rb +28 -0
  143. data/lib/fog/rackspace/models/identity/user.rb +53 -0
  144. data/lib/fog/rackspace/models/identity/users.rb +36 -0
  145. data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +17 -0
  146. data/lib/fog/rackspace/requests/databases/check_root_user.rb +15 -0
  147. data/lib/fog/rackspace/requests/databases/create_database.rb +24 -0
  148. data/lib/fog/rackspace/requests/databases/create_instance.rb +26 -0
  149. data/lib/fog/rackspace/requests/databases/create_user.rb +24 -0
  150. data/lib/fog/rackspace/requests/databases/delete_database.rb +15 -0
  151. data/lib/fog/rackspace/requests/databases/delete_instance.rb +15 -0
  152. data/lib/fog/rackspace/requests/databases/delete_user.rb +15 -0
  153. data/lib/fog/rackspace/requests/databases/enable_root_user.rb +15 -0
  154. data/lib/fog/rackspace/requests/databases/get_flavor.rb +15 -0
  155. data/lib/fog/rackspace/requests/databases/get_instance.rb +15 -0
  156. data/lib/fog/rackspace/requests/databases/list_databases.rb +15 -0
  157. data/lib/fog/rackspace/requests/databases/list_flavors.rb +15 -0
  158. data/lib/fog/rackspace/requests/databases/list_instances.rb +15 -0
  159. data/lib/fog/rackspace/requests/databases/list_users.rb +15 -0
  160. data/lib/fog/rackspace/requests/databases/resize_instance.rb +22 -0
  161. data/lib/fog/rackspace/requests/databases/resize_instance_volume.rb +24 -0
  162. data/lib/fog/rackspace/requests/databases/restart_instance.rb +20 -0
  163. data/lib/fog/rackspace/requests/identity/create_token.rb +25 -0
  164. data/lib/fog/rackspace/requests/identity/create_user.rb +25 -0
  165. data/lib/fog/rackspace/requests/identity/delete_user.rb +15 -0
  166. data/lib/fog/rackspace/requests/identity/get_credentials.rb +15 -0
  167. data/lib/fog/rackspace/requests/identity/get_user_by_id.rb +15 -0
  168. data/lib/fog/rackspace/requests/identity/get_user_by_name.rb +15 -0
  169. data/lib/fog/rackspace/requests/identity/list_credentials.rb +22 -0
  170. data/lib/fog/rackspace/requests/identity/list_tenants.rb +22 -0
  171. data/lib/fog/rackspace/requests/identity/list_user_roles.rb +22 -0
  172. data/lib/fog/rackspace/requests/identity/list_users.rb +22 -0
  173. data/lib/fog/rackspace/requests/identity/update_user.rb +24 -0
  174. data/lib/fog/rackspace/requests/load_balancers/get_ssl_termination.rb +15 -0
  175. data/lib/fog/rackspace/requests/load_balancers/remove_ssl_termination.rb +15 -0
  176. data/lib/fog/rackspace/requests/load_balancers/set_ssl_termination.rb +31 -0
  177. data/lib/fog/rackspace/storage.rb +1 -1
  178. data/lib/fog/vsphere/models/compute/server.rb +1 -0
  179. data/lib/fog/vsphere/requests/compute/vm_clone.rb +2 -2
  180. data/tests/aws/models/compute/address_tests.rb +2 -1
  181. data/tests/aws/models/compute/volume_tests.rb +1 -1
  182. data/tests/aws/models/dns/records_tests.rb +19 -1
  183. data/tests/aws/models/storage/directory_tests.rb +1 -1
  184. data/tests/aws/models/storage/url_tests.rb +7 -1
  185. data/tests/aws/requests/auto_scaling/auto_scaling_tests.rb +4 -2
  186. data/tests/aws/requests/compute/address_tests.rb +19 -1
  187. data/tests/aws/requests/elasticache/cache_cluster_tests.rb +4 -4
  188. data/tests/aws/requests/elb/helper.rb +13 -2
  189. data/tests/aws/requests/iam/access_key_tests.rb +1 -3
  190. data/tests/cloudstack/compute/models/security_group_rule_tests.rb +29 -0
  191. data/tests/cloudstack/compute/models/security_group_tests.rb +16 -0
  192. data/tests/cloudstack/compute/models/security_groups_tests.rb +19 -0
  193. data/tests/cloudstack/compute/models/server_tests.rb +18 -0
  194. data/tests/cloudstack/compute/models/volume_tests.rb +34 -0
  195. data/tests/cloudstack/compute/models/volumes_tests.rb +17 -0
  196. data/tests/compute/helper.rb +10 -3
  197. data/tests/core/current_machine_tests.rb +32 -0
  198. data/tests/helper.rb +1 -1
  199. data/tests/helpers/mock_helper.rb +3 -0
  200. data/tests/hp/requests/compute/address_tests.rb +2 -1
  201. data/tests/joyent/requests/compute/datasets_tests.rb +12 -3
  202. data/tests/local/models/file_tests.rb +43 -0
  203. data/tests/local/storage_tests.rb +40 -0
  204. data/tests/openstack/requests/compute/flavor_tests.rb +1 -1
  205. data/tests/openstack/requests/compute/server_tests.rb +3 -3
  206. data/tests/openstack/requests/compute/volume_tests.rb +1 -1
  207. data/tests/openstack/requests/identity/role_tests.rb +1 -1
  208. data/tests/rackspace/databases_tests.rb +26 -0
  209. data/tests/rackspace/models/databases/database_tests.rb +17 -0
  210. data/tests/rackspace/models/databases/databases_tests.rb +17 -0
  211. data/tests/rackspace/models/databases/flavors_tests.rb +20 -0
  212. data/tests/rackspace/models/databases/instance_tests.rb +43 -0
  213. data/tests/rackspace/models/databases/instances_tests.rb +14 -0
  214. data/tests/rackspace/models/databases/user_tests.rb +21 -0
  215. data/tests/rackspace/models/databases/users_tests.rb +21 -0
  216. data/tests/rackspace/models/identity/credentials_tests.rb +16 -0
  217. data/tests/rackspace/models/identity/roles_tests.rb +16 -0
  218. data/tests/rackspace/models/identity/tenants_tests.rb +21 -0
  219. data/tests/rackspace/models/identity/user_tests.rb +17 -0
  220. data/tests/rackspace/models/identity/users_tests.rb +17 -0
  221. data/tests/rackspace/models/load_balancers/load_balancer_tests.rb +20 -0
  222. data/tests/rackspace/requests/databases/database_tests.rb +36 -0
  223. data/tests/rackspace/requests/databases/flavor_tests.rb +16 -0
  224. data/tests/rackspace/requests/databases/helper.rb +84 -0
  225. data/tests/rackspace/requests/databases/instance_tests.rb +77 -0
  226. data/tests/rackspace/requests/databases/user_tests.rb +37 -0
  227. data/tests/rackspace/requests/identity/tenants_tests.rb +21 -0
  228. data/tests/rackspace/requests/identity/token_tests.rb +63 -0
  229. data/tests/rackspace/requests/identity/user_tests.rb +107 -0
  230. data/tests/rackspace/requests/load_balancers/helper.rb +70 -1
  231. data/tests/rackspace/requests/load_balancers/ssl_termination_tests.rb +38 -0
  232. data/tests/storage/models/file_tests.rb +1 -1
  233. metadata +129 -13
  234. data/spec/core/current_machine_spec.rb +0 -32
  235. data/spec/lib/fog/aws/parsers/sqs/receive_message_spec.rb +0 -58
  236. data/spec/spec_helper.rb +0 -8
data/.document CHANGED
@@ -1,3 +1,3 @@
1
- README.rdoc
1
+ README.md
2
2
  lib/**/*.rb
3
3
  bin/*
data/.irbrc CHANGED
@@ -50,16 +50,11 @@ def connect_openstack(username, password, tenant = nil, url = 'http://192.168.27
50
50
 
51
51
  parameters.merge!(:openstack_tenant => tenant) if tenant
52
52
 
53
- identity = Fog::Identity.new(parameters)
54
- compute = Fog::Compute.new(parameters)
55
- volume = Fog::Volume.new(parameters)
56
- image = Fog::Image.new(parameters)
57
-
58
- connections[username.to_sym] = {
59
- :identity => identity,
60
- :compute => compute ,
61
- :image => image
62
- }
53
+ key = username.to_sym
54
+ set_service(key, Fog::Identity, parameters)
55
+ set_service(key, Fog::Compute, parameters)
56
+ set_service(key, Fog::Volume, parameters)
57
+ set_service(key, Fog::Image, parameters)
63
58
  end
64
59
 
65
60
  def connect(parameters)
@@ -1,4 +1,4 @@
1
- http://geemus.s3.amazonaws.com/fog.png
1
+ ![fog](http://geemus.s3.amazonaws.com/fog.png)
2
2
 
3
3
  fog is the Ruby cloud computing library, top to bottom:
4
4
 
@@ -6,104 +6,109 @@ fog is the Ruby cloud computing library, top to bottom:
6
6
  * Requests allow power users to get the most out of the features of each individual cloud.
7
7
  * Mocks make testing and integrating a breeze.
8
8
 
9
- == Getting Started
9
+ ## Getting Started
10
10
 
11
- sudo gem install fog
11
+ sudo gem install fog
12
12
 
13
- Now type 'fog' to try stuff, confident that fog will let you know what to do. Here is an example of wading through server creation for Amazon Elastic Compute Cloud:
13
+ Now type `fog` to try stuff, confident that fog will let you know what to do.
14
+ Here is an example of wading through server creation for Amazon Elastic Compute Cloud:
14
15
 
15
- >> server = Compute[:aws].servers.create
16
- ArgumentError: image_id is required for this operation
16
+ >> server = Compute[:aws].servers.create
17
+ ArgumentError: image_id is required for this operation
17
18
 
18
- >> server = Compute[:aws].servers.create(:image_id => 'ami-5ee70037')
19
- <Fog::AWS::EC2::Server [...]>
19
+ >> server = Compute[:aws].servers.create(:image_id => 'ami-5ee70037')
20
+ <Fog::AWS::EC2::Server [...]>
20
21
 
21
- >> server.destroy # cleanup after yourself or regret it, trust me
22
- true
22
+ >> server.destroy # cleanup after yourself or regret it, trust me
23
+ true
23
24
 
24
- == Collections
25
+ ## Collections
25
26
 
26
27
  A high level interface to each cloud is provided through collections, such as `images` and `servers`.
27
- You can see a list of available collections by calling `collections` on the connection object. You can try it out using the `fog` command:
28
+ You can see a list of available collections by calling `collections` on the connection object.
29
+ You can try it out using the `fog` command:
28
30
 
29
- >> Compute[:aws].collections
30
- [:addresses, :directories, ..., :volumes, :zones]
31
+ >> Compute[:aws].collections
32
+ [:addresses, :directories, ..., :volumes, :zones]
31
33
 
32
34
  Some collections are available across multiple providers:
33
35
 
34
- * compute providers have +flavors+, +images+ and +servers+
35
- * dns providers have +zones+ and +records+
36
- * storage providers have +directories+ and +files+
36
+ * compute providers have `flavors`, `images` and `servers`
37
+ * dns providers have `zones` and `records`
38
+ * storage providers have `directories` and `files`
37
39
 
38
40
  Collections share basic CRUD type operations, such as:
39
- * +all+ - fetch every object of that type from the provider.
40
- * +create+ - initialize a new record locally and a remote resource with the provider.
41
- * +get+ - fetch a single object by it's identity from the provider.
42
- * +new+ - initialize a new record locally, but do not create a remote resource with the provider.
41
+
42
+ * `all` - fetch every object of that type from the provider.
43
+ * `create` - initialize a new record locally and a remote resource with the provider.
44
+ * `get` - fetch a single object by it's identity from the provider.
45
+ * `new` - initialize a new record locally, but do not create a remote resource with the provider.
43
46
 
44
47
  As an example, we'll try initializing and persisting a Rackspace Cloud server:
45
48
 
46
- require 'fog'
49
+ require 'fog'
47
50
 
48
- compute = Fog::Compute.new(
49
- :provider => 'Rackspace',
50
- :rackspace_api_key => key,
51
- :rackspace_username => username
52
- )
51
+ compute = Fog::Compute.new(
52
+ :provider => 'Rackspace',
53
+ :rackspace_api_key => key,
54
+ :rackspace_username => username
55
+ )
53
56
 
54
- # boot a gentoo server (flavor 1 = 256, image 3 = gentoo 2008.0)
55
- server = compute.servers.create(:flavor_id => 1, :image_id => 3, :name => 'my_server')
56
- server.wait_for { ready? } # give server time to boot
57
+ # boot a gentoo server (flavor 1 = 256, image 3 = gentoo 2008.0)
58
+ server = compute.servers.create(:flavor_id => 1, :image_id => 3, :name => 'my_server')
59
+ server.wait_for { ready? } # give server time to boot
57
60
 
58
- # DO STUFF
61
+ # DO STUFF
59
62
 
60
- server.destroy # cleanup after yourself or regret it, trust me
63
+ server.destroy # cleanup after yourself or regret it, trust me
61
64
 
62
- == Models
65
+ ## Models
63
66
 
64
67
  Many of the collection methods return individual objects, which also provide common methods:
65
- * +destroy+ - will destroy the persisted object from the provider
66
- * +save+ - persist the object to the provider
67
- * +wait_for+ - takes a block and waits for either the block to return true for the object or for a timeout (defaults to 10 minutes)
68
68
 
69
- == Mocks
69
+ * `destroy` - will destroy the persisted object from the provider
70
+ * `save` - persist the object to the provider
71
+ * `wait_for` - takes a block and waits for either the block to return true for the object or for a timeout (defaults to 10 minutes)
72
+
73
+ ## Mocks
70
74
 
71
75
  As you might imagine, testing code using Fog can be slow and expensive, constantly turning on and and shutting down instances.
72
76
  Mocking allows skipping this overhead by providing an in memory representation resources as you make requests.
73
77
  Enabling mocking easy to use, before you run other commands, simply run:
74
78
 
75
- Fog.mock!
79
+ Fog.mock!
76
80
 
77
- Then proceed as usual, if you run into unimplemented mocks fog will raise an error and as always contributions are welcome!
81
+ Then proceed as usual, if you run into unimplemented mocks, fog will raise an error and as always contributions are welcome!
78
82
 
79
- == Requests
83
+ ## Requests
80
84
 
81
85
  Requests allow you to dive deeper when the models just can't cut it.
82
- You can see a list of available requests by calling #requests on the connection object.
86
+ You can see a list of available requests by calling `#requests` on the connection object.
83
87
 
84
88
  For instance, ec2 provides methods related to reserved instances that don't have any models (yet). Here is how you can lookup your reserved instances:
85
89
 
86
- $ fog
87
- >> Compute[:aws].describe_reserved_instances
88
- #<Excon::Response [...]>
90
+ $ fog
91
+ >> Compute[:aws].describe_reserved_instances
92
+ #<Excon::Response [...]>
89
93
 
90
- It will return an {excon}[http://github.com/geemus/excon] response, which has `body`, `headers` and `status`. Both return nice hashes.
94
+ It will return an [excon](http://github.com/geemus/excon) response, which has `body`, `headers` and `status`. Both return nice hashes.
91
95
 
92
- == Go forth and conquer
96
+ ## Go forth and conquer
93
97
 
94
- Play around and use the console to explore or check out {fog.io}[http://fog.io] for more details and examples. Once you are ready to start scripting fog, here is a quick hint on how to make connections without the command line thing to help you.
98
+ Play around and use the console to explore or check out [fog.io](http://fog.io) for more details and examples.
99
+ Once you are ready to start scripting fog, here is a quick hint on how to make connections without the command line thing to help you.
95
100
 
96
- # create a compute connection
97
- compute = Fog::Compute.new(:provider => 'AWS', :aws_access_key_id => ACCESS_KEY_ID, :aws_secret_access_key => SECRET_ACCESS_KEY)
98
- # compute operations go here
101
+ # create a compute connection
102
+ compute = Fog::Compute.new(:provider => 'AWS', :aws_access_key_id => ACCESS_KEY_ID, :aws_secret_access_key => SECRET_ACCESS_KEY)
103
+ # compute operations go here
99
104
 
100
- # create a storage connection
101
- storage = Fog::Storage.new(:provider => 'AWS', :aws_access_key_id => ACCESS_KEY_ID, :aws_secret_access_key => SECRET_ACCESS_KEY)
102
- # storage operations go here
105
+ # create a storage connection
106
+ storage = Fog::Storage.new(:provider => 'AWS', :aws_access_key_id => ACCESS_KEY_ID, :aws_secret_access_key => SECRET_ACCESS_KEY)
107
+ # storage operations go here
103
108
 
104
109
  geemus says: "That should give you everything you need to get started, but let me know if there is anything I can do to help!"
105
110
 
106
- == Contributing
111
+ ## Contributing
107
112
 
108
113
  * Find something you would like to work on. For suggestions look for the `easy`, `medium` and `hard` tags in the {issues}[http://github.com/fog/fog/issues]
109
114
  * Fork the project and do your work in a topic branch.
@@ -111,21 +116,21 @@ geemus says: "That should give you everything you need to get started, but let m
111
116
  * Rebase your branch against fog/fog to make sure everything is up to date.
112
117
  * Commit your changes and send a pull request.
113
118
 
114
- == Additional Resources
119
+ ## Additional Resources
115
120
 
116
- {fog.io}[http://fog.io]
121
+ [fog.io](http://fog.io)
117
122
 
118
- == Sponsorship
123
+ ## Sponsorship
119
124
 
120
- http://www.engineyard.com/images/logo.png
125
+ ![Engine Yard](http://www.engineyard.com/images/logo.png)
121
126
 
122
- All new work on fog is sponsored by {Engine Yard}[http://engineyard.com]
127
+ All new work on fog is sponsored by [Engine Yard](http://engineyard.com)
123
128
 
124
- == Copyright
129
+ ## Copyright
125
130
 
126
131
  (The MIT License)
127
132
 
128
- Copyright (c) 2010 {geemus (Wesley Beary)}[http://github.com/geemus]
133
+ Copyright (c) 2010 [geemus (Wesley Beary)](http://github.com/geemus)
129
134
 
130
135
  Permission is hereby granted, free of charge, to any person obtaining
131
136
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -60,8 +60,6 @@ task :test do
60
60
  end
61
61
 
62
62
  def tests(mocked)
63
- Formatador.display_line
64
- sh("export FOG_MOCK=#{mocked} && bundle exec spec spec")
65
63
  Formatador.display_line
66
64
  start = Time.now.to_i
67
65
  threads = []
@@ -189,10 +187,10 @@ task :changelog do
189
187
  changelog << ''
190
188
 
191
189
  require 'multi_json'
192
- github_repo_data = Fog::JSON.decode(Excon.get('http://github.com/api/v2/json/repos/show/fog/fog').body)
193
- data = github_repo_data['repository'].reject {|key, value| !['forks', 'open_issues', 'watchers'].include?(key)}
194
- github_collaborator_data = Fog::JSON.decode(Excon.get('http://github.com/api/v2/json/repos/show/fog/fog/collaborators').body)
195
- data['collaborators'] = github_collaborator_data['collaborators'].length
190
+ github_repo_data = Fog::JSON.decode(Excon.get('https://api.github.com/repos/fog/fog').body)
191
+ data = github_repo_data.reject {|key, value| !['forks', 'open_issues', 'watchers'].include?(key)}
192
+ github_collaborator_data = Fog::JSON.decode(Excon.get('https://api.github.com/repos/fog/fog/collaborators').body)
193
+ data['collaborators'] = github_collaborator_data.length
196
194
  rubygems_data = Fog::JSON.decode(Excon.get('https://rubygems.org/api/v1/gems/fog.json').body)
197
195
  data['downloads'] = rubygems_data['downloads']
198
196
  stats = []
data/changelog.txt CHANGED
@@ -1,3 +1,494 @@
1
+ 1.4.0 06/24/2012 24e0be755e251159f07d5d82beb1e8ef57c962d9
2
+ =========================================================
3
+
4
+ Stats! { 'collaborators' => 35, 'downloads' => 800348, 'forks' => 477, 'open_issues' => 43, 'watchers' => 2080 }
5
+
6
+ MVP! Nelvin Driz
7
+
8
+ [AWS]
9
+ make beanstalk, cdn, cloudformation, cloudwatch, elasticache, elb, storage, rds, ses, sns, route53 temporary credential friendly. thanks Frederick Cheung
10
+
11
+ [AWS|Auto Scale]
12
+ Add support for put_notification_configuration and change AWS API to use 01-01-2011 Spec. thanks Zuhaib M Siddique
13
+
14
+ [AWS|Autoscale]
15
+ Fixing Parameters notes for autoscale create launch configuration for InstanceMonitoring. Credit goes to boto, https://github.com/boto/boto/blob/develop/boto/ec2/autoscale/__init__.py , for having it correct. thanks Zuhaib M Siddique
16
+ Fixing Parameters notes for autoscale create launch configuration for InstanceMonitoring. Credit goes to boto, https://github.com/boto/boto/blob/develop/boto/ec2/autoscale/__init__.py , for having it correct. thanks Zuhaib M Siddique
17
+
18
+ [Openstack|Compute]
19
+ Usage Requests. thanks Hunter Nield
20
+ Migration and Console output. thanks Hunter Nield
21
+ server methods for console and migration. thanks Hunter Nield
22
+ Minor address cleanup. thanks Hunter Nield
23
+
24
+ [aws|address]
25
+ fixes release_address for VPC EIPs * amazon requires allocation_id only for vpc eips, and public_ip otherwise. thanks Albert Choi
26
+
27
+ [aws|beanstalk]
28
+ Added missing :beanstalk case. thanks George Scott
29
+ Added #load_balancer method. thanks George Scott
30
+ Serialize keys for SourceConfiguration. thanks George Scott
31
+ Added modify method for template. thanks George Scott
32
+ Support different AWS regions. thanks George Scott
33
+ Added swap_cnames method. thanks George Scott
34
+
35
+ [aws|compute]
36
+ add networkInterfaceSet context to EC2 instance parser. thanks Benton Roberts
37
+
38
+ [aws|dns]
39
+ Allow both Ruby and AWS style names for alias. thanks George Scott
40
+ Support for latency/weighted resource sets. thanks George Scott
41
+ Fixed #all iteration. thanks George Scott
42
+ Reimplemented #get. thanks George Scott
43
+ Added #all! method to Records. thanks George Scott
44
+
45
+ [aws|dynamodb]
46
+ correct batch_put_item to batch_write_item for consistency with API. thanks geemus
47
+
48
+ [aws|elb]
49
+ Failing test for load_balancers marker support. thanks Dan Peterson
50
+ Deprecate describe_load_balancers with just an array of names. thanks Dan Peterson
51
+ Marker support for describe_load_balancers. thanks Dan Peterson
52
+ Fix use of describe_load_balancers in tests. thanks Dan Peterson
53
+ load_balancers.get(nil) returns nil instead of the first of all load balancers. thanks Dan Peterson
54
+
55
+ [aws|iam]
56
+ Add test for AWS[:iam].get_user. thanks Benton Roberts
57
+ add test for AWS[:iam].get_user_policy. thanks Benton Roberts
58
+ FIX - make arguments AWS::IAM.get_user conform to expected standard for this module. thanks Benton Roberts
59
+ Fix Users model to comply with updated request parameter set. thanks Benton Roberts
60
+ mark role tests as pending in mock mode. thanks geemus
61
+
62
+ [aws|storage]
63
+ fix flipped logic on valid acl check closes #889. thanks geemus
64
+ fix method signature for setup_credentials. thanks geemus
65
+
66
+ [aws|storage|]
67
+ Make get_object_http_url use correct S3 host in returned URL. thanks Michiel Sikkes
68
+ Make get_object_http_url use correct S3 host in returned URL. thanks Michiel Sikkes
69
+
70
+ [brightbox|compute]
71
+ Updated image reference where unfortunately hardcoded. thanks Paul Thornthwaite
72
+ Remove resize request since not available. thanks Paul Thornthwaite
73
+ Update format tests for new attributes on Cloud IPs. thanks Paul Thornthwaite
74
+ Update format tests for "fqdn" attribute. thanks Paul Thornthwaite
75
+ Update format tests for updates to Image. thanks Paul Thornthwaite
76
+
77
+ [cloudstack]
78
+ prevent mock test failure when cloudstack credentials are not defined. thanks geemus
79
+ add to list of providers so it can be skipped when lacking credentials. thanks geemus
80
+
81
+ [cloudstack|compute]
82
+ zones,flavors,images,address. thanks Jason Hansen & Josh Lane
83
+ support async jobs. thanks Jason Hansen & Josh Lane
84
+ server abstraction and mocks. thanks Josh Lane & Jason Hansen
85
+ volumes support. thanks Josh Lane & Jason Hansen
86
+
87
+ [compute]
88
+ volume tests. thanks Josh Lane & Jason Hansen
89
+
90
+ [compute|aws]
91
+ Apply tags to volume at creation. thanks Dan Carley
92
+ Respect extra register_image options when mocking. thanks Dan Peterson
93
+ extend polling interval for spot_requests bootstrap. thanks geemus
94
+ cleanup internet_gateway mocks and remove debug output. thanks geemus
95
+
96
+ [compute|openstack]
97
+ update server attributes for shared compute tests. thanks geemus
98
+ cleanup for list security groups request/mock. thanks geemus
99
+
100
+ [docs]
101
+ fix link to EngineYard logo (broken in /storage, /compute, etc.). thanks Len
102
+
103
+ [ecloud|compute]
104
+ Adding multiple disks at once was not working properly. thanks Eugene Howe
105
+ fix optional params for validate_data closes #969. thanks geemus
106
+
107
+ [glesys|compute]
108
+ update server/status format to include cpu hash and warnings. thanks Anton Lindström
109
+ add reboot and compute test params. thanks Anton Lindström
110
+
111
+ [hp|compute]
112
+ fix tests to properly set default base image. thanks geemus
113
+
114
+ [ibm|compute]
115
+ Typo in parameter name, should be storageID. thanks Decklin Foster
116
+
117
+ [joyent|compute]
118
+ Fixes issue where params are not properly passed to #keys_create from #create_key. thanks Kevin Chan
119
+ Added #list_datacenters. thanks Kevin Chan
120
+ Support for DSA keys for auth. thanks Kevin Chan
121
+
122
+ [libVirt]
123
+ added tests. thanks Amos Benari
124
+
125
+ [libvirt]
126
+ refactored libvirt entire code. thanks Ohad Levy
127
+ expose node hostname. thanks Ohad Levy
128
+ added display attributes and allowed to change display of a running server. thanks Ohad Levy
129
+ volumes dev names must be uniq. thanks Ohad Levy
130
+ makes libvirt code more debian friendly. thanks Ohad Levy
131
+ - ensure no nil pools are returned. thanks Ohad Levy
132
+ Fix SSH keyfile being pulled from wrong param. thanks brookemckim
133
+ skip tests if ruby-libvirt is unavailable. thanks geemus
134
+ correct error message when skipping tests. thanks geemus
135
+
136
+ [misc]
137
+ Add support for internal ELBs in VPC. thanks Aaron Bell
138
+ cleaning up model. thanks Aaron Bell
139
+ fix parser to show scheme, add test for internal ELB creation. thanks Aaron Bell
140
+ fixing test. thanks Aaron Bell
141
+ add scheme to elb helper. thanks Aaron Bell
142
+ adds batch_put_item functionality to AWS dynamodb + test. thanks Alex Gaudio
143
+ Fixed non-persistent connections handling to AWS. thanks Alexander Kolesen
144
+ Fixed handling options[:persistent] in some cases. thanks Alexander Kolesen
145
+ added mock implementation. thanks Amos Benari
146
+ removed unneeded dependency,. thanks Amos Benari
147
+ new rbovirt version. thanks Amos Benari
148
+ use constant for GB. thanks Amos Benari
149
+ Adding network interface information and security group ids. thanks Artem Veremey
150
+ Adding network interface information and security group ids to the model. thanks Artem Veremey
151
+ Store the region for S3. thanks Ben Butler-Cole
152
+ add create_hosted_zone and get_hosted_zone request mocks. thanks Bulat Shakirzyanov
153
+ add list_hosted_zones request mock. thanks Bulat Shakirzyanov
154
+ add change_resource_record_set request mock. thanks Bulat Shakirzyanov
155
+ fix response codes and formatting. thanks Bulat Shakirzyanov
156
+ fix typos. thanks Bulat Shakirzyanov
157
+ fix identifiers. thanks Bulat Shakirzyanov
158
+ use hard-coded sample value to eliminate randomness. thanks Bulat Shakirzyanov
159
+ fix typos. thanks Bulat Shakirzyanov
160
+ fix zone id in create_hosted_zone response. thanks Bulat Shakirzyanov
161
+ fix attribute name. thanks Bulat Shakirzyanov
162
+ add authorize and revoke port range for security group. thanks Bulat Shakirzyanov
163
+ Fix typo. thanks Christopher Meiklejohn
164
+ Specify image_ref rather than trying to instantiate object. thanks Christopher Meiklejohn
165
+ Fog::Compute::AWS::Address#server -> assigned Server. thanks Dr Nic Williams
166
+ fix auto-discovery for HP Cloud by fog bin. thanks Dr Nic Williams
167
+ whitespace. :bomb: :v:. thanks Dylan Egan
168
+ Default to false for persistent connections. You can't pass in false. This now behaves like other connections in fog. :v:. thanks Dylan Egan
169
+ Idempotent Dynect calls. :v:. thanks Dylan Egan
170
+ Fix up describe_volume_status to work with THE ARRAYZ. :v:. thanks Dylan Egan
171
+ Fog::AWS.indexed_reuqest_param. thanks Edward Muller
172
+ include the nextToken in the body. thanks Edward Muller
173
+ complete Request param support. thanks Edward Muller
174
+ refactor to use Fog::AWS.indexed_request_param. thanks Edward Muller
175
+ the old parser was not working properly. thanks Edward Muller
176
+ All directories.create on us-east-1. thanks Edward Muller
177
+ us-west-2 default ami. thanks Edward Muller
178
+ some small fixups. thanks Edward Muller
179
+ make the aws region accessible. thanks Edward Muller
180
+ Fog::Compute::Server#private_key=. thanks Edward Muller
181
+ Fog::Compute::Server#sshable?. thanks Edward Muller
182
+ ssh/run optionally takes a block. thanks Edward Muller
183
+ Cleanup after talking to @dpiddy. thanks Edward Muller
184
+ return '' not nil. thanks Edward Muller
185
+ Revert "Add debug option to Fog::Compute::Server#ssh". thanks Edward Muller
186
+ Mock stop_instances. thanks Edward Muller
187
+ Mock aws compute start_instances. thanks Edward Muller
188
+ Don't duplicate effort. thanks Edward Muller
189
+ Add ssh_port to Fog::Compute::Server. thanks Edward Muller
190
+ Generalize NoLeak Inspector for Fog::Service. thanks Edward Muller
191
+ Don't leak HP cdn & storage. thanks Edward Muller
192
+ Make aws compute server retry SSH on EHOSTUNREACH. thanks Eric Boehs
193
+ Copied auth token reauthentication from rackspace|compute. thanks Eric Hankins
194
+ https://github.com/fog/fog/issues/810 - Add ENI support by maf23. thanks Eric Stonfer
195
+ minor fix to ENI tests. thanks Eric Stonfer
196
+ VPC ELBs, Tests, and the introduction of the InternetGateway object. thanks Eric Stonfer
197
+ clean up conflict. thanks Eric Stonfer
198
+ this adds the dhcp_options object and associated operations. thanks Eric Stonfer
199
+ merge upstream. thanks Eric Stonfer
200
+ forgot to commit dhcp_options tests. thanks Eric Stonfer
201
+ fix describe_volume_status parser. thanks Eric Stonfer
202
+ add some more explanation to the server creation process. thanks Eric Stonfer
203
+ testing. thanks Eugene Howe
204
+ added requests and models for compute_pools. thanks Eugene Howe
205
+ changed to urn:tmrk:eCloudExtensions-2.8. thanks Eugene Howe
206
+ require compute pool to be specified on vapp creation. thanks Eugene Howe
207
+ set default value for computePool on vapp creation. thanks Eugene Howe
208
+ Made computePool an optional parameter, specs now pass without issue. thanks Eugene Howe
209
+ Removed non-functioning Mock classes. thanks Eugene Howe
210
+ fixed method name. thanks Eugene Howe
211
+ start an instance with an IAM profile and access the credentials. thanks Frederick Cheung
212
+ add new iam requests to support iam roles. thanks Frederick Cheung
213
+ request tests for the new iam role requests. thanks Frederick Cheung
214
+ test credential fetching. thanks Frederick Cheung
215
+ use excon rather than net/http. thanks Frederick Cheung
216
+ remove stray multijson require. thanks Frederick Cheung
217
+ fix errant use of net/http. thanks Frederick Cheung
218
+ Add debug option to Fog::Compute::Server#ssh. thanks Gabriel Horner
219
+ Correct docs for change_resource_record_sets. thanks Gavin Sandie
220
+ add cc2.8xlarge AWS flavor. thanks Ian Downes
221
+ Fix user-data attribute name. thanks Igor Bolotin
222
+ Refactor AWS Directory. thanks James Herdman
223
+ Remove unused variable. thanks James Herdman
224
+ Fix indentation warning. thanks James Herdman
225
+ Remove unnecessary full path usage with require. thanks James Herdman
226
+ Remove unused variable. thanks James Herdman
227
+ Remove unused accessor. thanks James Herdman
228
+ Silence warning regarding splat operator. thanks James Herdman
229
+ Remove unused variable. thanks James Herdman
230
+ Remove unused variable. thanks James Herdman
231
+ Silence warnings about potentially private attribute. thanks James Herdman
232
+ Remove unused variable. thanks James Herdman
233
+ Silence warning about potentially private attribute. thanks James Herdman
234
+ Remove unused variable. thanks James Herdman
235
+ Remove unused variable. thanks James Herdman
236
+ Remove unused variable. thanks James Herdman
237
+ Remove unused variable. thanks James Herdman
238
+ Remove unused variable. thanks James Herdman
239
+ Remove unused variable. thanks James Herdman
240
+ Remove unused variable. thanks James Herdman
241
+ Remove unused variable. thanks James Herdman
242
+ Remove unused variable. thanks James Herdman
243
+ Remove unused variable. thanks James Herdman
244
+ Remove unused variable. thanks James Herdman
245
+ Remove unused variable. thanks James Herdman
246
+ Remove unused variable. thanks James Herdman
247
+ Remove duplicate require. thanks James Herdman
248
+ Remove unused variable. thanks James Herdman
249
+ Remove unused variable. thanks James Herdman
250
+ Remove unused variable. thanks James Herdman
251
+ Remove absolute path when requiring. thanks James Herdman
252
+ Remove unused variable. thanks James Herdman
253
+ Remove duplicate Mock class definition. thanks James Herdman
254
+ implement Fog::SSH::Mock#run. thanks Jason Hansen & Josh Lane
255
+ add a method to IPAddr instead of breaking a useful one. thanks Jesse Newland
256
+ Adjusts regex to fix issues with S3 paths that include periods. thanks John Feminella
257
+ fix response-cache-control type for AWS signed urls. thanks John Nishinaga
258
+ remove FOG_PROVIDER env override. thanks Josh Lane
259
+ more robust resource pool discovery. thanks Justin Clayton
260
+ Removed duplicate property :ips on server. thanks Kevin Chan
261
+ Fixes invalid call to #resize, should be #resize_machine. thanks Kevin Chan
262
+ Fixed #875: Loosen multi_json version. thanks Kevin Menard
263
+ Bad string replace. thanks Kevin Menard
264
+ Actually call the new MultiJSON 1.3.2 API methods. thanks Kevin Menard
265
+ Rename dd_belatedpng.js to dd_belatedpng.min.js. thanks Laurent Bigonville
266
+ Add non-minified javascript files used in docs/ (#939). thanks Laurent Bigonville
267
+ Catch Errno::ETIMEDOUT timeout error when connecting to a freshly created EC2 machine. thanks Marc Seeger
268
+ fix get, all, and all!. thanks Michael Keirnan
269
+ Make `.irbrc` service agnostic. thanks Nelvin Driz
270
+ Nested Credentials with Array gets flattened; restrict flatten to 1L. thanks Nelvin Driz
271
+ Allow for stringified options keys. thanks Nikita Pomyashchiy
272
+ add supports for defining/extracting libvit boot order. thanks Ohad Levy
273
+ libvirt volume sizes are in GB, ensuring both requests and setters are in GB. thanks Ohad Levy
274
+ adds deprecation on vnc_port. thanks Ohad Levy
275
+ monitoring-state is enabled or disabled, if enabled returns true. thanks Ozgur Akan
276
+ reserved instances hourly cost was returning empty. thanks Ozgur Akan
277
+ Modify url regexp to handle periods in bucket names. thanks Parker Selbert
278
+ Tag generated model tests with string not symbol. thanks Paul Thornthwaite
279
+ added missing server attributes for openstack compute model. thanks Pedro Perez
280
+ openstack: extended list_servers and list_server_detail to allow all_tenants param. thanks Pedro Perez
281
+ depend on excon >= 0.13.0. thanks Prashant Nadarajan
282
+ use pessimistic gem version constraint for excon (~>0.14.0). thanks Prashant Nadarajan
283
+ aim users model and nested model policy. thanks Rodrigo Estebanez
284
+ IAM access_key model implemented. thanks Rodrigo Estebanez
285
+ get_user Mock implemented. Basic shindo user_tests added. thanks Rodrigo Estebanez
286
+ Refactor aim modeling for nested models (policies and access keys). thanks Rodrigo Estebanez
287
+ shindo tests for IAM models: users, policies and access_keys. Mock implementation for get_user_policy. thanks Rodrigo Estebanez
288
+ @users -> @user. Clean up the @user after the policies and access_keys test. thanks Rodrigo Estebanez
289
+ Fix encoding issue: https://github.com/fog/fog/pull/189. thanks Rodrigo Estebanez
290
+ aim users model and nested model policy. thanks Rodrigo Estebanez
291
+ IAM access_key model implemented. thanks Rodrigo Estebanez
292
+ get_user Mock implemented. Basic shindo user_tests added. thanks Rodrigo Estebanez
293
+ Refactor aim modeling for nested models (policies and access keys). thanks Rodrigo Estebanez
294
+ shindo tests for IAM models: users, policies and access_keys. Mock implementation for get_user_policy. thanks Rodrigo Estebanez
295
+ @users -> @user. Clean up the @user after the policies and access_keys test. thanks Rodrigo Estebanez
296
+ Fix encoding issue: https://github.com/fog/fog/pull/189. thanks Rodrigo Estebanez
297
+ For some reason, there was a missing comma in the mock class. thanks Rodrigo Estebanez
298
+ Fix get_user_policy. The actual AWS data has to be in a ['Policy'] hash section. thanks Rodrigo Estebanez
299
+ add IAM mocking for get_group method. thanks Rodrigo Estebanez
300
+ add IAM mocking for get_group method. thanks Rodrigo Estebanez
301
+ Add new HP providers for Object Storage, Compute and CDN services. thanks Rupak Ganguly
302
+ Be sure to reload when checking for a started spot instance, also add private/public key options into spot_requests, then set those on the server when loaded. thanks Ryan Stout
303
+ Use spot request's public_key when setting up keypair. thanks Ryan Stout
304
+ ensure apiKey and command are included in parameter sorting. thanks Sean Caffery
305
+ * [xenserver|compute] initial release. thanks Sergio Rubio
306
+ * Added VIF model and collection tests * added network and server wrappers to VIF model. thanks Sergio Rubio
307
+ * Added VIF collection Shindo tests. thanks Sergio Rubio
308
+ * Added PIFs collection Shindo tests. thanks Sergio Rubio
309
+ * Added VBD Shindo tests * added server wrapper to VBD model. thanks Sergio Rubio
310
+ * Added Network collection Shindo tests * Fixed PBD and PIF tests descriptions. thanks Sergio Rubio
311
+ * Added Pool and StorageRepository models and collections Shindo tests * Added missing attributes to Pool and StorageRepository models. thanks Sergio Rubio
312
+ * Define missing InvalidLogin exception * Add login tests. thanks Sergio Rubio
313
+ * Added custom_templates and templates methods to Host model. thanks Sergio Rubio
314
+ * Added more tests and extended existing ones * Added missing exceptions NotFound and RequestFailed * connection.request now raises exception if request failed * refactored most get_* request into get_record and get_records * Compute.default_template more robust * Base parser now replaces OpaqueRef:NULL with nil * create_server request fixes. thanks Sergio Rubio
315
+ * Added some more tests * Lots of fixes and some refactoring. thanks Sergio Rubio
316
+ * Fix Servers.templates method. thanks Sergio Rubio
317
+ * Added clone_server request. thanks Sergio Rubio
318
+ * Added create_vif tests * Server.save now properly creates additional VIFs when required * Added create_vif_custome request to create VIFs with custom params. thanks Sergio Rubio
319
+ * Added Vif.destroy and destroy_vif request * add :auto_start parameter to Server.save. thanks Sergio Rubio
320
+ * Added create_vdi request * Added missing VDI methods and attributes. thanks Sergio Rubio
321
+ * Added missing VBD operations. thanks Sergio Rubio
322
+ * Added set_attribute request and tests * Added missing PV_bootloaer attribute to Server * Added Server.set_attribute method and tests. thanks Sergio Rubio
323
+ * Added create_vbd and provision_server requests * Do not provision server when :auto_start is false * Add Server.provisio method * Add VBD.save method. thanks Sergio Rubio
324
+ * renamed some tests * Added missing VDI attributes and methods * added create/destroy request tests * Added valid_ref? test helper * Fixes in get_record_tests. thanks Sergio Rubio
325
+ * Added missing attributes to Server model * Added create_server_raw request and tests * Added VIF.save action * more tests. thanks Sergio Rubio
326
+ * Fix: do not try to retrive guest_metrics when guest_metrics ref is nil * ruby 1.8.7 compatibility fixes * Sane defaults for create_server_raw request. thanks Sergio Rubio
327
+ * Added new scan_sr request * Added StorageRepository.scan method * set_attribute request is now generic and can be used by any model * Added VDI.set_attribute method. thanks Sergio Rubio
328
+ * [xenserver|compute] set_attribute request now accepts var args - added new tests. thanks Sergio Rubio
329
+ updating gitignore for eclipse settings. thanks Spencer Dillard
330
+ first pass at updates for VPC. thanks Spencer Dillard
331
+ updating for SSL ciphers and protocols. thanks Spencer Dillard
332
+ updating to master. thanks Spencer Dillard
333
+ regularize examples showing use of AWS access keys. thanks Stephen Bannasch
334
+ Use MultiJSON #dump and #load rather than #encode and #decode. thanks Steve Smith
335
+ Add support for ports in AWS storage URLs. thanks Tim Carey-Smith
336
+ Mock implementations for SCP upload and download. thanks Tom Mornini
337
+ add Linode Mock classes to request primitives. thanks Wes Morgan
338
+ make Mock#linode_disk_delete return the response object. thanks Wes Morgan
339
+ make Mock#linode_disk_list return the response object. thanks Wes Morgan
340
+ use kernel_id for mocked kernel, not stackscript_id. thanks Wes Morgan
341
+ Adds new method delete_notification_configuration which allows you notifications created by put_notification_configuration. thanks Zuhaib Siddique
342
+ Fix for stacks that have capabilities. Without this the parser misinterprets stacks with capabilities set. thanks atlantacs
343
+ volume(s) are not considered to be universally available. thanks geemus
344
+ catch passing an invalid openstack_tenant. thanks mattray
345
+ addresses['internet'] (like on TryStack.org) supported and public and private_ip_address now work. thanks mattray
346
+ don't assume 'internet' for addresses. thanks mattray
347
+ Added offering type for reserved instances response. thanks questionnet
348
+
349
+ [oVirt]
350
+ added volumes to server and template. thanks Amos Benari
351
+ added volume size in GB accessor. thanks Amos Benari
352
+ fixed create_vm and get_virtual_machine requests mock implementation. thanks Amos Benari
353
+
354
+ [openstack]
355
+ Fix create snapshot. thanks Ferran Rodenas
356
+ Match both OS API 1.1 and v2 since they are the same. thanks Josh Kearney
357
+ Update Reinitialization Process of Existing Auth Token. thanks Nelvin Driz
358
+ Add Export of Credentials. thanks Nelvin Driz
359
+ Wrong instance variables accessed for #credentials. thanks Nelvin Driz
360
+ Update Authentication through X-Auth-Token. thanks Nelvin Driz
361
+ Update mocks for login and identity request #get_user_by_id. thanks Nelvin Driz
362
+ Fix authentication without specifying tenant name. thanks Nelvin Driz
363
+ Make current_user and current_token accessible to services. thanks Nelvin Driz
364
+ Fix Authentication as well as Fog::JSON call bugs. thanks Nelvin Driz
365
+ Raise error when no tenant is found for the user logging in. thanks Nelvin Driz
366
+ Ensure password sent is of type string. thanks Nelvin Driz
367
+ Modify authentication process. thanks Philip Mark Deazeta
368
+
369
+ [openstack|compute]
370
+ Add requests and tests for security groups. thanks Alfonso Juan Dillera
371
+ Add requests, models and tests for keypairs. thanks Alfonso Juan Dillera
372
+ Add requests, models and tests for address management. thanks Alfonso Juan Dillera
373
+ Add requests, models and tests for address management. thanks Alfonso Juan Dillera
374
+ Add flavor CRUD. thanks Alfonso Juan Dillera
375
+ Add auth_token. thanks Alfonso Juan Dillera
376
+ Added request for boot_from_snapshot. thanks Alfonso Juan Dillera
377
+ Added id attribute to the keypair. thanks Alfonso Juan Dillera
378
+ Update fetching of addresses and added fetching for address pools. thanks Alvin Garcia
379
+ Fixed creating image of a server. thanks Alvin Garcia
380
+ Added requests for quota. thanks Alvin Garcia
381
+ Initial extension support for addresses. thanks Hunter Nield
382
+ Initial extension support for key pairs. thanks Hunter Nield
383
+ Initial extension support for security groups. thanks Hunter Nield
384
+ Added Address models. thanks Hunter Nield
385
+ Added key pair models. thanks Hunter Nield
386
+ added security group models. thanks Hunter Nield
387
+ Updates to server model. thanks Hunter Nield
388
+ Added list/get support for /os-hosts. thanks Hunter Nield
389
+ Add Tenants and Fix Authentication Implementation. thanks Nelvin Driz
390
+ Fix Requests on Compute. thanks Nelvin Driz
391
+ General Cleanup and Update. thanks Nelvin Driz
392
+ Fix Compute Identity Endpoint Credential Export. thanks Nelvin Driz
393
+ Add Identity Enpoint to Recognized Init Parameters. thanks Nelvin Driz
394
+ Update requests and response of server actions. thanks Nelvin Driz
395
+ Fix Bug on Key Pair Mock. thanks Nelvin Driz
396
+ Update Mocks for Volumes. thanks Nelvin Driz
397
+ Update Mocks for Security Groups and Volumes. thanks Nelvin Driz
398
+ Add Instance Name to Fog. thanks Nelvin Driz
399
+ Update Image Mocks. thanks Nelvin Driz
400
+ Update List Security Groups to list those assigned to a server. thanks Nelvin Driz
401
+ Assert Timezone to UTC and fix format for OS on `get_usage`. thanks Nelvin Driz
402
+ Added get_usage function, mocks, tests. thanks Philip Mark Deazeta
403
+ Added get server volumes request. thanks Philip Mark M. Deazeta
404
+ Added key_pair and security_groups options int create server requrest. thanks Philip Mark M. Deazeta
405
+ added key_name and security_groups in boot from snapshot request. thanks Philip Mark M. Deazeta
406
+ authenticate_v2 fixes. thanks Sergio Rubio
407
+
408
+ [openstack|identity]
409
+ Added current user id. thanks Alfonso Juan Dillera
410
+ Updated current user id for identity. thanks Alfonso Juan Dillera
411
+ Keystone Roles. thanks Alvin Garcia
412
+ Keystone Roles and Users. thanks Alvin Garcia
413
+ Update users collections and model. thanks Alvin Garcia
414
+ Update users model initialization and save. thanks Alvin Garcia
415
+ Fixed users fetching. thanks Alvin Garcia
416
+ Rough implementation of the Keystone API (untested). thanks Hunter Nield
417
+ Correction in Roles#all method. thanks Mark Maglana
418
+ Express the "add user role" intent more clearly. thanks Mark Maglana
419
+ Fix Authentication Implementation. thanks Nelvin Driz
420
+ Update Tenants. thanks Nelvin Driz
421
+ Update Tenants (Complete CRUD). thanks Nelvin Driz
422
+ Fix Identity Authentication Conditions on Endpoint Detection. thanks Nelvin Driz
423
+ Add User List and Delete User Mocks. thanks Nelvin Driz
424
+ Update Fog to Accomodate Tenant Deletion Workaround Workflow. thanks Nelvin Driz
425
+ Fix status code expectation. thanks Nelvin Driz
426
+ Added function to add user to a tenant. thanks Philip Mark Deazeta
427
+ Added function to add user to a tenant. thanks Philip Mark Deazeta
428
+ fixes for mocks. thanks geemus
429
+
430
+ [openstack|image]
431
+ Added set_tenant. thanks Alvin Garcia
432
+ Added copy_from attribute. thanks Alvin Garcia
433
+ Update Image Service Authentication Options. thanks Nelvin Driz
434
+ Added image service, model and request. thanks Philip Mark Deazeta
435
+ Added test for models and request. thanks Philip Mark Deazeta
436
+ Added image module, model and request. thanks Philip Mark Deazeta
437
+ Image Model Updates. thanks Philip Mark Deazeta
438
+ Refactor Dynamic Methods on Image Model. thanks Philip Mark Deazeta
439
+
440
+ [openstack|volume]
441
+ Volume Endpoints Support. thanks Marjun Pagalan
442
+ Volume Snapshot CRUD. thanks Marjun Pagalan
443
+ Volume attach/detach to Server. thanks Marjun Pagalan
444
+ Added volume service requests. thanks Philip Mark M. Deazeta
445
+ fix on module name. thanks Philip Mark M. Deazeta
446
+ Added volume model. thanks Philip Mark M. Deazeta
447
+
448
+ [ovirt]
449
+ fixed list storage domain test. thanks Amos Benari
450
+
451
+ [rackspace|compute]
452
+ fix rackspace server compare. thanks Josh Lane & Jason Hansen
453
+ default images. thanks Josh Lane & Jason Hansen
454
+ Images#all returns data. thanks Josh Lane & Jason Hansen
455
+ fixes for mock images. thanks geemus
456
+
457
+ [rackspace|lb]
458
+ added support for algorithm on create. thanks Brian Hartsock
459
+ fixed broken tests due to API contract changes. thanks Brian Hartsock
460
+
461
+ [rackspace|loadbalancers]
462
+ fixed broken tests. thanks Brian Hartsock
463
+
464
+ [rackspace|storage|file]
465
+ copy method now use the options hash and apply content type. thanks Matthias Gröbner
466
+
467
+ [rackspace|storage|files]
468
+ fix iteration. thanks Matthias Gröbner
469
+
470
+ [slicehost]
471
+ remove (now deprecated) slicehost support. thanks geemus
472
+
473
+ [storage|aws]
474
+ fix location stuff to allow creating new buckets properly. thanks geemus
475
+
476
+ [vcloud]
477
+ Remove some un-needed debug information. thanks Lincoln Stoll
478
+
479
+ [vpc-fixes]
480
+ AWS security group model + VPC. thanks Sean Porter
481
+
482
+ [vsphere]
483
+ force poweroff of instance of vmware tools are not installed. thanks Ohad Levy
484
+ adds memory and cpu server attributes. thanks Ohad Levy
485
+ adds support to get and set vnc console. thanks Ohad Levy
486
+
487
+ [xenserver]
488
+ Added missing Server.tags attribute. thanks Sergio Rubio
489
+ fix tags to skip tests without credentials. thanks geemus
490
+
491
+
1
492
  1.3.1 03/27/2012 f0f692456956fe2e414ef8205d0268259901644a
2
493
  =========================================================
3
494