lbrt 0.1.4 → 0.1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b27989c6bae123c2e5f4779d1600f9a6ec365f55
4
- data.tar.gz: 95da6ce9e50720d86acc023a839f4d1307b1c8c1
3
+ metadata.gz: b555b4fcdd3a4b7874718d2ac738a8f94662f34e
4
+ data.tar.gz: 9cabe6071054fdf219e15d19cea1717ea6741bbf
5
5
  SHA512:
6
- metadata.gz: 1e3f8d702317ad9ad5cb938b91af277b930231161c53f6da70c121965ce73cb2bfc3b6d60151af931c40bfffbc18621bb971fac145f81823cd0e5786fd66a526
7
- data.tar.gz: c00acd033ce7803f22193efa08cd79f6ec143e0e19ab104b69f9c594540c02ada1b60f86d91c563e93aa6e4053ba81182ce96ef51fc021dd8c475b954a28cbe7
6
+ metadata.gz: 6f73a2df7ded73d26b0d95525103efe4051ec71347ceeb64881c30d96a768e16361ed3f81b55b7b68ac016ef9cc57cb6a3421201d580ff99418bfae88fbc9fdb
7
+ data.tar.gz: c1655ea651077562dc8a3c14b6c6a73497d3ec5a44f51cbb6e054f6ae7f1023bc0c5da72c5092b887054224eb64d9003fca3f0efa56b6b953c9ecac3bc4443e3
data/.gitignore CHANGED
@@ -7,4 +7,5 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ .DS_Store
10
11
  test.rb
data/README.md CHANGED
@@ -198,7 +198,7 @@ space "My Space2" do
198
198
  end
199
199
  ```
200
200
 
201
- ### Space template
201
+ ## template
202
202
 
203
203
  ```ruby
204
204
  template "dstat" do
@@ -231,6 +231,8 @@ space "my-host-001" do
231
231
  end
232
232
  ```
233
233
 
234
+ You can use the template in the `alert` and `service`.
235
+
234
236
  ## Show resource by [peco](https://github.com/peco/peco)
235
237
 
236
238
  ```sh
@@ -1,4 +1,6 @@
1
1
  class Lbrt::Alert::DSL::Context::Alert::Condition
2
+ include Lbrt::Utils::TemplateHelper
3
+
2
4
  REQUIRED_ATTRIBUTES = %w(
3
5
  type
4
6
  metric_name
@@ -11,12 +13,15 @@ class Lbrt::Alert::DSL::Context::Alert::Condition
11
13
  'active' => %W(duration),
12
14
  }
13
15
 
14
- def initialize(alert_name, &block)
16
+ def initialize(context, alert_name, &block)
17
+ @context = context.dup
15
18
  @alert_name = alert_name
16
19
  @result = {}
17
20
  instance_eval(&block)
18
21
  end
19
22
 
23
+ attr_reader :context
24
+
20
25
  def result
21
26
  REQUIRED_ATTRIBUTES.each do |name|
22
27
  unless @result.has_key?(name)
@@ -1,4 +1,6 @@
1
1
  class Lbrt::Alert::DSL::Context::Alert
2
+ include Lbrt::Utils::TemplateHelper
3
+
2
4
  REQUIRED_ATTRIBUTES = %w(
3
5
  description
4
6
  attributes
@@ -7,7 +9,8 @@ class Lbrt::Alert::DSL::Context::Alert
7
9
  rearm_per_signal
8
10
  )
9
11
 
10
- def initialize(name, services, &block)
12
+ def initialize(context, name, services, &block)
13
+ @context = context.merge(:alert_name => name)
11
14
  @name = name
12
15
  @services = services
13
16
 
@@ -20,6 +23,8 @@ class Lbrt::Alert::DSL::Context::Alert
20
23
  instance_eval(&block)
21
24
  end
22
25
 
26
+ attr_reader :context
27
+
23
28
  def result
24
29
  REQUIRED_ATTRIBUTES.each do |name|
25
30
  unless @result.has_key?(name)
