fluke/devops-service/app/api3/handlers/chef.rb

43 lines
1.1 KiB
Ruby
Raw Normal View History

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