Method: KnifeCloudstack::CsStackCreate#create_server

Defined in:
lib/chef/knife/cs_stack_create.rb

#create_server(server) ⇒ Object



120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/chef/knife/cs_stack_create.rb', line 120

def create_server(server)

  cmd = KnifeCloudstack::CsServerCreate.new([server[:name]])

  # configure and run command
  # TODO: validate parameters
  cmd.config[:ssh_user] = config[:ssh_user]
  cmd.config[:ssh_password] = config[:ssh_password]
  cmd.config[:ssh_port] = Chef::Config[:knife][:ssh_port] || config[:ssh_port]
  cmd.config[:identity_file] = config[:identity_file]
  cmd.config[:cloudstack_template] = server[:template] if server[:template]
  cmd.config[:cloudstack_service] = server[:service] if server[:service]
  cmd.config[:cloudstack_zone] = server[:service] if server[:zone]
  cmd.config[:cloudstack_networks] = server[:networks].split(/[\s,]+/) if server[:networks]
  cmd.config[:run_list] = server[:run_list].split(/[\s,]+/) if server[:run_list]
  cmd.config[:port_rules] = server[:port_rules].split(/[\s,]+/) if server[:port_rules]
  if current_stack[:environment]
    cmd.config[:environment] = current_stack[:environment]
    Chef::Config[:environment] = current_stack[:environment]
  end

  cmd.run_with_pretty_exceptions

end