Exemplo n.º 1
0
def addExistingTargets(applicationName, applicationTarget, applicationClusters, applicationServers):
    deployment = WebSphere.AdminConfig.getid("/Deployment:" + applicationName + "/")
    deployedObject = WebSphere.AdminConfig.showAttribute(deployment, "deployedObject")
    modules = wsadminToList(WebSphere.AdminConfig.showAttribute(deployedObject, "modules"))
    clusters = []
    serverNodes = []
    for module in modules:
        targetMappings = wsadminToList(WebSphere.AdminConfig.showAttribute(module, "targetMappings"))
        for targetMapping in targetMappings:
            target = WebSphere.AdminConfig.showAttribute(targetMapping, "target")
            if re.search("#ClusteredTarget", target):
                clusterName = WebSphere.AdminConfig.showAttribute(target, "name")
                if clusterName not in clusters:
                    log(INFO_, "existing clusterName: " + clusterName)
                    clusters.append(clusterName)
            elif re.search("#ServerTarget", target):
                serverName = WebSphere.AdminConfig.showAttribute(target, "name")
                nodeName = WebSphere.AdminConfig.showAttribute(target, "nodeName")
                if [nodeName, serverName] not in serverNodes:
                    log(INFO_, "existing node server: %s:%s" % (nodeName, serverName))
                    serverNodes.append([nodeName, serverName])
    for serverNode in serverNodes:
        if getServerType(serverNode[0], serverNode[1]) == "APPLICATION_SERVER":
            applicationServers.append(ServerApplicationTarget(serverNode[0], serverNode[1], applicationTarget.tests,
                applicationTarget.jvmAttributes))
    for clusterName in clusters:
        clusterTarget = ClusterApplicationTarget(clusterName, applicationTarget.tests, applicationTarget.jvmAttributes)
        clusterTarget.inactiveServers = getInactiveServers(clusterTarget)
        applicationClusters.append(clusterTarget)
Exemplo n.º 2
0
def getPartialClusterNodeServerPairs(clusters):
    nodeServerPairs = []
    for cluster in clusters:
        if len(cluster.inactiveServers) > 0:
            cluster_id = WebSphere.AdminConfig.getid("/ServerCluster:" +
                                                     cluster.clusterName + "/")
            members = WebSphere.AdminConfig.list("ClusterMember", cluster_id)
            members = wsadminToList(members)
            for member in members:
                node = WebSphere.AdminConfig.showAttribute(member, "nodeName")
                server = WebSphere.AdminConfig.showAttribute(
                    member, "memberName")
                log(
                    DEBUG_,
                    "getNodeServerPairs: cluster=" + cluster.clusterName +
                    " contains node=" + node + " server=" + server)
                inactive = 0
                for inactiveServer in cluster.inactiveServers:
                    if (node, server) == (inactiveServer.nodeName,
                                          inactiveServer.serverName):
                        inactive = 1
                if not inactive:
                    nodeServerPair = ServerApplicationTarget(
                        node, server, cluster.tests, cluster.jvmAttributes)
                    nodeServerPairs.append(nodeServerPair)
                    #endFor
        #endFor
    log(DEBUG_,
        "getNodeServerPairs: returning nodeServerPairs=" + ` nodeServerPairs `)
    return nodeServerPairs
Exemplo n.º 3
0
def copyToTargetMappings(deployedObjID, objType, webModuleConfigId):
    targetMappings = WebSphere.AdminConfig.showAttribute(
        deployedObjID, 'targetMappings')
    for target in wsadminToList(targetMappings):
        if target.find('DeploymentTargetMapping') != -1:
            WebSphere.AdminConfig.modify(target,
                                         [['config', webModuleConfigId]])
def listApplications(  ):
    log(INFO_, "ListApplications:")
    apps = WebSphere.AdminApp.list()
    apps = wsadminToList(apps) # running on windows, target is linux (different SEPARATOR)
    for app in apps:
        log(INFO_, "  " + app)
        #endFor
    log(VERBOSE_, "ListApplications: DONE.")
Exemplo n.º 5
0
def listApplications(  ):
    log(INFO_, "ListApplications:")
    apps = WebSphere.AdminApp.list()
    apps = wsadminToList(apps) # running on windows, target is linux (different SEPARATOR)
    for app in apps:
        log(INFO_, "  " + app)
        #endFor
    log(VERBOSE_, "ListApplications: DONE.")
