diff options
author | Benoit Foucher <benoit@zeroc.com> | 2008-04-23 18:07:01 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2008-04-23 18:11:59 +0200 |
commit | a3ec1af42df9a0ff041a36972fd3d693430b1814 (patch) | |
tree | b8449c630575b93847f893f1cab964dbec324a6a /cpp/demo/IceGrid/secure/expect.py | |
parent | Fixed another bug with sessions created from secure connections (diff) | |
download | ice-a3ec1af42df9a0ff041a36972fd3d693430b1814.tar.bz2 ice-a3ec1af42df9a0ff041a36972fd3d693430b1814.tar.xz ice-a3ec1af42df9a0ff041a36972fd3d693430b1814.zip |
Added IceGrid secure demo
Diffstat (limited to 'cpp/demo/IceGrid/secure/expect.py')
-rwxr-xr-x | cpp/demo/IceGrid/secure/expect.py | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/cpp/demo/IceGrid/secure/expect.py b/cpp/demo/IceGrid/secure/expect.py new file mode 100755 index 00000000000..bc4f993a241 --- /dev/null +++ b/cpp/demo/IceGrid/secure/expect.py @@ -0,0 +1,150 @@ +#!/usr/bin/env python +# ********************************************************************** +# +# Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +import sys, os + +try: + import demoscript +except ImportError: + for toplevel in [".", "..", "../..", "../../..", "../../../.."]: + toplevel = os.path.normpath(toplevel) + if os.path.exists(os.path.join(toplevel, "demoscript")): + break + else: + raise "can't find toplevel directory!" + sys.path.append(os.path.join(toplevel)) + import demoscript + +import demoscript.Util +demoscript.Util.defaultLanguage = "C++" + +import signal + +print "cleaning databases...", +sys.stdout.flush() +demoscript.Util.cleanDbDir("db/registry") +demoscript.Util.cleanDbDir("db/node") +demoscript.Util.cleanDbDir("certs") +print "ok" + +if demoscript.Util.defaultHost: + args = ' --IceGrid.Node.PropertiesOverride="Ice.Default.Host=127.0.0.1"' +else: + args = '' + +print "creating certificates...", +sys.stdout.flush() +makecerts = demoscript.Util.spawn('python makecerts.py') +makecerts.expect("Do you want to keep this as the CA subject name?") +makecerts.sendline("y") +makecerts.expect("Enter the email address of the CA:") +makecerts.sendline("test@zeroc.com") +makecerts.expect("Sign the certificate?") +makecerts.sendline("y") +makecerts.expect("1 out of 1 certificate requests certified, commit?") +makecerts.sendline("y") +makecerts.expect("Enter the node name:") +makecerts.sendline("All") +makecerts.expect("Sign the certificate?") +makecerts.sendline("y") +makecerts.expect("1 out of 1 certificate requests certified, commit?") +makecerts.sendline("y") +makecerts.expect("Enter the server name:") +makecerts.sendline("Glacier2 Admin") +makecerts.expect("Sign the certificate?") +makecerts.sendline("y") +makecerts.expect("1 out of 1 certificate requests certified, commit?") +makecerts.sendline("y") +makecerts.expect("Enter the server name:") +makecerts.sendline("All") +makecerts.expect("Sign the certificate?") +makecerts.sendline("y") +makecerts.expect("1 out of 1 certificate requests certified, commit?") +makecerts.sendline("y") +makecerts.expect("Enter the server name:") +makecerts.sendline("IceGrid Admin") +makecerts.expect("Sign the certificate?") +makecerts.sendline("y") +makecerts.expect("1 out of 1 certificate requests certified, commit?") +makecerts.sendline("y") +makecerts.expect("Enter private key passphrase:") +makecerts.sendline("password") +makecerts.expect("Enter keystore password:") +makecerts.sendline("password") +print "ok" + +print "starting icegrid...", +sys.stdout.flush() +registry = demoscript.Util.spawn('icegridregistry --Ice.Config=config.registry --Ice.PrintAdapterReady') +registry.expect('IceGrid.Registry.Internal ready\r{1,2}\nIceGrid.Registry.Server ready\r{1,2}\nIceGrid.Registry.Client ready') +node = demoscript.Util.spawn('icegridnode --Ice.Config=config.node --Ice.PrintAdapterReady %s' % (args)) +node.expect('IceGrid.Node ready') +print "ok" + +print "starting glacier2...", +sys.stdout.flush() + +glacier2 = demoscript.Util.spawn('glacier2router --Ice.Config=config.glacier2 --Ice.PrintAdapterReady --Glacier2.SessionTimeout=5') +glacier2.expect('Glacier2.Client ready') +glacier2.expect('Glacier2.Server ready') +print "ok" + +print "deploying application...", +sys.stdout.flush() +admin = demoscript.Util.spawn('icegridadmin --Ice.Config=config.admin') +admin.expect('>>>') +admin.sendline("application add application.xml") +admin.expect('>>>') +print "ok" + +def runtest(): + client = demoscript.Util.spawn('./client') + client.expect('==>') + client.sendline('t') + node.expect("SimpleServer says Hello World!") + client.sendline('t') + node.expect("SimpleServer says Hello World!") + client.sendline('s') + node.expect("detected termination of.*SimpleServer") + client.sendline('x') + + client.waitTestSuccess(timeout=1) + +print "testing client...", +sys.stdout.flush() +runtest() +print "ok" + +print "testing icegridadmin with router...", +sys.stdout.flush() +admin = demoscript.Util.spawn('icegridadmin --Ice.Config=config.admin --Ice.Default.Router="DemoGlacier2/router:ssl -p 4064"') +admin.expect('>>>') +admin.sendline("server list") +admin.expect('SimpleServer') +admin.expect('>>>') +print "ok" + +print "completing shutdown...", +sys.stdout.flush() +admin.sendline('node shutdown Node') +admin.expect('>>>') +node.waitTestSuccess(timeout=120) + +admin.sendline('registry shutdown Master') +admin.expect('>>>') +registry.waitTestSuccess() + +admin.sendline('exit') +admin.waitTestSuccess(timeout=120) + +glacier2.kill(signal.SIGINT) +glacier2.waitTestSuccess() + +print "ok" |