priam 0.0.5 → 0.0.6
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/Gemfile +1 -0
- data/Gemfile.lock +1 -0
- data/README.rdoc +8 -0
- data/VERSION +1 -1
- data/lib/priam/command/help.rb +8 -7
- data/lib/priam/command/insert.rb +8 -2
- data/lib/priam/core/common.rb +5 -0
- data/priam.gemspec +4 -1
- data/spec/bin/priam_spec.rb +44 -19
- metadata +29 -13
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -24,6 +24,14 @@ insert value:
|
|
24
24
|
[2012-12-12 10:16:46](INFO) insert into cassandra://cassandra-server:9160/TestKS/TestCF
|
25
25
|
[2012-12-12 10:16:46](INFO) inserted 2 columns into cassandra://cassandra-server:9160/TestKS/TestCF
|
26
26
|
|
27
|
+
insert json:
|
28
|
+
$ cat input.txt
|
29
|
+
key1 {"d":"val2"}
|
30
|
+
key2 {"d":"val2"}
|
31
|
+
$ cat input.txt | priam insert -h cassandra-server -p 9160 --keyspace TestKS --column-family TestCF --json --verbose
|
32
|
+
[2012-12-12 10:16:46](INFO) insert into cassandra://cassandra-server:9160/TestKS/TestCF
|
33
|
+
[2012-12-12 10:16:46](INFO) inserted 2 columns into cassandra://cassandra-server:9160/TestKS/TestCF
|
34
|
+
|
27
35
|
get record in json:
|
28
36
|
$ cat keys.txt
|
29
37
|
key1
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.6
|
data/lib/priam/command/help.rb
CHANGED
@@ -5,19 +5,20 @@ module Priam::Command
|
|
5
5
|
usage: priam COMMAND [-h HOST] [-p PORT]
|
6
6
|
[--keyspace KEYSPACE] [--column-family COLUMN_FAMILY]
|
7
7
|
[--super-column SUPER_COLUMN] [--value-column COLUMN_NAME]
|
8
|
-
[--retry COUNT] [--weight MSEC]
|
8
|
+
[--json] [--retry COUNT] [--weight MSEC]
|
9
9
|
[--raise-exception] [--unit-size COUNT] [--verbose]
|
10
10
|
-h HOST cassandra server address. default is localhost.
|
11
11
|
-p PORT port number. default is 9160.
|
12
12
|
--keyspace KEYSPACE keyspace.
|
13
13
|
--column-family COLUMN_FAMILY column-family.
|
14
14
|
--super-column SUPER_COLUMN super-column.
|
15
|
-
--value-column COLUMN_NAME column name for each column.
|
16
|
-
--
|
17
|
-
--
|
18
|
-
--
|
19
|
-
--
|
20
|
-
--
|
15
|
+
--value-column COLUMN_NAME column name for each column. default is 'd' only in insert.
|
16
|
+
--json put column value in json format. default is off.
|
17
|
+
--retry COUNT max retry count for put/get. default is 0.
|
18
|
+
--weight MSEC weight time for retry. default is 1000.
|
19
|
+
--raise-exception raise exception. default is off.
|
20
|
+
--unit-size COUNT unit size for log. default is 10000.
|
21
|
+
--verbose turn on verbose output, with all the available data. default is off.
|
21
22
|
EOF
|
22
23
|
return 0
|
23
24
|
end
|
data/lib/priam/command/insert.rb
CHANGED
@@ -13,6 +13,7 @@ module Priam::Command
|
|
13
13
|
weight_second = params[:weight_second]
|
14
14
|
retry_max_count = params[:retry_max_count]
|
15
15
|
count_log_path = params[:count_log_path]
|
16
|
+
json_flag = params[:json_flag]
|
16
17
|
|
17
18
|
keyspace = argv.shift if 0 < argv.length
|
18
19
|
column_family = argv.shift if 0 < argv.length
|
@@ -72,10 +73,15 @@ module Priam::Command
|
|
72
73
|
begin
|
73
74
|
# STDERR.puts "#{retry_count} #{retry_max_count}"
|
74
75
|
# raise "Test Error"
|
76
|
+
if json_flag
|
77
|
+
column = JSON.parse(value)
|
78
|
+
else
|
79
|
+
column = {value_column=>value}
|
80
|
+
end
|
75
81
|
if super_column then
|
76
|
-
client.insert(column_family, super_column, {key=>
|
82
|
+
client.insert(column_family, super_column, {key=>column})
|
77
83
|
else
|
78
|
-
client.insert(column_family, key,
|
84
|
+
client.insert(column_family, key, column)
|
79
85
|
end
|
80
86
|
count += 1
|
81
87
|
if count % unit_size == 0 then
|
data/lib/priam/core/common.rb
CHANGED
@@ -7,12 +7,14 @@ module Priam::Core
|
|
7
7
|
|
8
8
|
unit_size = 10000
|
9
9
|
retry_max_count = 0
|
10
|
+
weight_second = 1
|
10
11
|
|
11
12
|
check_exist_flag = false
|
12
13
|
output_keys_flag = false
|
13
14
|
|
14
15
|
replication_factor = 1
|
15
16
|
|
17
|
+
json_flag = false
|
16
18
|
verbose_flag = false
|
17
19
|
|
18
20
|
next_argv = []
|
@@ -50,6 +52,8 @@ module Priam::Core
|
|
50
52
|
output_keys_flag = true
|
51
53
|
when '--replication-factor'
|
52
54
|
replication_factor = argv.shift.to_i
|
55
|
+
when '--json'
|
56
|
+
json_flag = true
|
53
57
|
when '--verbose'
|
54
58
|
verbose_flag = true
|
55
59
|
else
|
@@ -80,6 +84,7 @@ module Priam::Core
|
|
80
84
|
:check_exist_flag=>check_exist_flag,
|
81
85
|
:output_keys_flag=>output_keys_flag,
|
82
86
|
:replication_factor=>replication_factor,
|
87
|
+
:json_flag=>json_flag,
|
83
88
|
:verbose_flag=>verbose_flag
|
84
89
|
}
|
85
90
|
end
|
data/priam.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "priam"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kenji Hara"]
|
@@ -63,6 +63,7 @@ Gem::Specification.new do |s|
|
|
63
63
|
s.add_runtime_dependency(%q<thrift_client>, ["~> 0.7.1"])
|
64
64
|
s.add_runtime_dependency(%q<simple_uuid>, ["~> 0.2.0"])
|
65
65
|
s.add_runtime_dependency(%q<cassandra>, ["~> 0.12.1"])
|
66
|
+
s.add_runtime_dependency(%q<json>, [">= 1.6.5"])
|
66
67
|
s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
|
67
68
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
68
69
|
s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
|
@@ -73,6 +74,7 @@ Gem::Specification.new do |s|
|
|
73
74
|
s.add_dependency(%q<thrift_client>, ["~> 0.7.1"])
|
74
75
|
s.add_dependency(%q<simple_uuid>, ["~> 0.2.0"])
|
75
76
|
s.add_dependency(%q<cassandra>, ["~> 0.12.1"])
|
77
|
+
s.add_dependency(%q<json>, [">= 1.6.5"])
|
76
78
|
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
77
79
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
78
80
|
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
@@ -84,6 +86,7 @@ Gem::Specification.new do |s|
|
|
84
86
|
s.add_dependency(%q<thrift_client>, ["~> 0.7.1"])
|
85
87
|
s.add_dependency(%q<simple_uuid>, ["~> 0.2.0"])
|
86
88
|
s.add_dependency(%q<cassandra>, ["~> 0.12.1"])
|
89
|
+
s.add_dependency(%q<json>, [">= 1.6.5"])
|
87
90
|
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
88
91
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
89
92
|
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
data/spec/bin/priam_spec.rb
CHANGED
@@ -42,26 +42,51 @@ describe "bin/priam" do
|
|
42
42
|
end
|
43
43
|
|
44
44
|
context "when command = insert" do
|
45
|
-
|
46
|
-
|
47
|
-
[
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
45
|
+
context "with json option" do
|
46
|
+
it "should insert values" do
|
47
|
+
input = [
|
48
|
+
["key3", {"data"=>"val3"}.to_json],
|
49
|
+
["key4", {"data"=>"val4"}.to_json]
|
50
|
+
]
|
51
|
+
tmpfile = Tempfile.new("bin_priam")
|
52
|
+
input.each do |record|
|
53
|
+
tmpfile.puts record.join("\t")
|
54
|
+
end
|
55
|
+
tmpfile.close
|
56
|
+
`cat #{tmpfile.path} | #{Priam::RUBY_CMD} -I #{Priam::LIB_DIR} #{Priam::BIN_DIR}/priam insert --keyspace PriamTest --column-family PriamCF -h #{@hostname} -p 9160 --json --verbose #{@stderr_dst}`
|
57
|
+
tmpfile.unlink
|
58
|
+
|
59
|
+
result = `echo key3 | #{Priam::RUBY_CMD} -I #{Priam::LIB_DIR} #{Priam::BIN_DIR}/priam get --keyspace PriamTest --column-family PriamCF -h #{@hostname} -p 9160 --value-column data 2> /dev/null`
|
60
|
+
result.chomp!
|
61
|
+
result.should == "val3"
|
62
|
+
|
63
|
+
result = `echo key4 | #{Priam::RUBY_CMD} -I #{Priam::LIB_DIR} #{Priam::BIN_DIR}/priam get --keyspace PriamTest --column-family PriamCF -h #{@hostname} -p 9160 --value-column data 2> /dev/null`
|
64
|
+
result.chomp!
|
65
|
+
result.should == "val4"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
context "without json option" do
|
69
|
+
it "should insert values" do
|
70
|
+
input = [
|
71
|
+
["key1", "val10"],
|
72
|
+
["key2", "val2"]
|
73
|
+
]
|
74
|
+
tmpfile = Tempfile.new("bin_priam")
|
75
|
+
input.each do |record|
|
76
|
+
tmpfile.puts record.join("\t")
|
77
|
+
end
|
78
|
+
tmpfile.close
|
79
|
+
`cat #{tmpfile.path} | #{Priam::RUBY_CMD} -I #{Priam::LIB_DIR} #{Priam::BIN_DIR}/priam insert --keyspace PriamTest --column-family PriamCF -h #{@hostname} -p 9160 --verbose #{@stderr_dst}`
|
80
|
+
tmpfile.unlink
|
81
|
+
|
82
|
+
result = `echo key1 | #{Priam::RUBY_CMD} -I #{Priam::LIB_DIR} #{Priam::BIN_DIR}/priam get --keyspace PriamTest --column-family PriamCF -h #{@hostname} -p 9160 --name d 2> /dev/null`
|
83
|
+
result.chomp!
|
84
|
+
result.should == "val10"
|
85
|
+
|
86
|
+
result = `echo key2 | #{Priam::RUBY_CMD} -I #{Priam::LIB_DIR} #{Priam::BIN_DIR}/priam get --keyspace PriamTest --column-family PriamCF -h #{@hostname} -p 9160 --name d 2> /dev/null`
|
87
|
+
result.chomp!
|
88
|
+
result.should == "val2"
|
53
89
|
end
|
54
|
-
tmpfile.close
|
55
|
-
`cat #{tmpfile.path} | #{Priam::RUBY_CMD} -I #{Priam::LIB_DIR} #{Priam::BIN_DIR}/priam insert --keyspace PriamTest --column-family PriamCF -h #{@hostname} -p 9160 --verbose #{@stderr_dst}`
|
56
|
-
tmpfile.unlink
|
57
|
-
|
58
|
-
result = `echo key1 | #{Priam::RUBY_CMD} -I #{Priam::LIB_DIR} #{Priam::BIN_DIR}/priam get --keyspace PriamTest --column-family PriamCF -h #{@hostname} -p 9160 --name d 2> /dev/null`
|
59
|
-
result.chomp!
|
60
|
-
result.should == "val10"
|
61
|
-
|
62
|
-
result = `echo key2 | #{Priam::RUBY_CMD} -I #{Priam::LIB_DIR} #{Priam::BIN_DIR}/priam get --keyspace PriamTest --column-family PriamCF -h #{@hostname} -p 9160 --name d 2> /dev/null`
|
63
|
-
result.chomp!
|
64
|
-
result.should == "val2"
|
65
90
|
end
|
66
91
|
end
|
67
92
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: priam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 6
|
10
|
+
version: 0.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kenji Hara
|
@@ -81,11 +81,27 @@ dependencies:
|
|
81
81
|
- 1
|
82
82
|
version: 0.12.1
|
83
83
|
version_requirements: *id004
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: json
|
86
|
+
prerelease: false
|
87
|
+
type: :runtime
|
88
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
hash: 5
|
94
|
+
segments:
|
95
|
+
- 1
|
96
|
+
- 6
|
97
|
+
- 5
|
98
|
+
version: 1.6.5
|
99
|
+
version_requirements: *id005
|
84
100
|
- !ruby/object:Gem::Dependency
|
85
101
|
name: rspec
|
86
102
|
prerelease: false
|
87
103
|
type: :development
|
88
|
-
requirement: &
|
104
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
89
105
|
none: false
|
90
106
|
requirements:
|
91
107
|
- - ~>
|
@@ -96,12 +112,12 @@ dependencies:
|
|
96
112
|
- 8
|
97
113
|
- 0
|
98
114
|
version: 2.8.0
|
99
|
-
version_requirements: *
|
115
|
+
version_requirements: *id006
|
100
116
|
- !ruby/object:Gem::Dependency
|
101
117
|
name: rdoc
|
102
118
|
prerelease: false
|
103
119
|
type: :development
|
104
|
-
requirement: &
|
120
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
105
121
|
none: false
|
106
122
|
requirements:
|
107
123
|
- - ~>
|
@@ -111,12 +127,12 @@ dependencies:
|
|
111
127
|
- 3
|
112
128
|
- 12
|
113
129
|
version: "3.12"
|
114
|
-
version_requirements: *
|
130
|
+
version_requirements: *id007
|
115
131
|
- !ruby/object:Gem::Dependency
|
116
132
|
name: bundler
|
117
133
|
prerelease: false
|
118
134
|
type: :development
|
119
|
-
requirement: &
|
135
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
120
136
|
none: false
|
121
137
|
requirements:
|
122
138
|
- - ">="
|
@@ -127,12 +143,12 @@ dependencies:
|
|
127
143
|
- 0
|
128
144
|
- 0
|
129
145
|
version: 1.0.0
|
130
|
-
version_requirements: *
|
146
|
+
version_requirements: *id008
|
131
147
|
- !ruby/object:Gem::Dependency
|
132
148
|
name: jeweler
|
133
149
|
prerelease: false
|
134
150
|
type: :development
|
135
|
-
requirement: &
|
151
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
136
152
|
none: false
|
137
153
|
requirements:
|
138
154
|
- - ~>
|
@@ -143,12 +159,12 @@ dependencies:
|
|
143
159
|
- 8
|
144
160
|
- 4
|
145
161
|
version: 1.8.4
|
146
|
-
version_requirements: *
|
162
|
+
version_requirements: *id009
|
147
163
|
- !ruby/object:Gem::Dependency
|
148
164
|
name: rcov
|
149
165
|
prerelease: false
|
150
166
|
type: :development
|
151
|
-
requirement: &
|
167
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
152
168
|
none: false
|
153
169
|
requirements:
|
154
170
|
- - ">="
|
@@ -157,7 +173,7 @@ dependencies:
|
|
157
173
|
segments:
|
158
174
|
- 0
|
159
175
|
version: "0"
|
160
|
-
version_requirements: *
|
176
|
+
version_requirements: *id010
|
161
177
|
description: Command-base client for Cassandra.
|
162
178
|
email: haracane@gmail.com
|
163
179
|
executables:
|