radosgw-s3 0.7 → 0.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 359cebe03279f2013ccf6867ded7ba76ba8ca83a
4
- data.tar.gz: ec92ec54012013cc6e24d8d52e936388d6c5a737
3
+ metadata.gz: c656861081019bf06272ea5ebf0374e875a138c9
4
+ data.tar.gz: 994d3a34d1c5db3333d3916d5025b9aa84f40e51
5
5
  SHA512:
6
- metadata.gz: 43df2d7b7e35a61b06a8742c671ac9a0d8d5063d76d063a9dc471b2bee9a332d6f7f0f4369040fed692ea76775bd14add12e6111ed62c17d5d1dea5f81d16c7b
7
- data.tar.gz: 304cfb998921f373597e915b3d00ed19ea897b13e1f5fe1d9c5a73294c8e295c8dc58ae4a9349e59eb8057490a750aa809a1659464100002dae945bd1274a22a
6
+ metadata.gz: ac5ff07dfd50528e00a90499dd186743bb649645f05541256867f91383efc02a1f743ba15e9c43c0d351789ab30b15ea00ccabbe074b245a403c3ea3b16fd229
7
+ data.tar.gz: 9dbddb1c18a6fb51b5e57b0e7a4ba1ec25e98e4aae379789bee955894e873b08b10e54d8e9809b5a5e8da788170335b8f3e8ab808c3f6068e22afdfc66dd7185
data/.gitignore CHANGED
@@ -5,3 +5,4 @@ rdoc
5
5
  pkg
6
6
  *.gem
7
7
  .bundle
