sdbcli 1.0.0 → 1.0.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.
- data/README +6 -4
- data/bin/sdbcli +20 -6
- data/lib/sdbcli/sdb-driver.rb +5 -6
- data/lib/sdbcli/sdb-runner.rb +6 -6
- metadata +2 -2
data/README
CHANGED
@@ -18,6 +18,7 @@ https://bitbucket.org/winebarrel/sdbcli
|
|
18
18
|
-r, --region=REGION
|
19
19
|
-e, --eval=COMMAND
|
20
20
|
-f, --format=YAML_OR_JSON
|
21
|
+
-c, --consistent
|
21
22
|
shell> export AWS_ACCESS_KEY_ID='...'
|
22
23
|
shell> export AWS_SECRET_ACCESS_KEY='...'
|
23
24
|
shell> export SDB_ENDPOINT='sdb.ap-northeast-1.amazonaws.com' # or SDB_REGION=ap-northeast-1
|
@@ -76,10 +77,11 @@ https://bitbucket.org/winebarrel/sdbcli
|
|
76
77
|
|
77
78
|
# List of commands
|
78
79
|
|
79
|
-
.help
|
80
|
-
.quit | .exit
|
81
|
-
.format
|
82
|
-
.
|
80
|
+
.help displays this message
|
81
|
+
.quit | .exit exits sdbcli
|
82
|
+
.format (yaml|json)? displays a format or changes it
|
83
|
+
.consistent (true|false)? displays ConsistentRead parameter or changes it
|
84
|
+
.version displays a version
|
83
85
|
|
84
86
|
ap-northeast-1> select * from test;
|
85
87
|
---
|
data/bin/sdbcli
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
$LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
|
3
3
|
|
4
|
-
Version = '1.0.
|
4
|
+
Version = '1.0.1'
|
5
5
|
HISTORY_FILE = File.join((ENV['HOME'] || ENV['USERPROFILE'] || '.'), '.sdbcli_history')
|
6
6
|
HISTSIZE = 500
|
7
7
|
|
@@ -20,6 +20,7 @@ secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']
|
|
20
20
|
sdb_endpoint = ENV['SDB_ENDPOINT'] || ENV['SDB_REGION'] || 'sdb.amazonaws.com'
|
21
21
|
command = nil
|
22
22
|
$format = :yaml
|
23
|
+
$consistent = false
|
23
24
|
|
24
25
|
ARGV.options do |opt|
|
25
26
|
opt.on('-k', '--access-key=ACCESS_KEY') {|v| access_key_id = v }
|
@@ -27,6 +28,7 @@ ARGV.options do |opt|
|
|
27
28
|
opt.on('-r', '--region=REGION') {|v| sdb_endpoint = v }
|
28
29
|
opt.on('-e', '--eval=COMMAND') {|v| command = v }
|
29
30
|
opt.on('-f', '--format=YAML_OR_JSON', [:yaml, :json]) {|v| $format = v }
|
31
|
+
opt.on('-c', '--consistent') { $consistent = true }
|
30
32
|
opt.parse!
|
31
33
|
|
32
34
|
unless access_key_id and secret_access_key and sdb_endpoint
|
@@ -85,7 +87,7 @@ def execute(src, show_rows = false)
|
|
85
87
|
next
|
86
88
|
end
|
87
89
|
|
88
|
-
out = $runner.execute(query, inline)
|
90
|
+
out = $runner.execute(query, inline, $consistent)
|
89
91
|
|
90
92
|
if out.kind_of?(Integer)
|
91
93
|
puts case $format
|
@@ -196,10 +198,11 @@ USE region_or_endpoint
|
|
196
198
|
|
197
199
|
# List of commands
|
198
200
|
|
199
|
-
.help
|
200
|
-
.quit | .exit
|
201
|
-
.format
|
202
|
-
.
|
201
|
+
.help displays this message
|
202
|
+
.quit | .exit exits sdbcli
|
203
|
+
.format (yaml|json)? displays a format or changes it
|
204
|
+
.consistent (true|false)? displays ConsistentRead parameter or changes it
|
205
|
+
.version displays a version
|
203
206
|
|
204
207
|
EOS
|
205
208
|
end
|
@@ -254,6 +257,17 @@ while buf = Readline.readline(prompt, true)
|
|
254
257
|
else
|
255
258
|
output_error('Unknown format')
|
256
259
|
end
|
260
|
+
elsif r =~ 'consistent'
|
261
|
+
case (arg || '').strip
|
262
|
+
when ''
|
263
|
+
puts $consistent
|
264
|
+
when 'true'
|
265
|
+
$consistent = true
|
266
|
+
when 'false'
|
267
|
+
$consistent = false
|
268
|
+
else
|
269
|
+
output_error('Invalid argument')
|
270
|
+
end
|
257
271
|
elsif r =~ 'version'
|
258
272
|
puts "sdbcli #{Version}"
|
259
273
|
else
|
data/lib/sdbcli/sdb-driver.rb
CHANGED
@@ -44,9 +44,9 @@ module SimpleDB
|
|
44
44
|
|
45
45
|
# attr action
|
46
46
|
|
47
|
-
def insert(domain_name, items = {}
|
47
|
+
def insert(domain_name, items = {})
|
48
48
|
until (chunk = items.slice!(0, MAX_NUMBER_SUBMITTED_ITEMS)).empty?
|
49
|
-
params = {
|
49
|
+
params = {}
|
50
50
|
i = j = 0
|
51
51
|
|
52
52
|
chunk.each do |item_name, attrs|
|
@@ -67,9 +67,9 @@ module SimpleDB
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
-
def update(domain_name, items = {}
|
70
|
+
def update(domain_name, items = {})
|
71
71
|
until (chunk = items.slice!(0, MAX_NUMBER_SUBMITTED_ITEMS)).empty?
|
72
|
-
params = {
|
72
|
+
params = {}
|
73
73
|
i = j = 0
|
74
74
|
|
75
75
|
chunk.each do |item_name, attrs|
|
@@ -110,9 +110,8 @@ module SimpleDB
|
|
110
110
|
return items
|
111
111
|
end
|
112
112
|
|
113
|
-
def delete(domain_name, items = {}
|
113
|
+
def delete(domain_name, items = {})
|
114
114
|
until (chunk = items.slice!(0, MAX_NUMBER_SUBMITTED_ITEMS)).empty?
|
115
|
-
params = {:ConsistentRead => consistent}
|
116
115
|
i = j = 0
|
117
116
|
|
118
117
|
chunk.each do |item_name, attrs|
|
data/lib/sdbcli/sdb-runner.rb
CHANGED
@@ -34,13 +34,13 @@ module SimpleDB
|
|
34
34
|
REGIONS[endpoint]
|
35
35
|
end
|
36
36
|
|
37
|
-
def execute(query, inline = true)
|
37
|
+
def execute(query, inline = true, consistent = false)
|
38
38
|
parsed = Parser.parse(query)
|
39
39
|
command = parsed.class.name.split('::').last.to_sym
|
40
40
|
|
41
41
|
case command
|
42
42
|
when :GET
|
43
|
-
item = @driver.get(parsed.domain, parsed.item_name, parsed.attr_names)
|
43
|
+
item = @driver.get(parsed.domain, parsed.item_name, parsed.attr_names, consistent)
|
44
44
|
|
45
45
|
if inline
|
46
46
|
def item.to_yaml_style; :inline; end
|
@@ -57,7 +57,7 @@ module SimpleDB
|
|
57
57
|
rownum
|
58
58
|
when :UPDATE_WITH_EXPR
|
59
59
|
query = "SELECT itemName FROM #{parsed.domain} #{parsed.expr}"
|
60
|
-
items = @driver.select(query).map {|i| [i[0], parsed.attrs] }
|
60
|
+
items = @driver.select(query, consistent).map {|i| [i[0], parsed.attrs] }
|
61
61
|
rownum = items.length
|
62
62
|
@driver.update(parsed.domain, items)
|
63
63
|
rownum
|
@@ -67,7 +67,7 @@ module SimpleDB
|
|
67
67
|
rownum
|
68
68
|
when :MERGE_WITH_EXPR
|
69
69
|
query = "SELECT itemName FROM #{parsed.domain} #{parsed.expr}"
|
70
|
-
items = @driver.select(query).map {|i| [i[0], parsed.attrs] }
|
70
|
+
items = @driver.select(query, consistent).map {|i| [i[0], parsed.attrs] }
|
71
71
|
rownum = items.length
|
72
72
|
@driver.insert(parsed.domain, items)
|
73
73
|
rownum
|
@@ -77,12 +77,12 @@ module SimpleDB
|
|
77
77
|
rownum
|
78
78
|
when :DELETE_WITH_EXPR
|
79
79
|
query = "SELECT itemName FROM #{parsed.domain} #{parsed.expr}"
|
80
|
-
items = @driver.select(query).map {|i| [i[0], parsed.attrs] }
|
80
|
+
items = @driver.select(query, consistent).map {|i| [i[0], parsed.attrs] }
|
81
81
|
rownum = items.length
|
82
82
|
@driver.delete(parsed.domain, items)
|
83
83
|
rownum
|
84
84
|
when :SELECT
|
85
|
-
items = @driver.select(parsed.query)
|
85
|
+
items = @driver.select(parsed.query, consistent)
|
86
86
|
|
87
87
|
if inline
|
88
88
|
items.each do |item|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sdbcli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|