You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by mf...@redhat.com on 2011/08/01 16:14:54 UTC
[PATCH core] Added --ssl switch to Deltacloud launcher
From: Michal Fojtik <mf...@redhat.com>
Signed-off-by: Michal fojtik <mf...@redhat.com>
---
server/bin/deltacloudd | 24 +++++++++++++++++++++++-
1 files changed, 23 insertions(+), 1 deletions(-)
diff --git a/server/bin/deltacloudd b/server/bin/deltacloudd
index 466f56d..a0b108f 100755
--- a/server/bin/deltacloudd
+++ b/server/bin/deltacloudd
@@ -45,6 +45,7 @@ BANNER
options[:config] = File::expand_path(config || DEFAULT_CONFIG)
end
opts.on( '-e', '--env ENV', 'Environment (default: "development")') { |env| options[:env] = env }
+ opts.on( '-s', '--ssl', 'Enable SSL (default: disabled)') { |env| options[:ssl] = true }
opts.on( '-t', '--timeout TIMEOUT', 'Timeout for single request (default: 60)') do |timeout|
ENV["API_TIMEOUT"] = timeout
end
@@ -64,6 +65,9 @@ Config file:
Note that specifying :user and :password turns off authentication on the
server, and any request is forwarded to the backend cloud with the
specified credentials.
+
+ Note, for SSL you need to have API_SSL_KEY and API_SSL_CERT environment
+ variables set.
EOS
end
@@ -79,6 +83,17 @@ unless ENV["API_DRIVER"]
exit(1)
end
+if options[:ssl]
+ unless ENV['API_SSL_KEY']
+ puts "You need to set SSL key using 'export API_SSL_KEY=/path/to/keyfile'"
+ exit(1)
+ end
+ unless ENV['API_SSL_CERT']
+ puts "You need to set SSL certificate using 'export API_SSL_CERT=/path/to/certfile'"
+ exit(1)
+ end
+end
+
if options[:config]
cfg = YAML::load(File.read(options[:config]))
if c = cfg[ENV["API_DRIVER"].to_sym]
@@ -93,7 +108,11 @@ ENV["API_PORT"] = "3001" unless ENV["API_PORT"]
msg = "Starting Deltacloud API :: #{ENV["API_DRIVER"]} "
msg << ":: #{ENV['API_PROVIDER']} " if ENV['API_PROVIDER']
-msg << ":: http://#{ENV["API_HOST"]}:#{ENV["API_PORT"]}/api"
+if options[:ssl]
+ msg << ":: https://#{ENV["API_HOST"]}:#{ENV["API_PORT"]}/api"
+else
+ msg << ":: http://#{ENV["API_HOST"]}:#{ENV["API_PORT"]}/api"
+end
puts msg
if ENV['API_USER'] && ENV['API_PASSWORD']
puts "Warning: API_USER and API_PASSWORD set in environment"
@@ -144,6 +163,9 @@ else
argv_opts << ['-e', options[:env] ]
argv_opts << ['--timeout', ENV["API_TIMEOUT"] || '60']
argv_opts << ['--threaded', '-D' ]
+ if options[:ssl]
+ argv_opts << [ '--ssl', '--ssl-key-file', ENV['API_SSL_KEY'], '--ssl-cert-file', ENV['API_SSL_CERT']]
+ end
argv_opts.flatten!
if have_rerun && options[:env] == "development"
--
1.7.4.1