Exemplo n.º 6
0
def addExistingTargets(applicationName, applicationTarget, applicationClusters,
                       applicationServers):
    deployment = WebSphere.AdminConfig.getid("/Deployment:" + applicationName +
                                             "/")
    deployedObject = WebSphere.AdminConfig.showAttribute(
        deployment, "deployedObject")
    modules = wsadminToList(
        WebSphere.AdminConfig.showAttribute(deployedObject, "modules"))
    clusters = []
    serverNodes = []
    for module in modules:
        targetMappings = wsadminToList(
            WebSphere.AdminConfig.showAttribute(module, "targetMappings"))
        for targetMapping in targetMappings:
            target = WebSphere.AdminConfig.showAttribute(
                targetMapping, "target")
            if re.search("#ClusteredTarget", target):
                clusterName = WebSphere.AdminConfig.showAttribute(
                    target, "name")
                if clusterName not in clusters:
                    log(INFO_, "existing clusterName: " + clusterName)
                    clusters.append(clusterName)
            elif re.search("#ServerTarget", target):
                serverName = WebSphere.AdminConfig.showAttribute(
                    target, "name")
                nodeName = WebSphere.AdminConfig.showAttribute(
                    target, "nodeName")
                if [nodeName, serverName] not in serverNodes:
                    log(INFO_,
                        "existing node server: %s:%s" % (nodeName, serverName))
                    serverNodes.append([nodeName, serverName])
    for serverNode in serverNodes:
        if getServerType(serverNode[0], serverNode[1]) == "APPLICATION_SERVER":
            applicationServers.append(
                ServerApplicationTarget(serverNode[0], serverNode[1],
                                        applicationTarget.tests,
                                        applicationTarget.jvmAttributes))
    for clusterName in clusters:
        clusterTarget = ClusterApplicationTarget(
            clusterName, applicationTarget.tests,
            applicationTarget.jvmAttributes)
        clusterTarget.inactiveServers = getInactiveServers(clusterTarget)
        applicationClusters.append(clusterTarget)
Exemplo n.º 7
0
def getInactiveServers( cluster ):
    inactiveServers = []
    cluster_id = WebSphere.AdminConfig.getid("/ServerCluster:" + cluster.clusterName + "/")
    members = WebSphere.AdminConfig.list("ClusterMember", cluster_id)
    members = wsadminToList(members)
    for member in members:
        nodeName = WebSphere.AdminConfig.showAttribute(member, "nodeName")
        serverName = WebSphere.AdminConfig.showAttribute(member, "memberName")
        log(DEBUG_,
            "getNodeServerPairs: cluster=" + cluster.clusterName + " contains node=" + nodeName + " server=" + serverName)
        if not PreValidateServer(nodeName, serverName):
            nodeServerPair = ServerApplicationTarget(nodeName, serverName, cluster.tests, cluster.jvmAttributes)
            inactiveServers.append(nodeServerPair)
            #endFor
    return inactiveServers
Exemplo n.º 8
0
def getModuleID(appName, moduleName):
    objID = WebSphere.AdminConfig.getid("/Deployment:" + appName + "/")
    objID = WebSphere.AdminConfig.showAttribute(objID, "deployedObject")
    modules = WebSphere.AdminConfig.showAttribute(objID, "modules")
    #modules = WebSphere.AdminConfig.showAttribute(WebSphere.AdminConfig.showAttribute(WebSphere.AdminConfig.getid("/Deployment:"+appName+"/" ), "deployedObject" ), "modules" )
    log(DEBUG_, "getModuleID: modules[]=" + `modules`)
    modules = wsadminToList(modules)
    log(DEBUG_, "getModuleID: modules=" + `modules`)
    for module in modules:
        id = WebSphere.AdminConfig.showAttribute(module, "uri")
        if id == moduleName:
            log(DEBUG_, "getModuleID: =" + `module`)
            return module
            #endIf
        #endFor
    return ""
