kaname 0.6.2 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 15b28f025e86bd66760143c6f4746ea38e43be3c
4
- data.tar.gz: bf491e308de8a2b16f34469d7d80dab03289ac80
2
+ SHA256:
3
+ metadata.gz: 90d10babee7819939e06b5e30de7e45874695795286f484383288724f885004b
4
+ data.tar.gz: 387231fe536276850ce78b9ea8567a8f26cad09cdb7dfbd5b28c47594400a18f
5
5
  SHA512:
6
- metadata.gz: 84717d072d821c76d99f9a3f9f2b3f24256354f643a37feda0228e5d6965dc7e26ce610fa4a1e4b864deb53cb58ede620f8dd26c50a5f7e4fc99b3f9194bffc0
7
- data.tar.gz: 4422dac3de3308fad2ea4747cd1c951ee7db77239406307da565f3bb6a9dd7a88be5a5fa8772cc1239bf5450b358840ad9e048233b9fbdb3b51e6a3c74010e8c
6
+ metadata.gz: b379ed4b0ac3d5f224ee3a445589d09879775d778655bc4c1805da626509bc0fcc13f434830692d95593c293cd36c46b6811c2ed5aa73e0fb50a63795a628568
7
+ data.tar.gz: 71131ed96229fd43d4b7db03df9469b746ab5b110e22777ae4e8cd06d8d193a8a902201db480410bcc3bf274777d920503d4233e54c6b86c5db21ec1dbb3acd0
data/.gitignore CHANGED
@@ -7,5 +7,6 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ vendor/bundle
10
11
 
11
12
  keystone.yml
@@ -1,5 +1,4 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.10
4
- - 2.2.5
5
- - 2.3.1
3
+ - 2.6.6
4
+ - 2.7.2
data/README.md CHANGED
@@ -43,12 +43,12 @@ auth_url: "http://your-openstack-auth-endpoint/v2.0"
43
43
  username: "admin"
44
44
  tenant: "admin"
45
45
  password: "admin-no-password"
46
- management_url: "http://your-openstack-management-endpoint/v2.0"
47
46
  ```
48
47
 
49
48
  also, you can set some options.
50
49
 
51
50
  ```
51
+ ca_cert: "/path/to/ca.pem"
52
52
  client_cert: "/path/to/cert.pem"
53
53
  client_key: "/path/to/key.pem"
54
54
  region_name: "YourRegion"
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency "yao", ">= 0.3.3"
22
+ spec.add_dependency "yao", ">= 0.13.4"
23
23
  spec.add_dependency "diffy"
24
- spec.add_dependency "hashdiff"
24
+ spec.add_dependency "hashdiff", ">= 1.0.0"
25
25
  spec.add_dependency "thor"
26
26
 
27
27
  spec.add_development_dependency "bundler"
@@ -17,25 +17,17 @@ module Kaname
17
17
  end
18
18
 
19
19
  def update_user_password(old_password, new_password)
20
- unless Kaname::Config.management_url
21
- raise 'management_url is missing. Check the configuration file.'
22
- end
23
-
24
20
  if old_password && new_password
25
- token = Yao::Auth.try_new.token
26
21
  me = Yao::User.get_by_name(Kaname::Config.username)
27
- endpoint = Kaname::Config.management_url
28
-
29
- url = URI.parse("#{endpoint}/OS-KSCRUD/users/#{me.id}")
22
+ client= Yao.default_client.pool['identity']
30
23
 
31
- req = Net::HTTP::Patch.new(url.path)
32
- req["Content-type"] = "application/json"
33
- req["X-Auth-Token"] = token
34
- req.body = JSON.generate({'user' => {'password' => new_password, 'original_password' => old_password}})
35
-
36
- res = Net::HTTP.start(url.host, url.port) {|http| http.request(req) }
24
+ params = JSON.generate({'user' => {'password' => new_password, 'original_password' => old_password}})
25
+ res = client.patch("./OS-KSCRUD/users/#{me.id}") do |req|
26
+ req.body = params
27
+ req.headers['Content-Type'] = 'application/json'
28
+ end
37
29
 
38
- if res.code == "200"
30
+ if res.status == 200
39
31
  puts "Your password is updated. Please update your ~/.kaname configuration too."
40
32
  else
41
33
  raise "password updating is failed"
@@ -10,12 +10,16 @@ module Kaname
10
10
  end
11
11
 
12
12
  def find_user(name)
13
- user = Yao::User.find_by_name(name)
13
+ user = Yao::User.find_by_name(name).first
14
14
  {"id" => user.id, "name" => user.name}
15
15
  end
16
16
 
17
17
  def list_tenants
18
- @_tenants ||= Yao::Tenant.list
18
+ @_tenants ||= if keystone_v2?
19
+ Yao::Tenant.list
20
+ else
21
+ Yao::Project.list
22
+ end
19
23
  end
20
24
 
21
25
  def list_roles
@@ -62,6 +66,10 @@ module Kaname
62
66
 
63
67
  private
64
68
 
69
+ def keystone_v2?
70
+ Yao.default_client.pool["identity"].url_prefix.to_s.match(/v2\.0/)
71
+ end
72
+
65
73
  def tenant_role_hash(user_id)
66
74
  list_role_assignments.each_with_object(Hash.new) do |t,th|
67
75
  if t.user.id == user_id
@@ -29,7 +29,7 @@ module Kaname
29
29
  end
30
30
 
31
31
  if Kaname::Resource.yaml
