swa 0.7.4 → 0.7.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: ef2033d8a9433cd36c5b355eef1ac2698ceb843515d06aa4619d54f499ee6e14
4
- data.tar.gz: 8781f8acc6f3c72c7bd3e11fef34183646dae9071b7c7e68062227df95d806ab
3
+ metadata.gz: 1db2fa774c68dc5fc72812a3c9962eac1b532bbea246f163fdb705e301d80343
4
+ data.tar.gz: 3752e1fbb76dcd2fc3eeb84fe7b703420f5d87ad36559b05c178d3bdbe043508
5
5
  SHA512:
6
- metadata.gz: f4dca2fd659fbd0a6912f38baf26b2cbe5188ff9ea742d344f2f3644198ebedc0165a6b8f97249527dd65bf5e349e7f7b39160730c4444d9bbfdb094245c7300
7
- data.tar.gz: 6d78de0ac01a4ef38cf64c502abe7c335aee3b0a97d63a57ef59994de3910ed6756a803d4359cd1d323fa85a69b2839f3f86bd99cfe9be1a1ee466774ea1d7ae
6
+ metadata.gz: 82fe2ee12f547a35efa664798fd5d52d6313ad60957c6045e13956de5f31662f728636d541a2661031d1068c4a5d110ad255a56c81b9d3ae280270f224f8be62
7
+ data.tar.gz: ffdf5f146091814f926b1af310a44c198dba8b64573d1f3e75f92b50fc50979698f433d9611bb3c0097ffa70f987ecf1fb290591ab0dfa562bb5922fbdbcebc5
@@ -66,6 +66,14 @@ module Swa
66
66
  Swa::Glue::Database.new(glue_client.get_database(:name => name).database)
67
67
  end
68
68
 
69
+ subcommand ["delete"], "Delete database" do
70
+
71
+ def execute
72
+ glue_client.delete_database(:name => name)
73
+ end
74
+
75
+ end
76
+
69
77
  subcommand ["table"], "Show table" do
70
78
 
71
79
  parameter "NAME", "table name", attribute_name: :table_name
@@ -84,6 +92,14 @@ module Swa
84
92
 
85
93
  end
86
94
 
95
+ subcommand ["delete"], "Delete table" do
96
+
97
+ def execute
98
+ glue_client.delete_table(:database_name => name, :name => table_name)
99
+ end
100
+
101
+ end
102
+
87
103
  private
88
104
 
89
105
  def item
@@ -120,13 +120,16 @@ module Swa
120
120
 
121
121
  option "--prefix", "PREFIX", "object prefix"
122
122
 
123
- self.default_subcommand = "list"
123
+ self.default_subcommand = "prefixes"
124
124
 
125
125
  subcommand ["list", "ls"], "One-line summary" do
126
126
 
127
+ option %w(-R --recursive), :flag, "list recursively"
128
+
127
129
  def execute
128
- objects.each do |i|
129
- puts i.summary
130
+ delimiter = "/" unless recursive?
131
+ bucket.object_list_entries(prefix: prefix, delimiter: delimiter).each do |e|
132
+ puts e.summary
130
133
  end
131
134
  end
132
135
 
@@ -156,7 +159,7 @@ module Swa
156
159
  protected
157
160
 
158
161
  def objects
159
- bucket.objects(:prefix => prefix)
162
+ bucket.objects(prefix: prefix)
160
163
  end
161
164
 
162
165
  end
data/lib/swa/s3/bucket.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "multi_json"
2
2
  require "swa/resource"
3
3
  require "swa/s3/object"
4
+ require "swa/s3/object_list_entry"
4
5
  require "swa/s3/object_version"
5
6
 
6
7
  module Swa
@@ -38,6 +39,21 @@ module Swa
38
39
  Swa::S3::ObjectVersion.list(aws_resource.object_versions(options))
39
40
  end
40
41
 
42
+ def object_list_entries(options = {})
43
+ options = options.merge(bucket: bucket.name)
44
+ resp = bucket.client.list_objects_v2(options)
45
+ ::Enumerator.new do |y|
46
+ resp.each_page do |page|
47
+ page.data.common_prefixes.each do |prefix_data|
48
+ y << Swa::S3::ObjectPrefix.new(bucket.name, prefix_data)
49
+ end
50
+ page.data.contents.each do |object_data|
51
+ y << Swa::S3::ObjectSummary.new(bucket.name, object_data)
52
+ end
53
+ end
54
+ end
55
+ end
56
+
41
57
  def delete
42
58
  bucket.delete
43
59
  end
@@ -0,0 +1,66 @@
1
+ require "swa/record"
2
+
3
+ module Swa
4
+ module S3
5
+
6
+ class ObjectListEntry < Record
7
+
8
+ def initialize(bucket_name, aws_record)
9
+ @bucket_name = bucket_name
10
+ super(aws_record)
11
+ end
12
+
13
+ attr_reader :bucket_name
14
+
15
+ def to_s
16
+ uri
17
+ end
18
+
19
+ def summary
20
+ [
21
+ pad(column1, 20),
22
+ rpad(column2, 10),
23
+ uri
24
+ ].join(" ")
25
+ end
26
+
27
+ end
28
+
29
+ class ObjectPrefix < ObjectListEntry
30
+
31
+ delegate :prefix
32
+
33
+ def column1
34
+ ""
35
+ end
36
+
37
+ def column2
38
+ ""
39
+ end
40
+
41
+ def uri
42
+ "s3://#{bucket_name}/#{prefix}"
43
+ end
44
+
45
+ end
46
+
47
+ class ObjectSummary < ObjectListEntry
48
+
49
+ delegate :key, :size, :last_modified
50
+
51
+ def column1
52
+ last_modified.iso8601
53
+ end
54
+
55
+ def column2
56
+ size
57
+ end
58
+
59
+ def uri
60
+ "s3://#{bucket_name}/#{key}"
61
+ end
62
+
63
+ end
64
+
65
+ end
66
+ end
data/lib/swa/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Swa
2
- VERSION = "0.7.4"
2
+ VERSION = "0.7.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.7.4
4
+ version: 0.7.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: 2023-12-08 00:00:00.000000000 Z
11
+ date: 2024-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -320,6 +320,7 @@ files:
320
320
  - lib/swa/resource.rb
321
321
  - lib/swa/s3/bucket.rb
322
322
  - lib/swa/s3/object.rb
323
+ - lib/swa/s3/object_list_entry.rb
323
324
  - lib/swa/s3/object_version.rb
324
325
  - lib/swa/version.rb
325
326
  - swa.gemspec