Exemplo n.º 9
0
def getModuleID(appName, moduleName):
    objID = WebSphere.AdminConfig.getid("/Deployment:" + appName + "/")
    objID = WebSphere.AdminConfig.showAttribute(objID, "deployedObject")
    modules = WebSphere.AdminConfig.showAttribute(objID, "modules")
    #modules = WebSphere.AdminConfig.showAttribute(WebSphere.AdminConfig.showAttribute(WebSphere.AdminConfig.getid("/Deployment:"+appName+"/" ), "deployedObject" ), "modules" )
    log(DEBUG_, "getModuleID: modules[]=" + ` modules `)
    modules = wsadminToList(modules)
    log(DEBUG_, "getModuleID: modules=" + ` modules `)
    for module in modules:
        id = WebSphere.AdminConfig.showAttribute(module, "uri")
        if id == moduleName:
            log(DEBUG_, "getModuleID: =" + ` module `)
            return module
            #endIf
        #endFor
    return ""
Exemplo n.º 10
0
def mapWebModToVH(applicationModel, appFile):
    earTarget = applicationModel.virtualHost

    moduleTargets = {}
    for module in applicationModel.modules:
        if module.virtualHost != "":
            moduleTargets[module.name] = module.virtualHost

    log(
        VERBOSE_,
        "setModuleMappings: EarFile Mapping query: WebSphere.AdminApp.taskInfo("
        + appFile + ",\"MapWebModToVH\")")
    lines = WebSphere.AdminApp.taskInfo(appFile, "MapWebModToVH")
    #endIf
    log(DEBUG_, "EarFile default mapping=" + lines)
    lines = wsadminToList(lines)
    mappings = []
    m1 = ""
    MODULE = "WEB MODULE: "
    URI = "URI: "

    for line in lines:
        testMOD = line[0:(len(MODULE) - 0)].upper()
        testURI = line[0:(len(URI) - 0)].upper()
        if testMOD == MODULE:
            m1 = line[len(MODULE):]
            m1 = m1.strip()
            log(VERBOSE_, "MODULE=" + m1)
        elif testURI == URI:
            m2 = line[len(URI):]
            m2 = m2.strip()
            log(VERBOSE_, "URI=" + m2)
            moduleName = m2.split(',')[0]
            if moduleTargets.has_key(moduleName):
                mapping = [m1, m2, moduleTargets[moduleName]]
            else:
                mapping = [m1, m2, earTarget]
            log(
                INFO_, "setModuleMapping: mapping [" + moduleName + "]=" +
                ` mapping `)
            mappings.append(mapping)
            m1 = ""
            #endIf
        #endFor

    log(VERBOSE_, "setModuleMappings: combined mappings=" + ` mappings `)
    return mappings
Exemplo n.º 11
0
def getNodeServerPairs( clusters ):
    nodeServerPairs = []
    for cluster in clusters:
        cluster_id = WebSphere.AdminConfig.getid("/ServerCluster:" + cluster.clusterName + "/")
        members = WebSphere.AdminConfig.list("ClusterMember", cluster_id)
        members = wsadminToList(members)
        for member in members:
            node = WebSphere.AdminConfig.showAttribute(member, "nodeName")
            server = WebSphere.AdminConfig.showAttribute(member, "memberName")
            log(DEBUG_,
                "getNodeServerPairs: cluster=" + cluster.clusterName + " contains node=" + node + " server=" + server)
            nodeServerPair = ServerApplicationTarget(node, server, cluster.tests, cluster.jvmAttributes)
            nodeServerPairs.append(nodeServerPair)
            #endFor
        #endFor
    log(DEBUG_, "getNodeServerPairs: returning nodeServerPairs=" + `nodeServerPairs`)
    return nodeServerPairs
