135 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			135 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | require "devops_test" | ||
|  | require "list_command" | ||
|  | require "cud_command" | ||
|  | class Server < DevopsTest | ||
|  | 
 | ||
|  |   include ListCommand | ||
|  |   include CudCommand | ||
|  | 
 | ||
|  |   def title | ||
|  |     "Server test" | ||
|  |   end | ||
|  | 
 | ||
|  |   def run | ||
|  |     list("servers") | ||
|  | 
 | ||
|  |     cmd = "servers/:provider" | ||
|  |     p = PROVIDERS.clone | ||
|  |     p.push "chef" | ||
|  |     [USERNAME, USERNAME + "_r", ROOTUSER].each do |u| | ||
|  |       self.username = u | ||
|  |       p.each do |p| | ||
|  |         list_send(cmd.gsub(":provider", p), 200) | ||
|  |       end | ||
|  |       list_send(cmd.gsub(":provider", "foo"), 404) | ||
|  |       list_send("server/foo", 404) | ||
|  |     end | ||
|  |     list_deny do | ||
|  |       p.each do |p| | ||
|  |         list_send(cmd.gsub(":provider", p), 401) | ||
|  |       end | ||
|  |       list_send(cmd.gsub(":provider", "foo"), 401) | ||
|  |       list_send("server/foo", 401) | ||
|  |     end | ||
|  | 
 | ||
|  |     test_auth "server/foo", {}, 404, "delete" | ||
|  |     self.send_delete "server/foo", nil, {}, 406
 | ||
|  |     h = HEADERS.clone | ||
|  |     h.delete("Content-Type") | ||
|  |     self.send_delete "server/foo", nil, h, 415
 | ||
|  |     h = HEADERS.clone | ||
|  |     self.send_delete "server/foo", nil, h, 404
 | ||
|  | 
 | ||
|  |     all_privileges | ||
|  |     server = { | ||
|  |       :project => "foo", | ||
|  |       :deploy_env => "foo", | ||
|  |       :name => "foo", | ||
|  |       :without_bootstrap => true, | ||
|  |       :force => true, | ||
|  |       :groups => [], | ||
|  |       :key => "foo" | ||
|  |     } | ||
|  |     test_headers "server", "post", false | ||
|  |     [:project, :deploy_env, :name, :key].each do |k| | ||
|  |       s = server.clone | ||
|  |       ["", nil, [], {}].each do |v| | ||
|  |         next if k == :name and v.nil? | ||
|  |         s[k] = v | ||
|  |         self.send_post "server", s, HEADERS, 400
 | ||
|  |       end | ||
|  |     end | ||
|  |     [:force, :without_bootstrap].each do |k| | ||
|  |       s = server.clone | ||
|  |       ["", false, [], {}].each do |v| | ||
|  |         s[k] = v | ||
|  |         self.send_post "server", s, HEADERS, 400
 | ||
|  |       end | ||
|  |     end | ||
|  |     s = server.clone | ||
|  |     ["", true, [], [true], [{:foo => "foo"}], {}].each do |v| | ||
|  |       s[:groups] = v | ||
|  |       self.send_post "server", s, HEADERS, 400
 | ||
|  |     end | ||
|  | 
 | ||
|  |     test_auth "server", server | ||
|  | 
 | ||
|  |     ["server/foo/pause", "server/foo/unpause"].each do |cmd| | ||
|  |       test_auth cmd, nil, 404
 | ||
|  |       test_headers cmd | ||
|  |     end | ||
|  | 
 | ||
|  |     bootstrap = { | ||
|  |       :instance_id => "foo", | ||
|  |       :name => "foo", | ||
|  |       :run_list => ["foo"], | ||
|  |       :bootstrap_template => "foo" | ||
|  |     } | ||
|  |     cmd = "server/bootstrap" | ||
|  |     test_auth cmd, bootstrap | ||
|  |     test_headers cmd, "post", false | ||
|  | 
 | ||
|  |     b = bootstrap.clone | ||
|  |     ["", [], {}].each do |v| | ||
|  |       b[:instance_id] = v | ||
|  |       self.send_post cmd, b, HEADERS, 400
 | ||
|  |     end | ||
|  | 
 | ||
|  |     [:name, :bootstrap_template].each do |k| | ||
|  |       b = bootstrap.clone | ||
|  |       ["", [], {}].each do |v| | ||
|  |         b[k] = v | ||
|  |         self.send_post cmd, b, HEADERS, 400
 | ||
|  |       end | ||
|  |     end | ||
|  | 
 | ||
|  |     b = bootstrap.clone | ||
|  |     ["", [nil], [{:foo => "foo"}], [true], {}].each do |v| | ||
|  |       b[:run_list] = v | ||
|  |       self.send_post cmd, b, HEADERS, 400
 | ||
|  |     end | ||
|  | 
 | ||
|  |     cmd = "server/add" | ||
|  |     add = { | ||
|  |       :project => "foo", | ||
|  |       :deploy_env => "foo", | ||
|  |       :key => "foo", | ||
|  |       :remote_user => "foo", | ||
|  |       :private_ip => "foo", | ||
|  |       :public_ip => "foo" | ||
|  |     } | ||
|  |     test_auth cmd, add | ||
|  |     test_headers cmd, "post", false | ||
|  | 
 | ||
|  |     [:project, :deploy_env, :key, :remote_user, :private_ip, :public_ip].each do |k| | ||
|  |       a = add.clone | ||
|  |       [nil, "", [], {}].each do |v| | ||
|  |         next if k == :public_ip and v.nil? | ||
|  |         a[k] = v | ||
|  |         self.send_post cmd, a, HEADERS, 400
 | ||
|  |       end | ||
|  |     end | ||
|  | 
 | ||
|  |   end | ||
|  | end |