Beispiel #1
0
def startIceGridNode(testdir):

    iceGrid = os.path.join(TestUtil.getCppBinDir(), "icegridnode")

    dataDir = os.path.join(testdir, "db", "node")
    if not os.path.exists(dataDir):
        os.mkdir(dataDir)
    else:
        cleanDbDir(dataDir)

    #
    # Create property overrides from command line options.
    #
    overrideOptions = '"'
    for opt in TestUtil.getCommandLine(
            "", TestUtil.DriverConfig("server")).split():
        opt = opt.replace("--", "")
        if opt.find("=") == -1:
            opt += "=1"
        overrideOptions += opt + " "
    overrideOptions += ' Ice.ServerIdleTime=0 Ice.PrintProcessId=0 Ice.PrintAdapterReady=0"'

    print "starting icegrid node...",
    command = r' --nowarn ' + nodeOptions + getDefaultLocatorProperty() + \
              r' --IceGrid.Node.Data=' + dataDir + \
              r' --IceGrid.Node.Name=localnode' + \
              r' --IceGrid.Node.PropertiesOverride=' + overrideOptions

    driverConfig = TestUtil.DriverConfig("server")
    driverConfig.lang = "cpp"
    proc = TestUtil.startServer(iceGrid, command, driverConfig, adapter='node')

    print "ok"

    return proc
Beispiel #2
0
def iceGridClientServerTest(additionalClientOptions, additionalServerOptions):

    testdir = os.getcwd()
    server = TestUtil.getDefaultServerFile()
    client = TestUtil.getDefaultClientFile()
    if TestUtil.getDefaultMapping() != "java":
        server = os.path.join(testdir, server)
        client = os.path.join(testdir, client)

    if TestUtil.getDefaultMapping() == "java":
        os.environ['CLASSPATH'] = os.path.join(
            os.getcwd(), "classes") + os.pathsep + os.environ.get(
                "CLASSPATH", "")

    clientOptions = getDefaultLocatorProperty() + ' ' + additionalClientOptions
    serverOptions = getDefaultLocatorProperty() + ' ' + additionalServerOptions

    registryProcs = startIceGridRegistry(testdir, True)

    print "starting server...",
    serverProc = TestUtil.startServer(server, serverOptions,
                                      TestUtil.DriverConfig("server"))
    print "ok"

    print "starting client...",
    clientProc = TestUtil.startClient(client, clientOptions,
                                      TestUtil.DriverConfig("client"))
    print "ok"

    clientProc.waitTestSuccess()
    serverProc.waitTestSuccess()

    shutdownIceGridRegistry(registryProcs)
Beispiel #3
0
def iceGridAdmin(cmd, ignoreFailure = False):

    iceGridAdmin = TestUtil.getIceGridAdmin()

    user = r"admin1"
    if cmd == "registry shutdown":
        user = r"shutdown"
    command = getDefaultLocatorProperty() + r" --IceGridAdmin.Username="******" --IceGridAdmin.Password=test1 " + \
              r' -e "' + cmd + '"'

    if TestUtil.appverifier:
        TestUtil.setAppVerifierSettings([TestUtil.getIceGridAdmin()])

    driverConfig = TestUtil.DriverConfig("client")
    driverConfig.lang = "cpp"
    proc = TestUtil.startClient(iceGridAdmin, command, driverConfig)
    status = proc.wait()

    if TestUtil.appverifier:
        TestUtil.appVerifierAfterTestEnd([TestUtil.getIceGridAdmin()])

    if not ignoreFailure and status:
        print(proc.buf)
        sys.exit(1)
    return proc.buf
Beispiel #4
0
def iceGridNodePropertiesOverride():

    #
    # Create property overrides from command line options.
    #
    overrideOptions = ''
    for opt in shlex.split(
            TestUtil.getCommandLineProperties("",
                                              TestUtil.DriverConfig("server"),
                                              "")):
        opt = opt.strip().replace("--", "")
        index = opt.find("=")
        if index == -1:
            overrideOptions += ("%s=1 ") % opt
        else:
            key = opt[0:index]
            value = opt[index + 1:]
            if (value.find(' ') == -1):
                overrideOptions += ("%s=%s ") % (key, value)
            else:
                #
                # NOTE: We need 2 backslash before the quote to run the
                # C# test/IceGrid/simple test with SSL.
                #
                overrideOptions += ("%s=\\\"%s\\\" ") % (
                    key, value.replace('"', '\\\\\\"'))

    return overrideOptions
