Module: Vagabond::Actions::Destroy

Defined in:
lib/vagabond/actions/destroy.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/vagabond/actions/destroy.rb', line 6

def included(klass)
  klass.class_eval do
    class << self
      def _destroy_options
        [
          [
            :cluster, :type => :boolean,
            :desc => 'Destroy cluster of nodes with provided name', :default => false
          ]
        ]
      end
    end
  end
end

Instance Method Details

#_destroyObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/vagabond/actions/destroy.rb', line 26

def _destroy
  name_required!
  if(options[:cluster])
    nodes = vagabondfile[:clusters][name] if vagabondfile[:clusters]
    if(nodes)
      ui.info "#{ui.color('Vagabond:', :bold)} Destroying cluster - #{ui.color(name, :red)}"
    else
      ui.error "Cluster name provided does not exist: #{name}"
      nodes = []
    end
  else
    nodes = [name, @leftover_args].flatten.compact
  end
  nodes.each do |n|
    next unless n.is_a?(String)
    @name = n
    load_configurations
    if(lxc.exists?)
      ui.info "#{ui.color('Vagabond:', :bold)} Destroying node: #{ui.color(name, :red)}"
      do_destroy
      ui.info ui.color('  -> DESTROYED', :red)
    else
      ui.error "Node not created: #{name}"
    end
  end
end

#destroy_validate?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/vagabond/actions/destroy.rb', line 22

def destroy_validate?
  !options[:cluster]
end