8
+ .project
data/README.rdoc CHANGED
@@ -26,7 +26,7 @@ radosgw-admin guide to {create radosgw user}[http://docs.ceph.com/docs/master/ra
26
26
 
27
27
  === create user
28
28
 
29
- service.user_create("UID_NAME")
29
+ service.user_create("UID_NAME", "DISPLAY_NAME")
30
30
 
31
31
  It will give you the access_key and secret_key in hash format
32
32
 
data/lib/ceph/radosgw.rb CHANGED
@@ -5,8 +5,6 @@ module CEPH
5
5
  class Radosgw
6
6
 
7
7
  attr_reader :username, :ipaddress, :user_password, :uid
8
-
9
-
10
8
  def initialize(options)
11
9
  raise ArgumentError, "Missing :username." if !options[:username]
12
10
  raise ArgumentError, "Missing :ipaddress." if !options[:ipaddress]
@@ -17,34 +15,5 @@ module CEPH
17
15
  @user_password = options.fetch(:user_password)
18
16
  end
19
17
 
20
-
21
-
22
- def user_create(uid)
23
- ceph_user_json = ""
24
- Net::SSH.start( @ipaddress, @username, :password => @user_password ) do|ssh|
25
- ceph_user_json = ssh.exec!("sudo radosgw-admin user create --uid='#{uid}' --display-name='radosgw demo user from s3 gem'")
26
- end
27
-
28
-
29
- ceph_user_hash = JSON.parse(ceph_user_json)
30
- secret_hash = {"access_key" => "#{ceph_user_hash['keys'][0]['access_key']}", "secret_key" => "#{ceph_user_hash['keys'][0]['secret_key']}" }
31
- secret_hash
32
- end
33
-
34
- def user_usage(uid)
35
- user_usage_json = ""
36
- Net::SSH.start( @ipaddress, @username, :password => @user_password ) do|ssh|
37
- user_usage_json = ssh.exec!("sudo radosgw-admin user stats --uid='#{uid}'")
38
- end
39
-
40
- if user_usage_json.include? "ERROR: can't read user header: (2) No such file or directory"
41
- usage_hash = {"total_objects" => "0", "total_bytes" => "0", "last_update" => "#{Time.now}" }
42
- else
43
- user_usage_hash = JSON.parse(user_usage_json)
44
- usage_hash = {"total_objects" => "#{user_usage_hash['stats']['total_entries']}", "total_bytes" => "#{user_usage_hash['stats']['total_bytes_rounded']}", "last_update" => "#{user_usage_hash['last_stats_update']}" }
45
- usage_hash
46
- end
47
- end
48
-
49
18
  end
50
19
  end
data/lib/ceph/user.rb ADDED
@@ -0,0 +1,66 @@
1
+ module CEPH
2
+ class User < Radosgw
3
+ def execution(command)
4
+ radosgw_json =
5
+ begin
6
+ Net::SSH.start( @ipaddress, @username, :password => @user_password ) do|ssh|
7
+ radosgw_json = ssh.exec!(command)
8
+ end
9
+ rescue Timeout::Error
10
+ return "Timed out Error"
11
+ rescue Errno::EHOSTUNREACH
12
+ return "Host unreachable Error"
13
+ rescue Errno::ECONNREFUSED
14
+ return "Connection refused Error"
15
+ rescue Net::SSH::AuthenticationFailed
16
+ return "Authentication failure Error"
17
+ end
18
+ return radosgw_json
19
+ end
20
+
21
+ def exists(uid)
22
+ ceph_user_json = ""
23
+ ceph_user_json = execution("sudo radosgw-admin user info --uid='#{uid}'")
24
+ begin
25
+ JSON.parse(ceph_user_json)
26
+ return true
27
+ rescue JSON::ParserError => e
28
+ return false
29
+ end
30
+ end
31
+
32
+ def create(uid, display_name)
33
+ ceph_user_json = ""
34
+ ceph_user_json = execution("sudo radosgw-admin user create --uid='#{uid}' --display-name='#{display_name}'")
35
+ begin
36
+ ceph_user_hash = JSON.parse(ceph_user_json)
37
+ secret_hash = {"access_key" => "#{ceph_user_hash['keys'][0]['access_key']}", "secret_key" => "#{ceph_user_hash['keys'][0]['secret_key']}" }
38
+ secret_hash
39
+ rescue JSON::ParserError => e
40
+ return ceph_user_json
41
+ end
42
+ end
43
+
44
+ def usage(uid)
45
+ user_usage_json = ""
46
+ if exists(uid)
47
+ user_usage_json = execution("sudo radosgw-admin user stats --uid='#{uid}'")
48
+
49
+ if user_usage_json.include? "ERROR: can't read user header: (2) No such file or directory"
50
+ usage_hash = {"total_objects" => "0", "total_bytes" => "0", "last_update" => "#{Time.now}" }
51
+ else
52
+ begin
53
+ user_usage_hash = JSON.parse(user_usage_json)
54
+ usage_hash = {"total_objects" => "#{user_usage_hash['stats']['total_entries']}", "total_bytes" => "#{user_usage_hash['stats']['total_bytes_rounded']}", "last_update" => "#{user_usage_hash['last_stats_update']}" }
55
+ usage_hash
56
+ rescue JSON::ParserError => e
57
+ return user_usage_json
58
+ end
59
+ end
60
+ else
61
+ return "could not fetch user info: no user info saved"
62
+ end
63
+ end
64
+
65
+ end
66
+ end
data/lib/radosgw-s3.rb CHANGED
@@ -7,7 +7,6 @@ require "net/https"
7
7
  require "openssl"
8
8
  require "rexml/document"
9
9
  require "time"
10
-
11
10
  require "proxies"
12
11
  require "s3/objects_extension"
13
12
  require "s3/buckets_extension"
@@ -20,8 +19,8 @@ require "s3/request"
20
19
  require "s3/service"
21
20
  require "s3/signature"
22
21
  require "s3/version"
23
-
24
22
  require "ceph/radosgw"
23
+ require "ceph/user"
25
24
 
26
25
  module S3
27
26
  # Default (and only) host serving S3 stuff
data/lib/s3/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module S3
2
- VERSION = "0.7"
2
+ VERSION = "0.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: radosgw-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.7'
4
+ version: '0.8'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Alrin, Kishorekumar Neelamegam, Rajthilak, Kuba Kuźma
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-23 00:00:00.000000000 Z
11
+ date: 2015-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: proxies
@@ -125,6 +125,7 @@ files:
125
125
  - README.rdoc
126
126
  - Rakefile
127
127
  - lib/ceph/radosgw.rb
128
+ - lib/ceph/user.rb
128
129
  - lib/radosgw-s3.rb
129
130
  - lib/s3/bucket.rb
130
131
  - lib/s3/buckets_extension.rb
@@ -164,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
165
  version: 1.3.6
165
166
  requirements: []
166
167
  rubyforge_project: s3
167
- rubygems_version: 2.4.8
168
+ rubygems_version: 2.4.7
168
169
  signing_key:
169
170
  specification_version: 4
170
171
  summary: Library for accessing ceph objects and buckets