Beispiel #5
0
def startIceGridNode(testdir):

    iceGrid = TestUtil.getIceGridNode()
    dataDir = os.path.join(testdir, "db", "node")
    if not os.path.exists(dataDir):
        os.mkdir(dataDir)
    else:
        cleanDbDir(dataDir)

    overrideOptions = '" ' + iceGridNodePropertiesOverride()
    overrideOptions += ' Ice.ServerIdleTime=0 Ice.PrintProcessId=0 Ice.PrintAdapterReady=0"'

    sys.stdout.write("starting icegrid node... ")
    sys.stdout.flush()
    command = r' --nowarn ' + nodeOptions + getDefaultLocatorProperty() + \
              r' --IceGrid.Node.Data="' + dataDir + '"' \
              r' --IceGrid.Node.Name=localnode' + \
              r' --IceGrid.Node.PropertiesOverride=' + overrideOptions

    driverConfig = TestUtil.DriverConfig("server")
    driverConfig.lang = "cpp"
    proc = TestUtil.startServer(iceGrid, command, driverConfig, adapter='node1')
        
    print("ok")

    return proc
Beispiel #6
0
def iceGridTest(application, additionalOptions = "", applicationOptions = ""):

    testdir = os.getcwd()
    if not TestUtil.isWin32() and os.getuid() == 0:
        print
        print("*** can't run test as root ***")
        print
        return

    if TestUtil.getDefaultMapping() == "java":
        os.environ['CLASSPATH'] = os.path.join(os.getcwd(), "classes") + os.pathsep + os.environ.get("CLASSPATH", "")

    client = TestUtil.getDefaultClientFile()
    if TestUtil.getDefaultMapping() != "java":
        client = os.path.join(testdir, client) 

    clientOptions = ' ' + getDefaultLocatorProperty() + ' ' + additionalOptions

    targets = []
    if TestUtil.appverifier:
        targets = [client, TestUtil.getIceGridNode(), TestUtil.getIceGridRegistry()]
        TestUtil.setAppVerifierSettings(targets)

    registryProcs = startIceGridRegistry(testdir)
    iceGridNodeProc = startIceGridNode(testdir)
    
    if application != "":
        sys.stdout.write("adding application... ")
        sys.stdout.flush()
        iceGridAdmin("application add -n '" + os.path.join(testdir, application) + "' " + \
                     "test.dir='" + testdir + "' ice.bindir='" + TestUtil.getCppBinDir() + "' " + applicationOptions)
        print("ok")

    sys.stdout.write("starting client... ")
    sys.stdout.flush()
    clientProc = TestUtil.startClient(client, clientOptions, TestUtil.DriverConfig("client"), startReader = False)
    print("ok")
    clientProc.startReader()
    clientProc.waitTestSuccess()

    if application != "":
        sys.stdout.write("remove application... ")
        sys.stdout.flush()
        iceGridAdmin("application remove Test")
        print("ok")

    sys.stdout.write("shutting down icegrid node... ")
    sys.stdout.flush()
    iceGridAdmin("node shutdown localnode")
    print("ok")
    shutdownIceGridRegistry(registryProcs)
    iceGridNodeProc.waitTestSuccess()

    if TestUtil.appverifier:
        TestUtil.appVerifierAfterTestEnd(targets)
