Example #1
0
 def getSiteID(self):
     ssr = ServerResponse()
     request = GetActiveSitesRequest()
     sr = self.__makeRequest(request)
     ssr.setMessages(sr.getMessages())
     ids = sr.getPayload() if sr.getPayload() is not None else []
     sr.setPayload(ids)
     return sr
Example #2
0
    def __metaInformation(self):
        # gets the meta information
        txt = ""
        wsId = WsId(progName="ifpServerText")
        if self.__metaInfo == "sitetimezone":
            request = GetActiveSitesRequest()
            try:
                serverResponse = self.__thrift.sendRequest(request)
            except Exception, e:
                raise RuntimeError, "Could not retrieve meta information: " + str(e)

            siteIds = serverResponse
            request = GetSiteTimeZoneInfoRequest()
            request.setWorkstationID(wsId)
            request.setSiteID("")
            request.setRequestedSiteIDs(siteIds)
            try:
                serverResponse = self.__thrift.sendRequest(request)
            except Exception, e:
                raise RuntimeError, "Could not retrieve meta information: " + str(e)
Example #3
0
def validateArgs():
    """Collects program options from the command line. On error, returns the usage information."""

    parser = UsageArgumentParser.UsageArgumentParser(
        conflict_handler="resolve", prog="moveGFEData")
    parser.add_argument("-h",
                        action="store",
                        dest="srcHost",
                        help="upon which the ifpServer is running",
                        required=True,
                        metavar="hostname")
    parser.add_argument("-p",
                        action="store",
                        type=int,
                        dest="srcPort",
                        help="the port that ifpServer is serving",
                        required=True,
                        metavar="portNumber")
    parser.add_argument("-s",
                        action="store",
                        dest="sourceUser",
                        help="user from which to copy the data",
                        required=True,
                        metavar="sourceUser")
    parser.add_argument("-d",
                        action="store",
                        dest="destUser",
                        help="user to copy the data to",
                        required=True,
                        metavar="destUser")
    parser.add_argument("-c",
                        action="store_true",
                        dest="copyOnly",
                        help="copy only, do not delete original")
    parser.add_argument(
        "-a",
        action="store",
        dest="destHost",
        help="destination server host, if different from primary",
        metavar="hostname2")
    parser.add_argument(
        "-b",
        action="store",
        type=int,
        dest="destPort",
        help="destination server port, if different from primary",
        metavar="port2")
    parser.add_argument("-w",
                        action="store",
                        dest="srcSiteID",
                        help="source site ID",
                        metavar="sourceSiteID")
    parser.add_argument("-x",
                        action="store",
                        dest="destSiteID",
                        help="destination site ID",
                        metavar="destSiteID")
    options = parser.parse_args()

    logger.info("MoveGFEData from [%s] to [%s]", options.sourceUser,
                options.destUser)

    if (options.sourceUser == "BASE" and not options.copyOnly) or \
        (options.destUser == "BASE"):
        parser.error("Operations not permitted with user \'BASE\'")

    if (options.sourceUser == "CONFIGURED" and not options.copyOnly) or \
        (options.destUser == "CONFIGURED"):
        parser.error("Operations not permitted with user \'CONFIGURED\'")

    if options.destHost is None:
        options.destHost = options.srcHost

    if options.destPort is None:
        options.destPort = options.srcPort

    if options.srcHost != options.destHost or options.srcPort != options.destPort:
        logging.info("Multiple servers: Source: %s:%d Dest: %s:%d",
                     options.srcHost, options.srcPort, options.destHost,
                     options.destPort)

    if options.destHost == options.srcHost and \
        options.destPort == options.srcPort and \
        options.destUser == options.sourceUser and \
        options.sourceUser != "SITE":
        parser.error(
            "Source user must be different from destination user with same server/host"
        )

    srcClient = ThriftClient.ThriftClient(options.srcHost, options.srcPort,
                                          "/services")
    request = GetActiveSitesRequest()
    try:
        response = srcClient.sendRequest(request)
    except:
        parser.error("Unable to connect to ifpServer " + options.srcHost +
                     ":" + str(options.srcPort))
    else:
        srcActiveSites = response

    destClient = ThriftClient.ThriftClient(options.destHost, options.destPort,
                                           "/services")
    try:
        response = destClient.sendRequest(request)
    except:
        parser.error("Unable to connect to ifpServer " + options.destHost +
                     ":" + str(options.destPort))
    else:
        destActiveSites = response

    if not options.srcSiteID and options.sourceUser in ['CONFIGURED', 'SITE']:
        if len(srcActiveSites) == 1:
            options.srcSiteID = srcActiveSites.pop()
        else:
            parser.error(
                "Could not determine active site ID of ifpServer. Please provide -w flag."
            )

    if not options.destSiteID and options.sourceUser in ['CONFIGURED', 'SITE']:
        if len(destActiveSites) == 1:
            options.destSiteID = destActiveSites.pop()
        else:
            parser.error(
                "Could not determine active site ID of ifpServer. Please provide -x flag."
            )

    if (options.sourceUser == "SITE" and not options.srcSiteID) or \
         (options.destUser == "SITE" and not options.destSiteID):
        parser.error("A site ID must be provided with user \'SITE\'")

    if options.destHost == options.srcHost and \
        options.destPort == options.srcPort and \
        options.destUser == options.sourceUser and \
        options.sourceUser == "SITE" and \
        options.srcSiteID == options.destSiteID:
        parser.error(
            "Source siteID must be different from destination siteID with same server/host"
        )

    options.srcUrlFormat = urlparse.urlunparse([
        "http", options.srcHost + ":" + str(options.srcPort),
        "/services/localization/{locType}/{locLevel}/{locPath}", "", "", ""
    ])
    options.destUrlFormat = urlparse.urlunparse([
        "http", options.destHost + ":" + str(options.destPort),
        "/services/localization/{locType}/{locLevel}/{locPath}", "", "", ""
    ])

    return options
