2018-04-04 22:44:39 +03:00
|
|
|
require "commands/bootstrap_templates"
|
|
|
|
|
require "app/api3/parsers/chef"
|
2015-07-30 15:37:43 +03:00
|
|
|
require_relative "request_handler"
|
2014-12-22 14:22:04 +03:00
|
|
|
|
|
|
|
|
module Devops
|
2018-04-04 22:44:39 +03:00
|
|
|
module API3
|
2014-12-22 14:22:04 +03:00
|
|
|
module Handler
|
2018-04-04 22:44:39 +03:00
|
|
|
class Chef < RequestHandler
|
|
|
|
|
|
|
|
|
|
set_parser Devops::API3::Parser::ChefParser
|
|
|
|
|
|
|
|
|
|
include BootstrapTemplatesCommands
|
|
|
|
|
|
|
|
|
|
def chef_nodes
|
|
|
|
|
KnifeFactory.instance.chef_node_list
|
2014-12-22 14:22:04 +03:00
|
|
|
end
|
|
|
|
|
|
2015-07-30 15:37:43 +03:00
|
|
|
def tags node_name
|
2015-08-14 13:28:03 +03:00
|
|
|
KnifeFactory.instance.tags_list(node_name)
|
2015-07-17 20:22:29 +03:00
|
|
|
end
|
|
|
|
|
|
2015-07-30 15:37:43 +03:00
|
|
|
def set_tags node_name
|
|
|
|
|
tags = parser.tags
|
2015-07-17 20:22:29 +03:00
|
|
|
tagsStr = tags.join(" ")
|
2015-08-14 13:28:03 +03:00
|
|
|
cmd = KnifeFactory.instance.tags_create(node_name, tagsStr)
|
2015-07-30 15:37:43 +03:00
|
|
|
halt_response("Cannot add tags #{tagsStr} to server #{node_name}", 500) unless cmd[1]
|
|
|
|
|
tags
|
2014-12-22 14:22:04 +03:00
|
|
|
end
|
|
|
|
|
|
2015-07-30 15:37:43 +03:00
|
|
|
def unset_tags node_name
|
|
|
|
|
tags = parser.tags
|
2015-07-17 20:22:29 +03:00
|
|
|
tagsStr = tags.join(" ")
|
2015-08-14 13:28:03 +03:00
|
|
|
cmd = KnifeFactory.instance.tags_delete(node_name, tagsStr)
|
2015-07-30 15:37:43 +03:00
|
|
|
halt_response("Cannot delete tags #{tagsStr} from server #{node_name}: #{cmd[0]}", 500) unless cmd[1]
|
|
|
|
|
tags
|
2014-12-22 14:22:04 +03:00
|
|
|
end
|
2018-04-04 22:44:39 +03:00
|
|
|
|
2014-12-22 14:22:04 +03:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|