43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "commands/bootstrap_templates"
 | |
| require "app/api3/parsers/chef"
 | |
| require_relative "request_handler"
 | |
| 
 | |
| module Devops
 | |
|   module API3
 | |
|     module Handler
 | |
|       class Chef < RequestHandler
 | |
| 
 | |
|         set_parser Devops::API3::Parser::ChefParser
 | |
| 
 | |
|         include BootstrapTemplatesCommands
 | |
| 
 | |
|         def chef_nodes
 | |
|           KnifeFactory.instance.chef_node_list
 | |
|         end
 | |
| 
 | |
|         def tags node_name
 | |
|           KnifeFactory.instance.tags_list(node_name)
 | |
|         end
 | |
| 
 | |
|         def set_tags node_name
 | |
|           tags = parser.tags
 | |
|           tagsStr = tags.join(" ")
 | |
|           cmd = KnifeFactory.instance.tags_create(node_name, tagsStr)
 | |
|           halt_response("Cannot add tags #{tagsStr} to server #{node_name}", 500) unless cmd[1]
 | |
|           tags
 | |
|         end
 | |
| 
 | |
|         def unset_tags node_name
 | |
|           tags = parser.tags
 | |
|           tagsStr = tags.join(" ")
 | |
|           cmd = KnifeFactory.instance.tags_delete(node_name, tagsStr)
 | |
|           halt_response("Cannot delete tags #{tagsStr} from server #{node_name}: #{cmd[0]}", 500) unless cmd[1]
 | |
|           tags
 | |
|         end
 | |
| 
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 | 
