aviator 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. data/.coveralls.yml +1 -0
  2. data/.gitignore +6 -1
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +12 -0
  6. data/Gemfile +13 -0
  7. data/Guardfile +6 -0
  8. data/LICENSE.txt +1 -1
  9. data/README.md +151 -2
  10. data/Rakefile +8 -0
  11. data/aviator.gemspec +14 -1
  12. data/bin/aviator +110 -0
  13. data/lib/aviator/core.rb +9 -0
  14. data/lib/aviator/core/request.rb +229 -0
  15. data/lib/aviator/core/response.rb +33 -0
  16. data/lib/aviator/core/service.rb +203 -0
  17. data/lib/aviator/core/session.rb +187 -0
  18. data/lib/aviator/openstack/compute/v2/public/list_images.rb +49 -0
  19. data/lib/aviator/openstack/identity/v2/admin/create_tenant.rb +42 -0
  20. data/lib/aviator/openstack/identity/v2/admin/list_tenants.rb +43 -0
  21. data/lib/aviator/openstack/identity/v2/public/create_token.rb +61 -0
  22. data/lib/aviator/openstack/identity/v2/public/list_tenants.rb +44 -0
  23. data/lib/aviator/version.rb +1 -1
  24. data/test/aviator/core/request_test.rb +342 -0
  25. data/test/aviator/core/service_test.rb +158 -0
  26. data/test/aviator/core/session_test.rb +201 -0
  27. data/test/aviator/openstack/compute/v2/public/list_images_test.rb +179 -0
  28. data/test/aviator/openstack/identity/v2/admin/create_tenant_test.rb +151 -0
  29. data/test/aviator/openstack/identity/v2/public/create_token_test.rb +159 -0
  30. data/test/cassettes/core/service/i_default_session_data_/sets_the_service_s_default_session_data.yml +63 -0
  31. data/test/cassettes/core/service/i_request/accepts_an_endpoint_type_option_for_selecting_a_specific_request.yml +140 -0
  32. data/test/cassettes/core/service/i_request/can_find_the_correct_request_based_on_bootstrapped_session_data.yml +63 -0
  33. data/test/cassettes/core/service/i_request/can_find_the_correct_request_based_on_non-bootstrapped_session_data.yml +97 -0
  34. data/test/cassettes/core/service/i_request/can_find_the_correct_request_if_api_version_is_not_defined_but_can_be_inferred_from_host_uri.yml +63 -0
  35. data/test/cassettes/core/service/i_request/uses_the_default_session_data_if_session_data_is_not_provided.yml +97 -0
  36. data/test/cassettes/core/session/c_load/creates_a_new_instance_from_the_given_session_dump.yml +63 -0
  37. data/test/cassettes/core/session/c_load/uses_the_loaded_auth_info_for_its_services.yml +63 -0
  38. data/test/cassettes/core/session/c_new/directs_log_entries_to_the_given_log_file.yml +63 -0
  39. data/test/cassettes/core/session/i_authenticate/authenticates_against_the_auth_service_indicated_in_the_config_file.yml +63 -0
  40. data/test/cassettes/core/session/i_authenticate/authenticates_against_the_auth_service_using_the_credentials_in_the_given_block.yml +38 -0
  41. data/test/cassettes/core/session/i_authenticate/raises_an_AuthenticationError_when_authentication_fails.yml +35 -0
  42. data/test/cassettes/core/session/i_authenticate/updates_the_session_data_of_its_service_objects.yml +123 -0
  43. data/test/cassettes/core/session/i_dump/serializes_the_session_data_for_caching.yml +63 -0
  44. data/test/cassettes/core/session/i_validate/returns_false_if_session_is_no_longer_valid.yml +97 -0
  45. data/test/cassettes/core/session/i_validate/returns_true_if_session_is_still_valid.yml +98 -0
  46. data/test/cassettes/core/session/i_xxx_service/returns_an_instance_of_the_indicated_service.yml +63 -0
  47. data/test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_no_parameters_are_provided.yml +108 -0
  48. data/test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_parameters_are_invalid.yml +96 -0
  49. data/test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_parameters_are_valid.yml +103 -0
  50. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_body.yml +63 -0
  51. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_body_.yml +63 -0
  52. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_headers.yml +63 -0
  53. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_headers_.yml +63 -0
  54. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_url.yml +63 -0
  55. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_url_.yml +63 -0
  56. data/test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_params_are_invalid.yml +97 -0
  57. data/test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_params_are_valid.yml +97 -0
  58. data/test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_provided_with_invalid_params.yml +97 -0
  59. data/test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_parameters_are_invalid.yml +35 -0
  60. data/test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_parameters_are_valid.yml +38 -0
  61. data/test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_provided_with_a_token.yml +98 -0
  62. data/test/environment.yml.example +22 -0
  63. data/test/environment.yml.travis-ci +24 -0
  64. data/test/support/openstack_request_test_helper.rb +57 -0
  65. data/test/support/test_base_class.rb +39 -0
  66. data/test/support/test_environment.rb +37 -0
  67. data/test/support/test_reporter.rb +45 -0
  68. data/test/support/vcr_setup.rb +41 -0
  69. data/test/test_helper.rb +35 -0
  70. data/tmp/.gitignore +0 -0
  71. metadata +310 -8
  72. data/lib/aviator.rb +0 -5
