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 = 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: