nitos_testbed_rc 1.0.0.pre.2 → 1.0.0.pre.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +164 -1
- data/bin/cm_proxy +6 -4
- data/bin/install_ntrc +20 -1
- data/bin/omf6 +2 -1
- data/etc/cm_proxy_conf.yaml +3 -3
- data/etc/frisbee_proxy_conf.yaml +3 -3
- data/etc/user_proxy_conf.yaml +3 -3
- data/init/ntrc.conf +6 -0
- data/init/ntrc_cm.conf +14 -0
- data/init/ntrc_frisbee.conf +14 -0
- data/init/ntrc_user.conf +14 -0
- data/init/run_ntrc.sh +86 -0
- data/lib/version.rb +1 -1
- metadata +7 -2
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Nitos Testbed resource controllers
|
1
|
+
Nitos Testbed resource controllers (NTRC)
|
2
2
|
=================
|
3
3
|
|
4
4
|
Contains:
|
@@ -14,3 +14,166 @@ save and load images to nodes.
|
|
14
14
|
|
15
15
|
These tools are under development. Unpredictable behaviour is to be expected untill
|
16
16
|
a stable version is provided.
|
17
|
+
|
18
|
+
Installation
|
19
|
+
------------
|
20
|
+
|
21
|
+
First you need to install the gem
|
22
|
+
|
23
|
+
% gem install nitos_testbed_rc --pre
|
24
|
+
|
25
|
+
Then you need to run the install_ntrc script to generate the configuration files.
|
26
|
+
|
27
|
+
% install_ntrc
|
28
|
+
|
29
|
+
Create certificates
|
30
|
+
-------------------
|
31
|
+
|
32
|
+
Use omf_cert.rb script to generate the following certificates and place them on directories '/root/.omf' and /root/.omf.
|
33
|
+
|
34
|
+
% mkdir /root/.omf
|
35
|
+
% mkdir /root/.omf/trusted_roots
|
36
|
+
% cd /root/.omf
|
37
|
+
|
38
|
+
Create a root certificate (change DOMAIN)
|
39
|
+
|
40
|
+
% ruby omf_cert.rb --email root@DOMAIN -o /root/.omf/trusted_roots/root.pem --duration 5000000 create_root
|
41
|
+
|
42
|
+
Create a certificate for user_proxy of NTRC (change DOMAIN, XMPP_DOMAIN and if you wish the output file names).
|
43
|
+
|
44
|
+
% ruby omf_cert.rb -o user_factory.pem --email user_factory@DOMAIN --resource-type user_factory --resource-id xmpp://user_factory@XMPP_DOMAIN --root /root/.omf/trusted_roots/root.pem --duration 50000000 create_resource
|
45
|
+
|
46
|
+
Create a certificate for cm_proxy of NTRC (change DOMAIN, XMPP_DOMAIN and if you wish the output file names).
|
47
|
+
|
48
|
+
% ruby omf_cert.rb -o cm_factory.pem --email cm_factory@DOMAIN --resource-type cm_factory --resource-id xmpp://cm_factory@XMPP_DOMAIN --root /root/.omf/trusted_roots/root.pem --duration 50000000 create_resource
|
49
|
+
|
50
|
+
Create a certificate for frisbee_proxy of NTRC (change DOMAIN, XMPP_DOMAIN and if you wish the output file names).
|
51
|
+
|
52
|
+
% ruby omf_cert.rb -o cm_factory.pem --email cm_factory@DOMAIN --resource-type cm_factory --resource-id xmpp://cm_factory@XMPP_DOMAIN --root /root/.omf/trusted_roots/root.pem --duration 50000000 create_resource
|
53
|
+
|
54
|
+
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
|
+
% ./omf_cert.rb -o user_cert.pem --email root@DOMAIN --user root --root ~/.omf/trusted_roots/root.pem --duration 50000000 --geni_uri URI:urn:publicid:IDN+DOMAIN+user+USERNAME create_user
|
57
|
+
|
58
|
+
Configuration files
|
59
|
+
-------------------
|
60
|
+
|
61
|
+
Change configuration file '/etc/nitos_testbed/user_proxy_conf.yaml', which is related to user_proxy of NTRC. For example:
|
62
|
+
|
63
|
+
#xmpp details
|
64
|
+
:xmpp:
|
65
|
+
:username: user_proxy
|
66
|
+
:password: pw
|
67
|
+
:server: DOMAIN
|
68
|
+
#x509 certificates to be used by user_proxy
|
69
|
+
:auth:
|
70
|
+
:root_cert_dir: ~/.omf/trusted_roots
|
71
|
+
:entity_cert: ~/.omf/user_factory.pem
|
72
|
+
:entity_key: ~/.omf/user_factory.pkey
|
73
|
+
#operation mode for OmfCommon.init (development, production, etc)
|
74
|
+
:operationMode: development
|
75
|
+
|
76
|
+
Change configuration file '/etc/nitos_testbed/cm_proxy_conf.yaml', which is related to cm_proxy of NTRC. For example:
|
77
|
+
|
78
|
+
#details to be used for the connection to the xmpp server
|
79
|
+
:xmpp:
|
80
|
+
:username: cm_proxy
|
81
|
+
:password: pw
|
82
|
+
:server: DOMAIN
|
83
|
+
#x509 certificates to be used by cm_proxy
|
84
|
+
:auth:
|
85
|
+
:root_cert_dir: ~/.omf/trusted_roots
|
86
|
+
:entity_cert: ~/.omf/cm_factory.pem
|
87
|
+
:entity_key: ~/.omf/cm_factory.pkey
|
88
|
+
|
89
|
+
#time (in seconds) before timeout error occurs
|
90
|
+
:timeout: 80
|
91
|
+
#operation mode for OmfCommon.init (development, production, etc)
|
92
|
+
:operationMode: development
|
93
|
+
#testbed xmpp topic
|
94
|
+
:testbedTopic: am_controller
|
95
|
+
|
96
|
+
Change configuration file '/etc/nitos_testbed/frisbee_proxy_conf.yaml', which is related to frisbee_proxy of NTRC. For example:
|
97
|
+
|
98
|
+
#xmpp details
|
99
|
+
:xmpp:
|
100
|
+
:username: frisbee_proxy
|
101
|
+
:password: pw
|
102
|
+
:server: DOMAIN
|
103
|
+
#x509 certificates to be used by user_proxy
|
104
|
+
:auth:
|
105
|
+
:root_cert_dir: ~/.omf/trusted_roots
|
106
|
+
:entity_cert: ~/.omf/frisbee_factory.pem
|
107
|
+
:entity_key: ~/.omf/frisbee_factory.pkey
|
108
|
+
|
109
|
+
#operation Mode for OmfCommon.init (development, production, etc)
|
110
|
+
:operationMode: development
|
111
|
+
|
112
|
+
#testbed xmpp topic
|
113
|
+
:testbedTopic: am_controller
|
114
|
+
|
115
|
+
#frisbee and imagezip configuration
|
116
|
+
:frisbee:
|
117
|
+
# Directory images are stored
|
118
|
+
:imageDir: /var/lib/omf-images-6
|
119
|
+
#defaultImage: orbit-baseline
|
120
|
+
:defaultImage: baseline.ndz
|
121
|
+
|
122
|
+
# max bandwidth for frisbee server
|
123
|
+
:bandwidth: 50000000
|
124
|
+
|
125
|
+
# Multicast address to use for servicing images
|
126
|
+
#mcAddress: 224.0.0.2
|
127
|
+
:mcAddress: 224.0.0.1
|
128
|
+
# Using ports starting at ...
|
129
|
+
:startPort: 7000
|
130
|
+
|
131
|
+
# Time out frisbee server if nobody requested it within TIMEOUT sec
|
132
|
+
:timeout: 3600
|
133
|
+
|
134
|
+
# Directory to find frisbee daemons
|
135
|
+
:frisbeedBin: /usr/sbin/frisbeed
|
136
|
+
:frisbeeBin: /usr/sbin/frisbee
|
137
|
+
:imagezipClientBin: /usr/bin/imagezip
|
138
|
+
:imagezipServerBin: /bin/nc
|
139
|
+
|
140
|
+
# Local interface to bind to for frisbee traffic
|
141
|
+
#multicastIF: 192.168.204.1
|
142
|
+
:multicastIF: 10.0.1.200
|
143
|
+
|
144
|
+
Change configuration file '~/.omf/etc/user_proxy_conf.yaml', which is related to omf6 script of NTRC, every user of the testbed should have his own configuration file in order to use omf6 script. For example:
|
145
|
+
|
146
|
+
:xmpp:
|
147
|
+
:script_user: script_user
|
148
|
+
:password: pw
|
149
|
+
:server: DOMAIN
|
150
|
+
:auth:
|
151
|
+
:root_cert_dir: ~/.omf/trusted_roots
|
152
|
+
:entity_cert: ~/.omf/user_cert.pem
|
153
|
+
:entity_key: ~/.omf/user_cert.pkey
|
154
|
+
#operation mode for OmfCommon.init (development, production, etc)
|
155
|
+
:operationMode: development
|
156
|
+
#omf script configuration
|
157
|
+
:omf_script:
|
158
|
+
#default last action on load and save commands (reset or shutdown)
|
159
|
+
:last_action: reset
|
160
|
+
|
161
|
+
Run proxies
|
162
|
+
-----------
|
163
|
+
|
164
|
+
You can execute all proxies with one command:
|
165
|
+
|
166
|
+
% run_proxies
|
167
|
+
|
168
|
+
Or you run proxies seperatly
|
169
|
+
|
170
|
+
% user_proxy
|
171
|
+
% cm_proxy
|
172
|
+
% frisbee_proxy
|
173
|
+
|
174
|
+
Run omf6 commands
|
175
|
+
-----------------
|
176
|
+
|
177
|
+
Now you can use omf6 script to execute omf6 related commands
|
178
|
+
|
179
|
+
% omf6 --help
|
data/bin/cm_proxy
CHANGED
@@ -77,10 +77,12 @@ class CmPDP
|
|
77
77
|
leases = l_msg.read_property("leases")[:resources]
|
78
78
|
leases.each do |l|
|
79
79
|
if Time.parse(l[:resource][:valid_from]) <= Time.now && Time.parse(l[:resource][:valid_until]) >= Time.now
|
80
|
-
l[:resource][:components].
|
81
|
-
|
82
|
-
|
83
|
-
|
80
|
+
unless l[:resource][:components].nil?
|
81
|
+
l[:resource][:components].each do |c|
|
82
|
+
if c[:component][:name] == node_name.to_s && l[:resource][:account][:name] == acc
|
83
|
+
lease = l
|
84
|
+
break #found the correct lease
|
85
|
+
end
|
84
86
|
end
|
85
87
|
end
|
86
88
|
end
|
data/bin/install_ntrc
CHANGED
@@ -4,6 +4,7 @@ require 'fileutils'
|
|
4
4
|
spec = Gem::Specification.find_by_name("nitos_testbed_rc")
|
5
5
|
gem_root = spec.gem_dir
|
6
6
|
config_path = "/etc/nitos_testbed_rc"
|
7
|
+
log_path = "/var/log/ntrc"
|
7
8
|
|
8
9
|
puts "Copying configuration files from '#{gem_root}'."
|
9
10
|
|
@@ -12,6 +13,11 @@ unless File.directory?(config_path)
|
|
12
13
|
FileUtils.mkdir_p(config_path)
|
13
14
|
end
|
14
15
|
|
16
|
+
unless File.directory?(log_path)
|
17
|
+
puts "Generating directory '#{log_path}'."
|
18
|
+
FileUtils.mkdir_p(log_path)
|
19
|
+
end
|
20
|
+
|
15
21
|
conf_files = []
|
16
22
|
conf_files << "cm_proxy_conf.yaml"
|
17
23
|
conf_files << "frisbee_proxy_conf.yaml"
|
@@ -24,7 +30,7 @@ conf_files.each do |file|
|
|
24
30
|
FileUtils.chmod 0644, "#{config_path}/#{file}"
|
25
31
|
end
|
26
32
|
|
27
|
-
config_path = "~/.omf/etc"
|
33
|
+
config_path = File.expand_path("~/.omf/etc")
|
28
34
|
unless File.directory?(config_path)
|
29
35
|
puts "Generating directory '#{config_path}'."
|
30
36
|
FileUtils.mkdir_p(config_path)
|
@@ -32,4 +38,17 @@ end
|
|
32
38
|
|
33
39
|
FileUtils.cp "#{gem_root}/etc/omf_script_conf.yaml", "#{config_path}/omf_script_conf.yaml"
|
34
40
|
FileUtils.chmod 0644, "#{config_path}/omf_script_conf.yaml"
|
41
|
+
|
42
|
+
puts "Copying initialization script 'run_ntrc.sh'."
|
43
|
+
FileUtils.cp "#{gem_root}/init/run_ntrc.sh", "/usr/local/bin/run_ntrc.sh"
|
44
|
+
|
45
|
+
FileUtils.cp "#{gem_root}/init/ntrc.conf", "/etc/init/ntrc.conf"
|
46
|
+
FileUtils.cp "#{gem_root}/init/ntrc_user.conf", "/etc/init/ntrc_user.conf"
|
47
|
+
FileUtils.cp "#{gem_root}/init/ntrc_frisbee.conf", "/etc/init/ntrc_frisbee.conf"
|
48
|
+
FileUtils.cp "#{gem_root}/init/ntrc_cm.conf", "/etc/init/ntrc_cm.conf"
|
49
|
+
puts "Upstart scripts has been installed."
|
50
|
+
puts "Execute 'start ntrc' to run all the proxies."
|
51
|
+
puts "Execute 'start ntrc_frisbee' to run frisbee proxy."
|
52
|
+
puts "Execute 'start ntrc_user' to run user proxy."
|
53
|
+
puts "Execute 'start ntrc_cm' to run cm proxy."
|
35
54
|
puts "done."
|
data/bin/omf6
CHANGED
@@ -3,8 +3,9 @@ require 'rubygems'
|
|
3
3
|
require 'time'
|
4
4
|
require 'omf_common'
|
5
5
|
require 'optparse'
|
6
|
+
CONF_PATH = '~/.omf/etc/omf_script_conf.yaml'
|
6
7
|
|
7
|
-
@config = YAML.load_file(
|
8
|
+
@config = YAML.load_file(File.expand_path(CONF_PATH))
|
8
9
|
# @config = YAML.load_file(File.join(File.dirname(File.expand_path(__FILE__)), '.../etc/omf_script_conf.yaml'))
|
9
10
|
@auth = @config[:auth]
|
10
11
|
@xmpp = @config[:xmpp]
|
data/etc/cm_proxy_conf.yaml
CHANGED
@@ -5,9 +5,9 @@
|
|
5
5
|
:server: testserver
|
6
6
|
#x509 certificates to be used by cm_proxy
|
7
7
|
:auth:
|
8
|
-
:root_cert_dir:
|
9
|
-
:entity_cert:
|
10
|
-
:entity_key:
|
8
|
+
:root_cert_dir: /root/.omf/trusted_roots
|
9
|
+
:entity_cert: /root/.omf/cm_factory.pem
|
10
|
+
:entity_key: /root/.omf/cm_factory.pkey
|
11
11
|
|
12
12
|
#time (in seconds) before timeout error occurs
|
13
13
|
:timeout: 80
|
data/etc/frisbee_proxy_conf.yaml
CHANGED
@@ -5,9 +5,9 @@
|
|
5
5
|
:server: testserver
|
6
6
|
#x509 certificates to be used by user_proxy
|
7
7
|
:auth:
|
8
|
-
:root_cert_dir:
|
9
|
-
:entity_cert:
|
10
|
-
:entity_key:
|
8
|
+
:root_cert_dir: /root/.omf/trusted_roots
|
9
|
+
:entity_cert: /root/.omf/frisbee_factory.pem
|
10
|
+
:entity_key: /root/.omf/frisbee_factory.pkey
|
11
11
|
|
12
12
|
#operation Mode for OmfCommon.init (development, production, etc)
|
13
13
|
:operationMode: development
|
data/etc/user_proxy_conf.yaml
CHANGED
@@ -5,8 +5,8 @@
|
|
5
5
|
:server: testserver
|
6
6
|
#x509 certificates to be used by user_proxy
|
7
7
|
:auth:
|
8
|
-
:root_cert_dir:
|
9
|
-
:entity_cert:
|
10
|
-
:entity_key:
|
8
|
+
:root_cert_dir: /root/.omf/trusted_roots
|
9
|
+
:entity_cert: /root/.omf/user_factory.pem
|
10
|
+
:entity_key: /root/.omf/user_factory.pkey
|
11
11
|
#operation mode for OmfCommon.init (development, production, etc)
|
12
12
|
:operationMode: development
|
data/init/ntrc.conf
ADDED
data/init/ntrc_cm.conf
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
description "NITOS proxy for cm controller of NITOS Testbed resource controllers pack"
|
2
|
+
author "NITOS <nitlab@inf.uth.gr>"
|
3
|
+
|
4
|
+
start on starting ntrc
|
5
|
+
stop on stopping ntrc
|
6
|
+
|
7
|
+
env DAEMON=/usr/local/bin/run_ntrc.sh
|
8
|
+
|
9
|
+
respawn
|
10
|
+
|
11
|
+
script
|
12
|
+
PATH=$PATH:/usr/bin:/usr/local/bin
|
13
|
+
exec $DAEMON 3 2>&1
|
14
|
+
end script
|
@@ -0,0 +1,14 @@
|
|
1
|
+
description "NITOS proxy for frisbee controller of NITOS Testbed resource controllers pack"
|
2
|
+
author "NITOS <nitlab@inf.uth.gr>"
|
3
|
+
|
4
|
+
start on starting ntrc
|
5
|
+
stop on stopping ntrc
|
6
|
+
|
7
|
+
env DAEMON=/usr/local/bin/run_ntrc.sh
|
8
|
+
|
9
|
+
respawn
|
10
|
+
|
11
|
+
script
|
12
|
+
PATH=$PATH:/usr/bin:/usr/local/bin
|
13
|
+
exec $DAEMON 2 2>&1
|
14
|
+
end script
|
data/init/ntrc_user.conf
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
description "NITOS proxy for user controller of NITOS Testbed resource controllers pack"
|
2
|
+
author "NITOS <nitlab@inf.uth.gr>"
|
3
|
+
|
4
|
+
start on starting ntrc
|
5
|
+
stop on stopping ntrc
|
6
|
+
|
7
|
+
env DAEMON=/usr/local/bin/run_ntrc.sh
|
8
|
+
|
9
|
+
respawn
|
10
|
+
|
11
|
+
script
|
12
|
+
PATH=$PATH:/usr/bin:/usr/local/bin
|
13
|
+
exec $DAEMON 1 2>&1
|
14
|
+
end script
|
data/init/run_ntrc.sh
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
# Startup wrapper for the nitos_testbed_rc
|
4
|
+
# detects system-wide RVM installations & Ruby from distro packages
|
5
|
+
|
6
|
+
# system-wide RVM must be installed using
|
7
|
+
# '\curl -L https://get.rvm.io | sudo bash -s stable'
|
8
|
+
|
9
|
+
die() { echo "ERROR: $@" 1>&2 ; exit 1; }
|
10
|
+
|
11
|
+
RUBY_VER="ruby-1.9.3-p448"
|
12
|
+
RUBY_BIN_SUFFIX=""
|
13
|
+
|
14
|
+
if [ `id -u` != "0" ]; then
|
15
|
+
die "This script is intended to be run as 'root'"
|
16
|
+
fi
|
17
|
+
|
18
|
+
if [ -e /etc/profile.d/rvm.sh ]; then
|
19
|
+
# use RVM if installed
|
20
|
+
echo "System-wide RVM installation detected"
|
21
|
+
source /etc/profile.d/rvm.sh
|
22
|
+
if [[ $? != 0 ]] ; then
|
23
|
+
die "Failed to initialize RVM environment"
|
24
|
+
fi
|
25
|
+
# rvm use $RUBY_VER@omf > /dev/null
|
26
|
+
# if [[ $? != 0 ]] ; then
|
27
|
+
# die "$RUBY_VER with gemset 'omf' is not installed in your RVM"
|
28
|
+
# fi
|
29
|
+
ruby -v | grep 1.9.3 > /dev/null
|
30
|
+
if [[ $? != 0 ]] ; then
|
31
|
+
die "Could not run Ruby 1.9.3"
|
32
|
+
fi
|
33
|
+
gem list | grep nitos_testbed_rc > /dev/null
|
34
|
+
if [[ $? != 0 ]] ; then
|
35
|
+
die "The nitos_testbed_rc gem is not installed in the 'omf' gemset"
|
36
|
+
fi
|
37
|
+
else
|
38
|
+
# check for distro ruby when no RVM was found
|
39
|
+
echo "No system-wide RVM installation detected"
|
40
|
+
ruby -v | grep 1.9.3 > /dev/null
|
41
|
+
if [[ $? != 0 ]] ; then
|
42
|
+
ruby1.9.3 -v | grep 1.9.3 > /dev/null
|
43
|
+
if [[ $? != 0 ]] ; then
|
44
|
+
die "Could not run system Ruby 1.9.3. No useable Ruby installation found."
|
45
|
+
fi
|
46
|
+
RUBY_BIN_SUFFIX="1.9.3"
|
47
|
+
fi
|
48
|
+
echo "Ruby 1.9.3 found"
|
49
|
+
gem$RUBY_BIN_SUFFIX list | grep nitos_testbed_rc > /dev/null
|
50
|
+
if [[ $? != 0 ]] ; then
|
51
|
+
die "The nitos_testbed_rc gem is not installed"
|
52
|
+
fi
|
53
|
+
fi
|
54
|
+
|
55
|
+
EXEC=""
|
56
|
+
|
57
|
+
case "$1" in
|
58
|
+
|
59
|
+
1) echo "Starting user_proxy"
|
60
|
+
EXEC=`which user_proxy`
|
61
|
+
if [[ $? != 0 ]] ; then
|
62
|
+
die "could not find user_proxy executable"
|
63
|
+
fi
|
64
|
+
;;
|
65
|
+
2) echo "Starting frisbee_proxy"
|
66
|
+
EXEC=`which frisbee_proxy`
|
67
|
+
if [[ $? != 0 ]] ; then
|
68
|
+
die "could not find frisbee_proxy executable"
|
69
|
+
fi
|
70
|
+
;;
|
71
|
+
3) echo "Starting cm_proxy"
|
72
|
+
EXEC=`which cm_proxy`
|
73
|
+
if [[ $? != 0 ]] ; then
|
74
|
+
die "could not find cm_proxy executable"
|
75
|
+
fi
|
76
|
+
;;
|
77
|
+
*) echo "Starting run_proxy"
|
78
|
+
EXEC=`which run_proxy`
|
79
|
+
if [[ $? != 0 ]] ; then
|
80
|
+
die "could not find run_proxy executable"
|
81
|
+
fi
|
82
|
+
;;
|
83
|
+
esac
|
84
|
+
|
85
|
+
echo "Running $EXEC"
|
86
|
+
exec /usr/bin/env ruby$RUBY_BIN_SUFFIX $EXEC
|
data/lib/version.rb
CHANGED
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.4
|
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-07-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: omf_common
|
@@ -101,6 +101,11 @@ files:
|
|
101
101
|
- etc/frisbee_proxy_conf.yaml
|
102
102
|
- etc/omf_script_conf.yaml
|
103
103
|
- etc/user_proxy_conf.yaml
|
104
|
+
- init/ntrc.conf
|
105
|
+
- init/ntrc_cm.conf
|
106
|
+
- init/ntrc_frisbee.conf
|
107
|
+
- init/ntrc_user.conf
|
108
|
+
- init/run_ntrc.sh
|
104
109
|
- lib/nitos_testbed_rc.rb
|
105
110
|
- lib/nitos_testbed_rc/cm_factory.rb
|
106
111
|
- lib/nitos_testbed_rc/frisbee.rb
|