@@ -0,0 +1,97 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: <HOST_URI>:5000/v2.0/tokens
6
+ body:
7
+ encoding: UTF-8
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ User-Agent:
13
+ - Faraday v0.8.8
14
+ response:
15
+ status:
16
+ code: 200
17
+ message:
18
+ headers:
19
+ vary:
20
+ - X-Auth-Token
21
+ content-type:
22
+ - application/json
23
+ content-length:
24
+ - '2648'
25
+ date:
26
+ - Tue, 27 Aug 2013 05:41:13 GMT
27
+ connection:
28
+ - close
29
+ body:
30
+ encoding: US-ASCII
31
+ string: ! '{"access": {"token": {"issued_at": "2013-08-27T05:41:13.624645",
32
+ "expires": "2013-08-28T05:41:13Z", "id": "ca5bf1a09f5a4568b1f60136b8f9b431",
33
+ "tenant": {"description": null, "enabled": true, "id": "3cab25130620477b8b03f1bfa8741603",
34
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603",
35
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603",
36
+ "id": "3b72a66bf2f0491bb8dba827cade0d48", "publicURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603"}],
37
+ "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
38
+ "http://192.168.56.11:3333", "region": "RegionOne", "internalURL": "http://192.168.56.11:3333",
39
+ "id": "482f749b370c40eab8788d6d0bc47f48", "publicURL": "http://192.168.56.11:3333"}],
40
+ "endpoints_links": [], "type": "s3", "name": "s3"}, {"endpoints": [{"adminURL":
41
+ "http://192.168.56.11:9292", "region": "RegionOne", "internalURL": "http://192.168.56.11:9292",
42
+ "id": "0cd5d5d5a0c24721a0392b47c89e3640", "publicURL": "http://192.168.56.11:9292"}],
43
+ "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
44
+ "http://192.168.56.11:8777", "region": "RegionOne", "internalURL": "http://192.168.56.11:8777",
45
+ "id": "4eb4edec1d2647bfb8ba4f9a5757169d", "publicURL": "http://192.168.56.11:8777"}],
46
+ "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
47
+ [{"adminURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603",
48
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603",
49
+ "id": "009e8a41953d439f845b2a0c0dc28b73", "publicURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603"}],
50
+ "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
51
+ [{"adminURL": "http://192.168.56.11:8773/services/Admin", "region": "RegionOne",
52
+ "internalURL": "http://192.168.56.11:8773/services/Cloud", "id": "6820836ec6834548bf7b54da0271dded",
53
+ "publicURL": "http://192.168.56.11:8773/services/Cloud"}], "endpoints_links":
54
+ [], "type": "ec2", "name": "ec2"}, {"endpoints": [{"adminURL": "http://192.168.56.11:35357/v2.0",
55
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:5000/v2.0", "id":
56
+ "24a95f51f67949e784971e97463ee4d8", "publicURL": "http://192.168.56.11:5000/v2.0"}],
57
+ "endpoints_links": [], "type": "identity", "name": "keystone"}], "user": {"username":
58
+ "admin", "roles_links": [], "id": "cbbcc4f7aef6435fa2da7e5f0b2f1e97", "roles":
59
+ [{"name": "admin"}], "name": "admin"}, "metadata": {"is_admin": 0, "roles":
60
+ ["01a81f2dbb3441f1aaa8fe68a7c6f546"]}}}'
61
+ http_version:
62
+ recorded_at: Tue, 27 Aug 2013 05:40:07 GMT
63
+ - request:
64
+ method: post
65
+ uri: http://192.168.56.11:35357/v2.0/tenants
66
+ body:
67
+ encoding: UTF-8
68
+ string: ! '{"tenant":{"name":"Project 1377582007","description":"My Project","enabled":true}}'
69
+ headers:
70
+ Content-Type:
71
+ - application/json
72
+ User-Agent:
73
+ - Faraday v0.8.8
74
+ X-Auth-Token:
75
+ - ca5bf1a09f5a4568b1f60136b8f9b431
76
+ response:
77
+ status:
78
+ code: 200
79
+ message:
80
+ headers:
81
+ vary:
82
+ - X-Auth-Token
83
+ content-type:
84
+ - application/json
85
+ content-length:
86
+ - '130'
87
+ date:
88
+ - Tue, 27 Aug 2013 05:41:13 GMT
89
+ connection:
90
+ - close
91
+ body:
92
+ encoding: US-ASCII
93
+ string: ! '{"tenant": {"description": "My Project", "enabled": true, "id": "fc200ea29b4e48b19ba39d3a34eb97ee",
94
+ "name": "Project 1377582007"}}'
95
+ http_version:
96
+ recorded_at: Tue, 27 Aug 2013 05:40:07 GMT
97
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,97 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: <HOST_URI>:5000/v2.0/tokens
6
+ body:
7
+ encoding: UTF-8
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ User-Agent:
13
+ - Faraday v0.8.8
14
+ response:
15
+ status:
16
+ code: 200
17
+ message:
18
+ headers:
19
+ vary:
20
+ - X-Auth-Token
21
+ content-type:
22
+ - application/json
23
+ content-length:
24
+ - '2648'
25
+ date:
26
+ - Tue, 27 Aug 2013 05:45:50 GMT
27
+ connection:
28
+ - close
29
+ body:
30
+ encoding: US-ASCII
31
+ string: ! '{"access": {"token": {"issued_at": "2013-08-27T05:45:50.518138",
32
+ "expires": "2013-08-28T05:45:50Z", "id": "fcaf407dced04ded88c46147e9eb85b8",
33
+ "tenant": {"description": null, "enabled": true, "id": "3cab25130620477b8b03f1bfa8741603",
34
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603",
35
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603",
36
+ "id": "3b72a66bf2f0491bb8dba827cade0d48", "publicURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603"}],
37
+ "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
38
+ "http://192.168.56.11:3333", "region": "RegionOne", "internalURL": "http://192.168.56.11:3333",
39
+ "id": "482f749b370c40eab8788d6d0bc47f48", "publicURL": "http://192.168.56.11:3333"}],
40
+ "endpoints_links": [], "type": "s3", "name": "s3"}, {"endpoints": [{"adminURL":
41
+ "http://192.168.56.11:9292", "region": "RegionOne", "internalURL": "http://192.168.56.11:9292",
42
+ "id": "0cd5d5d5a0c24721a0392b47c89e3640", "publicURL": "http://192.168.56.11:9292"}],
43
+ "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
44
+ "http://192.168.56.11:8777", "region": "RegionOne", "internalURL": "http://192.168.56.11:8777",
45
+ "id": "4eb4edec1d2647bfb8ba4f9a5757169d", "publicURL": "http://192.168.56.11:8777"}],
46
+ "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
47
+ [{"adminURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603",
48
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603",
49
+ "id": "009e8a41953d439f845b2a0c0dc28b73", "publicURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603"}],
50
+ "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
51
+ [{"adminURL": "http://192.168.56.11:8773/services/Admin", "region": "RegionOne",
52
+ "internalURL": "http://192.168.56.11:8773/services/Cloud", "id": "6820836ec6834548bf7b54da0271dded",
53
+ "publicURL": "http://192.168.56.11:8773/services/Cloud"}], "endpoints_links":
54
+ [], "type": "ec2", "name": "ec2"}, {"endpoints": [{"adminURL": "http://192.168.56.11:35357/v2.0",
55
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:5000/v2.0", "id":
56
+ "24a95f51f67949e784971e97463ee4d8", "publicURL": "http://192.168.56.11:5000/v2.0"}],
57
+ "endpoints_links": [], "type": "identity", "name": "keystone"}], "user": {"username":
58
+ "admin", "roles_links": [], "id": "cbbcc4f7aef6435fa2da7e5f0b2f1e97", "roles":
59
+ [{"name": "admin"}], "name": "admin"}, "metadata": {"is_admin": 0, "roles":
60
+ ["01a81f2dbb3441f1aaa8fe68a7c6f546"]}}}'
61
+ http_version:
62
+ recorded_at: Tue, 27 Aug 2013 05:44:40 GMT
63
+ - request:
64
+ method: post
65
+ uri: http://192.168.56.11:35357/v2.0/tenants
66
+ body:
67
+ encoding: UTF-8
68
+ string: ! '{"tenant":{"name":"","description":"","enabled":true}}'
69
+ headers:
70
+ Content-Type:
71
+ - application/json
72
+ User-Agent:
73
+ - Faraday v0.8.8
74
+ X-Auth-Token:
75
+ - fcaf407dced04ded88c46147e9eb85b8
76
+ response:
77
+ status:
78
+ code: 400
79
+ message:
80
+ headers:
81
+ vary:
82
+ - X-Auth-Token
83
+ content-type:
84
+ - application/json
85
+ content-length:
86
+ - '105'
87
+ date:
88
+ - Tue, 27 Aug 2013 05:45:50 GMT
89
+ connection:
90
+ - close
91
+ body:
92
+ encoding: US-ASCII
93
+ string: ! '{"error": {"message": "Name field is required and cannot be empty",
94
+ "code": 400, "title": "Bad Request"}}'
95
+ http_version:
96
+ recorded_at: Tue, 27 Aug 2013 05:44:40 GMT
97
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,35 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: <HOST_URI>:5000/v2.0/tokens
6
+ body:
7
+ encoding: UTF-8
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"somebogususer","password":"doesitreallymatter?"}}}'
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ User-Agent:
13
+ - Faraday v0.8.8
14
+ response:
15
+ status:
16
+ code: 401
17
+ message:
18
+ headers:
19
+ vary:
20
+ - X-Auth-Token
21
+ content-type:
22
+ - application/json
23
+ content-length:
24
+ - '98'
25
+ date:
26
+ - Thu, 29 Aug 2013 18:32:34 GMT
27
+ connection:
28
+ - close
29
+ body:
30
+ encoding: US-ASCII
31
+ string: ! '{"error": {"message": "Could not find user: somebogususer", "code":
32
+ 401, "title": "Unauthorized"}}'
33
+ http_version:
34
+ recorded_at: Thu, 29 Aug 2013 18:30:24 GMT
35
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,38 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: <HOST_URI>:5000/v2.0/tokens
6
+ body:
7
+ encoding: UTF-8
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"}}}'
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ User-Agent:
13
+ - Faraday v0.8.8
14
+ response:
15
+ status:
16
+ code: 200
17
+ message:
18
+ headers:
19
+ vary:
20
+ - X-Auth-Token
21
+ content-type:
22
+ - application/json
23
+ content-length:
24
+ - '329'
25
+ date:
26
+ - Thu, 29 Aug 2013 18:32:34 GMT
27
+ connection:
28
+ - close
29
+ body:
30
+ encoding: US-ASCII
31
+ string: ! '{"access": {"token": {"issued_at": "2013-08-29T18:32:34.216430",
32
+ "expires": "2013-08-30T18:32:34Z", "id": "217d313bbab14553b86672cfce916b01"},
33
+ "serviceCatalog": [], "user": {"username": "admin", "roles_links": [], "id":
34
+ "cbbcc4f7aef6435fa2da7e5f0b2f1e97", "roles": [], "name": "admin"}, "metadata":
35
+ {"is_admin": 0, "roles": []}}}'
36
+ http_version:
37
+ recorded_at: Thu, 29 Aug 2013 18:30:24 GMT
38
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,98 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: <HOST_URI>:5000/v2.0/tokens
6
+ body:
7
+ encoding: UTF-8
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"}}}'
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ User-Agent:
13
+ - Faraday v0.8.8
14
+ response:
15
+ status:
16
+ code: 200
17
+ message:
18
+ headers:
19
+ vary:
20
+ - X-Auth-Token
21
+ content-type:
22
+ - application/json
23
+ content-length:
24
+ - '329'
25
+ date:
26
+ - Wed, 28 Aug 2013 23:50:40 GMT
27
+ connection:
28
+ - close
29
+ body:
30
+ encoding: US-ASCII
31
+ string: ! '{"access": {"token": {"issued_at": "2013-08-28T23:50:40.142756",
32
+ "expires": "2013-08-29T23:50:40Z", "id": "7936a6fa365a47e5b165a5d15f667a32"},
33
+ "serviceCatalog": [], "user": {"username": "admin", "roles_links": [], "id":
34
+ "cbbcc4f7aef6435fa2da7e5f0b2f1e97", "roles": [], "name": "admin"}, "metadata":
35
+ {"is_admin": 0, "roles": []}}}'
36
+ http_version:
37
+ recorded_at: Wed, 28 Aug 2013 23:48:15 GMT
38
+ - request:
39
+ method: post
40
+ uri: <HOST_URI>:5000/v2.0/tokens
41
+ body:
42
+ encoding: UTF-8
43
+ string: ! '{"auth":{"token":{"id":"7936a6fa365a47e5b165a5d15f667a32"},"tenantName":"admin"}}'
44
+ headers:
45
+ Content-Type:
46
+ - application/json
47
+ User-Agent:
48
+ - Faraday v0.8.8
49
+ response:
50
+ status:
51
+ code: 200
52
+ message:
53
+ headers:
54
+ vary:
55
+ - X-Auth-Token
56
+ content-type:
57
+ - application/json
58
+ content-length:
59
+ - '2648'
60
+ date:
61
+ - Wed, 28 Aug 2013 23:50:40 GMT
62
+ connection:
63
+ - close
64
+ body:
65
+ encoding: US-ASCII
66
+ string: ! '{"access": {"token": {"issued_at": "2013-08-28T23:50:40.615438",
67
+ "expires": "2013-08-29T23:50:40Z", "id": "ebdd1c61693546208a273fc891e65c4b",
68
+ "tenant": {"description": null, "enabled": true, "id": "3cab25130620477b8b03f1bfa8741603",
69
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603",
70
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603",
71
+ "id": "3b72a66bf2f0491bb8dba827cade0d48", "publicURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603"}],
72
+ "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
73
+ "http://192.168.56.11:3333", "region": "RegionOne", "internalURL": "http://192.168.56.11:3333",
74
+ "id": "482f749b370c40eab8788d6d0bc47f48", "publicURL": "http://192.168.56.11:3333"}],
75
+ "endpoints_links": [], "type": "s3", "name": "s3"}, {"endpoints": [{"adminURL":
76
+ "http://192.168.56.11:9292", "region": "RegionOne", "internalURL": "http://192.168.56.11:9292",
77
+ "id": "0cd5d5d5a0c24721a0392b47c89e3640", "publicURL": "http://192.168.56.11:9292"}],
78
+ "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
79
+ "http://192.168.56.11:8777", "region": "RegionOne", "internalURL": "http://192.168.56.11:8777",
80
+ "id": "4eb4edec1d2647bfb8ba4f9a5757169d", "publicURL": "http://192.168.56.11:8777"}],
81
+ "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
82
+ [{"adminURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603",
83
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603",
84
+ "id": "009e8a41953d439f845b2a0c0dc28b73", "publicURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603"}],
85
+ "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
86
+ [{"adminURL": "http://192.168.56.11:8773/services/Admin", "region": "RegionOne",
87
+ "internalURL": "http://192.168.56.11:8773/services/Cloud", "id": "6820836ec6834548bf7b54da0271dded",
88
+ "publicURL": "http://192.168.56.11:8773/services/Cloud"}], "endpoints_links":
89
+ [], "type": "ec2", "name": "ec2"}, {"endpoints": [{"adminURL": "http://192.168.56.11:35357/v2.0",
90
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:5000/v2.0", "id":
91
+ "24a95f51f67949e784971e97463ee4d8", "publicURL": "http://192.168.56.11:5000/v2.0"}],
92
+ "endpoints_links": [], "type": "identity", "name": "keystone"}], "user": {"username":
93
+ "admin", "roles_links": [], "id": "cbbcc4f7aef6435fa2da7e5f0b2f1e97", "roles":
94
+ [{"name": "admin"}], "name": "admin"}, "metadata": {"is_admin": 0, "roles":
95
+ ["01a81f2dbb3441f1aaa8fe68a7c6f546"]}}}'
96
+ http_version:
97
+ recorded_at: Wed, 28 Aug 2013 23:48:15 GMT
98
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,22 @@
1
+ openstack: &openstack
2
+ provider: openstack
3
+ auth_service:
4
+ name: identity
5
+ host_uri: http://devstack:5000
6
+ request: create_token
7
+ validator: list_tenants
8
+ api_version: v2
9
+
10
+ openstack_admin:
11
+ <<: *openstack
12
+ auth_credentials:
13
+ username: admin
14
+ password: mypassword
15
+ tenantName: admin
16
+
17
+ openstack_member:
18
+ <<: *openstack
19
+ auth_credentials:
20
+ username: nonadmin
21
+ password: mypassword
22
+ tenantName: nonadminproject
@@ -0,0 +1,24 @@
1
+ openstack: &openstack
2
+ provider: openstack
3
+ auth_service:
4
+ name: identity
5
+ host_uri: http://example.org:5000
6
+ request: create_token
7
+ validator: list_tenants
8
+ api_version: v2
9
+
10
+ openstack_admin: &openstack_admin
11
+ <<: *openstack
12
+ auth_credentials:
13
+ username: admin
14
+ password: mypassword
15
+ tenantName: admin
16
+
17
+ openstack_member: &openstack_member
18
+ <<: *openstack
19
+ auth_credentials:
20
+ username: nonadmin
21
+ password: mypassword
22
+ tenantName: nonadminproject
23
+
24
+ test: *openstack_admin
@@ -0,0 +1,57 @@
1
+ module Aviator
2
+ class Test
3
+
4
+ module RequestHelper
5
+
6
+ class << self
7
+
8
+ def admin_session_data
9
+ @admin_session_data ||= JSON.parse('{"access": {"token": {"issued_at": "2013-08-26T22:27:13.886315",
10
+ "expires": "2013-08-27T22:27:13Z", "id": "3396443734194600ba8b976415fc8b7a",
11
+ "tenant": {"description": null, "enabled": true, "id": "3cab25130620477b8b03f1bfa8741603",
12
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603",
13
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603",
14
+ "id": "3b72a66bf2f0491bb8dba827cade0d48", "publicURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603"}],
15
+ "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
16
+ "http://192.168.56.11:3333", "region": "RegionOne", "internalURL": "http://192.168.56.11:3333",
17
+ "id": "482f749b370c40eab8788d6d0bc47f48", "publicURL": "http://192.168.56.11:3333"}],
18
+ "endpoints_links": [], "type": "s3", "name": "s3"}, {"endpoints": [{"adminURL":
19
+ "http://192.168.56.11:9292", "region": "RegionOne", "internalURL": "http://192.168.56.11:9292",
20
+ "id": "0cd5d5d5a0c24721a0392b47c89e3640", "publicURL": "http://192.168.56.11:9292"}],
21
+ "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
22
+ "http://192.168.56.11:8777", "region": "RegionOne", "internalURL": "http://192.168.56.11:8777",
23
+ "id": "4eb4edec1d2647bfb8ba4f9a5757169d", "publicURL": "http://192.168.56.11:8777"}],
24
+ "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
25
+ [{"adminURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603",
26
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603",
27
+ "id": "009e8a41953d439f845b2a0c0dc28b73", "publicURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603"}],
28
+ "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
29
+ [{"adminURL": "http://192.168.56.11:8773/services/Admin", "region": "RegionOne",
30
+ "internalURL": "http://192.168.56.11:8773/services/Cloud", "id": "6820836ec6834548bf7b54da0271dded",
31
+ "publicURL": "http://192.168.56.11:8773/services/Cloud"}], "endpoints_links":
32
+ [], "type": "ec2", "name": "ec2"}, {"endpoints": [{"adminURL": "http://192.168.56.11:35357/v2.0",
33
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:5000/v2.0", "id":
34
+ "24a95f51f67949e784971e97463ee4d8", "publicURL": "http://192.168.56.11:5000/v2.0"}],
35
+ "endpoints_links": [], "type": "identity", "name": "keystone"}], "user": {"username":
36
+ "admin", "roles_links": [], "id": "cbbcc4f7aef6435fa2da7e5f0b2f1e97", "roles":
37
+ [{"name": "admin"}], "name": "admin"}, "metadata": {"is_admin": 0, "roles":
38
+ ["01a81f2dbb3441f1aaa8fe68a7c6f546"]}}}').with_indifferent_access
39
+ end
40
+
41
+
42
+ def admin_bootstrap_session_data
43
+ {
44
+ auth_service: Environment.openstack_admin[:auth_service]
45
+ }
46
+ end
47
+
48
+
49
+ def request_path(*path)
50
+ Pathname.new(__FILE__).join('..', '..', '..', 'lib', 'aviator', 'openstack').expand_path.join(*path)
51
+ end
52
+
53
+ end
54
+ end
55
+
56
+ end
57
+ end