cfn_manage 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2dd0b050dc1153431acfe35eac706b4652a6272aaedc58645c9787469ec6f48c
4
- data.tar.gz: '0359145ed126dbea9d356d00a0f19c9a924f2cced0e7958b83aed71bac737c60'
3
+ metadata.gz: 43ecbbdac266b5a5b658468b6419e8851058db5dc16e1ed8a147e607237c1157
4
+ data.tar.gz: 2ad869e839f2da3af86bf7af2bb848bf82ba553f43f24ad90c78f30b0c7808aa
5
5
  SHA512:
6
- metadata.gz: 0ec5af1767e16c77a87c40060193524e931e00c044a94146d40329a057678cbd5b786f081bf3b2f53d7d9f79975ae4612ee81b726bf5e64f83a7ac8a46ad4101
7
- data.tar.gz: 331c32d26cb56880bba951f31db76ea88dfb0aad67dbb233988b72eeb1537980cd2471ce010e319db3c9e0c3423da166cd95f9151878fe971e30b0579bfae97a
6
+ metadata.gz: aa465fca8812fce4f2d5c464fdb5492c0a44a51c5bde5812584093c6fd7f4abebb4186f6e0f02f16997d070ae597cbd9f6335b26621377d79fa034c3873ff57e
7
+ data.tar.gz: f8ad3a5549a5b3423fcfa0f49539418d0bf59271508efd74566711ea94b63557c50c8f40989ac16fbb173f3ea9e318b1d575b507ea9912f59dea347fa97409c1
@@ -0,0 +1,8 @@
1
+ # Created by .ignore support plugin (hsz.mobi)
2
+ Gemfile.lock
3
+ *.gem
4
+ release.sh
5
+
6
+ .DS_Store
7
+
8
+ coverage/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --require spec_helper
2
+ --colour
@@ -0,0 +1,20 @@
1
+ sudo: required
2
+ dist: trusty
3
+ language: ruby
4
+ rvm:
5
+ - 2.5
6
+ before_install:
7
+ - gem install -v 2.0.2 bundler --no-document
8
+ - bundle _2.0.2_ install
9
+ script:
10
+ - bundle exec rake spec
11
+ - gem build cfn_manage.gemspec
12
+ - gem install cfn_manage-*.gem
13
+ - cfn_manage --version
14
+ deploy:
15
+ provider: rubygems
16
+ api_key: "${RUBYGEMS_API_KEY}"
17
+ gem: cfn_manage
18
+ on:
19
+ all_branches: true
20
+ condition: $TRAVIS_BRANCH =~ ^develop|master && $TRAVIS_EVENT_TYPE =~ ^push|api$ && $TRAVIS_REPO_SLUG == "base2Services/cfn-start-stop-stack"
@@ -0,0 +1,7 @@
1
+ FROM ruby:2.5
2
+
3
+ ARG CFN_MANAGE_VERSION=0.5.0
4
+
5
+ RUN gem install cfn_manage -v ${CFN_MANAGE_VERSION}
6
+
7
+ CMD ["cfn_manage","help"]
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :test do
6
+ gem 'rake'
7
+ gem 'rspec'
8
+ gem 'simplecov'
9
+ end
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2017 base2Services
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,311 @@
1
+ # cfn-library
2
+
3
+ [![Build Status](https://travis-ci.org/base2Services/cfn-start-stop-stack.svg?branch=develop)](https://travis-ci.org/base2Services/cfn-start-stop-stack)
4
+
5
+ ## About
6
+
7
+ Base2Services Common Cloud Formation stacks functionality
8
+
9
+ ## Installation
10
+
11
+ - As a gem `gem install cfn_manage`
12
+
13
+ - As a docker container `docker pull base2/cfn-manage`
14
+
15
+ - Download source code `git clone https://github.com/base2Services/cfn-start-stop-stack`
16
+
17
+ ## Run As Docker Container
18
+
19
+ Running cfn_manage inside a docker container means you don't have to worry about
20
+ managing the runtime environment.
21
+
22
+ ```bash
23
+ docker run -ti --rm -v $HOME/.aws/credentials:/root/.aws/credentials base2/cfn-manage
24
+ ```
25
+
26
+ You can also pass in additional [Environment Variables](## Environment Variables) using the `-e` flag in the run command
27
+
28
+ ```bash
29
+ docker run -ti --rm -v $HOME/.aws/credentials:/root/.aws/credentials -e AWS_REGION=us-east-1 base2/cfn-manage
30
+ ```
31
+
32
+ ## Functionality
33
+
34
+ ### Stack traversal
35
+
36
+ Used to traverse through stack and all it's substacks
37
+
38
+ ### Start-stop environment functionality
39
+
40
+ Stop environment will
41
+
42
+ - Set all ASG's size to 0
43
+ - Stops RDS instances
44
+ - If RDS instance is Multi-AZ, it is converted to single-az prior it
45
+ is being stopped
46
+ - Disable CloudWatch Alarm actions
47
+
48
+ Start environment operation will
49
+
50
+ - Set all ASG's size to what was prior stop operation
51
+ - Starts ASG instances
52
+ - If ASG instance was Mutli-AZ, it is converted back to Multi-AZ
53
+ - Enable CloudWatch Alarm actions
54
+ Metadata about environment, such as number of desired/max/min instances within ASG and MultiAZ property
55
+ for rds instances, is stored in S3 bucket specified via `--source-bucket` switch or `SOURCE_BUCKET` environment
56
+ variable.
57
+
58
+ Both start and stop environment operations are idempotent, so if you run `stop-environment`
59
+ two times in a row, initial configuration of ASG will persist in S3 bucket (rather than storing 0/0/0) as ASG configuration.
60
+ Same applies for `start` operation - running it against already running environment won't perform any operations.
61
+
62
+ In case of some configuration data being lost, script will continue and work with existing data (e.g data about asgs
63
+ removed from S3, but rds data persists will results in RDS instances being started)
64
+
65
+ Order of operations is supported at this point as hardcoded weights per resource type. Pull Requests are welcome
66
+ for supporting dynamic discovery of order of execution - local configuration file override is one of
67
+ the possible sources.
68
+
69
+
70
+ ## Start - stop cloudformation stack
71
+
72
+ ### Supported resources
73
+
74
+ #### AWS::AutoScaling::AutoScalingGroup
75
+
76
+ **Stop** operation will set desired capacity of ASG to 0
77
+
78
+ **Start** operation will restore previous capacity
79
+
80
+ #### AWS::EC2::Instance
81
+
82
+ **Stop** operation will stop instance [using StopInstances api call](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StopInstances.html)
83
+
84
+ **Start** operation will start instance [using StartInstances api call](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartInstances.html)
85
+
86
+
87
+ #### AWS::RDS::DBInstance
88
+
89
+ **Stop** operation will stop rds instance. Aurora is not supported yet on AWS side. Note that RDS instance can be stopped
90
+ for two weeks at maximum. If instance is Multi-AZ, it will get converted to Single-AZ instance, before being stopped
91
+ (Amazon does not support stopping Multi-AZ rds instances)
92
+
93
+
94
+ **Start** operation will start rds instance. If instance was running in Multi-AZ mode before being stopped,
95
+ it will get converted to Multi-AZ prior being started
96
+
97
+ #### AWS::DocDB::DBCluster
98
+
99
+ **Stop** Cluster will be stopped, note that a cluster can only be stopped for a maximum of 7 days, after this time it will turn back on.
100
+
101
+
102
+ **Start** Cluster will be started
103
+
104
+ #### AWS::CloudWatch::Alarm
105
+
106
+ **Stop** operation will disable all of alarm's actions
107
+
108
+ **Start** operation will enable all of alarm's actions
109
+
110
+ #### AWS::EC2::SpotFleet
111
+
112
+ **Stop** operation will set spot fleet target to capacity to 0
113
+
114
+ **Start** operation will restore spot fleet target to capacity to what was set prior the stack being stopped.
115
+
116
+ #### AWS::ECS::Cluster
117
+
118
+ **Stop** operation will query all services running in the cluster and set desired capacity to 0
119
+
120
+ **Start** operation will query all services assocated with the cluster restore desired capacity to what was set prior the stack being stopped.
121
+
122
+ ## CLI usage
123
+
124
+ You'll find usage of `cfn_manage` within [usage.txt](bin/usage.txt) file
125
+
126
+ ```
127
+ Usage: cfn_manage [command] [options]
128
+
129
+ Commands:
130
+
131
+ cfn_manage help
132
+
133
+ cfn_manage version
134
+
135
+ cfn_manage stop-environment --stack-name [STACK_NAME]
136
+
137
+ cfn_manage start-environment --stack-name [STACK_NAME]
138
+
139
+ cfn_manage stop-asg --asg-name [ASG]
140
+
141
+ cfn_manage start-asg --asg-name [ASG]
142
+
143
+ cfn_manage stop-rds --rds-instance-id [RDS_INSTANCE_ID]
144
+
145
+ cfn_manage start-rds --rds-instance-id [RDS_INSTANCE_ID]
146
+
147
+ cfn_manage stop-aurora-cluster --aurora-cluster-id [AURORA_CLUSTER_ID]
148
+
149
+ cfn_manage start-aurora-cluster --aurora-cluster-id [AURORA_CLUSTER_ID]
150
+
151
+ cfn_manage stop-docdb-cluster --docdb-cluster-id [DOCDB_CLUSTER_ID]
152
+
153
+ cfn_manage start-docdb-cluster --docdb-cluster-id [DOCDB_CLUSTER_ID]
154
+
155
+ cfn_manage stop-ec2 --ec2-instance-id [EC2_INSTANCE_ID]
156
+
157
+ cfn_manage start-ec2 --ec2-instance-id [EC2_INSTANCE_ID]
158
+
159
+ cfn_manage stop-spot-fleet --spot-fleet [SPOT_FLEET]
160
+
161
+ cfn_manage start-spot-fleet --spot-fleet [SPOT_FLEET]
162
+
163
+ cfn_manage stop-ecs-cluster --ecs-cluster [ECS_CLUSTER]
164
+
165
+ cfn_manage start-ecs-cluster --ecs-cluster [ECS_CLUSTER]
166
+
167
+ cfn_manage disable-alarm --alarm [ALARM]
168
+
169
+ cfn_manage enable-alarm --alarm [ALARM]
170
+
171
+ General options:
172
+
173
+ --source-bucket [BUCKET]
174
+
175
+ Pucket used to store / pull information from
176
+
177
+ --aws-role [ROLE_ARN]
178
+
179
+ AWS Role to assume when performing operations. Any reads and
180
+ write to source bucket will be performed outside of this role
181
+
182
+
183
+ -r [AWS_REGION], --region [AWS_REGION]
184
+
185
+ AWS Region to use when making API calls
186
+
187
+ -p [AWS_PROFILE], --profile [AWS_PROFILE]
188
+
189
+ AWS Shared profile to use when making API calls
190
+
191
+ --dry-run
192
+
193
+ Applicable only to [start|stop-environment] commands. If dry run is enabled
194
+ info about assets being started / stopped will ne only printed to standard output,
195
+ without any action taken.
196
+
197
+ --debug
198
+
199
+ Displays debug logs
200
+
201
+ --continue-on-error
202
+
203
+ Applicable only to [start|stop-environment] commands. If there is problem with stopping a resource,
204
+ (e.g. cloudformation stack not being synced or manual resource deletion) script will continue it's
205
+ operation. By default script stops when there is problem with starting/stopping resource, and expects
206
+ manual intervention to fix the root cause for failure.
207
+
208
+ --skip-wait
209
+
210
+ Skips waiting for resources to achieve stopped or started states.
211
+
212
+ --wait-async
213
+
214
+ Default wait action is to wait for each individual resource to be stopped and started before continuing.
215
+ This will enabled waiting for resources in groups based on priority. Option only useful when used with
216
+ start-environment and stop-environment commands.
217
+
218
+ --ignore-missing-ecs-config
219
+
220
+ This option is required for starting a ecs service that was stopped outside of cfn_manage.
221
+
222
+ --asg-suspend-termination
223
+
224
+ Will stop instances in the autoscaling group(s) instead of the default behaviour of termination.
225
+
226
+ --asg-wait-state
227
+
228
+ Allowed values ['HealthyInASG','Running','HealthyInTargetGroup']
229
+ Default: 'HealthyInASG'
230
+
231
+ 'HealthyInASG' - waits for all instances to reach a healthy state in the asg
232
+ 'Running' - waits for all instances to reach the EC2 running state
233
+ 'HealthyInTargetGroup' - waits for all instances to reach a healthy state in all asg assocated target groups
234
+
235
+ --ecs-wait-state
236
+
237
+ Allowed values ['Running','HealthyInTargetGroup']
238
+ Default: 'Skip'
239
+
240
+ 'Running' - waits for all ecs services in cluster to reach the running state
241
+ 'HealthyInTargetGroup' - waits for all ecs services in cluster to reach a healthy state in all assocated target groups
242
+
243
+ --tags
244
+
245
+ will query resource tags for individual resource settings.
246
+ `cfn_manage:priority` for prefered starting order
247
+ will default to defined resource order if no tag is found or resource doesn't support tags
248
+
249
+ --ecs-wait-container-instances
250
+
251
+ waits for a container instance to be active in the ecs cluster before starting services
252
+ ```
253
+
254
+ ## Environment Variables
255
+
256
+ Also, there are some environment variables that control behaviour of the application.
257
+ There are command line switch counter parts for all of the
258
+
259
+ `AWS_ASSUME_ROLE` as env var or `--aws-role` as CLI switch
260
+
261
+ `AWS_REGION` as env car or `-r`, `--region` as CLI switch
262
+
263
+ `AWS_PROFILE` as env var or `-p`, `--profile` as CLI switch
264
+
265
+ `SOURCE_BUCKET` as env var or `--source-bucket` as CLI switch
266
+
267
+ `DRY_RUN` as env var (set to '1' to enable) or `--dry-run` as CLI switch
268
+
269
+ `IGNORE_MISSING_ECS_CONFIG` as env var (set to '1' to enable) or `--ignore-missing-ecs-config` as CLI switch
270
+
271
+ `CFN_CONTINUE_ON_ERROR` as env var (set to '1' to enable) or `--continue-on-error` as CLI switch
272
+
273
+ `SKIP_WAIT` as env var (set to '1' to enable) or `--skip-wait` as CLI switch
274
+
275
+ `WAIT_ASYNC` as env var (set to '1' to enable) or `--wait-async` as CLI switch
276
+
277
+ `ASG_SUSPEND_TERMINATION` as env var (set to '1' to enable) or `--asg-suspend-termination` as CLI switch
278
+
279
+ `CFN_TAGS` as env var (set to '1' to enable) or `--tags` as CLI switch
280
+
281
+ `ECS_WAIT_CONTAINER_INSTANCES` as env var (set to '1' to enable) or `--ecs-wait-container-instances` as CLI switch
282
+
283
+ `CFN_DEBUG` as env var (set to '1' to enable) or `--debug` as CLI switch
284
+
285
+ ## AWS Resource Tags
286
+
287
+ will query resource tags for individual resource settings. please see bellow the list of resources currently supported by tags and their options.
288
+
289
+ #### AWS::AutoScaling::AutoScalingGroup'
290
+
291
+ ```yaml
292
+ cfn_manage:wait_state: 'HealthyInASG'
293
+ cfn_manage:skip_wait: true
294
+ cfn_manage:suspend_termination: true
295
+ ```
296
+
297
+ #### AWS::ECS::Cluster
298
+
299
+ ```yaml
300
+ cfn_manage:wait_state: 'Running'
301
+ cfn_manage:skip_wait: true
302
+ cfn_manage:wait_container_instances: true
303
+ cfn_manage:ignore_missing_ecs_config: true
304
+ ```
305
+
306
+ ## Release process
307
+
308
+ - Bump up version `gem install bump && bump [patch|minor|major]`
309
+ - Update timestamp in `cfn_manage.gemspec`
310
+ - Create and publish gem `gem build cfn_manage.gemspec && gem push cfn_manage-$VERSION.gem`
311
+ - Create release page on GitHub
@@ -0,0 +1,9 @@
1
+ require "rake"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec) do |t|
5
+ t.pattern = Dir.glob("spec/**/*_spec.rb")
6
+ t.rspec_opts = "--format documentation"
7
+ end
8
+
9
+ task default: :spec
@@ -0,0 +1,58 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'cfn_manage/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'cfn_manage'
7
+ spec.version = CfnManage::VERSION
8
+ spec.summary = 'Manage AWS Cloud Formation stacks'
9
+ spec.description = 'Start and stop aws resources in a cloudformation stack'
10
+ spec.authors = ['Base2Services', 'Nikola Tosic', 'Angus Vine']
11
+ spec.homepage = 'https://github.com/base2Services/cfn-start-stop-stack/blob/master/README.md'
12
+ spec.email = 'itsupport@base2services.com'
13
+ spec.license = "MIT"
14
+
15
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
16
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
17
+ if spec.respond_to?(:metadata)
18
+ spec.metadata["allowed_push_host"] = 'https://rubygems.org'
19
+
20
+ spec.metadata["homepage_uri"] = spec.homepage
21
+ spec.metadata["source_code_uri"] = "https://github.com/base2services/aws-client-vpn"
22
+ else
23
+ raise "RubyGems 2.0 or newer is required to protect against " \
24
+ "public gem pushes."
25
+ end
26
+
27
+ # Specify which files should be added to the gem when it is released.
28
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
29
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
30
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
31
+ end
32
+ spec.bindir = "exe"
33
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
+ spec.require_paths = ["lib"]
35
+
36
+ spec.required_ruby_version = '~> 2.5'
37
+
38
+ spec.add_runtime_dependency 'aws-sdk-core', '>=3.39.0','<4'
39
+ spec.add_runtime_dependency 'aws-sdk-s3', '~> 1', '<2'
40
+ spec.add_runtime_dependency 'aws-sdk-ec2', '~> 1', '<2'
41
+ spec.add_runtime_dependency 'aws-sdk-cloudformation', '~> 1', '<2'
42
+ spec.add_runtime_dependency 'aws-sdk-rds', '>=1.31.0', '<2'
43
+ spec.add_runtime_dependency 'aws-sdk-cloudwatch', '~> 1', '<2'
44
+ spec.add_runtime_dependency 'aws-sdk-iam', '~> 1', '<2'
45
+ spec.add_runtime_dependency 'aws-sdk-autoscaling', '~> 1', '<2'
46
+ spec.add_runtime_dependency 'aws-sdk-ecs', '~> 1', '<2'
47
+ spec.add_runtime_dependency 'aws-sdk-docdb', '>=1.9.0', '<2'
48
+ spec.add_runtime_dependency 'aws-sdk-transfer', '~>1', '<2'
49
+ spec.add_runtime_dependency 'aws-sdk-elasticloadbalancingv2', '~>1', '<2'
50
+
51
+ spec.add_development_dependency "bundler", "~> 2.0"
52
+ spec.add_development_dependency "rake", "~> 13.0"
53
+ spec.add_development_dependency "rspec", "~> 0.9"
54
+ spec.add_development_dependency "rspec-core", "~> 3.8"
55
+ spec.add_development_dependency "rspec-expectations", "~> 3.8"
56
+ spec.add_development_dependency "rspec-mocks", "~> 3.8"
57
+ spec.add_development_dependency 'simplecov', '~> 0.16'
58
+ end
File without changes
File without changes
@@ -81,12 +81,20 @@ module CfnManage
81
81
 
82
82
  # stop rds instance and wait for it to be fully stopped
83
83
  $log.info("Stopping instance #{@instance_id}")
84
- @rds_client.stop_db_instance({ db_instance_identifier: @instance_id })
84
+ begin
85
+ @rds_client.stop_db_instance({ db_instance_identifier: @instance_id })
86
+ rescue Aws::RDS::Errors::InvalidDBInstanceState => e
87
+ if e.message == "Cannot stop or start a Read-Replica instance"
88
+ $log.warn("Skipping due to error: #{e.message}")
89
+ return
90
+ else
91
+ raise e
92
+ end
93
+ end
85
94
  unless CfnManage.skip_wait?
86
95
  $log.info("Waiting db instance to be stopped #{@instance_id}")
87
96
  wait('stopped')
88
97
  end
89
-
90
98
  return configuration
91
99
  end
92
100
 
@@ -1,3 +1,3 @@
1
1
  module CfnManage
2
- VERSION="0.8.2".freeze
2
+ VERSION="0.8.3".freeze
3
3
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfn_manage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Base2Services
8
8
  - Nikola Tosic
9
9
  - Angus Vine
10
10
  autorequire:
11
- bindir: bin
11
+ bindir: exe
12
12
  cert_chain: []
13
- date: 2019-11-01 00:00:00.000000000 Z
13
+ date: 2020-05-25 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: aws-sdk-core
@@ -272,14 +272,14 @@ dependencies:
272
272
  requirements:
273
273
  - - "~>"
274
274
  - !ruby/object:Gem::Version
275
- version: '10.0'
275
+ version: '13.0'
276
276
  type: :development
277
277
  prerelease: false
278
278
  version_requirements: !ruby/object:Gem::Requirement
279
279
  requirements:
280
280
  - - "~>"
281
281
  - !ruby/object:Gem::Version
282
- version: '10.0'
282
+ version: '13.0'
283
283
  - !ruby/object:Gem::Dependency
284
284
  name: rspec
285
285
  requirement: !ruby/object:Gem::Requirement
@@ -350,15 +350,25 @@ dependencies:
350
350
  - - "~>"
351
351
  - !ruby/object:Gem::Version
352
352
  version: '0.16'
353
- description: ''
353
+ description: Start and stop aws resources in a cloudformation stack
354
354
  email: itsupport@base2services.com
355
355
  executables:
356
356
  - cfn_manage
357
+ - usage.txt
357
358
  extensions: []
358
359
  extra_rdoc_files: []
359
360
  files:
360
- - bin/cfn_manage
361
- - bin/usage.txt
361
+ - ".gitignore"
362
+ - ".rspec"
363
+ - ".travis.yml"
364
+ - Dockerfile
365
+ - Gemfile
366
+ - LICENSE
367
+ - README.md
368
+ - Rakefile
369
+ - cfn_manage.gemspec
370
+ - exe/cfn_manage
371
+ - exe/usage.txt
362
372
  - lib/cfn_manage.rb
363
373
  - lib/cfn_manage/aws_credentials.rb
364
374
  - lib/cfn_manage/cf_common.rb
@@ -380,7 +390,10 @@ files:
380
390
  homepage: https://github.com/base2Services/cfn-start-stop-stack/blob/master/README.md
381
391
  licenses:
382
392
  - MIT
383
- metadata: {}
393
+ metadata:
394
+ allowed_push_host: https://rubygems.org
395
+ homepage_uri: https://github.com/base2Services/cfn-start-stop-stack/blob/master/README.md
396
+ source_code_uri: https://github.com/base2services/aws-client-vpn
384
397
  post_install_message:
385
398
  rdoc_options: []
386
399
  require_paths:
@@ -396,7 +409,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
396
409
  - !ruby/object:Gem::Version
397
410
  version: '0'
398
411
  requirements: []
399
- rubygems_version: 3.0.6
412
+ rubygems_version: 3.1.3
400
413
  signing_key:
401
414
  specification_version: 4
402
415
  summary: Manage AWS Cloud Formation stacks