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 = Node.new(h[:node_stat]) if h.has_key?(: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 :version, :type, :node, :state, :log_dir, :ring_cur, :ring_prev, :joined_at,
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
- @version = h[:version]
69
- @type = h[:type]
70
- @node = h[:node]
71
- @state = h[: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
- @joined_at = h[:when]
76
- @total_mem_usage = h[:total_mem_usage]
77
- @system_mem_usage = h[:system_mem_usage]
78
- @procs_mem_usage = h[:procs_mem_usage]
79
- @ets_mem_usage = h[:ets_mem_usage]
80
- @num_of_procs = h[:num_of_procs]
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 = Integer(h[: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 :file_size, :total_of_objects
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
@@ -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.10"
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 %s"
48
- CMD_S3_GET_KEYS = "s3-get-keys"
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, password)
192
- sender(CMD_S3_DEL_USER % [user_id, password])
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 s3_get_keys
197
- users = sender(CMD_S3_GET_KEYS)[:users]
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
 
@@ -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
- S3GetKeys = {
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-keys"
151
- Response::S3GetKeys
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", "role").should be_nil
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.s3_update_user_role("user_id", "new_password").should be_nil
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.s3_update_user_role("user_id", "password").should be_nil
117
+ subject.s3_delete_user("user_id").should be_nil
114
118
  end
115
119
  end
116
120
 
117
- its(:s3_get_keys) do
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.10
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-05 00:00:00.000000000 Z
13
+ date: 2012-12-11 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: Client for LeoFS Manager
16
16
  email: