Class: CM::Plugin::Batch

Inherits:
Object
  • Object
show all
Defined in:
lib/core/plugin/batch.rb

Instance Method Summary collapse

Instance Method Details

#execute(operation) ⇒ Object


Operations



60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/core/plugin/batch.rb', line 60

def execute(operation)
  if initialized?
    if Nucleon.parallel?
      success = execute_parallel(operation)
    else
      success = execute_sequence(operation)
    end
  else
    success = false
  end
  success
end

#execute_parallel(operation) ⇒ Object


Utilities



76
77
78
# File 'lib/core/plugin/batch.rb', line 76

def execute_parallel(operation)
  false # Override me!!
end

#execute_sequence(operation) ⇒ Object




82
83
84
85
86
87
88
89
# File 'lib/core/plugin/batch.rb', line 82

def execute_sequence(operation)
  success = true
  resources.each do |resource|
    success = false unless resource.execute(operation)
    break if plan.trap && plan.step
  end
  success
end

#init_resourcesObject




20
21
22
23
24
25
26
27
28
29
30
# File 'lib/core/plugin/batch.rb', line 20

def init_resources
  @resources = []
  get_array(:resources).each do |resource_config|
    if resource_config.has_key?(:sequence) # Array
      @resources << plan.create_sequence(resource_config[:sequence])
    else # Atomic
      @resources << plan.create_resource(resource_config)
    end
  end
  @resources
end

#initialized?(options = {}) ⇒ Boolean


Checks

Returns:

  • (Boolean)


35
36
37
# File 'lib/core/plugin/batch.rb', line 35

def initialized?(options = {})
  true
end

#normalize(reload) ⇒ Object


Plugin interface



9
10
11
12
13
14
15
16
# File 'lib/core/plugin/batch.rb', line 9

def normalize(reload)
  super

  @plan = delete(:plan, nil) unless reload

  init_resources
  yield if block_given?
end

#planObject


Property accessors / modifiers



42
43
44
# File 'lib/core/plugin/batch.rb', line 42

def plan
  @plan
end

#resourcesObject




48
49
50
# File 'lib/core/plugin/batch.rb', line 48

def resources
  @resources
end

#resources=(resources) ⇒ Object



52
53
54
55
# File 'lib/core/plugin/batch.rb', line 52

def resources=resources
  set(:resources, array(resources))
  init_resources
end