aviator 0.0.3 → 0.0.4

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 (148) hide show
  1. checksums.yaml +15 -0
  2. data/.travis.yml +1 -0
  3. data/README.md +35 -8
  4. data/README.md.orig +217 -0
  5. data/aviator.gemspec +3 -3
  6. data/lib/aviator/openstack/compute/v2/public/change_admin_password.rb +54 -0
  7. data/lib/aviator/openstack/compute/v2/public/create_image.rb +56 -0
  8. data/lib/aviator/openstack/compute/v2/public/create_server.rb +64 -0
  9. data/lib/aviator/openstack/compute/v2/public/delete_server.rb +39 -0
  10. data/lib/aviator/openstack/compute/v2/public/get_server.rb +39 -0
  11. data/lib/aviator/openstack/compute/v2/public/list_addresses.rb +48 -0
  12. data/lib/aviator/openstack/compute/v2/public/list_flavors.rb +55 -0
  13. data/lib/aviator/openstack/compute/v2/public/reboot_server.rb +51 -0
  14. data/lib/aviator/openstack/compute/v2/public/rebuild_server.rb +63 -0
  15. data/lib/aviator/openstack/compute/v2/public/root.rb +34 -0
  16. data/lib/aviator/openstack/compute/v2/public/update_server.rb +55 -0
  17. data/lib/aviator/version.rb +1 -1
  18. data/test/aviator/core/service_test.rb +3 -15
  19. data/test/aviator/core/session_test.rb +3 -3
  20. data/test/aviator/openstack/compute/v2/public/change_admin_password_test.rb +141 -0
  21. data/test/aviator/openstack/compute/v2/public/create_image_test.rb +146 -0
  22. data/test/aviator/openstack/compute/v2/public/create_server_test.rb +177 -0
  23. data/test/aviator/openstack/compute/v2/public/delete_server_test.rb +131 -0
  24. data/test/aviator/openstack/compute/v2/public/get_server_test.rb +138 -0
  25. data/test/aviator/openstack/compute/v2/public/list_addresses_test.rb +161 -0
  26. data/test/aviator/openstack/compute/v2/public/list_flavors_test.rb +160 -0
  27. data/test/aviator/openstack/compute/v2/public/list_images_test.rb +1 -1
  28. data/test/aviator/openstack/compute/v2/public/reboot_server_test.rb +137 -0
  29. data/test/aviator/openstack/compute/v2/public/rebuild_server_test.rb +183 -0
  30. data/test/aviator/openstack/compute/v2/public/root_test.rb +106 -0
  31. data/test/aviator/openstack/compute/v2/public/update_server_test.rb +144 -0
  32. data/test/aviator/openstack/identity/v2/admin/create_tenant_test.rb +1 -1
  33. data/test/cassettes/core/service/i_default_session_data_/sets_the_service_s_default_session_data.yml +18 -17
  34. data/test/cassettes/core/service/i_request/accepts_an_endpoint_type_option_for_selecting_a_specific_request.yml +31 -30
  35. data/test/cassettes/core/service/i_request/can_find_the_correct_request_based_on_bootstrapped_session_data.yml +18 -17
  36. data/test/cassettes/core/service/i_request/can_find_the_correct_request_based_on_non-bootstrapped_session_data.yml +29 -27
  37. 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 +18 -17
  38. data/test/cassettes/core/service/i_request/uses_the_default_session_data_if_session_data_is_not_provided.yml +29 -27
  39. data/test/cassettes/core/session/c_load/creates_a_new_instance_from_the_given_session_dump.yml +18 -17
  40. data/test/cassettes/core/session/c_load/uses_the_loaded_auth_info_for_its_services.yml +18 -17
  41. data/test/cassettes/core/session/c_new/directs_log_entries_to_the_given_log_file.yml +18 -17
  42. data/test/cassettes/core/session/i_authenticate/authenticates_against_the_auth_service_indicated_in_the_config_file.yml +18 -17
  43. data/test/cassettes/core/session/i_authenticate/authenticates_against_the_auth_service_using_the_credentials_in_the_given_block.yml +10 -10
  44. data/test/cassettes/core/session/i_authenticate/raises_an_AuthenticationError_when_authentication_fails.yml +3 -3
  45. data/test/cassettes/core/session/i_authenticate/updates_the_session_data_of_its_service_objects.yml +36 -34
  46. data/test/cassettes/core/session/i_dump/serializes_the_session_data_for_caching.yml +18 -17
  47. data/test/cassettes/core/session/i_load/returns_itself.yml +18 -17
  48. data/test/cassettes/core/session/i_load/updates_the_session_data_of_its_service_objects.yml +36 -34
  49. data/test/cassettes/core/session/i_validate/returns_false_if_session_is_no_longer_valid.yml +20 -19
  50. data/test/cassettes/core/session/i_validate/returns_true_if_session_is_still_valid.yml +22 -21
  51. data/test/cassettes/core/session/i_xxx_service/returns_an_instance_of_the_indicated_service.yml +18 -17
  52. data/test/cassettes/openstack/compute/v2/public/change_admin_password/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +97 -0
  53. data/test/cassettes/openstack/compute/v2/public/change_admin_password/leads_to_a_valid_response_when_valid_params_are_provided.yml +132 -0
  54. data/test/cassettes/openstack/compute/v2/public/change_admin_password/returns_the_correct_value_for_body_.yml +63 -0
  55. data/test/cassettes/openstack/compute/v2/public/change_admin_password/returns_the_correct_value_for_headers_.yml +63 -0
  56. data/test/cassettes/openstack/compute/v2/public/change_admin_password/returns_the_correct_value_for_http_method_.yml +63 -0
  57. data/test/cassettes/openstack/compute/v2/public/change_admin_password/returns_the_correct_value_for_url_.yml +63 -0
  58. data/test/cassettes/openstack/compute/v2/public/create_image/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +97 -0
  59. data/test/cassettes/openstack/compute/v2/public/create_image/leads_to_a_valid_response_when_valid_params_are_provided.yml +132 -0
  60. data/test/cassettes/openstack/compute/v2/public/create_image/returns_the_correct_value_for_body_.yml +63 -0
  61. data/test/cassettes/openstack/compute/v2/public/create_image/returns_the_correct_value_for_headers_.yml +63 -0
  62. data/test/cassettes/openstack/compute/v2/public/create_image/returns_the_correct_value_for_http_method_.yml +63 -0
  63. data/test/cassettes/openstack/compute/v2/public/create_image/returns_the_correct_value_for_url_.yml +63 -0
  64. data/test/cassettes/openstack/compute/v2/public/create_server/leads_to_a_valid_response_when_parameters_are_provided.yml +182 -0
  65. data/test/cassettes/openstack/compute/v2/public/create_server/leads_to_a_valid_response_when_the_adminPass_parameter_is_provided.yml +182 -0
  66. data/test/cassettes/openstack/compute/v2/public/create_server/leads_to_a_valid_response_when_the_flavorRef_parameter_is_invalid.yml +135 -0
  67. data/test/cassettes/openstack/compute/v2/public/create_server/returns_the_correct_value_for_body_.yml +142 -0
  68. data/test/cassettes/openstack/compute/v2/public/create_server/returns_the_correct_value_for_headers_.yml +142 -0
  69. data/test/cassettes/openstack/compute/v2/public/create_server/returns_the_correct_value_for_http_method_.yml +142 -0
  70. data/test/cassettes/openstack/compute/v2/public/create_server/returns_the_correct_value_for_url_.yml +222 -0
  71. data/test/cassettes/openstack/compute/v2/public/delete_server/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +96 -0
  72. data/test/cassettes/openstack/compute/v2/public/delete_server/leads_to_a_valid_response_when_valid_server_id_is_provided.yml +131 -0
  73. data/test/cassettes/openstack/compute/v2/public/delete_server/returns_the_correct_value_for_body_.yml +62 -0
  74. data/test/cassettes/openstack/compute/v2/public/delete_server/returns_the_correct_value_for_headers_.yml +62 -0
  75. data/test/cassettes/openstack/compute/v2/public/delete_server/returns_the_correct_value_for_http_method_.yml +62 -0
  76. data/test/cassettes/openstack/compute/v2/public/delete_server/returns_the_correct_value_for_url_.yml +62 -0
  77. data/test/cassettes/openstack/compute/v2/public/get_server/leads_to_a_valid_response_when_a_valid_server_id_is_provided.yml +145 -0
  78. data/test/cassettes/openstack/compute/v2/public/get_server/leads_to_a_valid_response_when_an_invalid_server_id_is_provided.yml +96 -0
  79. data/test/cassettes/openstack/compute/v2/public/get_server/returns_the_correct_value_for_body_.yml +62 -0
  80. data/test/cassettes/openstack/compute/v2/public/get_server/returns_the_correct_value_for_headers_.yml +62 -0
  81. data/test/cassettes/openstack/compute/v2/public/get_server/returns_the_correct_value_for_http_method_.yml +62 -0
  82. data/test/cassettes/openstack/compute/v2/public/get_server/returns_the_correct_value_for_url_.yml +62 -0
  83. data/test/cassettes/openstack/compute/v2/public/list_addresses/leads_to_a_valid_response_when_a_networkID_parameter_is_provided.yml +167 -0
  84. data/test/cassettes/openstack/compute/v2/public/list_addresses/leads_to_a_valid_response_when_a_valid_server_id_is_provided.yml +132 -0
  85. data/test/cassettes/openstack/compute/v2/public/list_addresses/leads_to_a_valid_response_when_an_invalid_server_id_is_provided.yml +96 -0
  86. data/test/cassettes/openstack/compute/v2/public/list_addresses/returns_the_correct_value_for_body_.yml +63 -0
  87. data/test/cassettes/openstack/compute/v2/public/list_addresses/returns_the_correct_value_for_headers_.yml +63 -0
  88. data/test/cassettes/openstack/compute/v2/public/list_addresses/returns_the_correct_value_for_http_method_.yml +63 -0
  89. data/test/cassettes/openstack/compute/v2/public/list_addresses/returns_the_correct_value_for_url_.yml +63 -0
  90. data/test/cassettes/openstack/compute/v2/public/list_flavors/leads_to_a_valid_response_when_no_parameters_are_provided.yml +104 -0
  91. data/test/cassettes/openstack/compute/v2/public/list_flavors/leads_to_a_valid_response_when_the_details_filter_is_provided.yml +111 -0
  92. data/test/cassettes/openstack/compute/v2/public/list_flavors/leads_to_a_valid_response_when_the_minDisk_filter_is_provided.yml +146 -0
  93. data/test/cassettes/openstack/compute/v2/public/list_flavors/returns_the_correct_value_for_body_.yml +62 -0
  94. data/test/cassettes/openstack/compute/v2/public/list_flavors/returns_the_correct_value_for_headers_.yml +62 -0
  95. data/test/cassettes/openstack/compute/v2/public/list_flavors/returns_the_correct_value_for_http_method_.yml +62 -0
  96. data/test/cassettes/openstack/compute/v2/public/list_flavors/returns_the_correct_value_for_url_.yml +62 -0
  97. data/test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_no_parameters_are_provided.yml +32 -31
  98. data/test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_parameters_are_invalid.yml +23 -22
  99. data/test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_parameters_are_valid.yml +32 -31
  100. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_body_.yml +18 -17
  101. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_headers_.yml +18 -17
  102. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_http_method_.yml +18 -17
  103. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_url_.yml +18 -17
  104. data/test/cassettes/openstack/compute/v2/public/list_servers/leads_to_a_valid_response_when_no_parameters_are_provided.yml +39 -38
  105. data/test/cassettes/openstack/compute/v2/public/list_servers/leads_to_a_valid_response_when_parameters_are_invalid.yml +37 -35
  106. data/test/cassettes/openstack/compute/v2/public/list_servers/leads_to_a_valid_response_when_parameters_are_valid.yml +42 -39
  107. data/test/cassettes/openstack/compute/v2/public/list_servers/returns_the_correct_value_for_body_.yml +32 -30
  108. data/test/cassettes/openstack/compute/v2/public/list_servers/returns_the_correct_value_for_headers_.yml +32 -30
  109. data/test/cassettes/openstack/compute/v2/public/list_servers/returns_the_correct_value_for_http_method_.yml +32 -30
  110. data/test/cassettes/openstack/compute/v2/public/list_servers/returns_the_correct_value_for_url_.yml +32 -30
  111. data/test/cassettes/openstack/compute/v2/public/reboot_server/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +97 -0
  112. data/test/cassettes/openstack/compute/v2/public/reboot_server/leads_to_a_valid_response_when_valid_params_are_provided.yml +130 -0
  113. data/test/cassettes/openstack/compute/v2/public/reboot_server/returns_the_correct_value_for_body_.yml +63 -0
  114. data/test/cassettes/openstack/compute/v2/public/reboot_server/returns_the_correct_value_for_headers_.yml +63 -0
  115. data/test/cassettes/openstack/compute/v2/public/reboot_server/returns_the_correct_value_for_http_method_.yml +63 -0
  116. data/test/cassettes/openstack/compute/v2/public/reboot_server/returns_the_correct_value_for_url_.yml +63 -0
  117. data/test/cassettes/openstack/compute/v2/public/rebuild_server/leads_to_a_valid_response_when_invalid_image_id_is_provided.yml +133 -0
  118. data/test/cassettes/openstack/compute/v2/public/rebuild_server/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +167 -0
  119. data/test/cassettes/openstack/compute/v2/public/rebuild_server/leads_to_a_valid_response_when_valid_params_are_provided.yml +216 -0
  120. data/test/cassettes/openstack/compute/v2/public/rebuild_server/returns_the_correct_value_for_body_.yml +63 -0
  121. data/test/cassettes/openstack/compute/v2/public/rebuild_server/returns_the_correct_value_for_headers_.yml +63 -0
  122. data/test/cassettes/openstack/compute/v2/public/rebuild_server/returns_the_correct_value_for_http_method_.yml +63 -0
  123. data/test/cassettes/openstack/compute/v2/public/rebuild_server/returns_the_correct_value_for_url_.yml +63 -0
  124. data/test/cassettes/openstack/compute/v2/public/root/leads_to_a_valid_response_when_no_parameters_are_provided.yml +101 -0
  125. data/test/cassettes/openstack/compute/v2/public/root/returns_the_correct_value_for_body_.yml +62 -0
  126. data/test/cassettes/openstack/compute/v2/public/root/returns_the_correct_value_for_headers_.yml +62 -0
  127. data/test/cassettes/openstack/compute/v2/public/root/returns_the_correct_value_for_http_method_.yml +62 -0
  128. data/test/cassettes/openstack/compute/v2/public/root/returns_the_correct_value_for_url_.yml +62 -0
  129. data/test/cassettes/openstack/compute/v2/public/update_server/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +96 -0
  130. data/test/cassettes/openstack/compute/v2/public/update_server/leads_to_a_valid_response_when_valid_server_id_is_provided.yml +142 -0
  131. data/test/cassettes/openstack/compute/v2/public/update_server/returns_the_correct_value_for_body_.yml +142 -0
  132. data/test/cassettes/openstack/compute/v2/public/update_server/returns_the_correct_value_for_headers_.yml +142 -0
  133. data/test/cassettes/openstack/compute/v2/public/update_server/returns_the_correct_value_for_http_method_.yml +142 -0
  134. data/test/cassettes/openstack/compute/v2/public/update_server/returns_the_correct_value_for_url_.yml +142 -0
  135. data/test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_params_are_invalid.yml +21 -20
  136. data/test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_params_are_valid.yml +25 -24
  137. data/test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_parameters_are_invalid.yml +3 -3
  138. data/test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_parameters_are_valid.yml +10 -10
  139. data/test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_provided_with_a_token.yml +28 -27
  140. data/test/environment.yml.example +16 -9
  141. data/test/environment.yml.travis-ci +19 -14
  142. data/test/support/vcr_setup.rb +35 -10
  143. data/test/test_helper.rb +3 -1
  144. metadata +180 -52
  145. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_body.yml +0 -63
  146. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_headers.yml +0 -63
  147. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_url.yml +0 -63
  148. data/test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_provided_with_invalid_params.yml +0 -97