Exemplo n.º 12
0
def mapWebModToVH( applicationModel, appFile ):
    earTarget = applicationModel.virtualHost

    moduleTargets = {}
    for module in applicationModel.modules:
        if module.virtualHost != "":
            moduleTargets[module.name] = module.virtualHost

    log(VERBOSE_,
        "setModuleMappings: EarFile Mapping query: WebSphere.AdminApp.taskInfo(" + appFile + ",\"MapWebModToVH\")")
    lines = WebSphere.AdminApp.taskInfo(appFile, "MapWebModToVH")
    #endIf
    log(DEBUG_, "EarFile default mapping=" + lines)
    lines = wsadminToList(lines)
    mappings = []
    m1 = ""
    MODULE = "WEB MODULE: "
    URI = "URI: "

    for line in lines:
        testMOD = line[0:(len(MODULE) - 0)].upper()
        testURI = line[0:(len(URI) - 0)].upper()
        if testMOD == MODULE:
            m1 = line[len(MODULE):]
            m1 = m1.strip()
            log(VERBOSE_, "MODULE=" + m1)
        elif testURI == URI:
            m2 = line[len(URI):]
            m2 = m2.strip()
            log(VERBOSE_, "URI=" + m2)
            moduleName = m2.split(',')[0]
            if moduleTargets.has_key(moduleName):
                mapping = [m1, m2, moduleTargets[moduleName]]
            else:
                mapping = [m1, m2, earTarget]
            log(INFO_, "setModuleMapping: mapping [" + moduleName + "]=" + `mapping`)
            mappings.append(mapping)
            m1 = ""
            #endIf
        #endFor

    log(VERBOSE_, "setModuleMappings: combined mappings=" + `mappings`)
    return mappings
Exemplo n.º 13
0
def getInactiveServers(cluster):
    inactiveServers = []
    cluster_id = WebSphere.AdminConfig.getid("/ServerCluster:" +
                                             cluster.clusterName + "/")
    members = WebSphere.AdminConfig.list("ClusterMember", cluster_id)
    members = wsadminToList(members)
    for member in members:
        nodeName = WebSphere.AdminConfig.showAttribute(member, "nodeName")
        serverName = WebSphere.AdminConfig.showAttribute(member, "memberName")
        log(
            DEBUG_, "getNodeServerPairs: cluster=" + cluster.clusterName +
            " contains node=" + nodeName + " server=" + serverName)
        if not PreValidateServer(nodeName, serverName):
            nodeServerPair = ServerApplicationTarget(nodeName, serverName,
                                                     cluster.tests,
                                                     cluster.jvmAttributes)
            inactiveServers.append(nodeServerPair)
            #endFor
    return inactiveServers
Exemplo n.º 14
0
def mapModulesToServers( applicationModel, appFile ):
    cellName = Globals.wsadminCell
    targets = ""
    for cluster in applicationModel.clusters:
        clusterName = cluster.clusterName
        if clusterName != "":
            t = "+WebSphere:cell=" + cellName + ",cluster=" + clusterName
            targets = targets + t
    for nodeServerPair in applicationModel.servers:
        nodeName = nodeServerPair.nodeName
        serverName = nodeServerPair.serverName
        t = "+WebSphere:cell=" + cellName + ",node=" + nodeName + ",server=" + serverName
        targets = targets + t
    moduleTargets = {}
    for module in applicationModel.modules:
        moduleTarget = ""
        for target in module.targets:
            if target.targetType() == ApplicationTarget.CLUSTER and target.clusterName != "":
                t = "+WebSphere:cell=" + cellName + ",cluster=" + target.clusterName
                moduleTarget = moduleTarget + t
            elif target.targetType() == ApplicationTarget.SERVER:
                t = "+WebSphere:cell=" + cellName + ",node=" + target.nodeName + ",server=" + target.serverName
                moduleTarget = moduleTarget + t
        if moduleTarget != "":
            log(VERBOSE_, "setModuleMappings: target[" + module.name + "]=" + moduleTarget[1:])
            moduleTargets[module.name] = moduleTarget[1:]
    if targets == "" and moduleTargets == {}:
        return
    if targets != "":
        targets = targets[1:]
        log(VERBOSE_, "setModuleMappings: targets=" + `targets`)

    log(VERBOSE_,
        "setModuleMappings: EarFile Mapping query: WebSphere.AdminApp.taskInfo(" + appFile + ",\"MapModulesToServers\")")
    lines = WebSphere.AdminApp.taskInfo(appFile, "MapModulesToServers")

    log(DEBUG_, "EarFile default mapping=" + lines)
    lines = wsadminToList(lines)
    mappings = []
    m1 = ""
    MODULE = "MODULE: "
    URI = "URI: "

    for line in lines:
        testMOD = line[0:(len(MODULE) - 0)].upper()
        testURI = line[0:(len(URI) - 0)].upper()
        if testMOD == MODULE:
            m1 = line[len(MODULE):]
            m1 = m1.strip()
            log(VERBOSE_, "MODULE=" + m1)
        elif testURI == URI:
            m2 = line[len(URI):]
            m2 = m2.strip()
            log(VERBOSE_, "URI=" + m2)
            moduleName = m2.split(',')[0]
            if moduleTargets.has_key(moduleName):
                mapping = [m1, m2, moduleTargets[moduleName]]
            else:
                mapping = [m1, m2, targets]
            log(INFO_, "setModuleMapping: mapping [" + moduleName + "]=" + `mapping`)
            mappings.append(mapping)
            m1 = ""
            #endIf
        #endFor

    log(VERBOSE_, "setModuleMappings: combined mappings=" + `mappings`)
    return mappings