Beispiel #7
0
def iceGridClientServerTest(additionalClientOptions, additionalServerOptions):

    testdir = os.getcwd()
    server = TestUtil.getDefaultServerFile()
    client = TestUtil.getDefaultClientFile()
    if TestUtil.getDefaultMapping() != "java":
        server = os.path.join(testdir, server) 
        client = os.path.join(testdir, client) 

    if TestUtil.getDefaultMapping() == "java":
        os.environ['CLASSPATH'] = os.path.join(os.getcwd(), "classes") + os.pathsep + os.environ.get("CLASSPATH", "")

    targets = []
    if TestUtil.appverifier:
        targets = [client, server, TestUtil.getIceGridRegistry()]
        TestUtil.setAppVerifierSettings(targets)

    clientOptions = getDefaultLocatorProperty() + ' ' + additionalClientOptions
    serverOptions = getDefaultLocatorProperty() + ' ' + additionalServerOptions
    
    registryProcs = startIceGridRegistry(testdir, True)

    sys.stdout.write("starting server... ")
    sys.stdout.flush()
    serverProc= TestUtil.startServer(server, serverOptions, TestUtil.DriverConfig("server"))
    print("ok")

    sys.stdout.write("starting client... ")
    sys.stdout.flush()
    clientProc = TestUtil.startClient(client, clientOptions, TestUtil.DriverConfig("client"))
    print("ok")

    clientProc.waitTestSuccess()
    serverProc.waitTestSuccess()

    shutdownIceGridRegistry(registryProcs)

    if TestUtil.appverifier:
        TestUtil.appVerifierAfterTestEnd(targets)
Beispiel #8
0
def iceGridTest(application, additionalOptions="", applicationOptions=""):

    testdir = os.getcwd()
    if not TestUtil.isWin32() and os.getuid() == 0:
        print
        print "*** can't run test as root ***"
        print
        return

    if TestUtil.getDefaultMapping() == "java":
        os.environ['CLASSPATH'] = os.path.join(
            os.getcwd(), "classes") + os.pathsep + os.environ.get(
                "CLASSPATH", "")

    client = TestUtil.getDefaultClientFile()
    if TestUtil.getDefaultMapping() != "java":
        client = os.path.join(testdir, client)

    clientOptions = ' ' + getDefaultLocatorProperty() + ' ' + additionalOptions

    registryProcs = startIceGridRegistry(testdir)
    iceGridNodeProc = startIceGridNode(testdir)

    if application != "":
        print "adding application...",
        iceGridAdmin('application add -n ' + os.path.join(testdir, application) + ' ' + \
                     '"test.dir=' + testdir + '" "ice.bindir=' + TestUtil.getCppBinDir() + '" ' + applicationOptions)
        print "ok"

    print "starting client...",
    clientProc = TestUtil.startClient(client, clientOptions,
                                      TestUtil.DriverConfig("client"))
    print "ok"

    clientProc.waitTestSuccess()

    if application != "":
        print "remove application...",
        iceGridAdmin("application remove Test")
        print "ok"

    print "shutting down icegrid node...",
    iceGridAdmin("node shutdown localnode")
    print "ok"
    shutdownIceGridRegistry(registryProcs)
    iceGridNodeProc.waitTestSuccess()
Beispiel #9
0
def iceGridAdmin(cmd, ignoreFailure=False):

    iceGridAdmin = os.path.join(TestUtil.getCppBinDir(), "icegridadmin")

    user = r"admin1"
    if cmd == "registry shutdown":
        user = r"shutdown"
    command = getDefaultLocatorProperty() + r" --IceGridAdmin.Username="******" --IceGridAdmin.Password=test1 " + \
              r' -e "' + cmd + '"'

    driverConfig = TestUtil.DriverConfig("client")
    driverConfig.lang = "cpp"
    proc = TestUtil.startClient(iceGridAdmin, command, driverConfig)
    status = proc.wait()
    if not ignoreFailure and status:
        print proc.buf
        sys.exit(1)
    return proc.buf
Beispiel #10
0
def runIceGridRegistry():
    iceGrid = TestUtil.getIceGridRegistry()
    command = ' --nowarn ' + IceGridAdmin.registryOptions

    dataDir = os.path.join(testdir, "db", "registry")
    if not os.path.exists(dataDir):
        os.mkdir(dataDir)

    cmd = command + ' ' + \
            r' --Ice.ProgramName=registry' + \
            r' --IceGrid.Registry.Client.Endpoints="default -p ' + str(IceGridAdmin.iceGridPort) + '" ' + \
            r' --IceGrid.Registry.LMDB.MapSize=1 --IceGrid.Registry.LMDB.Path="' + dataDir + '"'

    driverConfig = TestUtil.DriverConfig("server")
    driverConfig.lang = "cpp"

    cmd = TestUtil.getCommandLine(iceGrid, driverConfig) + ' ' + cmd
    proc = TestUtil.spawn(cmd)
    return proc