@@ -0,0 +1,177 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/create_server' do
6
+
7
+ def create_request(session_data = get_session_data)
8
+ image_id = session.compute_service.request(:list_images).body[:images].first[:id]
9
+ flavor_id = session.compute_service.request(:list_flavors).body[:flavors].first[:id]
10
+
11
+ klass.new(session_data) do |params|
12
+ params[:imageRef] = image_id
13
+ params[:flavorRef] = flavor_id
14
+ params[:name] = 'Aviator Server'
15
+ end
16
+ end
17
+
18
+
19
+ def get_session_data
20
+ session.send :auth_info
21
+ end
22
+
23
+
24
+ def helper
25
+ Aviator::Test::RequestHelper
26
+ end
27
+
28
+
29
+ def klass
30
+ @klass ||= helper.load_request('openstack', 'compute', 'v2', 'public', 'create_server.rb')
31
+ end
32
+
33
+
34
+ def session
35
+ unless @session
36
+ @session = Aviator::Session.new(
37
+ config_file: Environment.path,
38
+ environment: 'openstack_member'
39
+ )
40
+ @session.authenticate
41
+ end
42
+
43
+ @session
44
+ end
45
+
46
+
47
+ validate_attr :anonymous? do
48
+ klass.anonymous?.must_equal false
49
+ end
50
+
51
+
52
+ validate_attr :api_version do
53
+ klass.api_version.must_equal :v2
54
+ end
55
+
56
+
57
+ validate_attr :body do
58
+ request = create_request
59
+
60
+ klass.body?.must_equal true
61
+ request.body?.must_equal true
62
+ request.body.wont_be_nil
63
+ end
64
+
65
+
66
+ validate_attr :endpoint_type do
67
+ klass.endpoint_type.must_equal :public
68
+ end
69
+
70
+
71
+ validate_attr :headers do
72
+ headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
73
+
74
+ request = create_request
75
+
76
+ request.headers.must_equal headers
77
+ end
78
+
79
+
80
+ validate_attr :http_method do
81
+ create_request.http_method.must_equal :post
82
+ end
83
+
84
+
85
+ validate_attr :optional_params do
86
+ klass.optional_params.must_equal [
87
+ :accessIPv4,
88
+ :accessIPv6,
89
+ :adminPass,
90
+ :metadata,
91
+ :networks,
92
+ :personality
93
+ ]
94
+ end
95
+
96
+
97
+ validate_attr :required_params do
98
+ klass.required_params.must_equal [
99
+ :imageRef,
100
+ :flavorRef,
101
+ :name
102
+ ]
103
+ end
104
+
105
+
106
+ validate_attr :url do
107
+ service_spec = get_session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
108
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/servers"
109
+
110
+ image_id = session.compute_service.request(:list_images).body[:images].first[:id]
111
+ flavor_id = session.compute_service.request(:list_flavors).body[:flavors].first[:id]
112
+
113
+
114
+ request = create_request do |params|
115
+ params[:imageRef] = image_id
116
+ params[:flavorRef] = flavor_id
117
+ params[:name] = 'Aviator Server'
118
+ end
119
+
120
+ request.url.must_equal url
121
+ end
122
+
123
+
124
+ validate_response 'parameters are provided' do
125
+ image_id = session.compute_service.request(:list_images).body[:images].first[:id]
126
+ flavor_id = session.compute_service.request(:list_flavors).body[:flavors].first[:id]
127
+
128
+ response = session.compute_service.request :create_server do |params|
129
+ params[:imageRef] = image_id
130
+ params[:flavorRef] = flavor_id
131
+ params[:name] = 'Aviator Server'
132
+ end
133
+
134
+ response.status.must_equal 202
135
+ response.body.wont_be_nil
136
+ response.body[:server].wont_be_nil
137
+ response.headers.wont_be_nil
138
+ end
139
+
140
+
141
+ validate_response 'the flavorRef parameter is invalid' do
142
+ image_id = session.compute_service.request(:list_images).body[:images].first[:id]
143
+
144
+ response = session.compute_service.request :create_server do |params|
145
+ params[:imageRef] = image_id
146
+ params[:flavorRef] = 'invalidvalue'
147
+ params[:name] = 'Aviator Server'
148
+ end
149
+
150
+ response.status.must_equal 400
151
+ response.body.wont_be_nil
152
+ response.headers.wont_be_nil
153
+ end
154
+
155
+
156
+ validate_response 'the adminPass parameter is provided' do
157
+ image_id = session.compute_service.request(:list_images).body[:images].first[:id]
158
+ flavor_id = session.compute_service.request(:list_flavors).body[:flavors].first[:id]
159
+ admin_pass = '4d764cc09a88b3'
160
+
161
+ response = session.compute_service.request :create_server do |params|
162
+ params[:imageRef] = image_id
163
+ params[:flavorRef] = flavor_id
164
+ params[:name] = 'Aviator Server'
165
+ params[:adminPass] = admin_pass
166
+ end
167
+
168
+ response.status.must_equal 202
169
+ response.body.wont_be_nil
170
+ response.body[:server].wont_be_nil
171
+ response.body[:server][:adminPass].must_equal admin_pass
172
+ response.headers.wont_be_nil
173
+ end
174
+
175
+ end
176
+
177
+ end
@@ -0,0 +1,131 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/delete_server' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ klass.new(session_data, &block)
9
+ end
10
+
11
+
12
+ def get_session_data
13
+ session.send :auth_info
14
+ end
15
+
16
+
17
+ def helper
18
+ Aviator::Test::RequestHelper
19
+ end
20
+
21
+
22
+ def klass
23
+ @klass ||= helper.load_request('openstack', 'compute', 'v2', 'public', 'delete_server.rb')
24
+ end
25
+
26
+
27
+ def session
28
+ unless @session
29
+ @session = Aviator::Session.new(
30
+ config_file: Environment.path,
31
+ environment: 'openstack_member'
32
+ )
33
+ @session.authenticate
34
+ end
35
+
36
+ @session
37
+ end
38
+
39
+
40
+ validate_attr :anonymous? do
41
+ klass.anonymous?.must_equal false
42
+ end
43
+
44
+
45
+ validate_attr :api_version do
46
+ klass.api_version.must_equal :v2
47
+ end
48
+
49
+
50
+ validate_attr :body do
51
+ request = create_request {|p| p[:id] = 0 }
52
+
53
+ klass.body?.must_equal false
54
+ request.body?.must_equal false
55
+ end
56
+
57
+
58
+ validate_attr :endpoint_type do
59
+ klass.endpoint_type.must_equal :public
60
+ end
61
+
62
+
63
+ validate_attr :headers do
64
+ headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
65
+
66
+ request = create_request {|p| p[:id] = 0 }
67
+
68
+ request.headers.must_equal headers
69
+ end
70
+
71
+
72
+ validate_attr :http_method do
73
+ create_request{|p| p[:id] = 0 }.http_method.must_equal :delete
74
+ end
75
+
76
+
77
+ validate_attr :optional_params do
78
+ klass.optional_params.must_equal []
79
+ end
80
+
81
+
82
+ validate_attr :required_params do
83
+ klass.required_params.must_equal [
84
+ :id
85
+ ]
86
+ end
87
+
88
+
89
+ validate_attr :url do
90
+ service_spec = get_session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
91
+ server_id = '105b09f0b6500d36168480ad84'
92
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/servers/#{ server_id }"
93
+
94
+ request = create_request do |params|
95
+ params[:id] = server_id
96
+ end
97
+
98
+ request.url.must_equal url
99
+ end
100
+
101
+
102
+ validate_response 'valid server id is provided' do
103
+ server = session.compute_service.request(:list_servers).body[:servers].first
104
+ server_id = server[:id]
105
+ new_name = 'Updated Server'
106
+
107
+ response = session.compute_service.request :delete_server do |params|
108
+ params[:id] = server_id
109
+ end
110
+
111
+ response.status.must_equal 204
112
+ response.headers.wont_be_nil
113
+ end
114
+
115
+
116
+ validate_response 'invalid server id is provided' do
117
+ server_id = 'abogusserveridthatdoesnotexist'
118
+
119
+ response = session.compute_service.request :delete_server do |params|
120
+ params[:id] = server_id
121
+ end
122
+
123
+ response.status.must_equal 404
124
+ response.body.wont_be_nil
125
+ response.headers.wont_be_nil
126
+ end
127
+
128
+
129
+ end
130
+
131
+ end
@@ -0,0 +1,138 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/get_server' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ klass.new(session_data, &block)
9
+ end
10
+
11
+
12
+ def session
13
+ unless @session
14
+ @session = Aviator::Session.new(
15
+ config_file: Environment.path,
16
+ environment: 'openstack_member'
17
+ )
18
+ @session.authenticate
19
+ end
20
+
21
+ @session
22
+ end
23
+
24
+
25
+ def get_session_data
26
+ session.send :auth_info
27
+ end
28
+
29
+
30
+ def helper
31
+ Aviator::Test::RequestHelper
32
+ end
33
+
34
+
35
+ def klass
36
+ @klass ||= helper.load_request('openstack', 'compute', 'v2', 'public', 'get_server.rb')
37
+ end
38
+
39
+
40
+ validate_attr :anonymous? do
41
+ klass.anonymous?.must_equal false
42
+ end
43
+
44
+
45
+ validate_attr :api_version do
46
+ klass.api_version.must_equal :v2
47
+ end
48
+
49
+
50
+ validate_attr :body do
51
+ klass.body?.must_equal false
52
+
53
+ request = create_request do |params|
54
+ params[:id] = 'doesntmatter'
55
+ end
56
+
57
+ request.body?.must_equal false
58
+ end
59
+
60
+
61
+ validate_attr :endpoint_type do
62
+ klass.endpoint_type.must_equal :public
63
+ end
64
+
65
+
66
+ validate_attr :headers do
67
+ headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
68
+
69
+ request = create_request do |params|
70
+ params[:id] = 'doesntmatter'
71
+ end
72
+
73
+ request.headers.must_equal headers
74
+ end
75
+
76
+
77
+ validate_attr :http_method do
78
+ request = create_request do |params|
79
+ params[:id] = 'doesntmatter'
80
+ end
81
+
82
+ request.http_method.must_equal :get
83
+ end
84
+
85
+
86
+ validate_attr :optional_params do
87
+ klass.optional_params.must_equal []
88
+ end
89
+
90
+
91
+ validate_attr :required_params do
92
+ klass.required_params.must_equal [:id]
93
+ end
94
+
95
+
96
+ validate_attr :url do
97
+ service_spec = get_session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
98
+ server_id = '52415800-8b69-11e0-9b19-734f000004d2'
99
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/servers/#{ server_id }"
100
+
101
+ request = create_request do |p|
102
+ p[:id] = server_id
103
+ end
104
+
105
+ request.url.must_equal url
106
+ end
107
+
108
+
109
+ validate_response 'a valid server id is provided' do
110
+ server_id = session.compute_service.request(:list_servers).body[:servers].first[:id]
111
+
112
+ response = session.compute_service.request :get_server do |params|
113
+ params[:id] = server_id
114
+ end
115
+
116
+ response.status.must_equal 200
117
+ response.body.wont_be_nil
118
+ response.body[:server].wont_be_nil
119
+ response.body[:server][:id].must_equal server_id
120
+ response.headers.wont_be_nil
121
+ end
122
+
123
+
124
+ validate_response 'an invalid server id is provided' do
125
+ server_id = 'bogusserveridthatdoesntexist'
126
+
127
+ response = session.compute_service.request :get_server do |params|
128
+ params[:id] = server_id
129
+ end
130
+
131
+ response.status.must_equal 404
132
+ response.body.wont_be_nil
133
+ response.headers.wont_be_nil
134
+ end
135
+
136
+ end
137
+
138
+ end
@@ -0,0 +1,161 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/list_addresses' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ klass.new(session_data, &block)
9
+ end
10
+
11
+
12
+ def session
13
+ unless @session
14
+ @session = Aviator::Session.new(
15
+ config_file: Environment.path,
16
+ environment: 'openstack_member'
17
+ )
18
+ @session.authenticate
19
+ end
20
+
21
+ @session
22
+ end
23
+
24
+
25
+ def get_session_data
26
+ session.send :auth_info
27
+ end
28
+
29
+
30
+ def helper
31
+ Aviator::Test::RequestHelper
32
+ end
33
+
34
+
35
+ def klass
36
+ @klass ||= helper.load_request('openstack', 'compute', 'v2', 'public', 'list_addresses.rb')
37
+ end
38
+
39
+
40
+ validate_attr :anonymous? do
41
+ klass.anonymous?.must_equal false
42
+ end
43
+
44
+
45
+ validate_attr :api_version do
46
+ klass.api_version.must_equal :v2
47
+ end
48
+
49
+
50
+ validate_attr :body do
51
+ klass.body?.must_equal false
52
+
53
+ request = create_request do |params|
54
+ params[:id] = 'doesntmatter'
55
+ end
56
+
57
+ request.body?.must_equal false
58
+ end
59
+
60
+
61
+ validate_attr :endpoint_type do
62
+ klass.endpoint_type.must_equal :public
63
+ end
64
+
65
+
66
+ validate_attr :headers do
67
+ headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
68
+
69
+ request = create_request do |params|
70
+ params[:id] = 'doesntmatter'
71
+ end
72
+
73
+ request.headers.must_equal headers
74
+ end
75
+
76
+
77
+ validate_attr :http_method do
78
+ request = create_request do |params|
79
+ params[:id] = 'doesntmatter'
80
+ end
81
+
82
+ request.http_method.must_equal :get
83
+ end
84
+
85
+
86
+ validate_attr :optional_params do
87
+ klass.optional_params.must_equal [
88
+ :networkID
89
+ ]
90
+ end
91
+
92
+
93
+ validate_attr :required_params do
94
+ klass.required_params.must_equal [:id]
95
+ end
96
+
97
+
98
+ validate_attr :url do
99
+ service_spec = get_session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
100
+ server_id = '52415800-8b69-11e0-9b19-734f000004d2'
101
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/servers/#{ server_id }/ips"
102
+
103
+ request = create_request do |p|
104
+ p[:id] = server_id
105
+ end
106
+
107
+ request.url.must_equal url
108
+ end
109
+
110
+
111
+ validate_response 'a valid server id is provided' do
112
+ server_id = session.compute_service.request(:list_servers).body[:servers].first[:id]
113
+
114
+ response = session.compute_service.request :list_addresses do |params|
115
+ params[:id] = server_id
116
+ end
117
+
118
+ response.status.must_equal 200
119
+ response.body.wont_be_nil
120
+ response.body[:addresses].wont_be_nil
121
+ response.headers.wont_be_nil
122
+ end
123
+
124
+
125
+ validate_response 'an invalid server id is provided' do
126
+ server_id = 'bogusserveridthatdoesntexist'
127
+
128
+ response = session.compute_service.request :list_addresses do |params|
129
+ params[:id] = server_id
130
+ end
131
+
132
+ response.status.must_equal 404
133
+ response.body.wont_be_nil
134
+ response.headers.wont_be_nil
135
+ end
136
+
137
+
138
+ validate_response 'a networkID parameter is provided' do
139
+ server_id = session.compute_service.request(:list_servers).body[:servers].first[:id]
140
+
141
+ response = session.compute_service.request :list_addresses do |params|
142
+ params[:id] = server_id
143
+ end
144
+
145
+ network_id = response.body[:addresses].keys.first
146
+
147
+ response = session.compute_service.request :list_addresses do |params|
148
+ params[:id] = server_id
149
+ params[:networkID] = network_id
150
+ end
151
+
152
+
153
+ response.status.must_equal 200
154
+ response.body.wont_be_nil
155
+ response.body.keys.wont_be_empty
156
+ response.headers.wont_be_nil
157
+ end
158
+
159
+ end
160
+
161
+ end