Exemplo n.º 15
0
def copyToTargetMappings(deployedObjID, objType, webModuleConfigId):
    targetMappings = WebSphere.AdminConfig.showAttribute(deployedObjID, 'targetMappings')
    for target in wsadminToList(targetMappings):
        if target.find('DeploymentTargetMapping') != -1:
            WebSphere.AdminConfig.modify(target, [['config', webModuleConfigId]])
def getModuleConfigs(application):
    moduleConfigMap = {}
    lines = WebSphere.AdminApp.listModules(application.name, "-server")
    for moduleLine in lines.split("\n"):
        moduleLine = moduleLine.rstrip()  #removes any Windows "\r"
        moduleLineItems = moduleLine.split("#")
        moduleName = moduleLineItems[1].split("+")[0]
        moduleTargets = []
        for moduleTargetId in moduleLineItems[2].split("+"):
            clusterMatch = clusterRegexp.match(moduleTargetId)
            if clusterMatch:
                clusterTarget = ClusterApplicationTarget(clusterMatch.group(1))
                clusterTarget.inactiveServers = getInactiveServers(
                    clusterTarget)
                clusterTarget.tests = []
                cluster_id = WebSphere.AdminConfig.getid(
                    "/ServerCluster:" + clusterTarget.clusterName + "/")
                members = WebSphere.AdminConfig.list("ClusterMember",
                                                     cluster_id)
                members = wsadminToList(members)
                for member in members:
                    node = WebSphere.AdminConfig.showAttribute(
                        member, "nodeName")
                    server = WebSphere.AdminConfig.showAttribute(
                        member, "memberName")
                    log(
                        DEBUG_, "getNodeServerPairs: cluster=" +
                        clusterTarget.clusterName + " contains node=" + node +
                        " server=" + server)
                    inactive = 0
                    for inactiveServer in clusterTarget.inactiveServers:
                        if (node, server) == (inactiveServer.nodeName,
                                              inactiveServer.serverName):
                            inactive = 1
                    if not inactive:
                        nodeObj = WebSphere.AdminConfig.getid(
                            '/Cell:/Node:%s/' % node)
                        nodeHostName = WebSphere.AdminConfig.showAttribute(
                            nodeObj, 'hostName')
                        defaultPort = getDefaultPort(node, server)
                        url = 'http://%s:%s/' % (nodeHostName, defaultPort)
                        clusterTarget.tests.append(
                            ApplicationTargetTest(url, application.version))
                        if not node in nodeSyncStatus.keys():
                            nodeSync = WebSphere.AdminControl.completeObjectName(
                                "type=NodeSync,node=%s,*" % node)
                            nodeSyncStatus[
                                node] = WebSphere.AdminControl.invoke(
                                    nodeSync, "isNodeSynchronized")
                moduleTargets.append(clusterTarget)
            else:
                nodeServerMatch = nodeServerRegexp.match(moduleTargetId)
                if nodeServerMatch:
                    serverTarget = ServerApplicationTarget(
                        nodeServerMatch.group(1), nodeServerMatch.group(2))
                    #nodeObj=WebSphere.AdminConfig.getid('/Cell:/Node:%s/'%serverTarget.nodeName)
                    #nodeHostName=WebSphere.AdminConfig.showAttribute(nodeObj, 'hostName')
                    defaultPort = getDefaultPort(serverTarget.nodeName,
                                                 serverTarget.serverName)
                    if defaultPort.endswith("43"):
                        url = 'https://%s:%s/' % (serverTarget.nodeName,
                                                  defaultPort)
                    else:
                        url = 'http://%s:%s/' % (serverTarget.nodeName,
                                                 defaultPort)

                    serverTarget.tests = [
                        ApplicationTargetTest(url, application.version)
                    ]
                    moduleTargets.append(serverTarget)
        attributes = []
        for attributeKey in [
                "classloaderMode", "startingWeight",
                "WebModuleConfig.sessionManagement.defaultCookieSettings.name",
                "WebModuleConfig.sessionManagement.defaultCookieSettings.path",
                "WebModuleConfig.sessionManagement.enable"
        ]:
            attr = showAttribute(moduleName, "Module", attributeKey,
                                 application.name)
            if attr:
                attributes.append((attributeKey, attr))
        moduleConfigMap[moduleName] = {
            "targets": moduleTargets,
            "attributes": attributes
        }

    applicationAttributes = []
    for attributeKey in [
            "classloader.mode", "warClassLoaderPolicy",
            "ApplicationConfig.sessionManagement.defaultCookieSettings.name",
            "ApplicationConfig.sessionManagement.defaultCookieSettings.path",
            "ApplicationConfig.sessionManagement.enable"
    ]:
        attr = showAttribute(application.name, "Application", attributeKey,
                             application.name)
        if attr:
            applicationAttributes.append((attributeKey, attr))
    return moduleConfigMap, applicationAttributes
