class DTK::Client::Execute::Script::AddTenant
Public Class Methods
execute_with_params(params)
click to toggle source
# File lib/execute/script/add_tenant.rb, line 65 def self.execute_with_params(params) tenant_name = params[:tenant_name] catalog_username = params[:catalog_username] service = params[:service_instance] password = params[:password] version = params[:version] server_node = params[:server_node_name] || 'server' router_node = params[:router_node_name] || 'router' component_with_namespace = "dtk-meta-user:dtk_tenant[#{tenant_name}]" component_namespace, component = (component_with_namespace =~ /(^[^:]+):(.+$)/; [$1,$2]) av_pairs = { :catalog_username => catalog_username, :tenant_password => password, :catalog_password => password, :server_branch => version, } linked_component_instances = [ "#{router_node}/dtk_nginx::vhosts_for_router", "#{server_node}/dtk_postgresql::databases", "#{server_node}/host::hostname" ] ExecuteContext(:print_results => true) do result = call 'service/add_component', :service => service, :node => server_node, :component => component, :namespace => component_namespace, :donot_update_workflow => true av_pairs.each_pair do |a,v| result = call 'service/set_attribute', :service => service, :attribute_path => "#{server_node}/#{component}/#{a}", :value => v end linked_component_instances.each do |linked_component_instance| result = call 'service/link_components', :service => service, :input_component => "#{server_node}/#{component}", :output_component => linked_component_instance end result = call 'service/execute_workflow', :service => service, :workflow_name => 'add_tenant', :workflow_params => {'name' => tenant_name} end end
ret_params_from_argv()
click to toggle source
# File lib/execute/script/add_tenant.rb, line 20 def self.ret_params_from_argv() banner = "Usage: dtk-execute add-tenant TENANT-NAME CATALOG-USERNAME -p PASSWORD -v VERSION [-s SERVICE-INSTANCE]" version = tenant_name = catalog_username = tenant_number = nil if ARGV.size > 3 tenant_name = ARGV[1] if tenant_name =~ /^dtk([0-9]+)$/ tenant_number = $1 else raise ErrorUsage.new("TENANT-NAME must be of form 'dtkNUM', like dtk601") end catalog_username = ARGV[2] else show_help_and_exit(banner) end params = Hash.new process_params_from_options(banner) do |opts| opts.on( '-p', '--password PASSWORD', "Password for tenant and catalog" ) do |pw| params[:password] = pw end opts.on( '-s', '--service SERVICE-INSTANCE', "Name of Service instance" ) do |s| params[:service_instance] = s end opts.on( '-v', '--version VERSION', "Version of code" ) do |v| params[:version] = v end end # TODO: use opt parser to enforce that :password and :version options are manditory unless params[:password] raise ErrorUsage.new("Password is mandatory; use -p commnd line option") end unless params[:version] raise ErrorUsage.new("Version is mandatory; use -v commnd line option") end service_instance = params[:service_instance] || "dtkhost#{tenant_number[0]}" to_add = { :tenant_name => tenant_name, :catalog_username => catalog_username, :service_instance => service_instance } params.merge(to_add) end