101 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			101 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | require "devops_test" | ||
|  | require "list_command" | ||
|  | require "cud_command" | ||
|  | class Project < DevopsTest | ||
|  | 
 | ||
|  |   include ListCommand | ||
|  |   include CudCommand | ||
|  | 
 | ||
|  |   def title | ||
|  |     "Project test" | ||
|  |   end | ||
|  | 
 | ||
|  |   def run | ||
|  |     list("projects") | ||
|  |     list("project/foo", nil, 404) | ||
|  |     list_send("project/foo/servers", 404) | ||
|  | 
 | ||
|  |     project = { | ||
|  |       :deploy_envs => [ | ||
|  |         { | ||
|  |           :flavor => "c1.large", | ||
|  |           :identifier => "test", | ||
|  |           :image => "e6f44159-f50a-49a5-bfd5-865d0f68779d", | ||
|  |           :run_list => [ | ||
|  |             "role[solr_test]" | ||
|  |           ], | ||
|  |           :subnets => [ | ||
|  |             "private" | ||
|  |           ], | ||
|  |           :expires => nil, | ||
|  |           :provider => "openstack", | ||
|  |           :groups => [ | ||
|  |             "default" | ||
|  |           ], | ||
|  |           :users => [ | ||
|  |             USERNAME | ||
|  |           ] | ||
|  |         } | ||
|  |       ], | ||
|  |       :name => "test" | ||
|  |     } | ||
|  | 
 | ||
|  |     test_auth "project", project | ||
|  |     test_headers "project" | ||
|  |     test_request "project", project | ||
|  |     ["openstack", "ec2"].each do |provider| | ||
|  |       project[:deploy_envs][0].keys.each do |k| | ||
|  |         p = project.clone | ||
|  |         d = p[:deploy_envs][0] | ||
|  |         d[:provider] = provider | ||
|  |         if k == :expires | ||
|  |           ["foo", "", [], {}].each do |v| | ||
|  |             d[k] = v | ||
|  |             send_post "project", p, HEADERS, 400
 | ||
|  |           end | ||
|  |         elsif k == :run_list or k == :groups or k == :users | ||
|  |           ["", {}, nil].each do |v| | ||
|  |             d[k] = v | ||
|  |             send_post "project", p, HEADERS, 400
 | ||
|  |           end | ||
|  |         elsif k == :subnets and provider == "ec2" | ||
|  |           ["", {}].each do |v| | ||
|  |             d[k] = v | ||
|  |             send_post "project", p, HEADERS, 400
 | ||
|  |           end | ||
|  |         else | ||
|  |           d.delete(k) | ||
|  |           send_post "project", p, HEADERS, 400
 | ||
|  |           [nil, "", [], {}].each do |v| | ||
|  |             d[k] = v | ||
|  |             send_post "project", p, HEADERS, 400
 | ||
|  |           end | ||
|  |         end | ||
|  |       end | ||
|  |     end | ||
|  | 
 | ||
|  |     test_auth "project/foo", project, 404, "delete" | ||
|  |     self.send_delete "project/foo", nil, {}, 406
 | ||
|  |     h = HEADERS.clone | ||
|  |     h.delete("Content-Type") | ||
|  |     self.send_delete "project/foo", nil, h, 415
 | ||
|  |     self.send_delete "project/foo", nil, HEADERS, 404
 | ||
|  |     self.send_delete "project/foo", {:deploy_env => ""}, HEADERS, 400
 | ||
|  | 
 | ||
|  |     deploy = { | ||
|  |       :servers => ["foo"], | ||
|  |       :deploy_env => "foo" | ||
|  |     } | ||
|  |     test_headers "project/foo/deploy", "post", false | ||
|  |     deploy.keys.each do |k| | ||
|  |       d = deploy.clone | ||
|  |       ["", [], {}].each do |v| | ||
|  |         d[k] = v | ||
|  |         send_post "project/foo/deploy", p, HEADERS, 400
 | ||
|  |       end | ||
|  |     end | ||
|  | #    test_auth "project/foo/deploy", deploy, 404 | ||
|  |   end | ||
|  | 
 | ||
|  | end |