nitos_testbed_rc 1.0.0.pre.5 → 1.0.0.pre.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +18 -3
- data/bin/cm_proxy +14 -6
- data/bin/frisbee_proxy +14 -6
- data/lib/nitos_testbed_rc/user.rb +6 -4
- data/lib/version.rb +1 -1
- data/nitos_testbed_rc.gemspec +1 -0
- metadata +18 -2
data/README.md
CHANGED
@@ -35,7 +35,8 @@ Use omf_cert.rb script to generate the following certificates and place them on
|
|
35
35
|
% mkdir /root/.omf/trusted_roots
|
36
36
|
% cd /root/.omf
|
37
37
|
|
38
|
-
Create a root certificate (change DOMAIN)
|
38
|
+
Create a root certificate (change DOMAIN).
|
39
|
+
Importand!!! If you already have a root certificate (probably created while installing omf_sfa) DO NOT create this certificate again and use the old one instead.
|
39
40
|
|
40
41
|
% ruby omf_cert.rb --email root@DOMAIN -o /root/.omf/trusted_roots/root.pem --duration 5000000 create_root
|
41
42
|
|
@@ -49,7 +50,7 @@ Create a certificate for cm_proxy of NTRC (change DOMAIN, XMPP_DOMAIN and if you
|
|
49
50
|
|
50
51
|
Create a certificate for frisbee_proxy of NTRC (change DOMAIN, XMPP_DOMAIN and if you wish the output file names).
|
51
52
|
|
52
|
-
% ruby omf_cert.rb -o
|
53
|
+
% ruby omf_cert.rb -o frisbee_factory.pem --email frisbee_factory@DOMAIN --resource-type frisbee_factory --resource-id xmpp://frisbee_factory@XMPP_DOMAIN --root /root/.omf/trusted_roots/root.pem --duration 50000000 create_resource
|
53
54
|
|
54
55
|
Create a certificate for the omf6 script, this certificate is inside the directory '~/.omf', every user of the testbed should have his own certificate in order to use omf6 script (change DOMAIN, USERNAME and if you wish the output file names).
|
55
56
|
|
@@ -161,7 +162,21 @@ Change configuration file '~/.omf/etc/user_proxy_conf.yaml', which is related to
|
|
161
162
|
Run proxies
|
162
163
|
-----------
|
163
164
|
|
164
|
-
|
165
|
+
To start/stop/restart the upstart service of nitos_testbed_rc use:
|
166
|
+
|
167
|
+
% start ntrc
|
168
|
+
% stop ntrc
|
169
|
+
% restart ntrc
|
170
|
+
|
171
|
+
Starting ntrc as an upstart will generate the following log files:
|
172
|
+
|
173
|
+
- user rc: /var/log/upstart/ntrc_user.log
|
174
|
+
|
175
|
+
- frisbee rc: /var/log/upstart/ntrc_frisbee.log
|
176
|
+
|
177
|
+
- cm rc: /var/log/upstart/ntrc_cm.log
|
178
|
+
|
179
|
+
Alternatively (mostly for debugging reasons) you can execute all proxies with one command:
|
165
180
|
|
166
181
|
% run_proxies
|
167
182
|
|
data/bin/cm_proxy
CHANGED
@@ -77,14 +77,22 @@ class CmPDP
|
|
77
77
|
return msg
|
78
78
|
end
|
79
79
|
|
80
|
+
if acc == 'root'
|
81
|
+
debug "AUTH PASSED"
|
82
|
+
msg.properties.state.node = node[:resources].first
|
83
|
+
return msg
|
84
|
+
end
|
85
|
+
|
80
86
|
node = node[:resources].first
|
81
87
|
lease = nil
|
82
|
-
node[:leases].
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
+
unless node[:leases].nil?
|
89
|
+
node[:leases].each do |l|
|
90
|
+
l = l[:lease]
|
91
|
+
next if l[:account][:name] != acc
|
92
|
+
if Time.parse(l[:valid_from]) <= Time.now && Time.parse(l[:valid_until]) >= Time.now
|
93
|
+
lease = l
|
94
|
+
break
|
95
|
+
end
|
88
96
|
end
|
89
97
|
end
|
90
98
|
|
data/bin/frisbee_proxy
CHANGED
@@ -81,14 +81,22 @@ class FrisbeePDP
|
|
81
81
|
return msg
|
82
82
|
end
|
83
83
|
|
84
|
+
if acc == 'root'
|
85
|
+
debug "AUTH PASSED"
|
86
|
+
msg.properties.state.node = node
|
87
|
+
return msg
|
88
|
+
end
|
89
|
+
|
84
90
|
node = node[:resources].first
|
85
91
|
lease = nil
|
86
|
-
node[:leases].
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
+
unless node[:leases].nil?
|
93
|
+
node[:leases].each do |l|
|
94
|
+
l = l[:lease]
|
95
|
+
next if l[:account][:name] != acc
|
96
|
+
if Time.parse(l[:valid_from]) <= Time.now && Time.parse(l[:valid_until]) >= Time.now
|
97
|
+
lease = l
|
98
|
+
break
|
99
|
+
end
|
92
100
|
end
|
93
101
|
end
|
94
102
|
|
@@ -169,8 +169,8 @@ module OmfRc::ResourceProxy::User
|
|
169
169
|
}, :ALL)
|
170
170
|
else #if msg!=0 then the application failed to complete
|
171
171
|
path = "/home/#{res.property.username}/.ssh/"
|
172
|
-
if File.exists?("#{path}/
|
173
|
-
file = File.open("#{path}/
|
172
|
+
if File.exists?("#{path}/id_rsa.pub") && File.exists?("#{path}/id_rsa")#if keys exist just read the pub_key for the inform
|
173
|
+
file = File.open("#{path}/id_rsa.pub", "rb")
|
174
174
|
pub_key = file.read
|
175
175
|
file.close
|
176
176
|
else #if keys do not exist create them and then inform
|
@@ -183,7 +183,9 @@ module OmfRc::ResourceProxy::User
|
|
183
183
|
FileUtils.mkdir_p(path)
|
184
184
|
end
|
185
185
|
|
186
|
-
|
186
|
+
pub_key = pub_key.to_pem
|
187
|
+
|
188
|
+
File.write("#{path}/id_rsa.pub", pub_key)
|
187
189
|
File.write("#{path}/id_rsa", key.to_pem)
|
188
190
|
end
|
189
191
|
res.inform(:status, {
|
@@ -193,7 +195,7 @@ module OmfRc::ResourceProxy::User
|
|
193
195
|
exit_code: msg,
|
194
196
|
msg: msg,
|
195
197
|
uid: res.uid, # do we really need this? Should be identical to 'src'
|
196
|
-
pub_key: pub_key
|
198
|
+
pub_key: pub_key
|
197
199
|
}, :ALL)
|
198
200
|
end
|
199
201
|
else
|
data/lib/version.rb
CHANGED
data/nitos_testbed_rc.gemspec
CHANGED
@@ -22,5 +22,6 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.add_runtime_dependency "omf_common", "~> 6.1.3"
|
23
23
|
s.add_runtime_dependency "omf_rc", "~> 6.1.3"
|
24
24
|
s.add_runtime_dependency "nokogiri", "~> 1.6.0"
|
25
|
+
s.add_runtime_dependency "progress_bar", "~> 1.0.3"
|
25
26
|
s.add_development_dependency "net-ssh", "~> 2.8.0"
|
26
27
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nitos_testbed_rc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.pre.
|
4
|
+
version: 1.0.0.pre.6
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-11-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: omf_common
|
@@ -59,6 +59,22 @@ dependencies:
|
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 1.6.0
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: progress_bar
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.0.3
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.0.3
|
62
78
|
- !ruby/object:Gem::Dependency
|
63
79
|
name: net-ssh
|
64
80
|
requirement: !ruby/object:Gem::Requirement
|