kaname 0.6.2 → 0.8.1
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 +5 -5
- data/.gitignore +1 -0
- data/.travis.yml +2 -3
- data/README.md +1 -1
- data/kaname.gemspec +2 -2
- data/lib/kaname/adapter/read_and_write.rb +7 -15
- data/lib/kaname/adapter/read_only.rb +10 -2
- data/lib/kaname/cli.rb +1 -1
- data/lib/kaname/config.rb +31 -23
- data/lib/kaname/resource.rb +1 -1
- data/lib/kaname/version.rb +1 -1
- metadata +10 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 90d10babee7819939e06b5e30de7e45874695795286f484383288724f885004b
|
4
|
+
data.tar.gz: 387231fe536276850ce78b9ea8567a8f26cad09cdb7dfbd5b28c47594400a18f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b379ed4b0ac3d5f224ee3a445589d09879775d778655bc4c1805da626509bc0fcc13f434830692d95593c293cd36c46b6811c2ed5aa73e0fb50a63795a628568
|
7
|
+
data.tar.gz: 71131ed96229fd43d4b7db03df9469b746ab5b110e22777ae4e8cd06d8d193a8a902201db480410bcc3bf274777d920503d4233e54c6b86c5db21ec1dbb3acd0
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
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"
|
data/kaname.gemspec
CHANGED
@@ -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.
|
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
|
-
|
28
|
-
|
29
|
-
url = URI.parse("#{endpoint}/OS-KSCRUD/users/#{me.id}")
|
22
|
+
client= Yao.default_client.pool['identity']
|
30
23
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
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.
|
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 ||=
|
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
|
data/lib/kaname/cli.rb
CHANGED
@@ -29,7 +29,7 @@ module Kaname
|
|
29
29
|
end
|
30
30
|
|
31
31
|
if Kaname::Resource.yaml
|
32
|
-
diffs =
|
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"
|
data/lib/kaname/config.rb
CHANGED
@@ -3,12 +3,13 @@ require 'yaml'
|
|
3
3
|
|
4
4
|
module Kaname
|
5
5
|
class Config
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
36
|
-
@@tenant
|
37
|
-
@@username
|
38
|
-
@@password
|
39
|
-
@@
|
40
|
-
@@client_cert
|
41
|
-
@@client_key
|
42
|
-
@@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
|
49
|
-
tenant_name @@tenant
|
50
|
-
username
|
51
|
-
password
|
52
|
-
|
53
|
-
|
54
|
-
|
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
|
data/lib/kaname/resource.rb
CHANGED
data/lib/kaname/version.rb
CHANGED
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.
|
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:
|
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.
|
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.
|
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:
|
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:
|
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
|
-
|
201
|
-
|
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: []
|