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

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
# 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,
          server["zone"] || stack["zone"],
          server["template"],
          server["offering"],
          server["networks"] ? server["networks"].split(', ') : nil,
          server["port_rules"] ? server["port_rules"].split(', ') : nil,
          stack["project"]
        )
      }
    end
  end
  threads.each {|t| t.join }
end

#destroy(stackfile) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/cloudstack-cli/commands/stack.rb', line 33

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
  invoke "server:destroy", servers, project: stack["project"], force: options[:force]
end