leofs_manager_client 0.2.10 → 0.2.11
Sign up to get free protection for your applications and to get access to all the features.
@@ -30,7 +30,7 @@ module LeoFSManager
|
|
30
30
|
attr_reader :node_list
|
31
31
|
|
32
32
|
def initialize(h)
|
33
|
-
@node_stat =
|
33
|
+
@node_stat = NodeStat.new(h[:node_stat]) if h.has_key?(:node_stat)
|
34
34
|
@system_info = System.new(h[:system_info]) if h.has_key?(:system_info)
|
35
35
|
@node_list = h[:node_list].map {|node| Node.new(node) } if h.has_key?(:node_list)
|
36
36
|
end
|
@@ -49,11 +49,11 @@ module LeoFSManager
|
|
49
49
|
|
50
50
|
def initialize(h)
|
51
51
|
@version = h[:version]
|
52
|
-
@n = h[:n]
|
53
|
-
@r = h[:r]
|
54
|
-
@w = h[:w]
|
55
|
-
@d = h[:d]
|
56
|
-
@ring_size = h[:ring_size]
|
52
|
+
@n = Integer(h[:n])
|
53
|
+
@r = Integer(h[:r])
|
54
|
+
@w = Integer(h[:w])
|
55
|
+
@d = Integer(h[:d])
|
56
|
+
@ring_size = Integer(h[:ring_size])
|
57
57
|
@ring_cur = h[:ring_cur]
|
58
58
|
@ring_prev = h[:ring_prev]
|
59
59
|
end
|
@@ -61,23 +61,34 @@ module LeoFSManager
|
|
61
61
|
|
62
62
|
# Node Status Model
|
63
63
|
class Node
|
64
|
-
attr_reader :
|
65
|
-
:total_mem_usage, :system_mem_usage, :procs_mem_usage, :ets_mem_usage, :num_of_procs
|
64
|
+
attr_reader :type, :node, :state, :ring_cur, :ring_prev, :when
|
66
65
|
|
67
66
|
def initialize(h)
|
68
|
-
@
|
69
|
-
@
|
70
|
-
@
|
71
|
-
@state
|
72
|
-
@log_dir = h[:log_dir]
|
67
|
+
@type = h[:type]
|
68
|
+
@node = h[:node]
|
69
|
+
@when = Time.parse(h[:when])
|
70
|
+
@state = h[:state]
|
73
71
|
@ring_cur = h[:ring_cur]
|
74
72
|
@ring_prev = h[:ring_prev]
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
73
|
+
end
|
74
|
+
|
75
|
+
alias joined_at when
|
76
|
+
end
|
77
|
+
|
78
|
+
class NodeStat
|
79
|
+
@@properties = [
|
80
|
+
:version, :log_dir, :ring_cur, :ring_prev, :vm_version,
|
81
|
+
:total_mem_usage, :system_mem_usage, :procs_mem_usage,
|
82
|
+
:ets_mem_usage, :num_of_procs, :limit_of_procs, :thread_pool_size
|
83
|
+
]
|
84
|
+
|
85
|
+
attr_reader *@@properties
|
86
|
+
|
87
|
+
def initialize(h)
|
88
|
+
@@properties.each do |property|
|
89
|
+
instance_variable_set("@#{property}", h[property])
|
90
|
+
end
|
91
|
+
@kernel_poll = (h[:kernel_poll] == "true")
|
81
92
|
end
|
82
93
|
end
|
83
94
|
end
|
@@ -92,20 +103,23 @@ module LeoFSManager
|
|
92
103
|
@size = h[:size]
|
93
104
|
@clock = h[:clock]
|
94
105
|
@checksum = h[:checksum]
|
95
|
-
@timestamp = h[:timestamp]
|
106
|
+
@timestamp = Time.parse(h[:timestamp])
|
96
107
|
@delete = h[:delete]
|
97
|
-
@num_of_chunks =
|
108
|
+
@num_of_chunks = h[:num_of_chunks]
|
98
109
|
end
|
99
110
|
end
|
100
111
|
|
101
112
|
# Storage Status Model
|
102
113
|
class StorageStat
|
103
|
-
attr_reader :
|
114
|
+
attr_reader :total_of_objects
|
104
115
|
|
105
116
|
def initialize(h)
|
106
|
-
@file_size = h[:file_size]
|
107
117
|
@total_of_objects = h[:total_of_objects]
|
108
118
|
end
|
119
|
+
|
120
|
+
def file_size
|
121
|
+
warn "property 'file_size' is deprecated"
|
122
|
+
end
|
109
123
|
end
|
110
124
|
|
111
125
|
# S3 Credential
|
@@ -124,13 +138,24 @@ module LeoFSManager
|
|
124
138
|
class LoginInfo
|
125
139
|
attr_reader :id, :role_id, :access_key_id, :secret_key, :created_at
|
126
140
|
|
141
|
+
RoleDef = {
|
142
|
+
1 => :normal,
|
143
|
+
9 => :admin
|
144
|
+
}
|
145
|
+
RoleDef.default_proc = proc {|_, key| raise "invalid @user_id: #{key}" }
|
146
|
+
RoleDef.freeze
|
147
|
+
|
127
148
|
def initialize(h)
|
128
149
|
h = h[:user]
|
129
150
|
@id = h[:id]
|
130
151
|
@role_id = h[:role_id]
|
131
152
|
@access_key_id = h[:access_key_id]
|
132
153
|
@secret_key = h[:secret_key]
|
133
|
-
@created_at = h[:created_at]
|
154
|
+
@created_at = Time.parse(h[:created_at])
|
155
|
+
end
|
156
|
+
|
157
|
+
def role
|
158
|
+
RoleDef[@role_id]
|
134
159
|
end
|
135
160
|
end
|
136
161
|
|
@@ -139,8 +164,9 @@ module LeoFSManager
|
|
139
164
|
|
140
165
|
def initialize(h)
|
141
166
|
@user_id = h[:user_id]
|
167
|
+
@role_id = h[:role_id]
|
142
168
|
@access_key_id = h[:access_key_id]
|
143
|
-
@created_at = h[:created_at]
|
169
|
+
@created_at = Time.parse(h[:created_at])
|
144
170
|
end
|
145
171
|
end
|
146
172
|
|
@@ -153,7 +179,7 @@ module LeoFSManager
|
|
153
179
|
|
154
180
|
def initialize(h)
|
155
181
|
@endpoint = h[:endpoint]
|
156
|
-
@created_at = h[:created_at]
|
182
|
+
@created_at = Time.parse(h[:created_at])
|
157
183
|
end
|
158
184
|
end
|
159
185
|
|
@@ -169,7 +195,7 @@ module LeoFSManager
|
|
169
195
|
def initialize(h)
|
170
196
|
@name = h[:bucket]
|
171
197
|
@owner = h[:owner]
|
172
|
-
@created_at = h[:created_at]
|
198
|
+
@created_at = Time.parse(h[:created_at])
|
173
199
|
end
|
174
200
|
end
|
175
201
|
end
|
data/lib/leofs_manager_client.rb
CHANGED
@@ -26,7 +26,7 @@ require "time"
|
|
26
26
|
require_relative "leofs_manager_client/leofs_manager_models"
|
27
27
|
|
28
28
|
module LeoFSManager
|
29
|
-
VERSION = "0.2.
|
29
|
+
VERSION = "0.2.11"
|
30
30
|
|
31
31
|
class Client
|
32
32
|
CMD_VERSION = "version"
|
@@ -44,14 +44,16 @@ module LeoFSManager
|
|
44
44
|
CMD_S3_CRE_USER = "s3-create-user %s %s"
|
45
45
|
CMD_S3_UPD_USER_ROLE = "s3-update-user-role %s %s"
|
46
46
|
CMD_S3_UPD_USER_PASS = "s3-update-user-password %s %s"
|
47
|
-
CMD_S3_DEL_USER = "s3-delete-user %s
|
48
|
-
|
47
|
+
CMD_S3_DEL_USER = "s3-delete-user %s"
|
48
|
+
CMD_S3_GET_USERS = "s3-get-users"
|
49
49
|
CMD_S3_SET_ENDPOINT = "s3-set-endpoint %s"
|
50
50
|
CMD_S3_DEL_ENDPOINT = "s3-delete-endpoint %s"
|
51
51
|
CMD_S3_GET_ENDPOINTS = "s3-get-endpoints"
|
52
52
|
CMD_S3_ADD_BUCKET = "s3-add-bucket %s %s"
|
53
53
|
CMD_S3_GET_BUCKETS = "s3-get-buckets"
|
54
54
|
|
55
|
+
USER_ROLES = LoginInfo::RoleDef.invert
|
56
|
+
|
55
57
|
# ======================================================================
|
56
58
|
# APIs
|
57
59
|
# ======================================================================
|
@@ -165,7 +167,7 @@ module LeoFSManager
|
|
165
167
|
# Generate credential for LeoFS
|
166
168
|
# Return::
|
167
169
|
# Credential
|
168
|
-
def s3_create_user(user_id, password)
|
170
|
+
def s3_create_user(user_id, password=nil)
|
169
171
|
Credential.new(sender(CMD_S3_CRE_USER % [user_id, password]))
|
170
172
|
end
|
171
173
|
|
@@ -173,6 +175,8 @@ module LeoFSManager
|
|
173
175
|
# Return ::
|
174
176
|
# _nil_
|
175
177
|
def s3_update_user_role(user_id, role)
|
178
|
+
role = role.to_sym if role.is_a? String
|
179
|
+
role = USER_ROLES[role] if role.is_a? Symbol
|
176
180
|
sender(CMD_S3_UPD_USER_ROLE % [user_id, role])
|
177
181
|
nil
|
178
182
|
end
|
@@ -188,13 +192,13 @@ module LeoFSManager
|
|
188
192
|
# Delete user
|
189
193
|
# Return::
|
190
194
|
# _nil_
|
191
|
-
def s3_delete_user(user_id
|
192
|
-
sender(CMD_S3_DEL_USER %
|
195
|
+
def s3_delete_user(user_id)
|
196
|
+
sender(CMD_S3_DEL_USER % user_id)
|
193
197
|
nil
|
194
198
|
end
|
195
199
|
|
196
|
-
def
|
197
|
-
users = sender(
|
200
|
+
def s3_get_users
|
201
|
+
users = sender(CMD_S3_GET_USERS)[:users]
|
198
202
|
users.map {|account| User.new(account) }
|
199
203
|
end
|
200
204
|
|
data/spec/dummy_tcp_server.rb
CHANGED
@@ -71,7 +71,7 @@ module Dummy
|
|
71
71
|
:size => "",
|
72
72
|
:clock => "",
|
73
73
|
:checksum => "",
|
74
|
-
:timestamp => "",
|
74
|
+
:timestamp => "2012-12-07 16:51:08 +0900",
|
75
75
|
:delete => 0,
|
76
76
|
:num_of_chunks => 0
|
77
77
|
}
|
@@ -97,9 +97,9 @@ module Dummy
|
|
97
97
|
]
|
98
98
|
}.to_json
|
99
99
|
|
100
|
-
|
100
|
+
S3GetUsers = {
|
101
101
|
:users => [
|
102
|
-
{ :access_key_id => "05236", :user_id => "_test_leofs_", :created_at => "2012-11-20 15:13:20 +0900" }
|
102
|
+
{ :access_key_id => "05236", :user_id => "_test_leofs_", :role_id => 1, :created_at => "2012-11-20 15:13:20 +0900" }
|
103
103
|
]
|
104
104
|
}.to_json
|
105
105
|
|
@@ -147,8 +147,8 @@ module Dummy
|
|
147
147
|
Response::S3GetEndpoints
|
148
148
|
when "s3-get-buckets"
|
149
149
|
Response::S3GetBuckets
|
150
|
-
when "s3-get-
|
151
|
-
Response::
|
150
|
+
when "s3-get-users"
|
151
|
+
Response::S3GetUsers
|
152
152
|
when "s3-create-user"
|
153
153
|
Response::S3CreateUser
|
154
154
|
else
|
@@ -94,27 +94,31 @@ describe LeoFSManager do
|
|
94
94
|
it "returns Credential" do
|
95
95
|
subject.s3_create_user("user_id", "password").should be_a Credential
|
96
96
|
end
|
97
|
+
|
98
|
+
it "goes with only user_id" do
|
99
|
+
subject.s3_create_user("user_id").should be_a Credential
|
100
|
+
end
|
97
101
|
end
|
98
102
|
|
99
103
|
describe "#s3_update_user_role" do
|
100
104
|
it "returns nil" do
|
101
|
-
subject.s3_update_user_role("user_id", "
|
105
|
+
subject.s3_update_user_role("user_id", "admin").should be_nil
|
102
106
|
end
|
103
107
|
end
|
104
108
|
|
105
109
|
describe "#s3_update_user_password" do
|
106
110
|
it "returns nil" do
|
107
|
-
subject.
|
111
|
+
subject.s3_update_user_password("user_id", "new_password").should be_nil
|
108
112
|
end
|
109
113
|
end
|
110
114
|
|
111
115
|
describe "#s3_delete_user" do
|
112
116
|
it "returns nil" do
|
113
|
-
subject.
|
117
|
+
subject.s3_delete_user("user_id").should be_nil
|
114
118
|
end
|
115
119
|
end
|
116
120
|
|
117
|
-
its(:
|
121
|
+
its(:s3_get_users) do
|
118
122
|
should be_a Array
|
119
123
|
subject.each do |account|
|
120
124
|
account.should be_a User
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leofs_manager_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-12-
|
13
|
+
date: 2012-12-11 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: Client for LeoFS Manager
|
16
16
|
email:
|