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
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)
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
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:
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:
def getActiveSites(thriftClient): sites = thriftClient.sendRequest(GetActiveSitesRequest()) return sites