def getModuleConfigs(application):
    moduleConfigMap = {}
    lines = WebSphere.AdminApp.listModules(application.name, "-server")
    for moduleLine in lines.split("\n"):
        moduleLine = moduleLine.rstrip() #removes any Windows "\r"
        moduleLineItems = moduleLine.split("#")
        moduleName = moduleLineItems[1].split("+")[0]
        moduleTargets = []
        for moduleTargetId in moduleLineItems[2].split("+"):
            clusterMatch = clusterRegexp.match(moduleTargetId)
            if clusterMatch:
                clusterTarget = ClusterApplicationTarget(clusterMatch.group(1))
                clusterTarget.inactiveServers = getInactiveServers(clusterTarget)
                clusterTarget.tests = []
                cluster_id = WebSphere.AdminConfig.getid("/ServerCluster:" + clusterTarget.clusterName + "/")
                members = WebSphere.AdminConfig.list("ClusterMember", cluster_id)
                members = wsadminToList(members)
                for member in members:
                    node = WebSphere.AdminConfig.showAttribute(member, "nodeName")
                    server = WebSphere.AdminConfig.showAttribute(member, "memberName")
                    log(DEBUG_,
                        "getNodeServerPairs: cluster=" + clusterTarget.clusterName + " contains node=" + node + " server=" + server)
                    inactive = 0
                    for inactiveServer in clusterTarget.inactiveServers:
                        if (node, server) == (inactiveServer.nodeName, inactiveServer.serverName):
                            inactive = 1
                    if not inactive:
                        nodeObj = WebSphere.AdminConfig.getid('/Cell:/Node:%s/' % node)
                        nodeHostName = WebSphere.AdminConfig.showAttribute(nodeObj, 'hostName')
                        defaultPort = getDefaultPort(node, server)
                        url = 'http://%s:%s/' % (nodeHostName, defaultPort)
                        clusterTarget.tests.append(ApplicationTargetTest(url, application.version))
                        if not node in nodeSyncStatus.keys():
                            nodeSync = WebSphere.AdminControl.completeObjectName("type=NodeSync,node=%s,*" % node)
                            nodeSyncStatus[node] = WebSphere.AdminControl.invoke(nodeSync, "isNodeSynchronized")
                moduleTargets.append(clusterTarget)
            else:
                nodeServerMatch = nodeServerRegexp.match(moduleTargetId)
                if nodeServerMatch:
                    serverTarget = ServerApplicationTarget(nodeServerMatch.group(1), nodeServerMatch.group(2))
                    #nodeObj=WebSphere.AdminConfig.getid('/Cell:/Node:%s/'%serverTarget.nodeName)
                    #nodeHostName=WebSphere.AdminConfig.showAttribute(nodeObj, 'hostName')
                    defaultPort = getDefaultPort(serverTarget.nodeName, serverTarget.serverName)
                    if defaultPort.endswith("43"):
                        url = 'https://%s:%s/' % (serverTarget.nodeName, defaultPort)
                    else:
                        url = 'http://%s:%s/' % (serverTarget.nodeName, defaultPort)

                    serverTarget.tests = [ApplicationTargetTest(url, application.version)]
                    moduleTargets.append(serverTarget)
        attributes = []
        for attributeKey in ["classloaderMode", "startingWeight",
                             "WebModuleConfig.sessionManagement.defaultCookieSettings.name",
                             "WebModuleConfig.sessionManagement.defaultCookieSettings.path",
                             "WebModuleConfig.sessionManagement.enable"]:
            attr = showAttribute(moduleName, "Module", attributeKey, application.name)
            if attr:
                attributes.append((attributeKey, attr))
        moduleConfigMap[moduleName] = {"targets": moduleTargets, "attributes": attributes}

    applicationAttributes = []
    for attributeKey in ["classloader.mode", "warClassLoaderPolicy",
                         "ApplicationConfig.sessionManagement.defaultCookieSettings.name",
                         "ApplicationConfig.sessionManagement.defaultCookieSettings.path",
                         "ApplicationConfig.sessionManagement.enable"]:
        attr = showAttribute(application.name, "Application", attributeKey, application.name)
        if attr:
            applicationAttributes.append((attributeKey, attr))
    return moduleConfigMap, applicationAttributes