@@ -57,7 +62,7 @@ class Lbrt::Alert::DSL::Context::Alert
57
62
  end
58
63
 
59
64
  def condition(&block)
60
- @result['conditions'] << Lbrt::Alert::DSL::Context::Alert::Condition.new(@name, &block).result
65
+ @result['conditions'] << Lbrt::Alert::DSL::Context::Alert::Condition.new(@context, @name, &block).result
61
66
  end
62
67
 
63
68
  def service(type, title)
@@ -1,5 +1,6 @@
1
1
  class Lbrt::Alert::DSL::Context
2
2
  include Lbrt::Utils::ContextHelper
3
+ include Lbrt::Utils::TemplateHelper
3
4
 
4
5
  def self.eval(client, dsl, path, options = {})
5
6
  self.new(client, path, options) {
@@ -8,12 +9,20 @@ class Lbrt::Alert::DSL::Context
8
9
  end
9
10
 
10
11
  attr_reader :result
12
+ attr_reader :context
11
13
 
12
14
  def initialize(client, path, options = {}, &block)
13
15
  @path = path
14
16
  @options = options
15
17
  @result = {}
16
18
  @services = Lbrt::Service::Exporter.export(client, options)
19
+
20
+ @context = Hashie::Mash.new(
21
+ :path => path,
22
+ :options => options,
23
+ :templates => {}
24
+ )
25
+
17
26
  instance_eval(&block)
18
27
  end
19
28
 
@@ -26,7 +35,7 @@ class Lbrt::Alert::DSL::Context
26
35
  raise "Alert `#{name}` is already defined"
27
36
  end
28
37
 
29
- alrt = Lbrt::Alert::DSL::Context::Alert.new(name, @services, &block).result
38
+ alrt = Lbrt::Alert::DSL::Context::Alert.new(@context, name, @services, &block).result
30
39
  @result[name] = alrt
31
40
  end
32
41
  end
@@ -1,15 +1,20 @@
1
1
  class Lbrt::Service::DSL::Context::Service
2
+ include Lbrt::Utils::TemplateHelper
3
+
2
4
  REQUIRED_ATTRIBUTES = %w(
3
5
  settings
4
6
  )
5
7
 
6
- def initialize(type, title, &block)
8
+ def initialize(context, type, title, &block)
9
+ @context = context.merge(:service_type => type, :service_title => title)
7
10
  @type = type
8
11
  @title = title
9
12
  @result = {}
10
13
  instance_eval(&block)
11
14
  end
12
15
 
16
+ attr_reader :context
17
+
13
18
  def result
14
19
  REQUIRED_ATTRIBUTES.each do |name|
15
20
  unless @result.has_key?(name)
@@ -1,5 +1,6 @@
1
1
  class Lbrt::Service::DSL::Context
2
2
  include Lbrt::Utils::ContextHelper
3
+ include Lbrt::Utils::TemplateHelper
3
4
 
4
5
  def self.eval(dsl, path, options = {})
5
6
  self.new(path, options) {
@@ -8,11 +9,19 @@ class Lbrt::Service::DSL::Context
8
9
  end
9
10
 
10
11
  attr_reader :result
12
+ attr_reader :context
11
13
 
12
14
  def initialize(path, options = {}, &block)
13
15
  @path = path
14
16
  @options = options
15
17
  @result = {}
18
+
19
+ @context = Hashie::Mash.new(
20
+ :path => path,
21
+ :options => options,
22
+ :templates => {}
23
+ )
24
+
16
25
  instance_eval(&block)
17
26
  end
18
27
 
@@ -27,7 +36,7 @@ class Lbrt::Service::DSL::Context
27
36
  raise "Service `#{type}/#{title}` is already defined"
28
37
  end
29
38
 
30
- srvc = Lbrt::Service::DSL::Context::Service.new(type, title, &block).result
39
+ srvc = Lbrt::Service::DSL::Context::Service.new(@context, type, title, &block).result
31
40
  @result[key] = srvc
32
41
  end
33
42
  end
@@ -1,4 +1,6 @@
1
1
  class Lbrt::Space::DSL::Context::Space::Chart::Stream
2
+ include Lbrt::Utils::TemplateHelper
3
+
2
4
  REQUIRED_ATTRIBUTES = %w(
3
5
  metric
4
6
  type
@@ -1,4 +1,6 @@
1
1
  class Lbrt::Space::DSL::Context::Space::Chart
2
+ include Lbrt::Utils::TemplateHelper
3
+
2
4
  REQUIRED_ATTRIBUTES = %w(
3
5
  type
4
6
  )
@@ -1,9 +1,10 @@
1
1
  class Lbrt::Space::DSL::Context::Space
2
- def initialize(name_or_id, templates, &block)
2
+ include Lbrt::Utils::TemplateHelper
3
+
4
+ def initialize(context, name_or_id, &block)
5
+ @context = context.merge(:space_name => name_or_id)
3
6
  @name_or_id = name_or_id
4
- @templates = templates
5
7
  @result = {'charts' => {}}
6
- @context = Hashie::Mash.new(:space_name => name_or_id)
7
8
  instance_eval(&block)
8
9
  end
9
10
 
@@ -12,16 +13,6 @@ class Lbrt::Space::DSL::Context::Space
12
13
 
13
14
  private
14
15
 
15
- def include_template(template_name)
16
- tmplt = @templates[template_name.to_s]
17
-
18
- unless tmplt
19
- raise "Space `#{@name_or_id}`: Template `#{template_name}` is not defined"
20
- end
21
-
22
- instance_eval(&tmplt)
23
- end
24
-
25
16
  def chart(chart_name_or_id, &block)
26
17
  if @result[chart_name_or_id]
27
18
  raise "Space `#{@name_or_id}` > Chart `#{chart_name_or_id}` is already defined"
@@ -1,5 +1,6 @@
1
1
  class Lbrt::Space::DSL::Context
2
2
  include Lbrt::Utils::ContextHelper
3
+ include Lbrt::Utils::TemplateHelper
3
4
 
4
5
  def self.eval(dsl, path, options = {})
5
6
  self.new(path, options) {
@@ -8,27 +9,30 @@ class Lbrt::Space::DSL::Context
8
9
  end
9
10
 
10
11
  attr_reader :result
12
+ attr_reader :context
11
13
 
12
14
  def initialize(path, options = {}, &block)
13
15
  @path = path
14
16
  @options = options
15
- @templates = {}
16
17
  @result = {}
18
+
19
+ @context = Hashie::Mash.new(
20
+ :path => path,
21
+ :options => options,
22
+ :templates => {}
23
+ )
24
+
17
25
  instance_eval(&block)
18
26
  end
19
27
 
20
28
  private
21
29
 
22
- def template(name, &block)
23
- @templates[name.to_s] = block
24
- end
25
-
26
30
  def space(name_or_id, &block)
27
31
  if @result[name_or_id]
28
32
  raise "Space `#{name_or_id}` is already defined"
29
33
  end
30
34
 
31
- spc = Lbrt::Space::DSL::Context::Space.new(name_or_id, @templates, &block).result
35
+ spc = Lbrt::Space::DSL::Context::Space.new(@context, name_or_id, &block).result
32
36
  @result[name_or_id] = spc
33
37
  end
34
38
  end
data/lib/lbrt/utils.rb CHANGED
@@ -33,6 +33,22 @@ class Lbrt::Utils
33
33
  Kernel.require(file)
34
34
  end
35
35
  end
36
+
37
+ def template(name, &block)
38
+ @context.templates[name.to_s] = block
39
+ end
40
+ end
41
+
42
+ module TemplateHelper
43
+ def include_template(template_name)
44
+ tmplt = @context.templates[template_name.to_s]
45
+
46
+ unless tmplt
47
+ raise "Template `#{template_name}` is not defined"
48
+ end
49
+
50
+ instance_eval(&tmplt)
51
+ end
36
52
  end
37
53
 
38
54
  module CLIHelper
data/lib/lbrt/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lbrt
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lbrt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara