cloudformation-tool 0.5.6 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 48f4c2873d720d299c5ab653cd41fa270c1ccf06
4
- data.tar.gz: a4c58902080508b20d01c39b457a73edc50880a5
3
+ metadata.gz: c314efbe154da6923670e1db9e1d51dbe11ade89
4
+ data.tar.gz: 81803828778634c0e7fec5c5efc49f17f5fb5aff
5
5
  SHA512:
6
- metadata.gz: ae305dc7980e6a5d53272a14045c6cc5db3f1e917ec7812d39cd9cc75dffb64aa55ca6ff492f0d26251cd69cc992c4cf6bc5f112fcc241f323a92d9ec36f3369
7
- data.tar.gz: 6d712ffeb74e9258016b1108532eef0fba4b4be61f8996abcdf13e702c15602a3348619e5317a38008128f4d69914689f6b311cf53d0b72a1d74425676fcfdbc
6
+ metadata.gz: 5ba0caf5fefe37f31ebfe74bb18537a393a1a163f1ae5fcbd48069e81cfb8e5e201347434ab8481d380d70735a94e0b4bd49300699151bf819f82dcc8ea0a5e7
7
+ data.tar.gz: 726c7b5c0bafe15e46271b7f11b5b198d99e1a7ad8e8867310bfcd00d095e3407fe0946a47d482ca89da8e1d4b8046728fbb0d7edc6eaba3b4ef12b5238752aa
@@ -56,6 +56,7 @@ module CloudFormationTool
56
56
  start = Time.now
57
57
  log "Created " + st.create(file, get_params).to_s
58
58
  st.monitor(start)
59
+ puts st.output
59
60
  end
60
61
 
61
62
  end
@@ -35,6 +35,7 @@ module CloudFormationTool
35
35
  subcommand 'status', "Check the current status of a stack", Status
36
36
  subcommand 'delete', "Delete an existing stack", Delete
37
37
  subcommand 'servers', 'List stack resources', Servers
38
+ subcommand 'output', 'Retrieve output values from the stack', Output
38
39
  end
39
40
  end
40
41
  end
@@ -0,0 +1,17 @@
1
+ require 'uri'
2
+ require 'net/http'
3
+
4
+ module CloudFormationTool
5
+ module CLI
6
+ class Output < Clamp::Command
7
+
8
+ parameter 'STACK_NAME', 'Name of the stack to create. Defaults to directory name'
9
+
10
+ def execute
11
+ st = CloudFormation::Stack.new(stack_name)
12
+ puts st.output
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -45,8 +45,8 @@ module CloudFormationTool
45
45
  end
46
46
 
47
47
  def create(template, params = {})
48
- tmpl = CloudFormation.parse(template).to_yaml(params)
49
- url = upload(make_filename('yaml'), tmpl, gzip: false)
48
+ @template = CloudFormation.parse(template).to_yaml(params)
49
+ url = upload(make_filename('yaml'), @template, gzip: false)
50
50
  return update(url, template, params) if exist?
51
51
  log "Creating stack '#{name}' from '#{template}' params #{params.inspect}"
52
52
  begin
@@ -63,12 +63,32 @@ module CloudFormationTool
63
63
  }
64
64
  end
65
65
  })
66
- resp.stack_id
66
+ @stack_id = resp.stack_id
67
67
  rescue Aws::CloudFormation::Errors::ValidationError => e
68
68
  raise CloudFormationTool::Errors::ValidationError, "Stack validation error: #{e.message}"
69
69
  end
70
70
  end
71
71
 
72
+ def stack_id
73
+ @stack_id ||= awscf.describe_stacks(stack_name: @name).stacks.first.stack_id
74
+ end
75
+
76
+ def output
77
+ begin
78
+ key_width = 0
79
+ resp = awscf.list_exports
80
+ resp.exports.select do |exp|
81
+ exp.exporting_stack_id == stack_id
82
+ end.each do |exp|
83
+ key_width = [ key_width, exp.name.length ].max
84
+ end.collect do |exp|
85
+ "%-#{key_width}s: %s" % [ exp.name, exp.value ]
86
+ end
87
+ rescue Aws::CloudFormation::Errors::ValidationError => e
88
+ raise CloudFormationTool::Errors::AppError, "Failed to get resources: #{e.message}"
89
+ end
90
+ end
91
+
72
92
  def resources
73
93
  begin
74
94
  resp = awscf.describe_stack_resources stack_name: @name
@@ -1,3 +1,3 @@
1
1
  module CloudFormationTool
2
- VERSION = '0.5.6'
2
+ VERSION = '0.6.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudformation-tool
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oded Arbel
@@ -72,6 +72,7 @@ files:
72
72
  - lib/cloud_formation_tool/cli/list_stacks.rb
73
73
  - lib/cloud_formation_tool/cli/main.rb
74
74
  - lib/cloud_formation_tool/cli/monitor.rb
75
+ - lib/cloud_formation_tool/cli/output.rb
75
76
  - lib/cloud_formation_tool/cli/parameters.rb
76
77
  - lib/cloud_formation_tool/cli/servers.rb
77
78
  - lib/cloud_formation_tool/cli/status.rb