stax 0.1.10 → 0.1.13

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: e17c465590b04d1db946eb5cf12e660fb01a63c348aefcfadca2b5d98e568e52
4
- data.tar.gz: d585924ea4d53397cc817cda8a617f7a14c430d84befa9f485ee5440a64653af
3
+ metadata.gz: 2e85e25cdb3b00cb3d721fecd9cfb4c75585da85ee85a43c1710aa1f3a28fe1f
4
+ data.tar.gz: 3642dc662dbf882a379947896c8eb4aca35f4cfa79cc6d6ce6f36aedc79a84f4
5
5
  SHA512:
6
- metadata.gz: 4d71a59e526634d2c27d768db9e979569482e53bfeb43ae3907326dd851ba983c3498d5b04ec11727461abcdee5e1dfcf7f634a0c1b6338901718b9092652fb0
7
- data.tar.gz: eb8469a0fd373332b3d51171324e9ec9857c77e8a75cdf50c1f6414304af84bcfde1628087ea1866acf6a63b29f4ca5fa9cc13364ec7d8de59e2d330cd20555a
6
+ metadata.gz: 7bbd391ce012ac900777653d5e55b5fd4b8df8b1af5d5c1832362c8cebb5fc2d9cf9859199703b53530ba68be72feebfab1c1c2baf2fd06f0f6b76b337714e99
7
+ data.tar.gz: f90ae2c2a413c868991d93909c88d6eb92b28b1bc985238c99b80b4ce11a28aaa30f0367ed0f9d8486ff3d8d9c115504752f6a0ff22c3ee19858cdbb8d625b7e
data/lib/stax/base.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'thor'
2
2
  require 'stax/aws/sts'
3
+ require 'aws-sdk-ssm'
3
4
 
4
5
  ## clean exit on ctrl-c for all methods
5
6
  trap('SIGINT', 'EXIT')
@@ -28,6 +29,13 @@ module Stax
28
29
  @_aws_region ||= ENV['AWS_REGION']
29
30
  end
30
31
 
32
+ ## we commonly want to lookup SSM parameters to use as stack parameters
33
+ def aws_ssm_get(name, region: nil)
34
+ ::Aws::SSM::Client.new({region: region}.compact).get_parameter(name: name)&.parameter&.value
35
+ rescue ::Aws::SSM::Errors::ParameterNotFound
36
+ fail_task("#{name} not found in #{region||aws_region}")
37
+ end
38
+
31
39
  ## find or create a stack object
32
40
  def stack(id)
33
41
  c = id.to_s.split(/[_-]/).map(&:capitalize).join # convert symbol to class string
@@ -62,6 +62,32 @@ module Stax
62
62
  }
63
63
  end
64
64
  end
65
+
66
+ ## https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/viewing-cloudfront-metrics.html#monitoring-console.distributions-additional
67
+ ## this is not supported by cfn, see:
68
+ ## https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/545
69
+ desc 'monitoring', 'control monitoring subscriptions'
70
+ method_option :enable, aliases: '-e', type: :boolean, description: 'enable additional metrics'
71
+ method_option :disable, aliases: '-d', type: :boolean, description: 'disable additional metrics'
72
+ def monitoring
73
+ client = Aws::Cloudfront.client
74
+ stack_cloudfront_ids.each do |id|
75
+ debug("Cloudfront monitoring for distribution #{id}")
76
+ if options[:enable]
77
+ sub = { realtime_metrics_subscription_config: { realtime_metrics_subscription_status: :Enabled } }
78
+ resp = client.create_monitoring_subscription(distribution_id: id, monitoring_subscription: sub)
79
+ puts resp.monitoring_subscription.realtime_metrics_subscription_config&.realtime_metrics_subscription_status
80
+ elsif options[:disable]
81
+ puts 'deleting subscription'
82
+ client.delete_monitoring_subscription(distribution_id: id)
83
+ else
84
+ cfg = client.get_monitoring_subscription(distribution_id: id)&.monitoring_subscription&.realtime_metrics_subscription_config
85
+ puts "current status: #{cfg&.realtime_metrics_subscription_status}"
86
+ end
87
+ end
88
+ end
89
+
65
90
  end
91
+
66
92
  end
67
93
  end
data/lib/stax/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Stax
2
- VERSION = '0.1.10'
2
+ VERSION = '0.1.13'
3
3
  end
data/lib/stax.rb CHANGED
@@ -19,27 +19,3 @@ require 'stax/stack/outputs'
19
19
  require 'stax/stack/exports'
20
20
  require 'stax/stack/resources'
21
21
  require 'stax/stack/drift'
22
-
23
- require 'stax/mixin/ec2'
24
- require 'stax/mixin/alb'
25
- require 'stax/mixin/elb'
26
- require 'stax/mixin/sg'
27
- require 'stax/mixin/s3'
28
- require 'stax/mixin/asg'
29
- require 'stax/mixin/ecs'
30
- require 'stax/mixin/ecr'
31
- require 'stax/mixin/sqs'
32
- require 'stax/mixin/kms'
33
- require 'stax/mixin/ssm'
34
- require 'stax/mixin/keypair'
35
- require 'stax/mixin/emr'
36
- require 'stax/mixin/ssh'
37
- require 'stax/mixin/lambda'
38
- require 'stax/mixin/dynamodb'
39
- require 'stax/mixin/logs'
40
- require 'stax/mixin/apigw'
41
- require 'stax/mixin/firehose'
42
- require 'stax/mixin/codebuild'
43
- require 'stax/mixin/codepipeline'
44
- require 'stax/mixin/rds'
45
- require 'stax/mixin/cloudfront'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stax
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Lister
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-17 00:00:00.000000000 Z
11
+ date: 2022-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler