firespring_dev_commands 2.1.31.pre.alpha.0 → 2.1.31.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 +4 -4
- data/README.md +1 -1
- data/lib/firespring_dev_commands/target_process/time.rb +31 -0
- data/lib/firespring_dev_commands/target_process.rb +11 -0
- data/lib/firespring_dev_commands/templates/aws.rb +0 -50
- data/lib/firespring_dev_commands/version.rb +1 -1
- metadata +3 -17
- data/lib/firespring_dev_commands/aws/route53.rb +0 -72
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c906f4f5c8fba67de28e014fcd8cd890f7e87e2ca1860029352787085a6833e
|
4
|
+
data.tar.gz: fffeb6dde56810021bb1d93923a7c6db6852520cab10375a82beed31fefc48e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3830fe0dae0eb406cee7a0ac7b2d669ae09255ab7c0c52b4895894e8e7e8125bbc88495c02acfd990992526aee3051f3dbbe2b848e814eb858e94f8e46e9da77
|
7
|
+
data.tar.gz: fe13bf7766b333ac5cf4f912bf753ac88cf78503224a3abfc9d5751ca0301885bb08b0ff97508afc9491a1f537dbb2962519e6dd5890e28672fbe99a486192ce
|
data/README.md
CHANGED
@@ -28,7 +28,7 @@ Dev::Template::Docker::Node::Application.new('foo')
|
|
28
28
|
```
|
29
29
|
* If you run `rake -T` now, you should have base rake commands and application rake commands for an app called `foo`
|
30
30
|
|
31
|
-
* (
|
31
|
+
* (optinoal) Add AWS login template commands
|
32
32
|
```
|
33
33
|
# Configure AWS accounts and create tasks
|
34
34
|
Dev::Aws::Account::configure do |c|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Dev
|
2
|
+
class TargetProcess
|
3
|
+
class Time
|
4
|
+
# The resource type for the api endpoint
|
5
|
+
RESOURCE_TYPE = 'Time'.freeze
|
6
|
+
|
7
|
+
# The api path for team assignment requests
|
8
|
+
PATH = '/Time'.freeze
|
9
|
+
|
10
|
+
attr_accessor :data, :id, :type, :description, :hours, :date, :story, :user
|
11
|
+
|
12
|
+
def initialize(data)
|
13
|
+
@data = data
|
14
|
+
@id = data['Id']
|
15
|
+
@type = data['ResourceType']
|
16
|
+
@description = data['Description']
|
17
|
+
@hours = data['Spent']
|
18
|
+
@date = parse_time(data['Date'])
|
19
|
+
@story = UserStory.new(data['Assignable']) if data['Assignable']
|
20
|
+
@user = User.new(data['User']) if data['User']
|
21
|
+
end
|
22
|
+
|
23
|
+
# Parse the dot net time representation into something that ruby can use
|
24
|
+
def parse_time(string)
|
25
|
+
return nil unless string && !string.empty?
|
26
|
+
|
27
|
+
::Time.at(string.slice(6, 10).to_i)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -113,6 +113,17 @@ module Dev
|
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
116
|
+
def times(query, &)
|
117
|
+
[].tap do |ary|
|
118
|
+
get(Time::PATH, query) do |result|
|
119
|
+
ary << Time.new(result)
|
120
|
+
puts ary.first.inspect
|
121
|
+
exit 1
|
122
|
+
end
|
123
|
+
ary.each(&)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
116
127
|
# Perform a get request to the given path using the given query
|
117
128
|
# Call the given block (if present) with each piece of data
|
118
129
|
# Return all pieces of data
|
@@ -120,56 +120,6 @@ module Dev
|
|
120
120
|
end
|
121
121
|
end
|
122
122
|
end
|
123
|
-
|
124
|
-
# rubocop:disable Metrics/MethodLength
|
125
|
-
# Create the rake task for the hosted zone method
|
126
|
-
def create_hosted_zone_task!
|
127
|
-
# Have to set a local variable to be accessible inside of the instance_eval block
|
128
|
-
exclude = @exclude
|
129
|
-
|
130
|
-
DEV_COMMANDS_TOP_LEVEL.instance_eval do
|
131
|
-
namespace :aws do
|
132
|
-
return if exclude.include?(:hosted_zone)
|
133
|
-
|
134
|
-
namespace :hosted_zone do
|
135
|
-
namespace :dns_logging do
|
136
|
-
task :init do
|
137
|
-
@route53 = Dev::Aws::Route53.new
|
138
|
-
|
139
|
-
domains = ENV['DOMAINS'].to_s.strip.split(',')
|
140
|
-
domain = ENV['DOMAIN'].to_s.strip
|
141
|
-
domains << domain unless domain.empty?
|
142
|
-
|
143
|
-
# Set global zone id array
|
144
|
-
@route53.get_hosted_zones(domains)
|
145
|
-
end
|
146
|
-
|
147
|
-
desc 'Activates query logging for all hosted zones by default.' \
|
148
|
-
'This command should be run from the account the hosted zone(s) reside.' \
|
149
|
-
"\n\toptionally specify DOMAIN='foo.com' to specify the hosted zone to activate." \
|
150
|
-
"\n\toptionally specify DOMAINS='foo.com,foobar.com' to specify the hosted zones to activate." \
|
151
|
-
"\n\t\tComma delimited list."
|
152
|
-
task activate: %w(init) do
|
153
|
-
# Use user defined log group. Otherwise, go get the default.
|
154
|
-
log_group = (ENV['HOSTED_ZONE_GROUP'] || Dev::Aws::Parameter.new.get_value('/Firespring/Internal/Route53/hosted-zone/log-group-arn'))
|
155
|
-
|
156
|
-
@route53.activate_query_logging(log_group)
|
157
|
-
end
|
158
|
-
|
159
|
-
desc 'Deactivates query logging for all hosted zones by default. ' \
|
160
|
-
'This command should be run from the account the hosted zone(s) reside.' \
|
161
|
-
"\n\toptionally specify DOMAIN='foo.com' to specify the hosted zone to activate." \
|
162
|
-
"\n\toptionally specify DOMAINS='foo.com,foobar.com' to specify the hosted zones to activate." \
|
163
|
-
"\n\t\tComma delimited list."
|
164
|
-
task deactivate: %w(init) do
|
165
|
-
@route53.deactivate_query_logging
|
166
|
-
end
|
167
|
-
end
|
168
|
-
end
|
169
|
-
end
|
170
|
-
end
|
171
|
-
end
|
172
|
-
# rubocop:enable Metrics/MethodLength
|
173
123
|
end
|
174
124
|
end
|
175
125
|
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.31.pre.alpha.
|
4
|
+
version: 2.1.31.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: 2024-04-
|
11
|
+
date: 2024-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -122,20 +122,6 @@ dependencies:
|
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 1.208.0
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: aws-sdk-route53
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: 1.87.0
|
132
|
-
type: :runtime
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "~>"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: 1.87.0
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
126
|
name: aws-sdk-s3
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -340,7 +326,6 @@ files:
|
|
340
326
|
- lib/firespring_dev_commands/aws/login.rb
|
341
327
|
- lib/firespring_dev_commands/aws/parameter.rb
|
342
328
|
- lib/firespring_dev_commands/aws/profile.rb
|
343
|
-
- lib/firespring_dev_commands/aws/route53.rb
|
344
329
|
- lib/firespring_dev_commands/aws/s3.rb
|
345
330
|
- lib/firespring_dev_commands/bloom_growth.rb
|
346
331
|
- lib/firespring_dev_commands/bloom_growth/rock.rb
|
@@ -395,6 +380,7 @@ files:
|
|
395
380
|
- lib/firespring_dev_commands/target_process/release.rb
|
396
381
|
- lib/firespring_dev_commands/target_process/team.rb
|
397
382
|
- lib/firespring_dev_commands/target_process/team_assignment.rb
|
383
|
+
- lib/firespring_dev_commands/target_process/time.rb
|
398
384
|
- lib/firespring_dev_commands/target_process/user.rb
|
399
385
|
- lib/firespring_dev_commands/target_process/user_story.rb
|
400
386
|
- lib/firespring_dev_commands/target_process/user_story_history.rb
|
@@ -1,72 +0,0 @@
|
|
1
|
-
require 'aws-sdk-route53'
|
2
|
-
|
3
|
-
module Dev
|
4
|
-
class Aws
|
5
|
-
# Class for performing Route53 functions
|
6
|
-
class Route53
|
7
|
-
attr_reader :client, :zones
|
8
|
-
|
9
|
-
def initialize
|
10
|
-
@client = ::Aws::Route53::Client.new
|
11
|
-
@zones = []
|
12
|
-
end
|
13
|
-
|
14
|
-
def get_hosted_zones(domains)
|
15
|
-
if domains.empty?
|
16
|
-
response = client.list_hosted_zones
|
17
|
-
response.hosted_zones.each do |hosted_zone|
|
18
|
-
@zones << hosted_zone.id
|
19
|
-
end
|
20
|
-
else
|
21
|
-
domains.each do |domain_name|
|
22
|
-
zone = client.list_hosted_zones_by_name({dns_name: domain_name, max_items: 1})
|
23
|
-
target_name = zone.hosted_zones[0].name.chomp!('.') if zone.hosted_zones[0].name.end_with?('.')
|
24
|
-
@zones << zone.hosted_zones[0].id unless target_name != domain_name
|
25
|
-
end
|
26
|
-
end
|
27
|
-
raise 'Hosted zone(s) not found.' if @zones.empty?
|
28
|
-
end
|
29
|
-
|
30
|
-
def get_target_config_id(zone_id)
|
31
|
-
config = client.list_query_logging_configs(
|
32
|
-
hosted_zone_id: zone_id,
|
33
|
-
max_results: '1'
|
34
|
-
)
|
35
|
-
config.query_logging_configs[0].id unless config.query_logging_configs.empty? || config.query_logging_configs[0].hosted_zone_id == zone_id
|
36
|
-
end
|
37
|
-
|
38
|
-
def activate_query_logging(log_group)
|
39
|
-
output = {}
|
40
|
-
|
41
|
-
@zones.each do |zone|
|
42
|
-
response = client.create_query_logging_config(
|
43
|
-
hosted_zone_id: zone,
|
44
|
-
cloud_watch_logs_log_group_arn: log_group
|
45
|
-
)
|
46
|
-
output[zone] = response.location
|
47
|
-
rescue ::Aws::Route53::Errors::ServiceError => e
|
48
|
-
raise "Error: #{e.message}" unless e.instance_of?(::Aws::Route53::Errors::QueryLoggingConfigAlreadyExists)
|
49
|
-
|
50
|
-
output[zone] = e.message
|
51
|
-
end
|
52
|
-
pp output
|
53
|
-
end
|
54
|
-
|
55
|
-
def deactivate_query_logging
|
56
|
-
output = {}
|
57
|
-
@zones.each do |zone|
|
58
|
-
target_config_id = get_target_config_id(zone)
|
59
|
-
if target_config_id
|
60
|
-
client.delete_query_logging_config(
|
61
|
-
id: target_config_id
|
62
|
-
)
|
63
|
-
output[zone] = 'Query logging config removed.'
|
64
|
-
else
|
65
|
-
output[zone] = 'No query logging config assigned.'
|
66
|
-
end
|
67
|
-
end
|
68
|
-
pp output
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|