32
- diffs = HashDiff.diff(adapter.users_hash, Kaname::Resource.yaml)
32
+ diffs = Hashdiff.diff(adapter.users_hash, Kaname::Resource.yaml)
33
33
  diffs.each do |diff|
34
34
  resource = diff[1].split('.')
35
35
  if resource.size == 1 # "user"
@@ -3,12 +3,13 @@ require 'yaml'
3
3
 
4
4
  module Kaname
5
5
  class Config
6
- %w[username management_url].each do |m|
7
- self.class_variable_set(:"@@#{m}", String.new)
8
- end
6
+ @@username = String.new
7
+ @@ca_cert = nil
8
+ @@client_key = nil
9
+ @@client_cert = nil
9
10
 
10
11
  def self.setup
11
- load_config
12
+ load_config unless envs_exist?
12
13
  setup_yao
13
14
  end
14
15
 
@@ -16,12 +17,12 @@ module Kaname
16
17
  @@username
17
18
  end
18
19
 
19
- def self.management_url
20
- @@management_url
21
- end
22
-
23
20
  private
24
21
 
22
+ def self.envs_exist?
23
+ %w[OS_AUTH_URL OS_TENANT_NAME OS_USERNAME OS_PASSWORD OS_CERT OS_KEY OS_REGION_NAME OS_IDENTITY_API_VERSION].any?{|k|ENV[k]}
24
+ end
25
+
25
26
  def self.load_config
26
27
  config_file = File.join(Dir.home, '.kaname')
27
28
  raise '~/.kaname is missing' unless File.exists?(config_file)
@@ -32,26 +33,33 @@ module Kaname
32
33
  raise "Configuration '#{conf_item}' is missing. Check your ~/.kaname" unless config[conf_item]
33
34
  end
34
35
 
35
- @@auth_url = config['auth_url']
36
- @@tenant = config['tenant']
37
- @@username = config['username']
38
- @@password = config['password']
39
- @@management_url = config['management_url']
40
- @@client_cert = config['client_cert']
41
- @@client_key = config['client_key']
42
- @@region_name = config['region_name']
36
+ @@auth_url = config['auth_url']
37
+ @@tenant = config['tenant']
38
+ @@username = config['username']
39
+ @@password = config['password']
40
+ @@ca_cert = config['ca_cert']
41
+ @@client_cert = config['client_cert']
42
+ @@client_key = config['client_key']
43
+ @@region_name = config['region_name']
44
+ @@user_domain_name = config['user_domain_name']
45
+ @@project_domain_name = config['project_domain_name']
46
+ @@identity_api_version = config['identity_api_version']
43
47
  true
44
48
  end
45
49
 
46
50
  def self.setup_yao
47
51
  Yao.configure do
48
- auth_url @@auth_url
49
- tenant_name @@tenant
50
- username @@username
51
- password @@password
52
- client_cert @@client_cert
53
- client_key @@client_key
54
- region_name @@region_name
52
+ auth_url (ENV['OS_AUTH_URL'] || @@auth_url)
53
+ tenant_name (ENV['OS_TENANT_NAME'] || @@tenant)
54
+ username (ENV['OS_USERNAME'] || @@username)
55
+ password (ENV['OS_PASSWORD'] || @@password)
56
+ ca_cert (ENV['OS_CACERT'] || @@ca_cert)
57
+ client_cert (ENV['OS_CERT'] || @@client_cert)
58
+ client_key (ENV['OS_KEY'] || @@client_key)
59
+ region_name (ENV['OS_REGION_NAME'] || @@region_name)
60
+ identity_api_version (ENV['OS_IDENTITY_API_VERSION'] || @@identity_api_version)
61
+ user_domain_name (ENV['OS_USER_DOMAIN_NAME'] || @@user_domain_name)
62
+ project_domain_name (ENV['OS_PROJECT_DOMAIN_NAME'] || @@project_domain_name)
55
63
  end
56
64
  end
57
65
  end
@@ -4,7 +4,7 @@ module Kaname
4
4
  class Resource
5
5
  class << self
6
6
  def yaml(filename = 'keystone.yml')
7
- if File.exists?(filename)
7
+ if File.exist?(filename)
8
8
  @_yaml ||= expand_all_tenants(YAML.load_file(filename))
9
9
  end
10
10
  end
@@ -1,3 +1,3 @@
1
1
  module Kaname
2
- VERSION = "0.6.2"
2
+ VERSION = "0.8.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kaname
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - SHIBATA Hiroshi
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-10 00:00:00.000000000 Z
11
+ date: 2020-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yao
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.3
19
+ version: 0.13.4
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.3.3
26
+ version: 0.13.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: diffy
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 1.0.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 1.0.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: thor
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -182,7 +182,7 @@ homepage: https://github.com/yaocloud/kaname
182
182
  licenses:
183
183
  - MIT
184
184
  metadata: {}
185
- post_install_message:
185
+ post_install_message:
186
186
  rdoc_options: []
187
187
  require_paths:
188
188
  - lib
@@ -197,9 +197,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
197
197
  - !ruby/object:Gem::Version
198
198
  version: '0'
199
199
  requirements: []
200
- rubyforge_project:
201
- rubygems_version: 2.5.2
202
- signing_key:
200
+ rubygems_version: 3.0.6
201
+ signing_key:
203
202
  specification_version: 4
204
203
  summary: Identity configuration tool for OpenStack.
205
204
  test_files: []