50 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			50 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | module Devops | ||
|  |   module API3 | ||
|  |     module Routes | ||
|  |       module ChefRoutes | ||
|  | 
 | ||
|  |         def self.registered(app) | ||
|  | 
 | ||
|  |           app.define_policy :read_chef, "Read data for chef configuration manager" | ||
|  |           app.define_policy :modify_chef_tags, "Change tags for nodes in chef configuration manager" | ||
|  | 
 | ||
|  |           # Get list of available bootstrap templates | ||
|  |           app.get_with_headers "/chef/bootstrap_templates" do | ||
|  |             check_policy(:read_chef) | ||
|  |             json Devops::API3::Handler::Chef.new(request).get_bootstrap_templates | ||
|  |           end | ||
|  | 
 | ||
|  |           app.get_with_headers "/chef/nodes" do | ||
|  |             check_policy(:read_chef) | ||
|  |             json Devops::API3::Handler::Chef.new(request).chef_nodes | ||
|  |           end | ||
|  | 
 | ||
|  |           # Get tags list for :node_name | ||
|  |           app.get_with_headers "/chef/tags/:cm_name" do |cm_name| | ||
|  |             check_policy(:read_chef) | ||
|  |             json Devops::API3::Handler::Tag.new(request).tags(cm_name) | ||
|  |           end | ||
|  | 
 | ||
|  |           # Set tags list to :node_name | ||
|  |           app.post_with_headers "/chef/tags/:cm_name/set" do |cm_name| | ||
|  |             check_policy(:modify_chef_tags) | ||
|  |             tags = Devops::API3::Handler::Tag.new(request).set_tags(cm_name) | ||
|  |             create_response("Set tags for #{cm_name}", tags: tags) | ||
|  |           end | ||
|  | 
 | ||
|  |           # Delete tags from :node_name | ||
|  |           app.post_with_headers "/chef/tags/:cm_name/unset" do |cm_name| | ||
|  |             check_policy(:modify_chef_tags) | ||
|  |             tags = Devops::API3::Handler::Tag.new(request).unset_tags(cm_name) | ||
|  |             create_response("Deleted tags for #{cm_name}", tags: tags) | ||
|  |           end | ||
|  | 
 | ||
|  |           puts "Chef routes initialized" | ||
|  |         end | ||
|  | 
 | ||
|  |       end | ||
|  |     end | ||
|  |   end | ||
|  | end | ||
|  | 
 |