Class: Bolt::Target2

Inherits:
Object
  • Object
show all
Defined in:
lib/bolt/target.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, inventory = nil) ⇒ Target2

rubocop:enable Lint/UnusedMethodArgument



33
34
35
36
# File 'lib/bolt/target.rb', line 33

def initialize(name, inventory = nil)
  @name = name
  @inventory = inventory
end

Instance Attribute Details

#inventoryObject

Returns the value of attribute inventory.



8
9
10
# File 'lib/bolt/target.rb', line 8

def inventory
  @inventory
end

#nameObject (readonly)

Returns the value of attribute name.



105
106
107
# File 'lib/bolt/target.rb', line 105

def name
  @name
end

Class Method Details

.from_asserted_args(uri = nil, name = nil, target_alias = nil, config = nil, facts = nil, vars = nil, features = nil, plugin_hooks = nil) ⇒ Object

TODO: Disallow any positional argument other than URI. Target.new from a plan with just a uri. Puppet requires the arguments to this method to match (by name) the attributes defined on the datatype. rubocop:disable Lint/UnusedMethodArgument



21
22
23
24
25
26
27
28
29
30
# File 'lib/bolt/target.rb', line 21

def self.from_asserted_args(uri = nil,
                            name = nil,
                            target_alias = nil,
                            config = nil,
                            facts = nil,
                            vars = nil,
                            features = nil,
                            plugin_hooks = nil)
  from_asserted_hash('uri' => uri)
end

.from_asserted_hash(hash) ⇒ Object

Target.new from a plan initialized with a hash



11
12
13
14
15
# File 'lib/bolt/target.rb', line 11

def self.from_asserted_hash(hash)
  inventory = Puppet.lookup(:bolt_inventory)
  target = inventory.create_target_from_plan(hash)
  new(target.name, inventory)
end

Instance Method Details

#configObject



60
61
62
# File 'lib/bolt/target.rb', line 60

def config
  inventory_target.config
end

#detailObject



84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/bolt/target.rb', line 84

def detail
  {
    'name' => name,
    'uri' => uri,
    'alias' => target_alias,
    'config' => Bolt::Util.deep_merge(config, 'transport' => transport, transport => options),
    'vars' => vars,
    'features' => features,
    'facts' => facts,
    'plugin_hooks' => plugin_hooks
  }
end

#eql?(other) ⇒ Boolean Also known as: ==

Returns:

  • (Boolean)


143
144
145
# File 'lib/bolt/target.rb', line 143

def eql?(other)
  self.class.equal?(other.class) && @name == other.name
end

#factsObject



52
53
54
# File 'lib/bolt/target.rb', line 52

def facts
  @inventory.facts(self)
end

#feature_setObject

Use feature_set internally to access set



44
45
46
# File 'lib/bolt/target.rb', line 44

def feature_set
  @inventory.features(self)
end

#featuresObject

features returns an array to be compatible with plans



39
40
41
# File 'lib/bolt/target.rb', line 39

def features
  @inventory.features(self).to_a
end

#hostObject



101
102
103
# File 'lib/bolt/target.rb', line 101

def host
  inventory_target.host
end

#inventory_targetObject



97
98
99
# File 'lib/bolt/target.rb', line 97

def inventory_target
  @inventory.targets[@name]
end

#optionsObject



135
136
137
# File 'lib/bolt/target.rb', line 135

def options
  inventory_target.options
end

#passwordObject



131
132
133
# File 'lib/bolt/target.rb', line 131

def password
  inventory_target.password
end

#plugin_hooksObject



139
140
141
# File 'lib/bolt/target.rb', line 139

def plugin_hooks
  inventory_target.plugin_hooks
end

#portObject



115
116
117
# File 'lib/bolt/target.rb', line 115

def port
  inventory_target.port
end

#protocolObject



123
124
125
# File 'lib/bolt/target.rb', line 123

def protocol
  inventory_target.protocol
end

#remote?Boolean

Returns:

  • (Boolean)


111
112
113
# File 'lib/bolt/target.rb', line 111

def remote?
  protocol == 'remote'
end

#safe_nameObject



64
65
66
# File 'lib/bolt/target.rb', line 64

def safe_name
  inventory_target.safe_name
end

#target_aliasObject



68
69
70
# File 'lib/bolt/target.rb', line 68

def target_alias
  inventory_target.target_alias
end

#to_hObject



72
73
74
75
76
77
78
79
80
81
82
# File 'lib/bolt/target.rb', line 72

def to_h
  options.merge(
    'name' => name,
    'uri' => uri,
    'protocol' => protocol,
    'user' => user,
    'password' => password,
    'host' => host,
    'port' => port
  )
end

#to_sObject



56
57
58
# File 'lib/bolt/target.rb', line 56

def to_s
  safe_name
end

#transportObject



119
120
121
# File 'lib/bolt/target.rb', line 119

def transport
  inventory_target.protocol
end

#uriObject



107
108
109
# File 'lib/bolt/target.rb', line 107

def uri
  inventory_target.uri
end

#userObject



127
128
129
# File 'lib/bolt/target.rb', line 127

def user
  inventory_target.user
end

#varsObject



48
49
50
# File 'lib/bolt/target.rb', line 48

def vars
  @inventory.vars(self)
end