Beispiel #11
0
def startIceGridRegistry(testdir, dynamicRegistration=False):

    iceGrid = TestUtil.getIceGridRegistry()

    command = ' --nowarn ' + registryOptions
    if dynamicRegistration:
        command += r' --IceGrid.Registry.DynamicRegistration'

    procs = []
    i = 0
    while i < (nreplicas + 1):

        if i == 0:
            name = "registry"
        else:
            name = "replica-" + str(i)

        dataDir = os.path.join(testdir, "db", name)
        if not os.path.exists(dataDir):
            os.mkdir(dataDir)
        else:
            cleanDbDir(dataDir)

        sys.stdout.write("starting icegrid " + name + "... ")
        sys.stdout.flush()
        cmd = command + ' ' + \
              r' --Ice.ProgramName=' + name + \
              r' --IceGrid.Registry.Client.Endpoints="default -p ' + str(iceGridPort + i) + '" ' + \
              r' --IceGrid.Registry.LMDB.MapSize=1 --IceGrid.Registry.LMDB.Path="' + dataDir + '" '

        if i > 0:
            cmd += r' --IceGrid.Registry.ReplicaName=' + name + ' ' + getDefaultLocatorProperty(
            )

        driverConfig = TestUtil.DriverConfig("server")
        driverConfig.lang = "cpp"
        proc = TestUtil.startServer(iceGrid, cmd, driverConfig, count=5)
        procs.append(proc)
        print("ok")

        i = i + 1
    return procs
Beispiel #12
0
def startIceGridRegistry(testdir, dynamicRegistration=False):

    iceGrid = os.path.join(TestUtil.getCppBinDir(), "icegridregistry")

    command = ' --nowarn ' + registryOptions
    if dynamicRegistration:
        command += r' --IceGrid.Registry.DynamicRegistration'

    procs = []
    i = 0
    while i < (nreplicas + 1):

        if i == 0:
            name = "registry"
        else:
            name = "replica-" + str(i)

        dataDir = os.path.join(testdir, "db", name)
        if not os.path.exists(dataDir):
            os.mkdir(dataDir)
        else:
            cleanDbDir(dataDir)

        print "starting icegrid " + name + "...",
        cmd = command + \
              r' --Ice.ProgramName=' + name + \
              r' --IceGrid.Registry.Client.Endpoints="default -p ' + str(iceGridPort + i) + ' -t 30000" ' + \
              r' --IceGrid.Registry.Data=' + dataDir

        if i > 0:
            cmd += r' --IceGrid.Registry.ReplicaName=' + name + ' ' + getDefaultLocatorProperty(
            )

        driverConfig = TestUtil.DriverConfig("server")
        driverConfig.lang = "cpp"
        proc = TestUtil.startServer(iceGrid, cmd, driverConfig, count=4)
        procs.append(proc)
        print "ok"

        i = i + 1
    return procs
Beispiel #13
0
def runIceGridRegistry():
    iceGrid = ""
    if TestUtil.isVC90():
        iceGrid = os.path.join(TestUtil.getServiceDir(), "icegridregistry")
    else:
        iceGrid = os.path.join(TestUtil.getCppBinDir(), "icegridregistry")

    command = ' --nowarn ' + IceGridAdmin.registryOptions

    dataDir = os.path.join(testdir, "db", "registry")
    if not os.path.exists(dataDir):
        os.mkdir(dataDir)

    cmd = command + ' ' + TestUtil.getQtSqlOptions('IceGrid') + \
            r' --Ice.ProgramName=registry' + \
            r' --IceGrid.Registry.Client.Endpoints="default -p ' + str(IceGridAdmin.iceGridPort) + '" ' + \
            r' --IceGrid.Registry.Data="' + dataDir + '"'

    driverConfig = TestUtil.DriverConfig("server")
    driverConfig.lang = "cpp"

    cmd = TestUtil.getCommandLine(iceGrid, driverConfig) + ' ' + cmd
    proc = TestUtil.spawn(cmd)
    return proc