Exemplo n.º 18
0
def mapModulesToServers(applicationModel, appFile):
    cellName = Globals.wsadminCell
    targets = ""
    for cluster in applicationModel.clusters:
        clusterName = cluster.clusterName
        if clusterName != "":
            t = "+WebSphere:cell=" + cellName + ",cluster=" + clusterName
            targets = targets + t
    for nodeServerPair in applicationModel.servers:
        nodeName = nodeServerPair.nodeName
        serverName = nodeServerPair.serverName
        t = "+WebSphere:cell=" + cellName + ",node=" + nodeName + ",server=" + serverName
        targets = targets + t
    moduleTargets = {}
    for module in applicationModel.modules:
        moduleTarget = ""
        for target in module.targets:
            if target.targetType(
            ) == ApplicationTarget.CLUSTER and target.clusterName != "":
                t = "+WebSphere:cell=" + cellName + ",cluster=" + target.clusterName
                moduleTarget = moduleTarget + t
            elif target.targetType() == ApplicationTarget.SERVER:
                t = "+WebSphere:cell=" + cellName + ",node=" + target.nodeName + ",server=" + target.serverName
                moduleTarget = moduleTarget + t
        if moduleTarget != "":
            log(
                VERBOSE_, "setModuleMappings: target[" + module.name + "]=" +
                moduleTarget[1:])
            moduleTargets[module.name] = moduleTarget[1:]
    if targets == "" and moduleTargets == {}:
        return
    if targets != "":
        targets = targets[1:]
        log(VERBOSE_, "setModuleMappings: targets=" + ` targets `)

    log(
        VERBOSE_,
        "setModuleMappings: EarFile Mapping query: WebSphere.AdminApp.taskInfo("
        + appFile + ",\"MapModulesToServers\")")
    lines = WebSphere.AdminApp.taskInfo(appFile, "MapModulesToServers")

    log(DEBUG_, "EarFile default mapping=" + lines)
    lines = wsadminToList(lines)
    mappings = []
    m1 = ""
    MODULE = "MODULE: "
    URI = "URI: "

    for line in lines:
        testMOD = line[0:(len(MODULE) - 0)].upper()
        testURI = line[0:(len(URI) - 0)].upper()
        if testMOD == MODULE:
            m1 = line[len(MODULE):]
            m1 = m1.strip()
            log(VERBOSE_, "MODULE=" + m1)
        elif testURI == URI:
            m2 = line[len(URI):]
            m2 = m2.strip()
            log(VERBOSE_, "URI=" + m2)
            moduleName = m2.split(',')[0]
            if moduleTargets.has_key(moduleName):
                mapping = [m1, m2, moduleTargets[moduleName]]
            else:
                mapping = [m1, m2, targets]
            log(
                INFO_, "setModuleMapping: mapping [" + moduleName + "]=" +
                ` mapping `)
            mappings.append(mapping)
            m1 = ""
            #endIf
        #endFor

    log(VERBOSE_, "setModuleMappings: combined mappings=" + ` mappings `)
    return mappings