extract servers from manually created stacks
This commit is contained in:
parent
c1e2cee920
commit
a018c03ca1
@ -46,7 +46,9 @@ class Stack < Handler
|
|||||||
q[:project] = options[:project] || resources_selector.select_available_project
|
q[:project] = options[:project] || resources_selector.select_available_project
|
||||||
q[:deploy_env] = options[:deploy_env] || enter_parameter(I18n.t('handler.stack.create.deploy_env'))
|
q[:deploy_env] = options[:deploy_env] || enter_parameter(I18n.t('handler.stack.create.deploy_env'))
|
||||||
q[:stack_template] = options[:stack_template] || resources_selector.select_available_stack_template(provider: q[:provider])
|
q[:stack_template] = options[:stack_template] || resources_selector.select_available_stack_template(provider: q[:provider])
|
||||||
q[:parameters] = options[:parameters] || enter_hash(I18n.t('handler.stack.create.parameters'))
|
|
||||||
|
filepath = options[:parameters_file] || enter_parameter(I18n.t('handler.stack.create.parameters_file'))
|
||||||
|
q[:parameters] = JSON.parse(File.read(filepath))
|
||||||
|
|
||||||
json = JSON.pretty_generate(q)
|
json = JSON.pretty_generate(q)
|
||||||
if question(I18n.t("handler.stack.question.create")) {puts json}
|
if question(I18n.t("handler.stack.question.create")) {puts json}
|
||||||
|
|||||||
@ -24,15 +24,7 @@ class StackOptions < CommonOptions
|
|||||||
parser.recognize_option_value(:project, 'stack')
|
parser.recognize_option_value(:project, 'stack')
|
||||||
parser.recognize_option_value(:deploy_env, 'stack')
|
parser.recognize_option_value(:deploy_env, 'stack')
|
||||||
parser.recognize_option_value(:stack_template, 'stack')
|
parser.recognize_option_value(:stack_template, 'stack')
|
||||||
|
parser.recognize_option_value(:parameters_file, 'stack')
|
||||||
parser.recognize_option_value(:parameters, 'stack') do |parameters|
|
|
||||||
begin
|
|
||||||
hash = JSON.parse(parameters)
|
|
||||||
options[:parameters] = hash
|
|
||||||
rescue JSON::ParserError
|
|
||||||
raise ArgumentError.new('Should be proper JSON string')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -37,14 +37,14 @@ module Output
|
|||||||
def create_list
|
def create_list
|
||||||
abort(I18n.t("output.not_found.stack.list")) if @data.empty?
|
abort(I18n.t("output.not_found.stack.list")) if @data.empty?
|
||||||
|
|
||||||
fields_to_output = %w(id project deploy_env stack_template cloud_stack_id stack_status)
|
fields_to_output = %w(id project deploy_env stack_template stack_status)
|
||||||
fields_to_output << 'provider' unless provider_given?
|
fields_to_output << 'provider' unless provider_given?
|
||||||
|
|
||||||
headers_and_rows(@data, fields_to_output)
|
headers_and_rows(@data, fields_to_output)
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_show
|
def create_show
|
||||||
headers_and_rows([@data], %w(id project deploy_env stack_template cloud_stack_id stack_status))
|
headers_and_rows([@data], %w(id project deploy_env stack_template stack_status))
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_servers_list
|
def create_servers_list
|
||||||
|
|||||||
@ -114,13 +114,13 @@ en:
|
|||||||
create:
|
create:
|
||||||
id: "Id: "
|
id: "Id: "
|
||||||
deploy_env: "Deploy env: "
|
deploy_env: "Deploy env: "
|
||||||
parameters: "Please input parameters hash: "
|
parameters_file: "Path to file with JSON parameters: "
|
||||||
question:
|
question:
|
||||||
create: "Are you sure to create stack?"
|
create: "Are you sure to create stack?"
|
||||||
delete: "Are you sure to delete stack '%{name}'?"
|
delete: "Are you sure to delete stack '%{name}'?"
|
||||||
stack_preset:
|
stack_preset:
|
||||||
create:
|
create:
|
||||||
parameters_file: 'Path to file with JSON parameters: '
|
parameters_file: "Path to file with JSON parameters: "
|
||||||
stack: 'Name of stack to create: '
|
stack: 'Name of stack to create: '
|
||||||
message:
|
message:
|
||||||
choose_list_default: "Choose %{name} (comma separated), like 1,2,3 or empty for default value '%{default}': "
|
choose_list_default: "Choose %{name} (comma separated), like 1,2,3 or empty for default value '%{default}': "
|
||||||
|
|||||||
@ -6,6 +6,12 @@ module Devops
|
|||||||
@request = request
|
@request = request
|
||||||
@params = params
|
@params = params
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def owner_from_request
|
||||||
|
@request.env['REMOTE_USER']
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -15,8 +15,18 @@ module Devops
|
|||||||
end
|
end
|
||||||
|
|
||||||
def create_stack object
|
def create_stack object
|
||||||
stack_model = Model::StackFactory.create(object['provider'], object)
|
stack = Model::StackFactory.create(object['provider'], object)
|
||||||
Devops::Db.connector.stack_insert(stack_model)
|
stack.owner = owner_from_request
|
||||||
|
Devops::Db.connector.stack_insert(stack)
|
||||||
|
|
||||||
|
file = JobStarter.start_job(:worker, :sync_stack_till_not_in_progress,
|
||||||
|
provider: stack.provider,
|
||||||
|
stack_id: stack.id,
|
||||||
|
request: @request
|
||||||
|
)
|
||||||
|
puts "Syncing report is located here: #{file}"
|
||||||
|
|
||||||
|
stack
|
||||||
end
|
end
|
||||||
|
|
||||||
def stack id
|
def stack id
|
||||||
|
|||||||
@ -20,7 +20,7 @@ module Devops
|
|||||||
def apply id, body
|
def apply id, body
|
||||||
preset = Devops::StackPresetsFactory.get(id)
|
preset = Devops::StackPresetsFactory.get(id)
|
||||||
stack = preset.create_stack_from_preset(body)
|
stack = preset.create_stack_from_preset(body)
|
||||||
stack.owner = @request.env['REMOTE_USER']
|
stack.owner = owner_from_request
|
||||||
Devops::Db.connector.stack_insert(stack)
|
Devops::Db.connector.stack_insert(stack)
|
||||||
|
|
||||||
file = JobStarter.start_job(:worker, :sync_stack_till_not_in_progress,
|
file = JobStarter.start_job(:worker, :sync_stack_till_not_in_progress,
|
||||||
@ -28,7 +28,6 @@ module Devops
|
|||||||
stack_id: stack.id,
|
stack_id: stack.id,
|
||||||
request: @request
|
request: @request
|
||||||
)
|
)
|
||||||
|
|
||||||
puts "Syncing report is located here: #{file}"
|
puts "Syncing report is located here: #{file}"
|
||||||
|
|
||||||
stack
|
stack
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user