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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2461e93aa37cb700943611b0233d3eb29edc703ccf49d908c6bdde0ad1c19702
4
- data.tar.gz: c5e4ee6453fb0dac9103e79c24259f975aa5d754c4b59da3d1e07e022bdcd24b
3
+ metadata.gz: 3c906f4f5c8fba67de28e014fcd8cd890f7e87e2ca1860029352787085a6833e
4
+ data.tar.gz: fffeb6dde56810021bb1d93923a7c6db6852520cab10375a82beed31fefc48e6
5
5
  SHA512:
6
- metadata.gz: 2ed9beedfa716a09ff1278affe3dbd02b559fe64585163b1cf103741347849c0ebe9cd44fa260d913cf16a6452915fa25a18a1adbbbc5c4f72b6dcae920ad7e2
7
- data.tar.gz: 41e83726187ad9d78f45d707bfa7c83810e1b99ce99d8a3324d4ee39bd1bf04c28b0b30d7c7a48d729f0e15a2dc6a0876b272afde259a3dcba47d8287155da60
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
- * (optional) Add AWS login template commands
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
@@ -6,6 +6,6 @@ module Dev
6
6
  # Use 'v.v.v.pre.alpha.v' for pre-release vesions
7
7
  # Use 'v.v.v.beta.v for beta versions
8
8
  # Use semantic versioning for any releases (https://semver.org/)
9
- VERSION = '2.1.31.pre.alpha.0'.freeze
9
+ VERSION = '2.1.31.pre.alpha.1'.freeze
10
10
  end
11
11
  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.0
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-17 00:00:00.000000000 Z
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