Beispiel #14
0
    if not len(categoryFilter) == 0:
        routerConfig.write("Glacier2.Filter.Category.Accept=%s\n" %
                           categoryFilter)
    if not len(idFilter) == 0:
        routerConfig.write("Glacier2.Filter.Identity.Accept=%s\n" % idFilter)
    if not len(adapterFilter) == 0:
        routerConfig.write("Glacier2.Filter.AdapterId.Accept=%s\n" %
                           adapterFilter)

    routerConfig.close()

    #
    # We need to override the test driver defaults for the Ice.Default.Host if
    # it is set to loopback.
    #
    routerDriver = TestUtil.DriverConfig("server")
    if routerDriver.host == None:
        routerDriver.host = ""
    routerDriver.overrides = commonServerOptions + routerArgs

    starterProc = TestUtil.startServer(router, config=routerDriver, count=2)
    pingProgress()

    if TestUtil.protocol != "ssl":
        serverConfig = open(os.path.join(os.getcwd(), "server.cfg"), "w")
        serverOptions = ' --Ice.Config="' + os.path.join(
            os.getcwd(), "server.cfg") + '" '
        serverConfig.write("BackendAdapter.Endpoints=tcp -p 12010\n")
        serverConfig.close()
    else:
        serverOptions = ""
Beispiel #15
0
sys.stdout.flush()
serverProc = TestUtil.startServer(server)
print("ok")

args = ' --Ice.Warn.Dispatch=0' + \
       ' --Glacier2.AddConnectionContext=1' + \
       ' --Glacier2.Client.Endpoints="tcp -h 127.0.0.1 -p 12347:ssl -h 127.0.0.1 -p 12348"' + \
       ' --Glacier2.Server.Endpoints="tcp -h 127.0.0.1"' \
       ' --Ice.Admin.Endpoints="tcp -h 127.0.0.1 -p 12349"' + \
       ' --Ice.Admin.InstanceName=Glacier2' + \
       ' --Glacier2.SessionManager="sessionmanager:tcp -h 127.0.0.1 -p 12350"' + \
       ' --Glacier2.PermissionsVerifier="verifier:tcp -h 127.0.0.1 -p 12350"' + \
       ' --Glacier2.SSLSessionManager="sslsessionmanager:tcp -h 127.0.0.1 -p 12350"' + \
       ' --Glacier2.SSLPermissionsVerifier="sslverifier:tcp -h 127.0.0.1 -p 12350"'

routerCfg = TestUtil.DriverConfig("server")
routerCfg.protocol = "ssl"
sys.stdout.write("starting router... ")
sys.stdout.flush()
starterProc = TestUtil.startServer(router, args, routerCfg, count = 2)
print("ok")

clientCfg = TestUtil.DriverConfig("client")
clientCfg.protocol = "ssl"

sys.stdout.write("starting client... ")
sys.stdout.flush()
clientProc = TestUtil.startClient(client, "", clientCfg, startReader = False)
print("ok")
clientProc.startReader()
Beispiel #16
0
    path = [os.path.join(head, p) for p in path]
path = [
    os.path.abspath(p) for p in path
    if os.path.exists(os.path.join(p, "scripts", "TestUtil.py"))
]
if len(path) == 0:
    raise RuntimeError("can't find toplevel directory!")
sys.path.append(os.path.join(path[0], "scripts"))
import TestUtil, IceGridAdmin

name = os.path.join("IceGrid", "noRestartUpdate")

node1Dir = os.path.join(os.getcwd(), "db", "node-1")
if not os.path.exists(node1Dir):
    os.mkdir(node1Dir)
else:
    IceGridAdmin.cleanDbDir(node1Dir)

node2Dir = os.path.join(os.getcwd(), "db", "node-2")
if not os.path.exists(node2Dir):
    os.mkdir(node2Dir)
else:
    IceGridAdmin.cleanDbDir(node2Dir)

nodeOverrideOptions = '--IceBinDir="%s" --TestDir="%s" --NodePropertiesOverride="%s Ice.ServerIdleTime=0 Ice.PrintProcessId=0 Ice.PrintAdapterReady=0"' % (
    TestUtil.getCppBinDir("cpp"), os.getcwd(),
    TestUtil.getCommandLine("", TestUtil.DriverConfig("server")).replace(
        "--", ""))

IceGridAdmin.iceGridTest("", nodeOverrideOptions)
Beispiel #17
0
    sys.exit(0)

name = os.path.join("IceGrid", "session")

node1Dir = os.path.join(os.getcwd(), "db", "node-1")
if not os.path.exists(node1Dir):
    os.mkdir(node1Dir)
