leofs_manager_client 0.2.10 → 0.2.11
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.
@@ -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:
|