bosh-template 2.2.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/bosh/template/evaluation_context.rb +19 -3
- data/lib/bosh/template/evaluation_link.rb +21 -7
- data/lib/bosh/template/evaluation_link_instance.rb +7 -5
- data/lib/bosh/template/test/link.rb +4 -2
- data/lib/bosh/template/test/template.rb +1 -1
- data/lib/bosh/template/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5283a92f4022095fe04822e315c9c6f8fa78b2a2
|
4
|
+
data.tar.gz: 11aef776a890ddbf4581fef919324cf99c7c663d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 646a0e5647c7860a0ea184e845d20e21ca3d868a4e040bc80ca72ec717e31e8370d0f38c5ee380ebeff7874e884b73157b5318360f388bb5d48a670600e999b6
|
7
|
+
data.tar.gz: 2d9202fec9416f221b3d464e7ff94722787d306f68944e2cb40f24b976d0e2e19e2d8549647c371f653f31290c57dd3c5eaa9f8911aa134f88570eddf2a3fb74
|
@@ -51,6 +51,13 @@ module Bosh
|
|
51
51
|
@links = spec['links'] || {}
|
52
52
|
end
|
53
53
|
|
54
|
+
def ==(other)
|
55
|
+
public_members = %w[spec raw_properties name index properties]
|
56
|
+
public_members.all? do |member|
|
57
|
+
other.respond_to?(member) && send(member) == other.send(member)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
54
61
|
# @return [Binding] Template binding
|
55
62
|
def get_binding
|
56
63
|
binding.taint
|
@@ -154,15 +161,24 @@ module Bosh
|
|
154
161
|
encoder_to_inject = @dns_encoder
|
155
162
|
end
|
156
163
|
|
157
|
-
|
164
|
+
group_name = link_spec['instance_group']
|
165
|
+
group_type = 'instance-group'
|
166
|
+
|
167
|
+
if link_spec.fetch('use_link_dns_names', false)
|
168
|
+
group_name = link_spec['group_name']
|
169
|
+
group_type = 'link'
|
170
|
+
end
|
171
|
+
|
172
|
+
EvaluationLink.new(
|
158
173
|
link_instances,
|
159
174
|
link_spec['properties'],
|
160
|
-
|
175
|
+
group_name,
|
176
|
+
group_type,
|
161
177
|
link_spec['default_network'],
|
162
178
|
link_spec['deployment_name'],
|
163
179
|
link_spec['domain'],
|
164
180
|
encoder_to_inject,
|
165
|
-
link_spec.fetch('use_short_dns_addresses', false)
|
181
|
+
link_spec.fetch('use_short_dns_addresses', false),
|
166
182
|
)
|
167
183
|
end
|
168
184
|
|
@@ -8,10 +8,21 @@ module Bosh
|
|
8
8
|
attr_reader :instances
|
9
9
|
attr_reader :properties
|
10
10
|
|
11
|
-
def initialize(
|
11
|
+
def initialize(
|
12
|
+
instances,
|
13
|
+
properties,
|
14
|
+
group_name,
|
15
|
+
group_type,
|
16
|
+
default_network,
|
17
|
+
deployment_name,
|
18
|
+
root_domain,
|
19
|
+
dns_encoder,
|
20
|
+
use_short_dns
|
21
|
+
)
|
12
22
|
@instances = instances
|
13
23
|
@properties = properties
|
14
|
-
@
|
24
|
+
@group_name = group_name
|
25
|
+
@group_type = group_type
|
15
26
|
@default_network = default_network
|
16
27
|
@deployment_name = deployment_name
|
17
28
|
@root_domain = root_domain
|
@@ -28,30 +39,33 @@ module Bosh
|
|
28
39
|
end
|
29
40
|
|
30
41
|
return args[1] if args.length == 2
|
31
|
-
|
42
|
+
|
43
|
+
raise UnknownProperty, names
|
32
44
|
end
|
33
45
|
|
34
46
|
def if_p(*names)
|
35
47
|
values = names.map do |name|
|
36
48
|
value = lookup_property(@properties, name)
|
37
49
|
return Bosh::Template::EvaluationContext::ActiveElseBlock.new(self) if value.nil?
|
50
|
+
|
38
51
|
value
|
39
52
|
end
|
40
53
|
|
41
|
-
yield
|
54
|
+
yield(*values)
|
55
|
+
|
42
56
|
Bosh::Template::EvaluationContext::InactiveElseBlock.new
|
43
57
|
end
|
44
58
|
|
45
59
|
def address(criteria = {})
|
46
|
-
raise NotImplementedError
|
60
|
+
raise NotImplementedError, 'link.address requires bosh director' if @dns_encoder.nil?
|
47
61
|
|
48
62
|
full_criteria = criteria.merge(
|
49
|
-
|
63
|
+
group_name: @group_name,
|
64
|
+
group_type: @group_type,
|
50
65
|
default_network: @default_network,
|
51
66
|
deployment_name: @deployment_name,
|
52
67
|
root_domain: @root_domain,
|
53
68
|
)
|
54
|
-
|
55
69
|
@dns_encoder.encode_query(full_criteria, @use_short_dns)
|
56
70
|
end
|
57
71
|
end
|
@@ -32,19 +32,21 @@ module Bosh
|
|
32
32
|
end
|
33
33
|
|
34
34
|
return args[1] if args.length == 2
|
35
|
-
|
35
|
+
|
36
|
+
raise UnknownProperty, names
|
36
37
|
end
|
37
38
|
|
38
39
|
def if_p(*names)
|
39
40
|
values = names.map do |name|
|
40
41
|
value = lookup_property(@properties, name)
|
41
|
-
return ActiveElseBlock.new(self) if value.nil?
|
42
|
+
return Bosh::Template::EvaluationContext::ActiveElseBlock.new(self) if value.nil?
|
43
|
+
|
42
44
|
value
|
43
45
|
end
|
44
46
|
|
45
|
-
yield
|
46
|
-
InactiveElseBlock.new
|
47
|
+
yield(*values)
|
48
|
+
Bosh::Template::EvaluationContext::InactiveElseBlock.new
|
47
49
|
end
|
48
50
|
end
|
49
51
|
end
|
50
|
-
end
|
52
|
+
end
|
@@ -1,11 +1,12 @@
|
|
1
1
|
module Bosh::Template::Test
|
2
2
|
class Link
|
3
|
-
attr_reader :instances, :name, :properties
|
3
|
+
attr_reader :instances, :name, :properties, :address
|
4
4
|
|
5
|
-
def initialize(name:, instances: [], properties: {})
|
5
|
+
def initialize(name:, instances: [], properties: {}, address: nil)
|
6
6
|
@instances = instances
|
7
7
|
@name = name
|
8
8
|
@properties = properties
|
9
|
+
@address = address
|
9
10
|
end
|
10
11
|
|
11
12
|
def to_h
|
@@ -13,6 +14,7 @@ module Bosh::Template::Test
|
|
13
14
|
'instances' => instances.map(&:to_h),
|
14
15
|
'name' => name,
|
15
16
|
'properties' => properties,
|
17
|
+
'address' => address,
|
16
18
|
}
|
17
19
|
end
|
18
20
|
end
|
@@ -19,7 +19,7 @@ module Bosh::Template
|
|
19
19
|
|
20
20
|
binding = Bosh::Template::EvaluationContext.new(sanitized_hash_with_spec, nil).get_binding
|
21
21
|
raise "No such file at #{@template_path}" unless File.exist?(@template_path)
|
22
|
-
ERB.new(File.read(@template_path),
|
22
|
+
ERB.new(File.read(@template_path), nil, '-').result(binding)
|
23
23
|
end
|
24
24
|
|
25
25
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bosh-template
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pivotal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: semi_semantic
|
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
72
|
version: '0'
|
73
73
|
requirements: []
|
74
74
|
rubyforge_project:
|
75
|
-
rubygems_version: 2.6.14.
|
75
|
+
rubygems_version: 2.6.14.3
|
76
76
|
signing_key:
|
77
77
|
specification_version: 4
|
78
78
|
summary: Renders bosh templates
|