yle_tf-landscape 1.0.0
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 +7 -0
- data/lib/yle_tf-landscape.rb +2 -0
- data/lib/yle_tf-landscape/action.rb +20 -0
- data/lib/yle_tf-landscape/command.rb +42 -0
- data/lib/yle_tf-landscape/plugin.rb +19 -0
- data/lib/yle_tf-landscape/version.rb +5 -0
- metadata +123 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 46b8b4793d4061168c787e4f011501bdb0be2a48
|
4
|
+
data.tar.gz: '081eb08df7190970212f07a9b4843ca6d89fe967'
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7fc4583c8b57a645b61e843c02cb7b9f11d61efacb0839ef60e7b8473ff5489ac886947a7c958886e5db510ef006a05e1c2522e41adbb6d6c5e79fd12bec60bd
|
7
|
+
data.tar.gz: cad71930fe0dbbb4da6c7a081a07ffdd68b9bc4cc3497c0abc83f27dc8a5ca70b70009fe8b0d60b1e5850c225e2e63a19f25de5140f994bc3d5e901c2ab62210
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'yle_tf/logger'
|
2
|
+
|
3
|
+
module YleTfPlugins
|
4
|
+
module Landscape
|
5
|
+
module Action
|
6
|
+
class ChangeTfCommand
|
7
|
+
def initialize(app)
|
8
|
+
@app = app
|
9
|
+
end
|
10
|
+
|
11
|
+
def call(env)
|
12
|
+
YleTf::Logger.debug "Changing 'tf_command' to 'plan'"
|
13
|
+
env[:tf_command] = 'plan'
|
14
|
+
|
15
|
+
@app.call(env)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'terraform_landscape'
|
2
|
+
require 'yle_tf/logger'
|
3
|
+
require 'yle_tf/system'
|
4
|
+
|
5
|
+
module YleTfPlugins
|
6
|
+
module Landscape
|
7
|
+
class Command
|
8
|
+
def execute(env)
|
9
|
+
args = env[:tf_command_args].dup
|
10
|
+
args << '-no-color'
|
11
|
+
args << '-input=false'
|
12
|
+
|
13
|
+
landscape_handler = landscape_handler(env)
|
14
|
+
|
15
|
+
YleTf::Logger.info 'Running `terraform plan`'
|
16
|
+
YleTf::System.cmd('terraform', 'plan', *args,
|
17
|
+
stdin: :console,
|
18
|
+
stdout: landscape_handler)
|
19
|
+
end
|
20
|
+
|
21
|
+
def landscape_handler(env)
|
22
|
+
printer = landscape_printer(env)
|
23
|
+
|
24
|
+
proc do |io|
|
25
|
+
YleTf::Logger.debug 'Streaming to Landscape'
|
26
|
+
Thread.new { printer.process_stream(io) }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def landscape_printer(env)
|
31
|
+
output = landscape_output(env)
|
32
|
+
TerraformLandscape::Printer.new(output)
|
33
|
+
end
|
34
|
+
|
35
|
+
def landscape_output(env)
|
36
|
+
TerraformLandscape::Output.new(STDOUT).tap do |output|
|
37
|
+
output.color_enabled = false if env[:tf_options][:no_color]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'yle_tf'
|
2
|
+
|
3
|
+
module YleTfPlugins
|
4
|
+
module Landscape
|
5
|
+
class Plugin < YleTf::Plugin
|
6
|
+
register
|
7
|
+
|
8
|
+
command('planb', 'Run `terraform plan` with landscaped output') do
|
9
|
+
require_relative 'action'
|
10
|
+
require_relative 'command'
|
11
|
+
|
12
|
+
YleTf::Action::Builder.new do
|
13
|
+
use Action::ChangeTfCommand
|
14
|
+
use YleTf::Action.default_action_stack(Command)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: yle_tf-landscape
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yleisradio
|
8
|
+
- Teemu Matilainen
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2017-09-25 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: yle_tf
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0.2'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0.2'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: terraform_landscape
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.1.13
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 0.1.13
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: bundler
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '1.13'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '1.13'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rake
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '12.0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '12.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rspec
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '3.5'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '3.5'
|
84
|
+
description: A plugin for YleTf adding a `planb` command that runs `terraform plan`
|
85
|
+
with piping the output through Terraform Landscape for reformatting the output to
|
86
|
+
be easier to read and understand
|
87
|
+
email:
|
88
|
+
- devops@yle.fi
|
89
|
+
- teemu.matilainen@iki.fi
|
90
|
+
executables: []
|
91
|
+
extensions: []
|
92
|
+
extra_rdoc_files: []
|
93
|
+
files:
|
94
|
+
- lib/yle_tf-landscape.rb
|
95
|
+
- lib/yle_tf-landscape/action.rb
|
96
|
+
- lib/yle_tf-landscape/command.rb
|
97
|
+
- lib/yle_tf-landscape/plugin.rb
|
98
|
+
- lib/yle_tf-landscape/version.rb
|
99
|
+
homepage: https://github.com/Yleisradio/yle_tf-landscape
|
100
|
+
licenses:
|
101
|
+
- MIT
|
102
|
+
metadata: {}
|
103
|
+
post_install_message:
|
104
|
+
rdoc_options: []
|
105
|
+
require_paths:
|
106
|
+
- lib
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
requirements: []
|
118
|
+
rubyforge_project:
|
119
|
+
rubygems_version: 2.6.11
|
120
|
+
signing_key:
|
121
|
+
specification_version: 4
|
122
|
+
summary: YleTf plugin for Terraform Landscape
|
123
|
+
test_files: []
|