summaryrefslogtreecommitdiff
path: root/cpp/demo/IceGrid/secure/expect.py
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/demo/IceGrid/secure/expect.py')
-rwxr-xr-xcpp/demo/IceGrid/secure/expect.py150
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"