swa 0.8.3 → 0.8.5

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: '0863918be3963c4a4fefbf9f7d4c7f049617cf5e6b9fe53ca1d3743eace7c364'
4
- data.tar.gz: d1d2972dbcfd1c90379202aabc80dbc4968c231bf27054842270d98aae5a6e00
3
+ metadata.gz: 731347c42ce0823ababd94ff7eeb58ea42e9d42cfbf152cea6d103356f8ea9d2
4
+ data.tar.gz: fe2feaa04f3fd3df8f2664160b70d362050b587e22772018a6221ebe13482ff5
5
5
  SHA512:
6
- metadata.gz: dcb11477f1210b8a6e766a0ed9b3623d60d4a7cc4b95b643cf2b634e95cb4230c024e5853e7cf4b71bc789cd006885d5ab7313275739bc7d31daf706739d2d6f
7
- data.tar.gz: e7c298215ee0cf718992d8afde6b78ab1c8e00b25a82d3f8cd45615112bc544db33791350abb2698991f5b0d9e3d711fefaf8c38dcc4341c5664c3eaab326814
6
+ metadata.gz: a2e6b01eb2be3d32536688c14db2b5511281f735b989716a26be37a8feb773ee153497de1a9ac1816112cedf8b5387ab656db38e14da1f8bbe6f6245e37965a1
7
+ data.tar.gz: 9a6939b4984e7a5eb0e2a66e795312e91e634a173310607b2bcf3f2ba4f885a4fc98bb8ee51b6ca201465922c14a60d813f5ac0e54e0321ae8a1e1b4935fc7d9
@@ -112,7 +112,11 @@ module Swa
112
112
  )
113
113
  wait_for_query(start_query_response.query_execution_id)
114
114
  query_results = athena_client.get_query_results(query_execution_id: start_query_response.query_execution_id)
115
- output_results_as_csv(query_results.result_set)
115
+ if query =~ /\AEXPLAIN/
116
+ output_explain_result(query_results.result_set)
117
+ else
118
+ output_results_as_csv(query_results.result_set)
119
+ end
116
120
  end
117
121
 
118
122
  private
@@ -127,6 +131,12 @@ module Swa
127
131
  signal_error error.response.query_execution.status.state_change_reason
128
132
  end
129
133
 
134
+ def output_explain_result(result_set)
135
+ result_set.rows.drop(1).each do |row|
136
+ puts row.data.first.var_char_value
137
+ end
138
+ end
139
+
130
140
  end
131
141
 
132
142
  subcommand ["workgroups", "wgs"], "Show work-groups" do
@@ -148,8 +158,7 @@ module Swa
148
158
  end
149
159
 
150
160
  def query_for(query_method, response_key, model, **query_args)
151
- records = athena_client.public_send(query_method, **query_args).public_send(response_key)
152
- model.list(records)
161
+ model.list_from_query(athena_client, query_method, response_key, **query_args)
153
162
  end
154
163
 
155
164
  def output_results_as_csv(result_set)
@@ -27,6 +27,8 @@ module Swa
27
27
  super(arguments)
28
28
  rescue Aws::Errors::MissingCredentialsError
29
29
  signal_error "no credentials provided"
30
+ rescue Aws::Errors::MissingRegionError, Aws::Errors::InvalidRegionError => e
31
+ signal_error e.message
30
32
  rescue Aws::Errors::ServiceError => e
31
33
  signal_error e.message
32
34
  end
@@ -211,8 +211,7 @@ module Swa
211
211
  end
212
212
 
213
213
  def query_for(query_method, response_key, model, **query_args)
214
- records = glue_client.public_send(query_method, **query_args).public_send(response_key)
215
- model.list(records)
214
+ model.list_from_query(glue_client, query_method, response_key, **query_args)
216
215
  end
217
216
 
218
217
  end
@@ -54,9 +54,8 @@ module Swa
54
54
  ::Aws::KMS::Client.new(aws_config)
55
55
  end
56
56
 
57
- def query_for(query_method, response_key, model)
58
- records = kms_client.public_send(query_method).public_send(response_key)
59
- model.list(records)
57
+ def query_for(query_method, response_key, model, **query_args)
58
+ model.list_from_query(kms_client, query_method, response_key, **query_args)
60
59
  end
61
60
 
62
61
  end
@@ -59,8 +59,7 @@ module Swa
59
59
  end
60
60
 
61
61
  def query_for(query_method, response_key, model, **query_args)
62
- records = lf_client.public_send(query_method, **query_args).public_send(response_key)
63
- model.list(records)
62
+ model.list_from_query(lf_client, query_method, response_key, **query_args)
64
63
  end
65
64
 
66
65
  end
data/lib/swa/record.rb CHANGED
@@ -9,6 +9,13 @@ module Swa
9
9
  records.lazy.map(&method(:new))
10
10
  end
11
11
 
12
+ def self.list_from_query(client, query_method, response_key, **query_args)
13
+ records = client.public_send(query_method, **query_args).each.lazy.flat_map { |page|
14
+ page.public_send(response_key)
15
+ }
16
+ list(records)
17
+ end
18
+
12
19
  def initialize(aws_record)
13
20
  @aws_record = aws_record
14
21
  end
data/lib/swa/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Swa
2
- VERSION = "0.8.3"
2
+ VERSION = "0.8.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.8.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Williams
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-21 00:00:00.000000000 Z
11
+ date: 2024-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler