rumm 0.0.22 → 0.0.23
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +14 -6
- data/.gitignore +2 -1
- data/app/controllers/attachments_controller.rb +21 -11
- data/app/controllers/containers_controller.rb +8 -2
- data/app/controllers/databases_controller.rb +7 -2
- data/app/controllers/files_controller.rb +13 -2
- data/app/controllers/instances_controller.rb +10 -4
- data/app/controllers/nodes_controller.rb +11 -5
- data/app/controllers/volumes_controller.rb +9 -5
- data/app/forms/attachments/attach_detach_show_form.rb +8 -0
- data/app/forms/containers/create_form.rb +5 -0
- data/app/forms/databases/create_form.rb +6 -0
- data/app/forms/files/create_form.rb +5 -0
- data/app/forms/files/download_form.rb +5 -0
- data/app/forms/instances/create_form.rb +11 -0
- data/app/forms/loadbalancers/create_form.rb +2 -2
- data/app/forms/nodes/create_form.rb +12 -0
- data/app/forms/users/create_form.rb +1 -1
- data/app/forms/volumes/create_form.rb +10 -0
- data/app/help/create_attachment_on_server.txt +14 -0
- data/app/help/create_container.txt +1 -0
- data/app/help/{create_database.txt → create_database_on_dbinstance.txt} +3 -3
- data/app/help/create_dbinstance.txt +3 -3
- data/app/help/create_file_in_container.txt +14 -0
- data/app/help/create_node_on_loadbalancer.txt +17 -0
- data/app/help/create_server.txt +4 -4
- data/app/help/{create_user.txt → create_user_on_dbinstance.txt} +0 -0
- data/app/help/create_volume.txt +4 -2
- data/app/help/destroy_attachment_on_server.txt +14 -0
- data/app/help/{destroy_database.txt → destroy_database_on_dbinstance.txt} +0 -0
- data/app/help/{destroy_file.txt → destroy_file_in_container.txt} +0 -0
- data/app/help/{destroy_node.txt → destroy_node_on_loadbalancer.txt} +0 -0
- data/app/help/destroy_user_on_dbinstance.txt +15 -0
- data/app/help/download_file_in_container.txt +15 -0
- data/app/help/routes.rb +4 -3
- data/app/help/show_attachment_on_server.txt +14 -0
- data/app/help/{show_attachments.txt → show_attachments_on_server.txt} +0 -0
- data/app/help/{show_database.txt → show_database_on_dbinstance.txt} +0 -0
- data/app/help/{show_databases.txt → show_databases_on_dbinstance.txt} +0 -0
- data/app/help/{show_file.txt → show_file_in_container.txt} +0 -0
- data/app/help/{show_files.txt → show_files_in_container.txt} +0 -0
- data/app/help/{show_node.txt → show_node_in_loadbalancer.txt} +0 -0
- data/app/help/show_user_on_dbinstance.txt +15 -0
- data/app/help/{show_users.txt → show_users_on_dbinstance.txt} +0 -0
- data/app/providers/compute_provider.rb +2 -1
- data/app/providers/containers_provider.rb +2 -1
- data/app/providers/databases_provider.rb +2 -1
- data/app/providers/instances_provider.rb +2 -1
- data/app/providers/loadbalancers_provider.rb +2 -1
- data/app/providers/nodes_provider.rb +2 -1
- data/app/providers/volumes_provider.rb +2 -1
- data/app/routes.rb +5 -4
- data/app/views/attachments/attach.txt.erb +4 -1
- data/app/views/attachments/detach.txt.erb +1 -1
- data/app/views/attachments/index.txt.erb +10 -2
- data/app/views/attachments/show.txt.erb +3 -1
- data/app/views/containers/create.txt.erb +1 -1
- data/app/views/containers/destroy.txt.erb +1 -1
- data/app/views/containers/index.txt.erb +7 -1
- data/app/views/databases/create.txt.erb +1 -1
- data/app/views/databases/destroy.txt.erb +1 -1
- data/app/views/databases/index.txt.erb +2 -1
- data/app/views/files/create.txt.erb +1 -2
- data/app/views/files/destroy.txt.erb +1 -1
- data/app/views/files/download.txt.erb +1 -1
- data/app/views/files/index.txt.erb +9 -1
- data/app/views/files/show.txt.erb +2 -1
- data/app/views/instances/create.txt.erb +1 -1
- data/app/views/instances/destroy.txt.erb +1 -1
- data/app/views/instances/index.txt.erb +2 -1
- data/app/views/instances/show.txt.erb +4 -1
- data/app/views/loadbalancers/create.txt.erb +1 -1
- data/app/views/loadbalancers/destroy.txt.erb +1 -1
- data/app/views/loadbalancers/index.txt.erb +1 -0
- data/app/views/nodes/create.txt.erb +1 -1
- data/app/views/nodes/destroy.txt.erb +1 -1
- data/app/views/nodes/index.txt.erb +7 -2
- data/app/views/nodes/show.txt.erb +6 -1
- data/app/views/users/index.txt.erb +4 -3
- data/app/views/volumes/create.txt.erb +1 -1
- data/app/views/volumes/destroy.txt.erb +1 -1
- data/app/views/volumes/index.txt.erb +8 -1
- data/app/views/volumes/show.txt.erb +7 -1
- data/lib/rumm/version.rb +1 -1
- data/rumm.gemspec +3 -3
- data/spec/features/attachments_spec.rb +33 -0
- data/spec/features/containers_spec.rb +30 -0
- data/spec/features/databases_spec.rb +29 -0
- data/spec/features/dbinstances_spec.rb +30 -0
- data/spec/features/files_spec.rb +50 -0
- data/spec/features/help_spec.rb +2 -2
- data/spec/features/loadbalancers_spec.rb +30 -0
- data/spec/features/login_spec.rb +21 -17
- data/spec/features/nodes_spec.rb +35 -0
- data/spec/features/servers_spec.rb +7 -13
- data/spec/features/volumes_spec.rb +29 -0
- data/spec/fixtures/cassettes/attachments/create.yml +305 -0
- data/spec/fixtures/cassettes/attachments/destroy.yml +342 -0
- data/spec/fixtures/cassettes/attachments/show-all.yml +145 -0
- data/spec/fixtures/cassettes/attachments/show.yml +309 -0
- data/spec/fixtures/cassettes/authentication/successful-login.yml +78 -0
- data/spec/fixtures/cassettes/{unsuccessful-login.yml → authentication/unsuccessful-login.yml} +3 -3
- data/spec/fixtures/cassettes/containers/create.yml +212 -0
- data/spec/fixtures/cassettes/containers/destroy.yml +211 -0
- data/spec/fixtures/cassettes/containers/show-all.yml +92 -0
- data/spec/fixtures/cassettes/containers/show.yml +92 -0
- data/spec/fixtures/cassettes/databases/create.yml +171 -0
- data/spec/fixtures/cassettes/databases/destroy.yml +206 -0
- data/spec/fixtures/cassettes/databases/show-all.yml +171 -0
- data/spec/fixtures/cassettes/databases/show.yml +171 -0
- data/spec/fixtures/cassettes/files/create.yml +129 -0
- data/spec/fixtures/cassettes/files/destroy.yml +166 -0
- data/spec/fixtures/cassettes/files/download.yml +132 -0
- data/spec/fixtures/cassettes/files/show-all.yml +175 -0
- data/spec/fixtures/cassettes/files/show.yml +133 -0
- data/spec/fixtures/cassettes/instances/create.yml +87 -0
- data/spec/fixtures/cassettes/instances/destroy.yml +128 -0
- data/spec/fixtures/cassettes/instances/show-all.yml +87 -0
- data/spec/fixtures/cassettes/instances/show.yml +128 -0
- data/spec/fixtures/cassettes/loadbalancers/create.yml +81 -0
- data/spec/fixtures/cassettes/loadbalancers/destroy.yml +114 -0
- data/spec/fixtures/cassettes/loadbalancers/show-all.yml +81 -0
- data/spec/fixtures/cassettes/loadbalancers/show.yml +81 -0
- data/spec/fixtures/cassettes/nodes/create.yml +159 -0
- data/spec/fixtures/cassettes/nodes/destroy.yml +192 -0
- data/spec/fixtures/cassettes/nodes/show-all.yml +159 -0
- data/spec/fixtures/cassettes/nodes/show.yml +159 -0
- data/spec/fixtures/cassettes/{create-server.yml → servers/create.yml} +2452 -3032
- data/spec/fixtures/cassettes/servers/destroy.yml +130 -0
- data/spec/fixtures/cassettes/servers/show-all.yml +81 -0
- data/spec/fixtures/cassettes/servers/show.yml +183 -0
- data/spec/fixtures/cassettes/volumes/create.yml +83 -0
- data/spec/fixtures/cassettes/volumes/destroy.yml +114 -0
- data/spec/fixtures/cassettes/volumes/show-all.yml +83 -0
- data/spec/fixtures/cassettes/volumes/show.yml +83 -0
- data/spec/spec_helper.rb +37 -7
- metadata +135 -62
- data/app/help/attach_volume.txt +0 -15
- data/app/help/create_node.txt +0 -14
- data/app/help/detach_volume.txt +0 -15
- data/spec/fixtures/cassettes/destroy-server.yml +0 -130
- data/spec/fixtures/cassettes/show-server.yml +0 -183
- data/spec/fixtures/cassettes/show-servers.yml +0 -81
- data/spec/fixtures/cassettes/successful-login.yml +0 -78
@@ -0,0 +1,114 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://identity.api.rackspacecloud.com/v2.0/tokens
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"auth":{"RAX-KSKEY:apiKeyCredentials":{"username":"<rackspace-username>","apiKey":"<rackspace-api-key>"}}}'
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- fog/1.12.1
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
Accept:
|
15
|
+
- application/json
|
16
|
+
X-Auth-Token: []
|
17
|
+
response:
|
18
|
+
status:
|
19
|
+
code: 200
|
20
|
+
message:
|
21
|
+
headers:
|
22
|
+
Server:
|
23
|
+
- nginx/0.8.55
|
24
|
+
Date:
|
25
|
+
- Fri, 23 Aug 2013 16:57:15 GMT
|
26
|
+
Content-Type:
|
27
|
+
- application/json
|
28
|
+
Connection:
|
29
|
+
- keep-alive
|
30
|
+
vary:
|
31
|
+
- Accept, Accept-Encoding, X-Auth-Token
|
32
|
+
VIA:
|
33
|
+
- 1.0 Repose (Repose/2.3.5)
|
34
|
+
Content-Length:
|
35
|
+
- '6168'
|
36
|
+
Front-End-Https:
|
37
|
+
- 'on'
|
38
|
+
body:
|
39
|
+
encoding: UTF-8
|
40
|
+
string: '{"access":{"token":{"id":"<rackspace-api-token>","expires":"2013-08-24T10:37:06.604-05:00","tenant":{"id":"833532","name":"833532"},"RAX-AUTH:authenticatedBy":["APIKEY"]},"serviceCatalog":[{"name":"cloudFilesCDN","endpoints":[{"region":"ORD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/cdn2.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"SYD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/cdn4.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"DFW","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/cdn1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"IAD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/cdn5.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"}],"type":"rax:object-cdn"},{"name":"cloudFiles","endpoints":[{"region":"ORD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/storage101.ord1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","internalURL":"https:\/\/snet-storage101.ord1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"DFW","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/storage101.dfw1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","internalURL":"https:\/\/snet-storage101.dfw1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"SYD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/storage101.syd2.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","internalURL":"https:\/\/snet-storage101.syd2.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"IAD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/storage101.iad3.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","internalURL":"https:\/\/snet-storage101.iad3.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"}],"type":"object-store"},{"name":"cloudBackup","endpoints":[{"tenantId":"833532","publicURL":"https:\/\/backup.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:backup"},{"name":"cloudBlockStorage","endpoints":[{"region":"SYD","tenantId":"833532","publicURL":"https:\/\/syd.blockstorage.api.rackspacecloud.com\/v1\/833532"},{"region":"ORD","tenantId":"833532","publicURL":"https:\/\/ord.blockstorage.api.rackspacecloud.com\/v1\/833532"},{"region":"DFW","tenantId":"833532","publicURL":"https:\/\/dfw.blockstorage.api.rackspacecloud.com\/v1\/833532"},{"region":"IAD","tenantId":"833532","publicURL":"https:\/\/iad.blockstorage.api.rackspacecloud.com\/v1\/833532"}],"type":"volume"},{"name":"cloudServersOpenStack","endpoints":[{"region":"SYD","tenantId":"833532","publicURL":"https:\/\/syd.servers.api.rackspacecloud.com\/v2\/833532","versionInfo":"https:\/\/syd.servers.api.rackspacecloud.com\/v2","versionList":"https:\/\/syd.servers.api.rackspacecloud.com\/","versionId":"2"},{"region":"ORD","tenantId":"833532","publicURL":"https:\/\/ord.servers.api.rackspacecloud.com\/v2\/833532","versionInfo":"https:\/\/ord.servers.api.rackspacecloud.com\/v2","versionList":"https:\/\/ord.servers.api.rackspacecloud.com\/","versionId":"2"},{"region":"DFW","tenantId":"833532","publicURL":"https:\/\/dfw.servers.api.rackspacecloud.com\/v2\/833532","versionInfo":"https:\/\/dfw.servers.api.rackspacecloud.com\/v2","versionList":"https:\/\/dfw.servers.api.rackspacecloud.com\/","versionId":"2"},{"region":"IAD","tenantId":"833532","publicURL":"https:\/\/iad.servers.api.rackspacecloud.com\/v2\/833532","versionInfo":"https:\/\/iad.servers.api.rackspacecloud.com\/v2","versionList":"https:\/\/iad.servers.api.rackspacecloud.com\/","versionId":"2"}],"type":"compute"},{"name":"cloudMonitoring","endpoints":[{"tenantId":"833532","publicURL":"https:\/\/monitoring.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:monitor"},{"name":"cloudDatabases","endpoints":[{"region":"SYD","tenantId":"833532","publicURL":"https:\/\/syd.databases.api.rackspacecloud.com\/v1.0\/833532"},{"region":"ORD","tenantId":"833532","publicURL":"https:\/\/ord.databases.api.rackspacecloud.com\/v1.0\/833532"},{"region":"DFW","tenantId":"833532","publicURL":"https:\/\/dfw.databases.api.rackspacecloud.com\/v1.0\/833532"},{"region":"IAD","tenantId":"833532","publicURL":"https:\/\/iad.databases.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:database"},{"name":"cloudServers","endpoints":[{"tenantId":"833532","publicURL":"https:\/\/servers.api.rackspacecloud.com\/v1.0\/833532","versionInfo":"https:\/\/servers.api.rackspacecloud.com\/v1.0","versionList":"https:\/\/servers.api.rackspacecloud.com\/","versionId":"1.0"}],"type":"compute"},{"name":"cloudDNS","endpoints":[{"tenantId":"833532","publicURL":"https:\/\/dns.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:dns"},{"name":"cloudLoadBalancers","endpoints":[{"region":"SYD","tenantId":"833532","publicURL":"https:\/\/syd.loadbalancers.api.rackspacecloud.com\/v1.0\/833532"},{"region":"ORD","tenantId":"833532","publicURL":"https:\/\/ord.loadbalancers.api.rackspacecloud.com\/v1.0\/833532"},{"region":"DFW","tenantId":"833532","publicURL":"https:\/\/dfw.loadbalancers.api.rackspacecloud.com\/v1.0\/833532"},{"region":"IAD","tenantId":"833532","publicURL":"https:\/\/iad.loadbalancers.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:load-balancer"}],"user":{"id":"10038092","roles":[{"id":"10000150","description":"Checkmate
|
41
|
+
Access role","name":"checkmate"},{"id":"3","description":"User Admin Role.","name":"identity:user-admin"},{"tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","id":"5","description":"A
|
42
|
+
Role that allows a user access to keystone Service methods","name":"object-store:default"},{"tenantId":"833532","id":"6","description":"A
|
43
|
+
Role that allows a user access to keystone Service methods","name":"compute:default"}],"name":"<rackspace-username>","RAX-AUTH:defaultRegion":"ORD"}}}'
|
44
|
+
http_version:
|
45
|
+
recorded_at: Fri, 23 Aug 2013 16:57:15 GMT
|
46
|
+
- request:
|
47
|
+
method: get
|
48
|
+
uri: https://ord.blockstorage.api.rackspacecloud.com/v1/833532/volumes
|
49
|
+
body:
|
50
|
+
encoding: US-ASCII
|
51
|
+
string: ''
|
52
|
+
headers:
|
53
|
+
User-Agent:
|
54
|
+
- fog/1.12.1
|
55
|
+
Content-Type:
|
56
|
+
- application/json
|
57
|
+
Accept:
|
58
|
+
- application/json
|
59
|
+
X-Auth-Token:
|
60
|
+
- <rackspace-api-token>
|
61
|
+
response:
|
62
|
+
status:
|
63
|
+
code: 200
|
64
|
+
message:
|
65
|
+
headers:
|
66
|
+
X-Compute-Request-Id:
|
67
|
+
- req-396a3fd8-4478-40dc-aac2-d8510e661b69
|
68
|
+
Content-Type:
|
69
|
+
- application/json
|
70
|
+
Content-Length:
|
71
|
+
- '359'
|
72
|
+
Date:
|
73
|
+
- Fri, 23 Aug 2013 16:57:16 GMT
|
74
|
+
body:
|
75
|
+
encoding: UTF-8
|
76
|
+
string: '{"volumes": [{"status": "available", "display_name": "vaulting-vigilante",
|
77
|
+
"attachments": [], "availability_zone": "nova", "bootable": "false", "created_at":
|
78
|
+
"2013-08-23T16:57:10.000000", "display_description": null, "volume_type":
|
79
|
+
"SATA", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "fb9aa7b4-36ff-4dd1-b47b-4b452a604aeb",
|
80
|
+
"size": 100}]}'
|
81
|
+
http_version:
|
82
|
+
recorded_at: Fri, 23 Aug 2013 16:57:16 GMT
|
83
|
+
- request:
|
84
|
+
method: delete
|
85
|
+
uri: https://ord.blockstorage.api.rackspacecloud.com/v1/833532/volumes/fb9aa7b4-36ff-4dd1-b47b-4b452a604aeb
|
86
|
+
body:
|
87
|
+
encoding: US-ASCII
|
88
|
+
string: ''
|
89
|
+
headers:
|
90
|
+
User-Agent:
|
91
|
+
- fog/1.12.1
|
92
|
+
Content-Type:
|
93
|
+
- application/json
|
94
|
+
Accept:
|
95
|
+
- application/json
|
96
|
+
X-Auth-Token:
|
97
|
+
- <rackspace-api-token>
|
98
|
+
response:
|
99
|
+
status:
|
100
|
+
code: 202
|
101
|
+
message:
|
102
|
+
headers:
|
103
|
+
Content-Type:
|
104
|
+
- text/html; charset=UTF-8
|
105
|
+
Content-Length:
|
106
|
+
- '0'
|
107
|
+
Date:
|
108
|
+
- Fri, 23 Aug 2013 16:57:17 GMT
|
109
|
+
body:
|
110
|
+
encoding: UTF-8
|
111
|
+
string: ''
|
112
|
+
http_version:
|
113
|
+
recorded_at: Fri, 23 Aug 2013 16:57:17 GMT
|
114
|
+
recorded_with: VCR 2.5.0
|
@@ -0,0 +1,83 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://identity.api.rackspacecloud.com/v2.0/tokens
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"auth":{"RAX-KSKEY:apiKeyCredentials":{"username":"<rackspace-username>","apiKey":"<rackspace-api-key>"}}}'
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- fog/1.12.1
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
Accept:
|
15
|
+
- application/json
|
16
|
+
X-Auth-Token: []
|
17
|
+
response:
|
18
|
+
status:
|
19
|
+
code: 200
|
20
|
+
message:
|
21
|
+
headers:
|
22
|
+
Server:
|
23
|
+
- nginx/0.8.55
|
24
|
+
Date:
|
25
|
+
- Fri, 23 Aug 2013 16:57:14 GMT
|
26
|
+
Content-Type:
|
27
|
+
- application/json
|
28
|
+
Connection:
|
29
|
+
- keep-alive
|
30
|
+
vary:
|
31
|
+
- Accept, Accept-Encoding, X-Auth-Token
|
32
|
+
VIA:
|
33
|
+
- 1.0 Repose (Repose/2.3.5)
|
34
|
+
Content-Length:
|
35
|
+
- '6168'
|
36
|
+
Front-End-Https:
|
37
|
+
- 'on'
|
38
|
+
body:
|
39
|
+
encoding: UTF-8
|
40
|
+
string: '{"access":{"token":{"id":"<rackspace-api-token>","expires":"2013-08-24T10:37:06.604-05:00","tenant":{"id":"833532","name":"833532"},"RAX-AUTH:authenticatedBy":["APIKEY"]},"serviceCatalog":[{"name":"cloudFiles","endpoints":[{"region":"ORD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/storage101.ord1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","internalURL":"https:\/\/snet-storage101.ord1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"SYD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/storage101.syd2.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","internalURL":"https:\/\/snet-storage101.syd2.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"DFW","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/storage101.dfw1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","internalURL":"https:\/\/snet-storage101.dfw1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"IAD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/storage101.iad3.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","internalURL":"https:\/\/snet-storage101.iad3.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"}],"type":"object-store"},{"name":"cloudFilesCDN","endpoints":[{"region":"ORD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/cdn2.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"SYD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/cdn4.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"DFW","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/cdn1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"IAD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/cdn5.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"}],"type":"rax:object-cdn"},{"name":"cloudBlockStorage","endpoints":[{"region":"SYD","tenantId":"833532","publicURL":"https:\/\/syd.blockstorage.api.rackspacecloud.com\/v1\/833532"},{"region":"ORD","tenantId":"833532","publicURL":"https:\/\/ord.blockstorage.api.rackspacecloud.com\/v1\/833532"},{"region":"DFW","tenantId":"833532","publicURL":"https:\/\/dfw.blockstorage.api.rackspacecloud.com\/v1\/833532"},{"region":"IAD","tenantId":"833532","publicURL":"https:\/\/iad.blockstorage.api.rackspacecloud.com\/v1\/833532"}],"type":"volume"},{"name":"cloudLoadBalancers","endpoints":[{"region":"SYD","tenantId":"833532","publicURL":"https:\/\/syd.loadbalancers.api.rackspacecloud.com\/v1.0\/833532"},{"region":"ORD","tenantId":"833532","publicURL":"https:\/\/ord.loadbalancers.api.rackspacecloud.com\/v1.0\/833532"},{"region":"DFW","tenantId":"833532","publicURL":"https:\/\/dfw.loadbalancers.api.rackspacecloud.com\/v1.0\/833532"},{"region":"IAD","tenantId":"833532","publicURL":"https:\/\/iad.loadbalancers.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:load-balancer"},{"name":"cloudServersOpenStack","endpoints":[{"region":"SYD","tenantId":"833532","publicURL":"https:\/\/syd.servers.api.rackspacecloud.com\/v2\/833532","versionInfo":"https:\/\/syd.servers.api.rackspacecloud.com\/v2","versionList":"https:\/\/syd.servers.api.rackspacecloud.com\/","versionId":"2"},{"region":"DFW","tenantId":"833532","publicURL":"https:\/\/dfw.servers.api.rackspacecloud.com\/v2\/833532","versionInfo":"https:\/\/dfw.servers.api.rackspacecloud.com\/v2","versionList":"https:\/\/dfw.servers.api.rackspacecloud.com\/","versionId":"2"},{"region":"ORD","tenantId":"833532","publicURL":"https:\/\/ord.servers.api.rackspacecloud.com\/v2\/833532","versionInfo":"https:\/\/ord.servers.api.rackspacecloud.com\/v2","versionList":"https:\/\/ord.servers.api.rackspacecloud.com\/","versionId":"2"},{"region":"IAD","tenantId":"833532","publicURL":"https:\/\/iad.servers.api.rackspacecloud.com\/v2\/833532","versionInfo":"https:\/\/iad.servers.api.rackspacecloud.com\/v2","versionList":"https:\/\/iad.servers.api.rackspacecloud.com\/","versionId":"2"}],"type":"compute"},{"name":"cloudDatabases","endpoints":[{"region":"SYD","tenantId":"833532","publicURL":"https:\/\/syd.databases.api.rackspacecloud.com\/v1.0\/833532"},{"region":"DFW","tenantId":"833532","publicURL":"https:\/\/dfw.databases.api.rackspacecloud.com\/v1.0\/833532"},{"region":"ORD","tenantId":"833532","publicURL":"https:\/\/ord.databases.api.rackspacecloud.com\/v1.0\/833532"},{"region":"IAD","tenantId":"833532","publicURL":"https:\/\/iad.databases.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:database"},{"name":"cloudDNS","endpoints":[{"tenantId":"833532","publicURL":"https:\/\/dns.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:dns"},{"name":"cloudServers","endpoints":[{"tenantId":"833532","publicURL":"https:\/\/servers.api.rackspacecloud.com\/v1.0\/833532","versionInfo":"https:\/\/servers.api.rackspacecloud.com\/v1.0","versionList":"https:\/\/servers.api.rackspacecloud.com\/","versionId":"1.0"}],"type":"compute"},{"name":"cloudMonitoring","endpoints":[{"tenantId":"833532","publicURL":"https:\/\/monitoring.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:monitor"},{"name":"cloudBackup","endpoints":[{"tenantId":"833532","publicURL":"https:\/\/backup.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:backup"}],"user":{"id":"10038092","roles":[{"id":"10000150","description":"Checkmate
|
41
|
+
Access role","name":"checkmate"},{"id":"3","description":"User Admin Role.","name":"identity:user-admin"},{"tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","id":"5","description":"A
|
42
|
+
Role that allows a user access to keystone Service methods","name":"object-store:default"},{"tenantId":"833532","id":"6","description":"A
|
43
|
+
Role that allows a user access to keystone Service methods","name":"compute:default"}],"name":"<rackspace-username>","RAX-AUTH:defaultRegion":"ORD"}}}'
|
44
|
+
http_version:
|
45
|
+
recorded_at: Fri, 23 Aug 2013 16:57:14 GMT
|
46
|
+
- request:
|
47
|
+
method: get
|
48
|
+
uri: https://ord.blockstorage.api.rackspacecloud.com/v1/833532/volumes
|
49
|
+
body:
|
50
|
+
encoding: US-ASCII
|
51
|
+
string: ''
|
52
|
+
headers:
|
53
|
+
User-Agent:
|
54
|
+
- fog/1.12.1
|
55
|
+
Content-Type:
|
56
|
+
- application/json
|
57
|
+
Accept:
|
58
|
+
- application/json
|
59
|
+
X-Auth-Token:
|
60
|
+
- <rackspace-api-token>
|
61
|
+
response:
|
62
|
+
status:
|
63
|
+
code: 200
|
64
|
+
message:
|
65
|
+
headers:
|
66
|
+
X-Compute-Request-Id:
|
67
|
+
- req-0c8a060e-9c88-4001-b9c7-6b2a99c9775f
|
68
|
+
Content-Type:
|
69
|
+
- application/json
|
70
|
+
Content-Length:
|
71
|
+
- '359'
|
72
|
+
Date:
|
73
|
+
- Fri, 23 Aug 2013 16:57:15 GMT
|
74
|
+
body:
|
75
|
+
encoding: UTF-8
|
76
|
+
string: '{"volumes": [{"status": "available", "display_name": "vaulting-vigilante",
|
77
|
+
"attachments": [], "availability_zone": "nova", "bootable": "false", "created_at":
|
78
|
+
"2013-08-23T16:57:10.000000", "display_description": null, "volume_type":
|
79
|
+
"SATA", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "fb9aa7b4-36ff-4dd1-b47b-4b452a604aeb",
|
80
|
+
"size": 100}]}'
|
81
|
+
http_version:
|
82
|
+
recorded_at: Fri, 23 Aug 2013 16:57:15 GMT
|
83
|
+
recorded_with: VCR 2.5.0
|
@@ -0,0 +1,83 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://identity.api.rackspacecloud.com/v2.0/tokens
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"auth":{"RAX-KSKEY:apiKeyCredentials":{"username":"<rackspace-username>","apiKey":"<rackspace-api-key>"}}}'
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- fog/1.12.1
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
Accept:
|
15
|
+
- application/json
|
16
|
+
X-Auth-Token: []
|
17
|
+
response:
|
18
|
+
status:
|
19
|
+
code: 200
|
20
|
+
message:
|
21
|
+
headers:
|
22
|
+
Server:
|
23
|
+
- nginx/0.8.55
|
24
|
+
Date:
|
25
|
+
- Fri, 23 Aug 2013 16:57:13 GMT
|
26
|
+
Content-Type:
|
27
|
+
- application/json
|
28
|
+
Connection:
|
29
|
+
- keep-alive
|
30
|
+
vary:
|
31
|
+
- Accept, Accept-Encoding, X-Auth-Token
|
32
|
+
VIA:
|
33
|
+
- 1.0 Repose (Repose/2.3.5)
|
34
|
+
Content-Length:
|
35
|
+
- '6168'
|
36
|
+
Front-End-Https:
|
37
|
+
- 'on'
|
38
|
+
body:
|
39
|
+
encoding: UTF-8
|
40
|
+
string: '{"access":{"token":{"id":"<rackspace-api-token>","expires":"2013-08-24T10:37:06.604-05:00","tenant":{"id":"833532","name":"833532"},"RAX-AUTH:authenticatedBy":["APIKEY"]},"serviceCatalog":[{"name":"cloudFiles","endpoints":[{"region":"ORD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/storage101.ord1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","internalURL":"https:\/\/snet-storage101.ord1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"SYD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/storage101.syd2.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","internalURL":"https:\/\/snet-storage101.syd2.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"DFW","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/storage101.dfw1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","internalURL":"https:\/\/snet-storage101.dfw1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"IAD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/storage101.iad3.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","internalURL":"https:\/\/snet-storage101.iad3.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"}],"type":"object-store"},{"name":"cloudFilesCDN","endpoints":[{"region":"ORD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/cdn2.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"SYD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/cdn4.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"DFW","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/cdn1.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"},{"region":"IAD","tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","publicURL":"https:\/\/cdn5.clouddrive.com\/v1\/MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd"}],"type":"rax:object-cdn"},{"name":"cloudDatabases","endpoints":[{"region":"SYD","tenantId":"833532","publicURL":"https:\/\/syd.databases.api.rackspacecloud.com\/v1.0\/833532"},{"region":"DFW","tenantId":"833532","publicURL":"https:\/\/dfw.databases.api.rackspacecloud.com\/v1.0\/833532"},{"region":"ORD","tenantId":"833532","publicURL":"https:\/\/ord.databases.api.rackspacecloud.com\/v1.0\/833532"},{"region":"IAD","tenantId":"833532","publicURL":"https:\/\/iad.databases.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:database"},{"name":"cloudMonitoring","endpoints":[{"tenantId":"833532","publicURL":"https:\/\/monitoring.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:monitor"},{"name":"cloudBlockStorage","endpoints":[{"region":"SYD","tenantId":"833532","publicURL":"https:\/\/syd.blockstorage.api.rackspacecloud.com\/v1\/833532"},{"region":"DFW","tenantId":"833532","publicURL":"https:\/\/dfw.blockstorage.api.rackspacecloud.com\/v1\/833532"},{"region":"ORD","tenantId":"833532","publicURL":"https:\/\/ord.blockstorage.api.rackspacecloud.com\/v1\/833532"},{"region":"IAD","tenantId":"833532","publicURL":"https:\/\/iad.blockstorage.api.rackspacecloud.com\/v1\/833532"}],"type":"volume"},{"name":"cloudServersOpenStack","endpoints":[{"region":"SYD","tenantId":"833532","publicURL":"https:\/\/syd.servers.api.rackspacecloud.com\/v2\/833532","versionInfo":"https:\/\/syd.servers.api.rackspacecloud.com\/v2","versionList":"https:\/\/syd.servers.api.rackspacecloud.com\/","versionId":"2"},{"region":"ORD","tenantId":"833532","publicURL":"https:\/\/ord.servers.api.rackspacecloud.com\/v2\/833532","versionInfo":"https:\/\/ord.servers.api.rackspacecloud.com\/v2","versionList":"https:\/\/ord.servers.api.rackspacecloud.com\/","versionId":"2"},{"region":"DFW","tenantId":"833532","publicURL":"https:\/\/dfw.servers.api.rackspacecloud.com\/v2\/833532","versionInfo":"https:\/\/dfw.servers.api.rackspacecloud.com\/v2","versionList":"https:\/\/dfw.servers.api.rackspacecloud.com\/","versionId":"2"},{"region":"IAD","tenantId":"833532","publicURL":"https:\/\/iad.servers.api.rackspacecloud.com\/v2\/833532","versionInfo":"https:\/\/iad.servers.api.rackspacecloud.com\/v2","versionList":"https:\/\/iad.servers.api.rackspacecloud.com\/","versionId":"2"}],"type":"compute"},{"name":"cloudServers","endpoints":[{"tenantId":"833532","publicURL":"https:\/\/servers.api.rackspacecloud.com\/v1.0\/833532","versionInfo":"https:\/\/servers.api.rackspacecloud.com\/v1.0","versionList":"https:\/\/servers.api.rackspacecloud.com\/","versionId":"1.0"}],"type":"compute"},{"name":"cloudDNS","endpoints":[{"tenantId":"833532","publicURL":"https:\/\/dns.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:dns"},{"name":"cloudLoadBalancers","endpoints":[{"region":"SYD","tenantId":"833532","publicURL":"https:\/\/syd.loadbalancers.api.rackspacecloud.com\/v1.0\/833532"},{"region":"ORD","tenantId":"833532","publicURL":"https:\/\/ord.loadbalancers.api.rackspacecloud.com\/v1.0\/833532"},{"region":"DFW","tenantId":"833532","publicURL":"https:\/\/dfw.loadbalancers.api.rackspacecloud.com\/v1.0\/833532"},{"region":"IAD","tenantId":"833532","publicURL":"https:\/\/iad.loadbalancers.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:load-balancer"},{"name":"cloudBackup","endpoints":[{"tenantId":"833532","publicURL":"https:\/\/backup.api.rackspacecloud.com\/v1.0\/833532"}],"type":"rax:backup"}],"user":{"id":"10038092","roles":[{"id":"10000150","description":"Checkmate
|
41
|
+
Access role","name":"checkmate"},{"id":"3","description":"User Admin Role.","name":"identity:user-admin"},{"tenantId":"MossoCloudFS_558014f8-1c3d-44b9-a771-f42ace65e8dd","id":"5","description":"A
|
42
|
+
Role that allows a user access to keystone Service methods","name":"object-store:default"},{"tenantId":"833532","id":"6","description":"A
|
43
|
+
Role that allows a user access to keystone Service methods","name":"compute:default"}],"name":"<rackspace-username>","RAX-AUTH:defaultRegion":"ORD"}}}'
|
44
|
+
http_version:
|
45
|
+
recorded_at: Fri, 23 Aug 2013 16:57:13 GMT
|
46
|
+
- request:
|
47
|
+
method: get
|
48
|
+
uri: https://ord.blockstorage.api.rackspacecloud.com/v1/833532/volumes
|
49
|
+
body:
|
50
|
+
encoding: US-ASCII
|
51
|
+
string: ''
|
52
|
+
headers:
|
53
|
+
User-Agent:
|
54
|
+
- fog/1.12.1
|
55
|
+
Content-Type:
|
56
|
+
- application/json
|
57
|
+
Accept:
|
58
|
+
- application/json
|
59
|
+
X-Auth-Token:
|
60
|
+
- <rackspace-api-token>
|
61
|
+
response:
|
62
|
+
status:
|
63
|
+
code: 200
|
64
|
+
message:
|
65
|
+
headers:
|
66
|
+
X-Compute-Request-Id:
|
67
|
+
- req-ea34fa34-a816-4ea5-8956-37b0e9e710d6
|
68
|
+
Content-Type:
|
69
|
+
- application/json
|
70
|
+
Content-Length:
|
71
|
+
- '359'
|
72
|
+
Date:
|
73
|
+
- Fri, 23 Aug 2013 16:57:14 GMT
|
74
|
+
body:
|
75
|
+
encoding: UTF-8
|
76
|
+
string: '{"volumes": [{"status": "available", "display_name": "vaulting-vigilante",
|
77
|
+
"attachments": [], "availability_zone": "nova", "bootable": "false", "created_at":
|
78
|
+
"2013-08-23T16:57:10.000000", "display_description": null, "volume_type":
|
79
|
+
"SATA", "snapshot_id": null, "source_volid": null, "metadata": {}, "id": "fb9aa7b4-36ff-4dd1-b47b-4b452a604aeb",
|
80
|
+
"size": 100}]}'
|
81
|
+
http_version:
|
82
|
+
recorded_at: Fri, 23 Aug 2013 16:57:13 GMT
|
83
|
+
recorded_with: VCR 2.5.0
|
data/spec/spec_helper.rb
CHANGED
@@ -2,6 +2,7 @@ require "rumm"
|
|
2
2
|
require "vcr"
|
3
3
|
require "aruba/api"
|
4
4
|
require "rspec-given"
|
5
|
+
require "netrc"
|
5
6
|
$: << File.expand_path("../../app/providers", __FILE__)
|
6
7
|
|
7
8
|
module Rumm::SpecHelper
|
@@ -26,7 +27,7 @@ end
|
|
26
27
|
RSpec.configure do |config|
|
27
28
|
config.color_enabled = true
|
28
29
|
config.include Aruba::Api, :example_group => {
|
29
|
-
|
30
|
+
:file_path => /spec\/features/
|
30
31
|
}
|
31
32
|
config.include Rumm::SpecHelper
|
32
33
|
|
@@ -42,17 +43,46 @@ RSpec.configure do |config|
|
|
42
43
|
end
|
43
44
|
end
|
44
45
|
|
46
|
+
shared_context "netrc" do
|
47
|
+
before do
|
48
|
+
if netrc = Netrc.read['api.rackspace.com']
|
49
|
+
login, api_token = netrc
|
50
|
+
else
|
51
|
+
login, api_token = '<rackspace-username>', '<rackspace-api-token>'
|
52
|
+
end
|
53
|
+
File.open(home.join('.netrc'), "w") do |f|
|
54
|
+
f.chmod 0600
|
55
|
+
f.puts "machine api.rackspace.com"
|
56
|
+
f.puts " login #{login}"
|
57
|
+
f.puts " password #{api_token}"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
Given(:home) {Pathname(set_env "HOME", File.expand_path(current_dir))}
|
61
|
+
|
62
|
+
after do
|
63
|
+
restore_env
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
45
67
|
VCR.configure do |c|
|
46
|
-
c.default_cassette_options = {:record => :
|
68
|
+
c.default_cassette_options = {:record => :once}
|
47
69
|
c.hook_into :excon
|
48
70
|
#c.debug_logger = $stderr
|
49
71
|
|
50
72
|
c.cassette_library_dir = 'spec/fixtures/cassettes'
|
51
|
-
c.filter_sensitive_data("<rackspace-username>") do
|
52
|
-
|
73
|
+
c.filter_sensitive_data("<rackspace-username>") do |interaction|
|
74
|
+
if interaction.response.body =~ /"username":"(\w+)"/ or interaction.request.body =~ /"username":"(\w+)"/
|
75
|
+
$1
|
76
|
+
else
|
77
|
+
ENV['RACKSPACE_USERNAME']
|
78
|
+
end
|
53
79
|
end
|
54
|
-
c.filter_sensitive_data("<rackspace-password>") do
|
55
|
-
|
80
|
+
c.filter_sensitive_data("<rackspace-password>") do |interaction|
|
81
|
+
if interaction.response.body =~ /"password":"(.+)"/ or interaction.request.body =~ /"password":"(.+)"/
|
82
|
+
$1
|
83
|
+
else
|
84
|
+
ENV['RACKSPACE_PASSWORD']
|
85
|
+
end
|
56
86
|
end
|
57
87
|
c.filter_sensitive_data("<rackspace-api-token>") do |interaction|
|
58
88
|
if interaction.response.body =~ /"token":{"id":"(\w+)"/
|
@@ -62,7 +92,7 @@ VCR.configure do |c|
|
|
62
92
|
end
|
63
93
|
end
|
64
94
|
c.filter_sensitive_data("<rackspace-api-key>") do |interaction|
|
65
|
-
if interaction.response.body =~ /"apiKey":"(\w+)"/
|
95
|
+
if interaction.response.body =~ /"apiKey":"(\w+)"/ or interaction.request.body =~ /"apiKey":"(\w+)"/
|
66
96
|
$1
|
67
97
|
else
|
68
98
|
ENV['RACKSPACE_API_KEY']
|
metadata
CHANGED
@@ -1,35 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rumm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Lowell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDPjCCAiagAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMRAwDgYDVQQDDAdjb3di
|
14
|
-
b3lkMRwwGgYKCZImiZPyLGQBGRYMdGhlZnJvbnRzaWRlMRMwEQYKCZImiZPyLGQB
|
15
|
-
GRYDbmV0MB4XDTEzMDEzMDIxMDYwNFoXDTE0MDEzMDIxMDYwNFowRTEQMA4GA1UE
|
16
|
-
AwwHY293Ym95ZDEcMBoGCgmSJomT8ixkARkWDHRoZWZyb250c2lkZTETMBEGCgmS
|
17
|
-
JomT8ixkARkWA25ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO45
|
18
|
-
CUxpETDGYXjCCy2dMg/aIrdrTqBqQW5ZrzhHxF9EkcdmWFr0z/qMz0JSpZ3pF11Z
|
19
|
-
KYaj5PaQQpjZfLPwbuiGGkuSWi+UAac//V18xo6S4lzRBjO+gpzG9f2AOzt9b+SR
|
20
|
-
Uc8UhO7QBZ5edUDxMxw9QstD+U0YBAlzsPJbHuUOqdtxXmNQCds3ZnqTgZaIpdUy
|
21
|
-
CSejtrukSmlthxFzwgMezYQhcYxmkl+Q475JUodnI6Pjc6nja/Or8Y6cEWiLgeUa
|
22
|
-
a+efcPGLDEbwJC7TGRrvk8yassMByBEJ3XueTMzeqWFd+665ptciojYo6BvIAR0N
|
23
|
-
iLwks0x567FZyS8SqTcCAwEAAaM5MDcwCQYDVR0TBAIwADAdBgNVHQ4EFgQUxVgR
|
24
|
-
5TUqf7Hd24ICb3g4FNbM7oYwCwYDVR0PBAQDAgSwMA0GCSqGSIb3DQEBBQUAA4IB
|
25
|
-
AQDdJj+NzZhiYXA56z0wzRUA/Fcf6CYqKB+RFRlPssDEcHTor5SnwdWgQof/gNLi
|
26
|
-
Qel1Om4zO0Shcp89jxaUqtvEdYVhmyfc0vycHmemKttNBT734yMrEJtF8Hhy+Dnz
|
27
|
-
9CzixXLvgGaRH+mf3M0+l+zIDJJr2L+39L8cyTSSRnp/srfI8aSmJKhGshudBKoC
|
28
|
-
Ty6Gi071pwoJXvdMaE/6iPy7bUzlndYdHyYuWSKaO9N47HqQ62oEnBraglw6ghoi
|
29
|
-
UgImJlChAzCoDP9zi9tdm6jAr7ttF25R9PPYr11ILb7dYe3qUzlNlM6zJx/nb31b
|
30
|
-
IhdyRVup4qLcqYSTPsm6u7VA
|
31
|
-
-----END CERTIFICATE-----
|
32
|
-
date: 2013-07-22 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-09-03 00:00:00.000000000 Z
|
33
12
|
dependencies:
|
34
13
|
- !ruby/object:Gem::Dependency
|
35
14
|
name: mvcli
|
@@ -37,40 +16,40 @@ dependencies:
|
|
37
16
|
requirements:
|
38
17
|
- - ~>
|
39
18
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.0.
|
19
|
+
version: 0.0.16
|
41
20
|
type: :runtime
|
42
21
|
prerelease: false
|
43
22
|
version_requirements: !ruby/object:Gem::Requirement
|
44
23
|
requirements:
|
45
24
|
- - ~>
|
46
25
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.0.
|
26
|
+
version: 0.0.16
|
48
27
|
- !ruby/object:Gem::Dependency
|
49
28
|
name: fog
|
50
29
|
requirement: !ruby/object:Gem::Requirement
|
51
30
|
requirements:
|
52
31
|
- - ~>
|
53
32
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
33
|
+
version: 1.15.0
|
55
34
|
type: :runtime
|
56
35
|
prerelease: false
|
57
36
|
version_requirements: !ruby/object:Gem::Requirement
|
58
37
|
requirements:
|
59
38
|
- - ~>
|
60
39
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
40
|
+
version: 1.15.0
|
62
41
|
- !ruby/object:Gem::Dependency
|
63
42
|
name: netrc
|
64
43
|
requirement: !ruby/object:Gem::Requirement
|
65
44
|
requirements:
|
66
|
-
- - '>='
|
45
|
+
- - ! '>='
|
67
46
|
- !ruby/object:Gem::Version
|
68
47
|
version: '0'
|
69
48
|
type: :runtime
|
70
49
|
prerelease: false
|
71
50
|
version_requirements: !ruby/object:Gem::Requirement
|
72
51
|
requirements:
|
73
|
-
- - '>='
|
52
|
+
- - ! '>='
|
74
53
|
- !ruby/object:Gem::Version
|
75
54
|
version: '0'
|
76
55
|
description: Lift heavy things inside your Rackspace
|
@@ -102,49 +81,62 @@ files:
|
|
102
81
|
- app/controllers/servers_controller.rb
|
103
82
|
- app/controllers/users_controller.rb
|
104
83
|
- app/controllers/volumes_controller.rb
|
84
|
+
- app/forms/attachments/attach_detach_show_form.rb
|
85
|
+
- app/forms/containers/create_form.rb
|
86
|
+
- app/forms/databases/create_form.rb
|
87
|
+
- app/forms/files/create_form.rb
|
88
|
+
- app/forms/files/download_form.rb
|
89
|
+
- app/forms/instances/create_form.rb
|
105
90
|
- app/forms/loadbalancers/create_form.rb
|
91
|
+
- app/forms/nodes/create_form.rb
|
106
92
|
- app/forms/servers/create_form.rb
|
107
93
|
- app/forms/users/create_form.rb
|
108
|
-
- app/
|
94
|
+
- app/forms/volumes/create_form.rb
|
109
95
|
- app/help/commands.txt
|
96
|
+
- app/help/create_attachment_on_server.txt
|
110
97
|
- app/help/create_container.txt
|
111
|
-
- app/help/
|
98
|
+
- app/help/create_database_on_dbinstance.txt
|
112
99
|
- app/help/create_dbinstance.txt
|
100
|
+
- app/help/create_file_in_container.txt
|
113
101
|
- app/help/create_loadbalancer.txt
|
114
|
-
- app/help/
|
102
|
+
- app/help/create_node_on_loadbalancer.txt
|
115
103
|
- app/help/create_server.txt
|
116
|
-
- app/help/
|
104
|
+
- app/help/create_user_on_dbinstance.txt
|
117
105
|
- app/help/create_volume.txt
|
106
|
+
- app/help/destroy_attachment_on_server.txt
|
118
107
|
- app/help/destroy_container.txt
|
119
|
-
- app/help/
|
108
|
+
- app/help/destroy_database_on_dbinstance.txt
|
120
109
|
- app/help/destroy_dbinstance.txt
|
121
|
-
- app/help/
|
110
|
+
- app/help/destroy_file_in_container.txt
|
122
111
|
- app/help/destroy_loadbalancer.txt
|
123
|
-
- app/help/
|
112
|
+
- app/help/destroy_node_on_loadbalancer.txt
|
124
113
|
- app/help/destroy_server.txt
|
114
|
+
- app/help/destroy_user_on_dbinstance.txt
|
125
115
|
- app/help/destroy_volume.txt
|
126
|
-
- app/help/
|
116
|
+
- app/help/download_file_in_container.txt
|
127
117
|
- app/help/login.txt
|
128
118
|
- app/help/logout.txt
|
129
119
|
- app/help/railsify_server.txt
|
130
120
|
- app/help/routes.rb
|
131
|
-
- app/help/
|
121
|
+
- app/help/show_attachment_on_server.txt
|
122
|
+
- app/help/show_attachments_on_server.txt
|
132
123
|
- app/help/show_container.txt
|
133
124
|
- app/help/show_containers.txt
|
134
|
-
- app/help/
|
135
|
-
- app/help/
|
125
|
+
- app/help/show_database_on_dbinstance.txt
|
126
|
+
- app/help/show_databases_on_dbinstance.txt
|
136
127
|
- app/help/show_dbinstance.txt
|
137
128
|
- app/help/show_dbinstances.txt
|
138
|
-
- app/help/
|
139
|
-
- app/help/
|
129
|
+
- app/help/show_file_in_container.txt
|
130
|
+
- app/help/show_files_in_container.txt
|
140
131
|
- app/help/show_images.txt
|
141
132
|
- app/help/show_loadbalancer.txt
|
142
133
|
- app/help/show_loadbalancers.txt
|
143
|
-
- app/help/
|
134
|
+
- app/help/show_node_in_loadbalancer.txt
|
144
135
|
- app/help/show_nodes_on_loadbalancer.txt
|
145
136
|
- app/help/show_server.txt
|
146
137
|
- app/help/show_servers.txt
|
147
|
-
- app/help/
|
138
|
+
- app/help/show_user_on_dbinstance.txt
|
139
|
+
- app/help/show_users_on_dbinstance.txt
|
148
140
|
- app/help/show_volume.txt
|
149
141
|
- app/help/show_volumes.txt
|
150
142
|
- app/help/ssh.txt
|
@@ -215,19 +207,60 @@ files:
|
|
215
207
|
- lib/rumm.rb
|
216
208
|
- lib/rumm/version.rb
|
217
209
|
- rumm.gemspec
|
210
|
+
- spec/features/attachments_spec.rb
|
211
|
+
- spec/features/containers_spec.rb
|
212
|
+
- spec/features/databases_spec.rb
|
213
|
+
- spec/features/dbinstances_spec.rb
|
214
|
+
- spec/features/files_spec.rb
|
218
215
|
- spec/features/help_spec.rb
|
216
|
+
- spec/features/loadbalancers_spec.rb
|
219
217
|
- spec/features/login_spec.rb
|
218
|
+
- spec/features/nodes_spec.rb
|
220
219
|
- spec/features/servers_spec.rb
|
221
|
-
- spec/
|
222
|
-
- spec/fixtures/cassettes/
|
223
|
-
- spec/fixtures/cassettes/
|
224
|
-
- spec/fixtures/cassettes/show-
|
225
|
-
- spec/fixtures/cassettes/
|
226
|
-
- spec/fixtures/cassettes/
|
220
|
+
- spec/features/volumes_spec.rb
|
221
|
+
- spec/fixtures/cassettes/attachments/create.yml
|
222
|
+
- spec/fixtures/cassettes/attachments/destroy.yml
|
223
|
+
- spec/fixtures/cassettes/attachments/show-all.yml
|
224
|
+
- spec/fixtures/cassettes/attachments/show.yml
|
225
|
+
- spec/fixtures/cassettes/authentication/successful-login.yml
|
226
|
+
- spec/fixtures/cassettes/authentication/unsuccessful-login.yml
|
227
|
+
- spec/fixtures/cassettes/containers/create.yml
|
228
|
+
- spec/fixtures/cassettes/containers/destroy.yml
|
229
|
+
- spec/fixtures/cassettes/containers/show-all.yml
|
230
|
+
- spec/fixtures/cassettes/containers/show.yml
|
231
|
+
- spec/fixtures/cassettes/databases/create.yml
|
232
|
+
- spec/fixtures/cassettes/databases/destroy.yml
|
233
|
+
- spec/fixtures/cassettes/databases/show-all.yml
|
234
|
+
- spec/fixtures/cassettes/databases/show.yml
|
235
|
+
- spec/fixtures/cassettes/files/create.yml
|
236
|
+
- spec/fixtures/cassettes/files/destroy.yml
|
237
|
+
- spec/fixtures/cassettes/files/download.yml
|
238
|
+
- spec/fixtures/cassettes/files/show-all.yml
|
239
|
+
- spec/fixtures/cassettes/files/show.yml
|
240
|
+
- spec/fixtures/cassettes/instances/create.yml
|
241
|
+
- spec/fixtures/cassettes/instances/destroy.yml
|
242
|
+
- spec/fixtures/cassettes/instances/show-all.yml
|
243
|
+
- spec/fixtures/cassettes/instances/show.yml
|
244
|
+
- spec/fixtures/cassettes/loadbalancers/create.yml
|
245
|
+
- spec/fixtures/cassettes/loadbalancers/destroy.yml
|
246
|
+
- spec/fixtures/cassettes/loadbalancers/show-all.yml
|
247
|
+
- spec/fixtures/cassettes/loadbalancers/show.yml
|
248
|
+
- spec/fixtures/cassettes/nodes/create.yml
|
249
|
+
- spec/fixtures/cassettes/nodes/destroy.yml
|
250
|
+
- spec/fixtures/cassettes/nodes/show-all.yml
|
251
|
+
- spec/fixtures/cassettes/nodes/show.yml
|
252
|
+
- spec/fixtures/cassettes/servers/create.yml
|
253
|
+
- spec/fixtures/cassettes/servers/destroy.yml
|
254
|
+
- spec/fixtures/cassettes/servers/show-all.yml
|
255
|
+
- spec/fixtures/cassettes/servers/show.yml
|
256
|
+
- spec/fixtures/cassettes/volumes/create.yml
|
257
|
+
- spec/fixtures/cassettes/volumes/destroy.yml
|
258
|
+
- spec/fixtures/cassettes/volumes/show-all.yml
|
259
|
+
- spec/fixtures/cassettes/volumes/show.yml
|
227
260
|
- spec/providers/naming_provider_spec.rb
|
228
261
|
- spec/spec_helper.rb
|
229
262
|
- tmp/aruba/.gitkeep
|
230
|
-
homepage: https://github.com/
|
263
|
+
homepage: https://github.com/rackspace/rumm
|
231
264
|
licenses:
|
232
265
|
- MIT
|
233
266
|
metadata: {}
|
@@ -237,30 +270,70 @@ require_paths:
|
|
237
270
|
- lib
|
238
271
|
required_ruby_version: !ruby/object:Gem::Requirement
|
239
272
|
requirements:
|
240
|
-
- - '>='
|
273
|
+
- - ! '>='
|
241
274
|
- !ruby/object:Gem::Version
|
242
275
|
version: 1.9.3
|
243
276
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
244
277
|
requirements:
|
245
|
-
- - '>='
|
278
|
+
- - ! '>='
|
246
279
|
- !ruby/object:Gem::Version
|
247
280
|
version: '0'
|
248
281
|
requirements: []
|
249
282
|
rubyforge_project:
|
250
|
-
rubygems_version: 2.0.
|
283
|
+
rubygems_version: 2.0.3
|
251
284
|
signing_key:
|
252
285
|
specification_version: 4
|
253
286
|
summary: CLI and API for managing Rackspace infrastructure
|
254
287
|
test_files:
|
288
|
+
- spec/features/attachments_spec.rb
|
289
|
+
- spec/features/containers_spec.rb
|
290
|
+
- spec/features/databases_spec.rb
|
291
|
+
- spec/features/dbinstances_spec.rb
|
292
|
+
- spec/features/files_spec.rb
|
255
293
|
- spec/features/help_spec.rb
|
294
|
+
- spec/features/loadbalancers_spec.rb
|
256
295
|
- spec/features/login_spec.rb
|
296
|
+
- spec/features/nodes_spec.rb
|
257
297
|
- spec/features/servers_spec.rb
|
258
|
-
- spec/
|
259
|
-
- spec/fixtures/cassettes/
|
260
|
-
- spec/fixtures/cassettes/
|
261
|
-
- spec/fixtures/cassettes/show-
|
262
|
-
- spec/fixtures/cassettes/
|
263
|
-
- spec/fixtures/cassettes/
|
298
|
+
- spec/features/volumes_spec.rb
|
299
|
+
- spec/fixtures/cassettes/attachments/create.yml
|
300
|
+
- spec/fixtures/cassettes/attachments/destroy.yml
|
301
|
+
- spec/fixtures/cassettes/attachments/show-all.yml
|
302
|
+
- spec/fixtures/cassettes/attachments/show.yml
|
303
|
+
- spec/fixtures/cassettes/authentication/successful-login.yml
|
304
|
+
- spec/fixtures/cassettes/authentication/unsuccessful-login.yml
|
305
|
+
- spec/fixtures/cassettes/containers/create.yml
|
306
|
+
- spec/fixtures/cassettes/containers/destroy.yml
|
307
|
+
- spec/fixtures/cassettes/containers/show-all.yml
|
308
|
+
- spec/fixtures/cassettes/containers/show.yml
|
309
|
+
- spec/fixtures/cassettes/databases/create.yml
|
310
|
+
- spec/fixtures/cassettes/databases/destroy.yml
|
311
|
+
- spec/fixtures/cassettes/databases/show-all.yml
|
312
|
+
- spec/fixtures/cassettes/databases/show.yml
|
313
|
+
- spec/fixtures/cassettes/files/create.yml
|
314
|
+
- spec/fixtures/cassettes/files/destroy.yml
|
315
|
+
- spec/fixtures/cassettes/files/download.yml
|
316
|
+
- spec/fixtures/cassettes/files/show-all.yml
|
317
|
+
- spec/fixtures/cassettes/files/show.yml
|
318
|
+
- spec/fixtures/cassettes/instances/create.yml
|
319
|
+
- spec/fixtures/cassettes/instances/destroy.yml
|
320
|
+
- spec/fixtures/cassettes/instances/show-all.yml
|
321
|
+
- spec/fixtures/cassettes/instances/show.yml
|
322
|
+
- spec/fixtures/cassettes/loadbalancers/create.yml
|
323
|
+
- spec/fixtures/cassettes/loadbalancers/destroy.yml
|
324
|
+
- spec/fixtures/cassettes/loadbalancers/show-all.yml
|
325
|
+
- spec/fixtures/cassettes/loadbalancers/show.yml
|
326
|
+
- spec/fixtures/cassettes/nodes/create.yml
|
327
|
+
- spec/fixtures/cassettes/nodes/destroy.yml
|
328
|
+
- spec/fixtures/cassettes/nodes/show-all.yml
|
329
|
+
- spec/fixtures/cassettes/nodes/show.yml
|
330
|
+
- spec/fixtures/cassettes/servers/create.yml
|
331
|
+
- spec/fixtures/cassettes/servers/destroy.yml
|
332
|
+
- spec/fixtures/cassettes/servers/show-all.yml
|
333
|
+
- spec/fixtures/cassettes/servers/show.yml
|
334
|
+
- spec/fixtures/cassettes/volumes/create.yml
|
335
|
+
- spec/fixtures/cassettes/volumes/destroy.yml
|
336
|
+
- spec/fixtures/cassettes/volumes/show-all.yml
|
337
|
+
- spec/fixtures/cassettes/volumes/show.yml
|
264
338
|
- spec/providers/naming_provider_spec.rb
|
265
339
|
- spec/spec_helper.rb
|
266
|
-
has_rdoc:
|