Example #4
0
            request.setWorkstationID(wsId)
            request.setSiteID("")
            request.setRequestedSiteIDs(siteIds)
            try:
                serverResponse = self.__thrift.sendRequest(request)
            except Exception, e:
                raise RuntimeError, "Could not retrieve meta information: " + str(e)

            if (serverResponse.isOkay()):
                tzInfo = serverResponse.getPayload()
                for k in tzInfo.keys():
                    txt = txt + k + ' ' + tzInfo[k] + "\n"
            else:
                raise Exception, serverResponse.message()
        elif self.__metaInfo == "site":
            request = GetActiveSitesRequest()
            try:
                serverResponse = self.__thrift.sendRequest(request)
            except Exception, e:
                raise RuntimeError, "Could not retrieve meta information: " + str(e)

            for site in serverResponse:
                txt = txt + site + "\n"

        elif self.__metaInfo == "singleton":
            request = GetSingletonDbIdsRequest()
            request.setWorkstationID(wsId)
            request.setSiteID(self.__siteID)
            try:
                serverResponse = self.__thrift.sendRequest(request)
            except Exception, e:
Example #5
0
            request = GetSiteTimeZoneInfoRequest()
            request.setWorkstationID(wsId)
            request.setSiteID("")
            try:
                serverResponse = self.__thrift.sendRequest(request)
            except Exception, e:
                raise RuntimeError,  "Could not retrieve meta information: " + str(e)
            
            if (serverResponse.isOkay()):
                tzInfo = serverResponse.getPayload()
                for k in tzInfo.keys():
                    txt = txt + k + ' ' + tzInfo[k] + "\n"
            else:
                raise Exception, serverResponse.message()
        elif self.__metaInfo == "site":
            request = GetActiveSitesRequest()
            try:
                serverResponse = self.__thrift.sendRequest(request)
            except Exception, e:
                raise RuntimeError,  "Could not retrieve meta information: " + str(e)
            
            for site in serverResponse:
                txt = txt + site + "\n"

        elif self.__metaInfo == "singleton":
            request = GetSingletonDbIdsRequest()
            request.setWorkstationID(wsId)
            request.setSiteID(self.__siteID)
            try:
                serverResponse = self.__thrift.sendRequest(request)
            except Exception, e:
Example #6
0
def getActiveSites(thriftClient):
    sites = thriftClient.sendRequest(GetActiveSitesRequest())
    return sites