Class: Stack

Inherits:
CloudstackCli::Base show all
Includes:
CloudstackCli::Helper
Defined in:
lib/cloudstack-cli/commands/stack.rb

Instance Attribute Summary

Attributes inherited from CloudstackCli::Base

#config

Instance Method Summary collapse

Methods included from CloudstackCli::Helper

#ask_number, #bootstrap_server, #bootstrap_server_interactive, #print_options

Methods inherited from CloudstackCli::Base

exit_on_failure?

Instance Method Details

#create(stackfile) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/cloudstack-cli/commands/stack.rb', line 5

def create(stackfile)
	stack = parse_stackfile(stackfile)
  say "Create stack #{stack["name"]}..."
  threads = []
  stack["servers"].each do |server|
    server["name"].split(', ').each_with_index do |name, i|
      threads << Thread.new(i) {
        bootstrap_server(
          name: name,
          displayname: server["decription"],
          zone: server["zone"] || stack["zone"],
          template: server["template"],
          iso: server["iso"] ,
          offering: server["offering"],
          networks: server["networks"] ? server["networks"].split(', ') : nil,
          port_rules: server["port_rules"] ? server["port_rules"].split(', ') : nil,
          project: stack["project"],
          disk_offering: server["disk_offering"],
          disk_size: server["disk_size"],
          group: server["group"] || stack["group"],
          keypair: server["keypair"] || stack["keypair"]
        )
      }
    end
  end
  threads.each {|t| t.join }
end

#destroy(stackfile) ⇒ Object



39
40
41
42
43
44
45
46
47
48
# File 'lib/cloudstack-cli/commands/stack.rb', line 39

def destroy(stackfile)
  stack = parse_stackfile(stackfile)
  servers = []
  server = stack["servers"].collect do |server|
    server["name"].split(', ').each {|name| servers << name}
  end
  say "Destroy stack #{stack["name"]}...", :yellow
  puts
  invoke "server:destroy", servers, project: stack["project"], force: options[:force]
end