sdbcli 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|