Module: HybridPlatformsConductor::Deployer::ConfigDSLExtension

Defined in:
lib/hybrid_platforms_conductor/deployer.rb

Overview

Extend the Config DSL

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#deployment_logsObject (readonly)

List of log plugins. Each info has the following properties:

  • nodes_selectors_stack (Array<Object>): Stack of nodes selectors impacted by this rule.

  • log_plugins (Array<Symbol>): List of log plugins to be used to store deployment logs.

Array< Hash<Symbol, Object> >



32
33
34
# File 'lib/hybrid_platforms_conductor/deployer.rb', line 32

def deployment_logs
  @deployment_logs
end

#packaging_timeout_secsObject (readonly)

Integer: Timeout (in seconds) for packaging repositories



41
42
43
# File 'lib/hybrid_platforms_conductor/deployer.rb', line 41

def packaging_timeout_secs
  @packaging_timeout_secs
end

#retriable_errorsObject (readonly)

List of retriable errors. Each info has the following properties:

  • nodes_selectors_stack (Array<Object>): Stack of nodes selectors impacted by those errors

  • errors_on_stdout (Array<String or Regexp>): List of errors match (as exact string match or using a regexp) to check against stdout

  • errors_on_stderr (Array<String or Regexp>): List of errors match (as exact string match or using a regexp) to check against stderr



26
27
28
# File 'lib/hybrid_platforms_conductor/deployer.rb', line 26

def retriable_errors
  @retriable_errors
end

#secrets_readersObject (readonly)

List of secrets reader plugins. Each info has the following properties:

  • nodes_selectors_stack (Array<Object>): Stack of nodes selectors impacted by this rule.

  • secrets_readers (Array<Symbol>): List of log plugins to be used to store deployment logs.

Array< Hash<Symbol, Object> >



38
39
40
# File 'lib/hybrid_platforms_conductor/deployer.rb', line 38

def secrets_readers
  @secrets_readers
end

Instance Method Details

#init_deployer_configObject

Mixin initializer



44
45
46
47
48
49
50
51
52
53
# File 'lib/hybrid_platforms_conductor/deployer.rb', line 44

def init_deployer_config
  @packaging_timeout_secs = 60
  # List of retriable errors. Each info has the following properties:
  # * *nodes_selectors_stack* (Array<Object>): Stack of nodes selectors impacted by those errors
  # * *errors_on_stdout* (Array<String or Regexp>): List of errors match (as exact string match or using a regexp) to check against stdout
  # * *errors_on_stderr* (Array<String or Regexp>): List of errors match (as exact string match or using a regexp) to check against stderr
  @retriable_errors = []
  @deployment_logs = []
  @secrets_readers = []
end

#packaging_timeout(packaging_timeout_secs) ⇒ Object

Set the packaging timeout

Parameters
  • packaging_timeout_secs (Integer): The packaging timeout, in seconds



59
60
61
# File 'lib/hybrid_platforms_conductor/deployer.rb', line 59

def packaging_timeout(packaging_timeout_secs)
  @packaging_timeout_secs = packaging_timeout_secs
end

#read_secrets_from(*secrets_readers) ⇒ Object

Set the secrets readers

Parameters
  • secrets_readers (Symbol or Array<Symbol>): The list of (or single) secrets readers plugins to be used



100
101
102
103
104
105
# File 'lib/hybrid_platforms_conductor/deployer.rb', line 100

def read_secrets_from(*secrets_readers)
  @secrets_readers << {
    nodes_selectors_stack: current_nodes_selectors_stack,
    secrets_readers: secrets_readers.flatten
  }
end

#retry_deploy_for_errors_on_stderr(errors) ⇒ Object

Mark some errors on stderr to be retriable during a deploy

Parameters
  • errors (String, Regexp or Array<String or Regexp>): Single (or list of) errors matching pattern (either as exact string match or using a regexp).



78
79
80
81
82
83
# File 'lib/hybrid_platforms_conductor/deployer.rb', line 78

def retry_deploy_for_errors_on_stderr(errors)
  @retriable_errors << {
    errors_on_stderr: errors.is_a?(Array) ? errors : [errors],
    nodes_selectors_stack: current_nodes_selectors_stack
  }
end

#retry_deploy_for_errors_on_stdout(errors) ⇒ Object

Mark some errors on stdout to be retriable during a deploy

Parameters
  • errors (String, Regexp or Array<String or Regexp>): Single (or list of) errors matching pattern (either as exact string match or using a regexp).



67
68
69
70
71
72
# File 'lib/hybrid_platforms_conductor/deployer.rb', line 67

def retry_deploy_for_errors_on_stdout(errors)
  @retriable_errors << {
    errors_on_stdout: errors.is_a?(Array) ? errors : [errors],
    nodes_selectors_stack: current_nodes_selectors_stack
  }
end

#send_logs_to(*log_plugins) ⇒ Object

Set the deployment log plugins to be used

Parameters
  • log_plugins (Symbol or Array<Symbol>): The list of (or single) log plugins to be used



89
90
91
92
93
94
# File 'lib/hybrid_platforms_conductor/deployer.rb', line 89

def send_logs_to(*log_plugins)
  @deployment_logs << {
    nodes_selectors_stack: current_nodes_selectors_stack,
    log_plugins: log_plugins.flatten
  }
end