firespring_dev_commands 2.1.11.pre.alpha.2 → 2.1.12.pre.alpha.1
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
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7d45e522585dc1fc678c904d007d74a62e7dcf144ce7740a16d65d74f733f9b3
|
|
4
|
+
data.tar.gz: 921bf69588ec64e831c6ddff866185cb639d0567dbd046cbd3109c451475d349
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d3b1641933384538aba3ad31a5b7e06bea40a28b1388567ea5d8818488860097b2d465d84fb2259d1c5f1214fece78f3ceb4cb21dba1c5e8c46e266661bd7cbe
|
|
7
|
+
data.tar.gz: c4e70e99aaf81fbb35c60b07178fcf1fbbfa9a2fe1e7636c6b53541c9920122f382f43787c13fc9a6272784ccb0a3aa4772ac4529c2dbe2437406f90dc4fb167
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
require 'aws-sdk-lambda'
|
|
2
|
+
require 'aws-sdk-elasticache'
|
|
3
|
+
require 'aws-sdk-rds'
|
|
4
|
+
require 'aws-sdk-opensearchservice'
|
|
5
|
+
|
|
6
|
+
module Dev
|
|
7
|
+
class EndOfLife
|
|
8
|
+
class Aws
|
|
9
|
+
def elasticache_products
|
|
10
|
+
client = ::Aws::ElastiCache::Client.new
|
|
11
|
+
client.describe_cache_clusters.cache_clusters.filter_map do |cluster|
|
|
12
|
+
name = cluster.cache_cluster_id
|
|
13
|
+
product = cluster.engine
|
|
14
|
+
version = cluster.engine_version.reverse.split('.')[-2..].join('.').reverse
|
|
15
|
+
Dev::EndOfLife::ProductVersion.new(product, version, name)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def lambda_products
|
|
20
|
+
client = ::Aws::Lambda::Client.new
|
|
21
|
+
client.list_functions.functions.filter_map do |function|
|
|
22
|
+
# Runtime is empty if using a docker image
|
|
23
|
+
next unless function.runtime
|
|
24
|
+
|
|
25
|
+
name = function.function_name
|
|
26
|
+
product = function.runtime.split(/[0-9]/, 2).first
|
|
27
|
+
version = function.runtime.split(/#{product}/, 2).last.chomp('.x')
|
|
28
|
+
Dev::EndOfLife::ProductVersion.new(product, version, name)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def opensearch_products
|
|
33
|
+
client = ::Aws::OpenSearchService::Client.new
|
|
34
|
+
client.list_domain_names.domain_names.filter_map do |domain|
|
|
35
|
+
name = domain.domain_name
|
|
36
|
+
product = domain.engine_type
|
|
37
|
+
version = client.describe_domain(domain_name: name).domain_status.engine_version.split('_').last.split('.').first
|
|
38
|
+
Dev::EndOfLife::ProductVersion.new(product, version, name)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def rds_products
|
|
43
|
+
supported_aws_engines = %w(mysql postgresql)
|
|
44
|
+
supported_eol_engines = %w(mssqlserver mysql postgresql sqlite)
|
|
45
|
+
|
|
46
|
+
client = ::Aws::RDS::Client.new
|
|
47
|
+
client.describe_db_instances.db_instances.filter_map do |instance|
|
|
48
|
+
name = instance.db_instance_identifier
|
|
49
|
+
product = if supported_aws_engines.include?(instance.engine)
|
|
50
|
+
"amazon-rds-#{instance.engine}"
|
|
51
|
+
elsif supported_eol_engines.include?(instance.engine)
|
|
52
|
+
instance.engine
|
|
53
|
+
else
|
|
54
|
+
puts "WARNING: unsupported engine #{instance.engine} found".light_yellow
|
|
55
|
+
next
|
|
56
|
+
end
|
|
57
|
+
version = instance.engine_version.reverse.split('.')[-2..].join('.').reverse
|
|
58
|
+
Dev::EndOfLife::ProductVersion.new(product, version, name)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# TODO: Add db cluster info too?
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -53,6 +53,7 @@ module Dev
|
|
|
53
53
|
self << "(Id in ('#{user_story_ids.join("', '")}'))"
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
+
# Add a filter that looks for stories whose team id is contained in the list of ids given
|
|
56
57
|
def filter_by_team_ids(team_ids)
|
|
57
58
|
self << "(Team.Id in ('#{team_ids.join("', '")}'))" unless team_ids.nil? || team_ids.empty?
|
|
58
59
|
end
|
|
@@ -72,6 +73,7 @@ module Dev
|
|
|
72
73
|
self << "(EntityState.IsFinal eq 'true')"
|
|
73
74
|
end
|
|
74
75
|
|
|
76
|
+
# Add a filter that looks for start dates between the given dates`
|
|
75
77
|
def filter_start_date_between(start_date, end_date)
|
|
76
78
|
self << "(StartDate gte '#{start_date}')" if start_date
|
|
77
79
|
self << "(StartDate lt '#{end_date}')" if end_date
|
|
@@ -83,6 +85,7 @@ module Dev
|
|
|
83
85
|
self << "(EndDate lt '#{end_date}')" if end_date
|
|
84
86
|
end
|
|
85
87
|
|
|
88
|
+
# Add a filter that looks for entities whose date is between the given dates
|
|
86
89
|
def filter_date_between(start_date, end_date)
|
|
87
90
|
self << "(Date gte '#{start_date}')" if start_date
|
|
88
91
|
self << "(Date lt '#{end_date}')" if end_date
|
|
@@ -93,19 +96,23 @@ module Dev
|
|
|
93
96
|
self << '(LinkedTestPlan is nil)'
|
|
94
97
|
end
|
|
95
98
|
|
|
99
|
+
# Add a filter that looks for items with a set start date and null end date
|
|
96
100
|
def filter_by_started_not_finished
|
|
97
101
|
self << '(StartDate is not nil)'
|
|
98
102
|
self << '(EndDate is nil)'
|
|
99
103
|
end
|
|
100
104
|
|
|
105
|
+
# Add a filter that looks for assignable entity types that match the name
|
|
101
106
|
def filter_by_entity_type(entity_type)
|
|
102
107
|
self << "(Assignable.EntityType.Name eq '#{entity_type}')" unless entity_type.nil?
|
|
103
108
|
end
|
|
104
109
|
|
|
110
|
+
# Add a filter that looks for assignable ids which are included in the given array
|
|
105
111
|
def filter_by_entity_ids(entity_ids)
|
|
106
112
|
self << "(Assignable.Id in ('#{entity_ids.join("', '")}'))" unless entity_ids.nil? || entity_ids.empty?
|
|
107
113
|
end
|
|
108
114
|
|
|
115
|
+
# Add a filter that looks for a custom deploy date between the given dates`
|
|
109
116
|
def filter_by_deploy_date(start_date, end_date = nil)
|
|
110
117
|
self << "('CustomFields.Deploy Date' gt '#{start_date}')" if start_date
|
|
111
118
|
self << "('CustomFields.Deploy Date' lt '#{end_date}')" if end_date
|
|
@@ -93,6 +93,30 @@ module Dev
|
|
|
93
93
|
end
|
|
94
94
|
end
|
|
95
95
|
# rubocop:enable Metrics/MethodLength
|
|
96
|
+
|
|
97
|
+
# Create the rake task for the eol method
|
|
98
|
+
def create_eol_task!
|
|
99
|
+
# Have to set a local variable to be accessible inside of the instance_eval block
|
|
100
|
+
exclude = @exclude
|
|
101
|
+
|
|
102
|
+
DEV_COMMANDS_TOP_LEVEL.instance_eval do
|
|
103
|
+
return if exclude.include?(:eol)
|
|
104
|
+
|
|
105
|
+
desc 'Compares the current date to the EOL date for supported resources'
|
|
106
|
+
task eol: %w(init ensure_aws_credentials) do
|
|
107
|
+
account_id = Dev::Aws::Profile.new.current
|
|
108
|
+
account_name = Dev::Aws::Account.new.name_by_account(account_id)
|
|
109
|
+
LOG.info " Current AWS Account is #{account_name} (#{account_id})".light_yellow
|
|
110
|
+
|
|
111
|
+
versions = Dev::EndOfLife::Aws.new.elasticache_products +
|
|
112
|
+
Dev::EndOfLife::Aws.new.lambda_products +
|
|
113
|
+
Dev::EndOfLife::Aws.new.opensearch_products +
|
|
114
|
+
Dev::EndOfLife::Aws.new.rds_products
|
|
115
|
+
|
|
116
|
+
Dev::EndOfLife.new(product_versions: versions.compact).check
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
96
120
|
end
|
|
97
121
|
end
|
|
98
122
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: firespring_dev_commands
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.1.
|
|
4
|
+
version: 2.1.12.pre.alpha.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Firespring
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-
|
|
11
|
+
date: 2023-11-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -66,6 +66,62 @@ dependencies:
|
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: 1.61.0
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: aws-sdk-elasticache
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 1.88.0
|
|
76
|
+
type: :runtime
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 1.88.0
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: aws-sdk-lambda
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: 1.101.0
|
|
90
|
+
type: :runtime
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: 1.101.0
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: aws-sdk-opensearchservice
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: 1.24.0
|
|
104
|
+
type: :runtime
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: 1.24.0
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: aws-sdk-rds
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - "~>"
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: 1.183.0
|
|
118
|
+
type: :runtime
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - "~>"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: 1.183.0
|
|
69
125
|
- !ruby/object:Gem::Dependency
|
|
70
126
|
name: aws-sdk-s3
|
|
71
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -280,6 +336,7 @@ files:
|
|
|
280
336
|
- lib/firespring_dev_commands/dotenv.rb
|
|
281
337
|
- lib/firespring_dev_commands/env.rb
|
|
282
338
|
- lib/firespring_dev_commands/eol.rb
|
|
339
|
+
- lib/firespring_dev_commands/eol/aws.rb
|
|
283
340
|
- lib/firespring_dev_commands/eol/product_version.rb
|
|
284
341
|
- lib/firespring_dev_commands/git.rb
|
|
285
342
|
- lib/firespring_dev_commands/git/info.rb
|