1# -*- coding: utf-8 -*- 2# 3# Copyright (c) ZeroC, Inc. All rights reserved. 4# 5 6class IceGridAdminTestCase(IceGridTestCase): 7 8 def __init__(self): 9 self.glacier2router = Glacier2Router(props=routerProps, waitForShutdown=False) 10 IceGridTestCase.__init__(self, application=None, server=self.glacier2router) 11 12 def runClientSide(self, current): 13 14 current.write("testing login with username/password... ") 15 16 admin=IceGridAdmin() 17 18 admin.start(current) 19 admin.expect(current, '>>> ') 20 admin.sendline(current, "server list") 21 admin.expect(current, '>>> ') 22 admin.sendline(current, 'exit') 23 admin.stop(current, True) 24 25 defaultRouterProps = { "Ice.Default.Router" : self.glacier2router.getClientProxy(current) } 26 27 admin.start(current, props=defaultRouterProps) 28 admin.expect(current, '>>> ') 29 admin.sendline(current, "server list") 30 admin.expect(current, '>>> ') 31 admin.sendline(current, 'exit') 32 admin.stop(current, True) 33 34 current.writeln("ok") 35 36 if current.config.protocol == "ssl": 37 38 current.write("testing login with ssl... ") 39 40 # Direct registry connection with SSL 41 admin.start(current, args=["--ssl"]) 42 admin.expect(current, '>>> ') 43 admin.sendline(current, "server list") 44 admin.expect(current, '>>> ') 45 admin.sendline(current, 'exit') 46 admin.stop(current, True) 47 48 # Glacier2 connection with username/password 49 admin.start(current, args=["--ssl"], props=defaultRouterProps) 50 admin.expect(current, '>>> ') 51 admin.sendline(current, "server list") 52 admin.expect(current, '>>> ') 53 admin.sendline(current, 'exit') 54 admin.stop(current, True) 55 56 current.writeln("ok") 57 58 current.write("testing commands... ") 59 admin.start(current) 60 try: 61 serverDir = current.getBuildDir("server") 62 63 admin.expect(current, '>>> ') 64 admin.sendline(current, 'application add application.xml server.dir=%s' % serverDir) 65 admin.expect(current, '>>> ') 66 admin.sendline(current, 'application list') 67 admin.expect(current, 'Test') 68 admin.sendline(current, 'application describe Test') 69 admin.expect(current, 'application `Test\'') 70 admin.expect(current, '\{.*\}') 71 admin.expect(current, '>>> ') 72 admin.sendline(current, 'application diff application.xml server.dir=%s' % serverDir) 73 admin.expect(current, 'application `Test\'\n\{.*\}') 74 admin.expect(current, '>>> ') 75 admin.sendline(current, 'application update application.xml server.dir=%s' % serverDir) 76 admin.expect(current, '>>> ') 77 admin.sendline(current, 'application patch Test') 78 admin.expect(current, '>>> ') 79 admin.sendline(current, 'server list') 80 admin.expect(current, 'server') 81 admin.expect(current, '>>> ') 82 admin.sendline(current, 'server describe server') 83 admin.expect(current, 'server `server\'\n\{.*\}') 84 admin.expect(current, '>>> ') 85 admin.sendline(current, 'server start server') 86 admin.expect(current, '>>> ') 87 admin.sendline(current, 'server state server') 88 admin.expect(current, '^active \(.*\)') 89 admin.expect(current, '>>> ') 90 admin.sendline(current, 'server pid server') 91 admin.expect(current, '[0-9]+') 92 admin.expect(current, '>>> ') 93 admin.sendline(current, 'server properties server') 94 admin.expect(current, '>>> ') 95 admin.sendline(current, 'server property server Ice.Admin.ServerId') 96 admin.expect(current, "^server") 97 admin.expect(current, '>>> ') 98 admin.sendline(current, 'server patch server') 99 admin.expect(current, '>>> ') 100 admin.sendline(current, 'server disable server') 101 admin.expect(current, '>>> ') 102 admin.sendline(current, 'server enable server') 103 admin.expect(current, '>>> ') 104 admin.sendline(current, 'adapter list') 105 admin.expect(current, 'TestAdapter') 106 admin.expect(current, '>>> ') 107 admin.sendline(current, 'adapter endpoints TestAdapter') 108 admin.expect(current, ['tcp', 'ssl', 'ws', 'wss']) 109 admin.expect(current, '>>> ') 110 admin.sendline(current, 'object list') 111 admin.expect(current, 'test') 112 admin.expect(current, '>>> ') 113 admin.sendline(current, 'object describe') 114 admin.expect(current, 'proxy = `.*\' type = `.*\'') 115 admin.expect(current, '>>> ') 116 admin.sendline(current, 'object find Test') 117 admin.expect(current, 'test') 118 admin.expect(current, '>>> ') 119 admin.sendline(current, 'server stop server') 120 admin.expect(current, '>>> ') 121 admin.sendline(current, 'application remove Test') 122 admin.expect(current, '>>> ') 123 admin.sendline(current, 'registry list') 124 admin.expect(current, 'Master') 125 admin.expect(current, '>>> ') 126 admin.sendline(current, 'registry ping Master') 127 admin.expect(current, 'registry is up') 128 admin.expect(current, '>>> ') 129 admin.sendline(current, 'registry describe Master') 130 admin.expect(current, 'registry `Master\'\n{.*}') 131 admin.expect(current, '>>> ') 132 admin.sendline(current, 'node list') 133 admin.expect(current, 'localnode') 134 admin.expect(current, '>>> ') 135 admin.sendline(current, 'node describe localnode') 136 admin.expect(current, 'node `localnode\'\n{.*}') 137 admin.expect(current, '>>> ') 138 admin.sendline(current, 'node load localnode') 139 admin.expect(current, 'load average.*\n') 140 admin.expect(current, '>>> ') 141 admin.sendline(current, 'node ping localnode') 142 admin.expect(current, 'node is up') 143 admin.expect(current, '>>> ') 144 admin.sendline(current, 'exit') 145 admin.stop(current, True) 146 current.writeln("ok") 147 except Exception as e: 148 admin.stop(current, False) 149 raise RuntimeError("failed!\n" + str(e)) 150 151routerProps= lambda process, current: { 152 'Glacier2.SessionTimeout' : 5, 153 'Glacier2.SessionManager' : 'TestIceGrid/AdminSessionManager', 154 'Glacier2.PermissionsVerifier' : 'Glacier2/NullPermissionsVerifier', 155 'Glacier2.SSLSessionManager' : 'TestIceGrid/AdminSSLSessionManager', 156 'Glacier2.SSLPermissionsVerifier' : 'Glacier2/NullSSLPermissionsVerifier', 157 'Ice.Default.Locator' : current.testcase.getLocator(current), 158 'IceSSL.VerifyPeer' : 1 159} 160 161if isinstance(platform, Windows) or os.getuid() != 0: 162 TestSuite(__file__, [ IceGridAdminTestCase() ], multihost=False) 163