else:
    IceGridAdmin.cleanDbDir(node1Dir)

print("Running test with default encoding...")

verifier = os.path.join(os.getcwd(), TestUtil.getTestExecutable("verifier"))
sys.stdout.write("starting admin permissions verifier... ")
verifierProc = TestUtil.startServer(verifier,
                                    config=TestUtil.DriverConfig("server"))
print("ok")

IceGridAdmin.registryOptions += \
                             r' --Ice.Warn.Dispatch=0' + \
                             r' --IceGrid.Registry.DynamicRegistration' + \
                             r' --IceGrid.Registry.SessionFilters' + \
                             r' --IceGrid.Registry.AdminSessionFilters' + \
                             r' --IceGrid.Registry.PermissionsVerifier="ClientPermissionsVerifier"' + \
                             r' --IceGrid.Registry.AdminPermissionsVerifier="AdminPermissionsVerifier:tcp -p 12002"'+ \
                             r' --IceGrid.Registry.SSLPermissionsVerifier="SSLPermissionsVerifier"' + \
                             r' --IceGrid.Registry.AdminSSLPermissionsVerifier="SSLPermissionsVerifier"'

bindir = TestUtil.getCppBinDir()
testdir = os.getcwd()
serverdir = TestUtil.getTestDirectory("server")
Beispiel #18
0
sys.path.append(os.path.join(path[0], "scripts"))
import TestUtil

router = os.path.join(TestUtil.getCppBinDir(), "glacier2router")

#
# Generate the crypt passwords file
#
TestUtil.hashPasswords(os.path.join(os.getcwd(), "passwords"),
                       {"userid": "abc123"})

args =  ' --Ice.Warn.Dispatch=0' + \
        ' --Ice.Warn.Connections=0' + \
        ' --Glacier2.SessionTimeout="30"' + \
        ' --Glacier2.Client.Endpoints="default -p 12347"' + \
        ' --Glacier2.Server.Endpoints="default"' \
        ' --Ice.Admin.Endpoints="default -p 12348"' + \
        ' --Ice.Admin.InstanceName=Glacier2' + \
        ' --Glacier2.CryptPasswords="' + os.path.join(os.getcwd(), "passwords") + '"'

sys.stdout.write("starting router... ")
sys.stdout.flush()
routerConfig = TestUtil.DriverConfig("server")
routerConfig.lang = "cpp"
starterProc = TestUtil.startServer(router, args, count=2, config=routerConfig)
print("ok")

TestUtil.clientServerTest(additionalClientOptions=" --shutdown")

starterProc.waitTestSuccess()
Beispiel #19
0
    sys.stdout.write("*** can't run test as root ***\n")
    sys.stdout.write("\n")
    sys.exit(0)

name = os.path.join("IceGrid", "session")

node1Dir = os.path.join(os.getcwd(), "db", "node-1")
if not os.path.exists(node1Dir):
    os.mkdir(node1Dir)
else:
    IceGridAdmin.cleanDbDir(node1Dir)

print("Running test with default encoding...")

sys.stdout.write("starting admin permissions verifier... ")
verifierProc = TestUtil.startServer(os.path.join(os.getcwd(), "verifier"), config=TestUtil.DriverConfig("server"))
print("ok")

IceGridAdmin.registryOptions += \
                             r' --Ice.Warn.Dispatch=0' + \
                             r' --IceGrid.Registry.DynamicRegistration' + \
                             r' --IceGrid.Registry.SessionFilters' + \
                             r' --IceGrid.Registry.AdminSessionFilters' + \
                             r' --IceGrid.Registry.PermissionsVerifier="ClientPermissionsVerifier"' + \
                             r' --IceGrid.Registry.AdminPermissionsVerifier="AdminPermissionsVerifier:tcp -p 12002"'+ \
                             r' --IceGrid.Registry.SSLPermissionsVerifier="SSLPermissionsVerifier"' + \
                             r' --IceGrid.Registry.AdminSSLPermissionsVerifier="SSLPermissionsVerifier"'

IceGridAdmin.iceGridTest("application.xml",
    '--IceBinDir="%s" --TestDir="%s"' % (TestUtil.getCppBinDir(), os.getcwd()),
    'properties-override=\'%s\'' % IceGridAdmin.iceGridNodePropertiesOverride())