omf_rc 6.0.0.pre.8 → 6.0.0.pre.9
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.
- data/bin/install_omf_rc +79 -0
- data/bin/omf_rc +52 -36
- data/config/config.yml +8 -0
- data/init/debian +51 -0
- data/init/fedora +54 -0
- data/init/run_omf_rc.sh +62 -0
- data/init/ubuntu +12 -0
- data/lib/omf_rc/omf_error.rb +5 -5
- data/lib/omf_rc/resource_factory.rb +7 -11
- data/lib/omf_rc/resource_proxy/abstract_resource.rb +327 -228
- data/lib/omf_rc/resource_proxy/application.rb +61 -56
- data/lib/omf_rc/resource_proxy/net.rb +2 -2
- data/lib/omf_rc/resource_proxy/node.rb +11 -2
- data/lib/omf_rc/resource_proxy/virtual_machine.rb +1 -1
- data/lib/omf_rc/resource_proxy/wlan.rb +2 -0
- data/lib/omf_rc/resource_proxy_dsl.rb +22 -1
- data/lib/omf_rc/util/common_tools.rb +2 -4
- data/lib/omf_rc/util/hostapd.rb +4 -3
- data/lib/omf_rc/util/ip.rb +8 -5
- data/lib/omf_rc/util/iw.rb +18 -8
- data/lib/omf_rc/util/sysfs.rb +14 -0
- data/lib/omf_rc/util/vmbuilder.rb +1 -1
- data/lib/omf_rc/util/wpa.rb +4 -3
- data/lib/omf_rc/version.rb +1 -1
- data/lib/omf_rc.rb +3 -1
- data/omf_rc.gemspec +4 -2
- data/test/omf_rc/message_process_error_spec.rb +3 -3
- data/test/omf_rc/resource_factory_spec.rb +14 -7
- data/test/omf_rc/resource_proxy/abstract_resource_spec.rb +47 -21
- data/test/omf_rc/resource_proxy/application_spec.rb +156 -119
- data/test/omf_rc/resource_proxy/mock_spec.rb +6 -1
- data/test/omf_rc/resource_proxy/node_spec.rb +32 -12
- data/test/omf_rc/resource_proxy_dsl_spec.rb +31 -19
- data/test/omf_rc/util/common_tools_spec.rb +8 -11
- data/test/omf_rc/util/ip_spec.rb +7 -1
- data/test/omf_rc/util/iw_spec.rb +18 -13
- data/test/omf_rc/util/mock_spec.rb +6 -1
- data/test/omf_rc/util/mod_spec.rb +17 -10
- data/test/test_helper.rb +3 -0
- metadata +51 -48
- data/config/omf_rc.yml +0 -70
- data/lib/omf_rc/resource_proxy/openflow_slice.rb +0 -79
- data/lib/omf_rc/resource_proxy/openflow_slice_factory.rb +0 -71
data/bin/install_omf_rc
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
abort "Please use Ruby 1.9.3 or higher" if RUBY_VERSION < "1.9.3"
|
4
|
+
|
5
|
+
require 'optparse'
|
6
|
+
require 'fileutils'
|
7
|
+
|
8
|
+
if Process.uid!=0
|
9
|
+
abort "You have to be root to install the OMF RC startup script and config file.
|
10
|
+
You also need to have the omf_rc gem installed as root and have RVM installed as root (if you don't use system ruby)."
|
11
|
+
end
|
12
|
+
|
13
|
+
options = {}
|
14
|
+
optparse = OptionParser.new do |opts|
|
15
|
+
opts.banner = "Usage: #{File.basename($PROGRAM_NAME)} [options]"
|
16
|
+
opts.on("-i", "--initscript", "Install init script to run the OMF RC on boot (as root)") do |i|
|
17
|
+
options[:init] = i
|
18
|
+
end
|
19
|
+
opts.on("-c", "--configfile", "Install config file template in /etc/omf_rc/config.yml") do |c|
|
20
|
+
options[:config] = c
|
21
|
+
end
|
22
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
23
|
+
puts opts
|
24
|
+
exit
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
optparse.parse!
|
29
|
+
if options.empty?
|
30
|
+
puts optparse
|
31
|
+
exit
|
32
|
+
end
|
33
|
+
|
34
|
+
spec = Gem::Specification.find_by_name("omf_rc")
|
35
|
+
gem_root = spec.gem_dir
|
36
|
+
|
37
|
+
if options[:config]
|
38
|
+
puts "Copying configuration file..."
|
39
|
+
FileUtils.mkdir_p "/etc/omf_rc"
|
40
|
+
FileUtils.cp "#{gem_root}/config/config.yml", "/etc/omf_rc/config.yml"
|
41
|
+
FileUtils.chmod 0644, "/etc/omf_rc/config.yml"
|
42
|
+
puts "done."
|
43
|
+
end
|
44
|
+
|
45
|
+
if options[:init]
|
46
|
+
puts "Detecting operating system..."
|
47
|
+
|
48
|
+
if !File.exist?("/etc/issue")
|
49
|
+
abort "Unknown or unsupported operating system. Cannot install init script."
|
50
|
+
end
|
51
|
+
|
52
|
+
os=`awk 'NR==1 {print $1}' /etc/issue`.chomp
|
53
|
+
|
54
|
+
if os.nil?
|
55
|
+
abort "Unknown or unsupported operating system. Cannot install init script."
|
56
|
+
end
|
57
|
+
|
58
|
+
puts "'#{os}' found"
|
59
|
+
|
60
|
+
FileUtils.cp "#{gem_root}/init/run_omf_rc.sh", "/usr/local/bin/run_omf_rc.sh"
|
61
|
+
|
62
|
+
case os
|
63
|
+
when "Ubuntu"
|
64
|
+
FileUtils.cp "#{gem_root}/init/ubuntu", "/etc/init/omf_rc.conf"
|
65
|
+
puts "Upstart script for Ubuntu has been installed. Execute 'start omf_rc' to run the daemon."
|
66
|
+
when "Debian"
|
67
|
+
FileUtils.cp "#{gem_root}/init/debian", "/etc/init.d/omf_rc"
|
68
|
+
`update-rc.d omf_rc defaults`
|
69
|
+
puts "Init script for Debian has been installed. Execute '/etc/init.d/omf_rc start' to run the daemon."
|
70
|
+
when "Fedora"
|
71
|
+
FileUtils.cp "#{gem_root}/init/fedora", "/etc/init.d/omf_rc"
|
72
|
+
`chkconfig --add omf_rc`
|
73
|
+
# older Fedora's don't use systemd
|
74
|
+
`systemctl --system daemon-reload` if File.exist?("/bin/systemctl")
|
75
|
+
puts "Init script for Fedora has been installed. Execute '/etc/init.d/omf_rc start' to run the daemon."
|
76
|
+
else
|
77
|
+
abort "OS '#{os}' is not supported. Cannot install init script."
|
78
|
+
end
|
79
|
+
end
|
data/bin/omf_rc
CHANGED
@@ -1,43 +1,42 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
abort "Please use Ruby 1.9.3 or higher" if RUBY_VERSION < "1.9.3"
|
4
|
+
|
5
|
+
require 'optparse'
|
6
|
+
require 'erb'
|
7
|
+
require 'socket'
|
8
|
+
|
4
9
|
require 'omf_rc'
|
5
10
|
require 'omf_rc/resource_factory'
|
6
|
-
$stdout.sync = true
|
7
|
-
|
8
|
-
options = {
|
9
|
-
uid: `hostname`.chomp
|
10
|
-
}
|
11
11
|
|
12
|
+
$stdout.sync = true
|
13
|
+
options = {}
|
12
14
|
executable_name = File.basename($PROGRAM_NAME)
|
13
15
|
oml_enabled = false
|
16
|
+
gem_version = Gem::Specification.find_by_name('omf_rc').version.to_s
|
14
17
|
|
15
18
|
begin
|
16
19
|
oml_enabled = OML4R::init(ARGV, :appName => executable_name) do |opts|
|
17
20
|
opts.banner = "usage: #{executable_name} [options]"
|
18
21
|
|
19
|
-
opts.on("-
|
20
|
-
options[:
|
22
|
+
opts.on("-c CONFIGFILE", "Configuration File") do |file|
|
23
|
+
options[:configfile] = file
|
21
24
|
end
|
22
25
|
|
23
|
-
opts.on("-
|
24
|
-
options[:
|
26
|
+
opts.on("-a ADVANCED_CONFIGFILE", "Advanced Configuration File") do |file|
|
27
|
+
options[:advanced_configfile] = file
|
25
28
|
end
|
26
29
|
|
27
|
-
opts.on("-
|
28
|
-
options[:
|
30
|
+
opts.on("-u URI", "Communication URI (xmpp://user:password@domain)") do |uri|
|
31
|
+
options[:uri] = uri
|
29
32
|
end
|
30
33
|
|
31
|
-
opts.on("-
|
32
|
-
options[:
|
34
|
+
opts.on("-e ENVIRONMENT", "Environment (development, production ...)") do |environment|
|
35
|
+
options[:environment] = environment
|
33
36
|
end
|
34
37
|
|
35
|
-
opts.on("-
|
36
|
-
options[:
|
37
|
-
end
|
38
|
-
|
39
|
-
opts.on("-l LOG_FILE_DIR", "Write log file to this folder") do |file_dir|
|
40
|
-
options[:log_file_dir] = file_dir
|
38
|
+
opts.on("-i UID", "UID of the resource, also becomes the pubsub topic of the resource, default to hostname") do |uid|
|
39
|
+
options[:uid] = uid
|
41
40
|
end
|
42
41
|
end
|
43
42
|
rescue => e
|
@@ -54,30 +53,47 @@ rescue => e
|
|
54
53
|
end
|
55
54
|
end
|
56
55
|
|
56
|
+
if !options[:configfile].nil?
|
57
|
+
cfg_options = YAML.load(ERB.new(File.read(options[:configfile])).result)
|
58
|
+
options = cfg_options.merge(options)
|
59
|
+
end
|
60
|
+
|
61
|
+
options[:uid] ||=`hostname`.chomp
|
62
|
+
|
57
63
|
OmfCommon::Measure.enable if oml_enabled
|
58
64
|
|
59
|
-
|
60
|
-
|
61
|
-
|
65
|
+
options[:environment] ||= :development
|
66
|
+
|
67
|
+
if options[:uri]
|
68
|
+
common_options = { communication: { url: options[:uri] } }
|
69
|
+
else
|
70
|
+
common_options = {}
|
62
71
|
end
|
63
72
|
|
64
|
-
|
65
|
-
|
73
|
+
if !options[:advanced_configfile].nil?
|
74
|
+
a_cfg_options = (YAML.load_file(options[:advanced_configfile]))
|
75
|
+
common_options = a_cfg_options.merge(common_options)
|
76
|
+
end
|
66
77
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
"#{options[:log_file_dir]}/omf_rc.log",
|
71
|
-
:layout => Logging.layouts.pattern(:date_pattern => '%F %T %z',
|
72
|
-
:pattern => '[%d] %-5l %c: %m\n')))
|
78
|
+
unless common_options[:communication] && common_options[:communication][:url]
|
79
|
+
puts "Error: Missing parameters to connect to a PubSub Server (see --help)"
|
80
|
+
exit(1)
|
73
81
|
end
|
74
82
|
|
83
|
+
resource_options = {
|
84
|
+
uid: options[:uid]
|
85
|
+
}
|
86
|
+
|
75
87
|
OmfRc::ResourceFactory.load_default_resource_proxies
|
76
88
|
|
77
|
-
|
78
|
-
|
79
|
-
node.connect
|
89
|
+
OmfCommon.init(options[:environment].to_sym, common_options) do |el|
|
90
|
+
info "Starting OMF Resource Controller version '#{gem_version}'"
|
80
91
|
|
81
|
-
|
82
|
-
|
92
|
+
OmfCommon.comm.on_connected do |comm|
|
93
|
+
info "Connected as #{comm.jid}" if comm.jid
|
94
|
+
res = OmfRc::ResourceFactory.create(:node, resource_options)
|
95
|
+
|
96
|
+
comm.on_interrupted { res.disconnect }
|
97
|
+
end
|
83
98
|
end
|
99
|
+
info "Stopping OMF Resource Controller version '#{gem_version}'"
|
data/config/config.yml
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
---
|
2
|
+
# default topic name is this machine's hostname
|
3
|
+
# default xmpp user name/password is "hostname-pid"
|
4
|
+
# this is to ensure that every RC has its own topic and XMPP account
|
5
|
+
:uid: <%= Socket.gethostname %>
|
6
|
+
:uri: xmpp://<%= "#{Socket.gethostname}-#{Process.pid}" %>:<%= "#{Socket.gethostname}-#{Process.pid}" %>@localhost
|
7
|
+
:environment: production
|
8
|
+
:debug: false
|
data/init/debian
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
#! /bin/sh
|
2
|
+
### BEGIN INIT INFO
|
3
|
+
# Provides: omf-rc
|
4
|
+
# Required-Start: $remote_fs $syslog
|
5
|
+
# Required-Stop: $remote_fs $syslog
|
6
|
+
# Default-Start: 2 3 4 5
|
7
|
+
# Default-Stop: 0 1 6
|
8
|
+
# Short-Description: Start daemon at boot time
|
9
|
+
# Description: Enable service provided by daemon.
|
10
|
+
### END INIT INFO
|
11
|
+
|
12
|
+
DAEMON=/usr/local/bin/run_omf_rc.sh
|
13
|
+
[ -x "$DAEMON" ] || exit 0
|
14
|
+
NAME=omf_rc
|
15
|
+
PIDFILE=/var/run/$NAME.pid
|
16
|
+
. /lib/init/vars.sh
|
17
|
+
. /lib/lsb/init-functions
|
18
|
+
|
19
|
+
start(){
|
20
|
+
echo -n "Starting OMF Resource Controller: $NAME"
|
21
|
+
start-stop-daemon --start --quiet --background --pidfile $PIDFILE --make-pidfile --exec $DAEMON
|
22
|
+
echo "."
|
23
|
+
}
|
24
|
+
|
25
|
+
stop(){
|
26
|
+
echo -n "Stopping OMF Resource Controller: $NAME"
|
27
|
+
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
|
28
|
+
echo "."
|
29
|
+
}
|
30
|
+
|
31
|
+
case "$1" in
|
32
|
+
start)
|
33
|
+
start
|
34
|
+
;;
|
35
|
+
stop)
|
36
|
+
stop
|
37
|
+
;;
|
38
|
+
restart|force-reload)
|
39
|
+
stop
|
40
|
+
start
|
41
|
+
;;
|
42
|
+
status)
|
43
|
+
status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $?
|
44
|
+
;;
|
45
|
+
*)
|
46
|
+
echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2
|
47
|
+
exit 3
|
48
|
+
;;
|
49
|
+
esac
|
50
|
+
|
51
|
+
:
|
data/init/fedora
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
#! /bin/sh
|
2
|
+
### BEGIN INIT INFO
|
3
|
+
# Provides: omf-rc
|
4
|
+
# Required-Start: $remote_fs $syslog
|
5
|
+
# Required-Stop: $remote_fs $syslog
|
6
|
+
# Default-Start: 2 3 4 5
|
7
|
+
# Default-Stop: 0 1 6
|
8
|
+
# Short-Description: Start daemon at boot time
|
9
|
+
# Description: Enable service provided by daemon.
|
10
|
+
### END INIT INFO
|
11
|
+
|
12
|
+
DAEMON=/usr/local/bin/run_omf_rc.sh
|
13
|
+
[ -x "$DAEMON" ] || exit 0
|
14
|
+
NAME=omf_rc
|
15
|
+
PIDFILE=/var/run/$NAME.pid
|
16
|
+
. /etc/rc.d/init.d/functions
|
17
|
+
|
18
|
+
start(){
|
19
|
+
echo -n "Starting OMF Resource Controller: $NAME"
|
20
|
+
$DAEMON >& /var/log/$NAME.daemon.log &
|
21
|
+
echo $! > $PIDFILE
|
22
|
+
echo "."
|
23
|
+
}
|
24
|
+
|
25
|
+
stop(){
|
26
|
+
echo -n "Stopping OMF Resource Controller: $NAME"
|
27
|
+
if [ -f $PIDFILE ]; then
|
28
|
+
kill `cat $PIDFILE`
|
29
|
+
rm $PIDFILE
|
30
|
+
sleep 2
|
31
|
+
else
|
32
|
+
echo -e "\nNo pidfile found. Is $NAME running?"
|
33
|
+
fi
|
34
|
+
echo "."
|
35
|
+
}
|
36
|
+
|
37
|
+
case "$1" in
|
38
|
+
start)
|
39
|
+
start
|
40
|
+
;;
|
41
|
+
stop)
|
42
|
+
stop
|
43
|
+
;;
|
44
|
+
restart|force-reload)
|
45
|
+
stop
|
46
|
+
start
|
47
|
+
;;
|
48
|
+
*)
|
49
|
+
echo "Usage: $0 {start|stop|restart|force-reload}" >&2
|
50
|
+
exit 3
|
51
|
+
;;
|
52
|
+
esac
|
53
|
+
|
54
|
+
:
|
data/init/run_omf_rc.sh
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
# Startup wrapper for the OMF6 RC
|
4
|
+
# detects system-wide RVM installations & Ruby from distro packages
|
5
|
+
# and runs OMF6 RC
|
6
|
+
|
7
|
+
# system-wide RVM must be installed using
|
8
|
+
# '\curl -L https://get.rvm.io | sudo bash -s stable'
|
9
|
+
|
10
|
+
die() { echo "ERROR: $@" 1>&2 ; exit 1; }
|
11
|
+
|
12
|
+
RUBY_VER="ruby-1.9.3-p286"
|
13
|
+
RUBY_BIN_SUFFIX=""
|
14
|
+
|
15
|
+
if [ `id -u` != "0" ]; then
|
16
|
+
die "This script is intended to be run as 'root'"
|
17
|
+
fi
|
18
|
+
|
19
|
+
if [ -e /etc/profile.d/rvm.sh ]; then
|
20
|
+
# use RVM if installed
|
21
|
+
echo "System-wide RVM installation detected"
|
22
|
+
source /etc/profile.d/rvm.sh
|
23
|
+
if [[ $? != 0 ]] ; then
|
24
|
+
die "Failed to initialize RVM environment"
|
25
|
+
fi
|
26
|
+
rvm use $RUBY_VER@omf > /dev/null
|
27
|
+
if [[ $? != 0 ]] ; then
|
28
|
+
die "$RUBY_VER with gemset 'omf' is not installed in your RVM"
|
29
|
+
fi
|
30
|
+
ruby -v | grep 1.9.3 > /dev/null
|
31
|
+
if [[ $? != 0 ]] ; then
|
32
|
+
die "Could not run Ruby 1.9.3"
|
33
|
+
fi
|
34
|
+
gem list | grep omf_rc > /dev/null
|
35
|
+
if [[ $? != 0 ]] ; then
|
36
|
+
die "The omf_rc gem is not installed in the 'omf' gemset"
|
37
|
+
fi
|
38
|
+
else
|
39
|
+
# check for distro ruby when no RVM was found
|
40
|
+
echo "No system-wide RVM installation detected"
|
41
|
+
ruby -v | grep 1.9.3 > /dev/null
|
42
|
+
if [[ $? != 0 ]] ; then
|
43
|
+
ruby1.9.3 -v | grep 1.9.3 > /dev/null
|
44
|
+
if [[ $? != 0 ]] ; then
|
45
|
+
die "Could not run system Ruby 1.9.3. No useable Ruby installation found."
|
46
|
+
fi
|
47
|
+
RUBY_BIN_SUFFIX="1.9.3"
|
48
|
+
fi
|
49
|
+
echo "Ruby 1.9.3 found"
|
50
|
+
gem$RUBY_BIN_SUFFIX list | grep omf_rc > /dev/null
|
51
|
+
if [[ $? != 0 ]] ; then
|
52
|
+
die "The omf_rc gem is not installed"
|
53
|
+
fi
|
54
|
+
fi
|
55
|
+
|
56
|
+
RC=`which omf_rc`
|
57
|
+
if [[ $? != 0 ]] ; then
|
58
|
+
die "could not find omf_rc executable"
|
59
|
+
fi
|
60
|
+
|
61
|
+
echo "Running OMF6 RC"
|
62
|
+
exec /usr/bin/env ruby$RUBY_BIN_SUFFIX $RC -c /etc/omf_rc/config.yml $@
|
data/init/ubuntu
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
description "OMF6 Resource Controller"
|
2
|
+
author "NICTA <omf-user@lists.nicta.com.au>"
|
3
|
+
|
4
|
+
start on (filesystem and net-device-up IFACE=lo)
|
5
|
+
stop on runlevel [!2345]
|
6
|
+
|
7
|
+
env DAEMON=/usr/local/bin/run_omf_rc.sh
|
8
|
+
|
9
|
+
respawn
|
10
|
+
respawn limit 10 5
|
11
|
+
|
12
|
+
exec $DAEMON
|
data/lib/omf_rc/omf_error.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
# Error during message processing, include message related information
|
1
|
+
# Error during message processing, include message related information cid and replyto, for publishing errors to pubsub server
|
2
2
|
#
|
3
3
|
class OmfRc::MessageProcessError < StandardError
|
4
|
-
attr_reader :
|
4
|
+
attr_reader :cid, :replyto
|
5
5
|
|
6
|
-
def initialize(
|
7
|
-
@
|
8
|
-
@
|
6
|
+
def initialize(cid, replyto, msg = nil)
|
7
|
+
@cid = cid
|
8
|
+
@replyto = replyto
|
9
9
|
super(msg)
|
10
10
|
end
|
11
11
|
end
|
@@ -9,27 +9,21 @@ class OmfRc::ResourceFactory
|
|
9
9
|
# List of registered resource proxies
|
10
10
|
@@proxy_list = Hashie::Mash.new
|
11
11
|
|
12
|
-
# By default, we use xmpp dsl, which based on blather
|
13
|
-
DEFAULT_OPTS = {
|
14
|
-
dsl: 'xmpp'
|
15
|
-
}
|
16
|
-
|
17
12
|
class << self
|
18
13
|
# Factory method to initiate new resource proxy
|
19
14
|
#
|
20
15
|
# @param (see OmfRc::ResourceProxy::AbstractResource#initialize)
|
21
16
|
#
|
22
17
|
# @see OmfRc::ResourceProxy::AbstractResource
|
23
|
-
def
|
18
|
+
def create(type, opts = {}, creation_opts = {}, &creation_callback)
|
24
19
|
unless @@proxy_list.include?(type)
|
25
20
|
raise ArgumentError, "Resource type not found: #{type.to_s}" unless @@proxy_list.include?(type)
|
26
21
|
end
|
27
|
-
type = type.to_s
|
28
|
-
opts = opts ? DEFAULT_OPTS.merge(opts) : DEFAULT_OPTS
|
29
22
|
# Create a new instance of abstract resource
|
30
|
-
resource = OmfRc::ResourceProxy::AbstractResource.new(type, opts,
|
23
|
+
resource = OmfRc::ResourceProxy::AbstractResource.new(type, opts, creation_opts, &creation_callback)
|
31
24
|
# Then extend this instance with relevant module identified by type
|
32
|
-
|
25
|
+
emodule = @@proxy_list[type].proxy_module || "OmfRc::ResourceProxy::#{type.camelize}".constantize
|
26
|
+
resource.extend(emodule)
|
33
27
|
# Initiate property hash
|
34
28
|
resource.methods.each do |m|
|
35
29
|
resource.__send__(m) if m =~ /def_property_(.+)/
|
@@ -39,6 +33,8 @@ class OmfRc::ResourceFactory
|
|
39
33
|
resource
|
40
34
|
end
|
41
35
|
|
36
|
+
alias :new :create
|
37
|
+
|
42
38
|
# Return the proxy list
|
43
39
|
def proxy_list
|
44
40
|
@@proxy_list
|
@@ -61,7 +57,7 @@ class OmfRc::ResourceFactory
|
|
61
57
|
end
|
62
58
|
end
|
63
59
|
|
64
|
-
def
|
60
|
+
def load_additional_resource_proxies(folder)
|
65
61
|
Dir["#{folder}/*.rb"].each do |file|
|
66
62
|
require "#{folder}/#{File.basename(file).gsub(/\.rb/, '')}"
|
67
63
|
end
|