firespring_dev_commands 2.1.31.pre.alpha.0 → 2.1.31.pre.alpha.1

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: 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