conjur-asset-host-factory 1.0.0 → 1.1.0
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 +4 -4
- data/lib/conjur-asset-host-factory-version.rb +1 -1
- data/lib/conjur/api/host_factories.rb +33 -13
- data/lib/conjur/command/host_factories.rb +11 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd29397edddda0f79be357cdbe3b49c6868e9e5c
|
4
|
+
data.tar.gz: 592e45e7862422b2bc162ec797c5d45f756aeacd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a282dd21436c06d180575e127643e8a05735ab6667dbdc3151d90fa8ecf8f32319b9da0c4800e5a890ce0f1628ab43f4ad6602bd8b9afdc0c3b9ba4cda27a11
|
7
|
+
data.tar.gz: 386db30d18c70b7b81c82c7b8055e0ea7d20812ad320362f94323c0207560868e60be01dcfdb72842c9df67af839ef2a3ae7c0a5a07e616783751104201c05d9
|
@@ -22,14 +22,27 @@ require 'conjur/host_factory'
|
|
22
22
|
|
23
23
|
module Conjur
|
24
24
|
class API
|
25
|
+
class << self
|
26
|
+
# Creates a host and returns the response Hash.
|
27
|
+
def host_factory_create_host token, id, options = {}
|
28
|
+
token = token.token if token.is_a?(HostFactoryToken)
|
29
|
+
http_options = {
|
30
|
+
headers: { authorization: %Q(Token token="#{token}") }
|
31
|
+
}
|
32
|
+
response = RestClient::Resource.new(Conjur::API.host_factory_asset_host, http_options)["hosts"].post(options.merge(id: id)).body
|
33
|
+
JSON.parse(response)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
25
37
|
# Options:
|
26
38
|
# +layers+ list of host factory layers
|
27
|
-
# +roleid+ host factory role
|
39
|
+
# +roleid+ host factory role id
|
40
|
+
# +role+ host factory role. If this is provided, it is converted to roleid.
|
28
41
|
def create_host_factory(id, options = {})
|
29
42
|
if options[:layers]
|
30
43
|
options[:layers] = options[:layers].map do |layer|
|
31
44
|
if layer.is_a?(Conjur::Layer)
|
32
|
-
layer.
|
45
|
+
layer.id
|
33
46
|
elsif layer.is_a?(String)
|
34
47
|
layer
|
35
48
|
else
|
@@ -37,6 +50,9 @@ module Conjur
|
|
37
50
|
end
|
38
51
|
end
|
39
52
|
end
|
53
|
+
if role = options.delete(:role)
|
54
|
+
options[:roleid] = role.roleid
|
55
|
+
end
|
40
56
|
log do |logger|
|
41
57
|
logger << "Creating host_factory #{id}"
|
42
58
|
unless options.blank?
|
@@ -53,21 +69,25 @@ module Conjur
|
|
53
69
|
Conjur::HostFactory.new(Conjur::API.host_factory_asset_host, credentials)[fully_escape(id)]
|
54
70
|
end
|
55
71
|
|
72
|
+
def revoke_host_factory_token token
|
73
|
+
token = token.token if token.is_a?(Conjur::HostFactoryToken)
|
74
|
+
RestClient::Resource.new(Conjur::API.host_factory_asset_host, credentials)["tokens/#{token}"].delete
|
75
|
+
end
|
76
|
+
|
77
|
+
def show_host_factory_token token
|
78
|
+
token = token.token if token.is_a?(Conjur::HostFactoryToken)
|
79
|
+
attrs = JSON.parse(RestClient::Resource.new(Conjur::API.host_factory_asset_host, credentials)["tokens/#{token}"].get.body)
|
80
|
+
Conjur::HostFactoryToken.new(Conjur::API.host_factory_asset_host, credentials)["tokens"][attrs['token']].tap do |token|
|
81
|
+
token.attributes = attrs
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
# Creates a Host and returns a Host object.
|
56
86
|
def host_factory_create_host token, id, options = {}
|
57
|
-
|
58
|
-
http_options = {
|
59
|
-
headers: { authorization: %Q(Token token="#{token}") }
|
60
|
-
}
|
61
|
-
response = RestClient::Resource.new(Conjur::API.host_factory_asset_host, http_options)["hosts"].post(options.merge(id: id)).body
|
62
|
-
attributes = JSON.parse(response)
|
87
|
+
attributes = self.class.host_factory_create_host token, id, options
|
63
88
|
Conjur::Host.new(Conjur::API.core_asset_host, credentials)["hosts"][fully_escape attributes['id']].tap do |host|
|
64
89
|
host.attributes = attributes
|
65
90
|
end
|
66
91
|
end
|
67
|
-
|
68
|
-
def revoke_host_factory_token token
|
69
|
-
token = token.token if token.is_a?(Conjur::HostFactoryToken)
|
70
|
-
RestClient::Resource.new(Conjur::API.host_factory_asset_host, credentials)["tokens/#{token}"].delete
|
71
|
-
end
|
72
92
|
end
|
73
93
|
end
|
@@ -132,6 +132,16 @@ By default, this command creates one token. Optionally, it can be used to create
|
|
132
132
|
puts "Token revoked"
|
133
133
|
end
|
134
134
|
end
|
135
|
+
|
136
|
+
tokens.desc "Show a token"
|
137
|
+
tokens.arg_name "token"
|
138
|
+
tokens.command :show do |c|
|
139
|
+
c.action do |global_options,options,args|
|
140
|
+
token = require_arg(args, 'token')
|
141
|
+
|
142
|
+
display api.show_host_factory_token(token), options
|
143
|
+
end
|
144
|
+
end
|
135
145
|
end
|
136
146
|
|
137
147
|
hf.desc "Operations on hosts"
|
@@ -143,7 +153,7 @@ By default, this command creates one token. Optionally, it can be used to create
|
|
143
153
|
token = require_arg(args, 'token')
|
144
154
|
id = require_arg(args, 'host-id')
|
145
155
|
|
146
|
-
host =
|
156
|
+
host = Conjur::API.host_factory_create_host token, id, options
|
147
157
|
display host
|
148
158
|
end
|
149
159
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: conjur-asset-host-factory
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Gilpin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: conjur-api
|