def __pre_check(self): if self.border_gateway: if self.border_gateway != self.getTunnelGatewayNodeId(): emsg = "Incorrect border-gateway node id. Entered %s vs %s on the record." % \ (self.border_gateway, self.getTunnelGatewayNodeId()) self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit() else: self.border_gateway = self.getTunnelGatewayNodeId() # Check if border-gateway node was given if not self.border_gateway: emsg = "Border-gateway node id not specified and there is none on the record." self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit() if not self._nodeExists(self.border_gateway): emsg = "Border-gateway node %s does not exist." % ( self.border_gateway) self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit() # Check if service node was given in the environment if not self.service: self.service = self.getTunnelServiceNodeId() if not self.service and self.service_dir: if self.service_dir_server: self.skip_service_end = True self.logger.debug( "[localhost] WeaveTunnelStart against tier %s." % self.service_dir_server) else: self.service_dir_server = self.getTunnelServiceDir() if not self.service_dir_server: # Check if service node was given emsg = "Service node id (or IP address or service directory) not specified." self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit() else: self.skip_service_end = True self.logger.debug( "[localhost] WeaveTunnelStart against tier %s." % self.service_dir_server) if self.service: # If service is a domain name, convert it to IP if IP.isDomainName(self.service): ip = IP.getHostByName(self.service) self.service = ip if not IP.isIpAddress(self.service): if self.service: if self.service != self.getTunnelServiceNodeId(): emsg = "Incorrect service node id. Entered %s vs %s on the record." % \ (self.service, self.getTunnelServiceNodeId()) self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit() if not IP.isIpAddress(self.service) and not self._nodeExists( self.service): emsg = "Service node %s does not exist." % (self.service) self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit() if IP.isIpAddress(self.service): self.skip_service_end = True # Check if there is no fabric if not self.getFabricId(): emsg = "There is not Weave fabric." self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit() # Check if there is a tunnel if not self.getTunnelServiceNodeId() and not self.getTunnelServiceDir( ): emsg = "There is no Weave tunnel on the record." self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit()
def __pre_check(self): # Check if border-gateway node was given if not self.border_gateway: emsg = "Border-gateway node id not specified." self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit() if not self._nodeExists(self.border_gateway): emsg = "Border-gateway node %s does not exist." % ( self.border_gateway) self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit() # Check if service node was given in the environment if not self.service and not self.service_dir: if "weave_service_address" in os.environ.keys(): self.service = os.environ['weave_service_address'] emsg = "Found weave_service_address %s." % (self.service) self.logger.debug("[localhost] Weave: %s" % (emsg)) if not self.service and self.service_dir: if self.service_dir_server: self.skip_service_end = True self.logger.debug( "[localhost] WeaveTunnelStart against tier %s." % self.service_dir_server) else: if "weave_service_address" in os.environ.keys(): self.skip_service_end = True self.service_dir_server = os.environ[ 'weave_service_address'] self.logger.debug( "[localhost] WeaveTunnelStart against tier %s." % self.service_dir_server) else: # Check if service node was given emsg = "Service node id (or IP address or service directory) not specified." self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit() if self.service and not self.use_lwip: # If service is a domain name, convert it to IP if IP.isDomainName(self.service): ip = IP.getHostByName(self.service) self.service = ip if not IP.isIpAddress(self.service) and not self._nodeExists( self.service): emsg = "Service node %s does not exist." % (self.service) self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit() if IP.isIpAddress(self.service): self.service_ipv4_addr = self.service self.skip_service_end = True else: self.service_ipv4_addr = self.getNodePublicIPv4Address( self.service) if self.service_ipv4_addr == None: emsg = "Could not find IP address of the service node." self.logger.error("[localhost] WeaveTunnel: %s" % (emsg)) self.exit() self.fabric_id = self.getFabricId() # Check if there is no fabric if self.fabric_id == None: emsg = "There is not Weave fabric." self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.exit() # Check if there is a tunnel if self.getTunnelServiceNodeId() or self.getTunnelServiceDir(): emsg = "There already exist a Weave tunnel." self.logger.error("[localhost] WeaveTunnelStart: %s" % (emsg)) self.__stopExistingTunnel() self.service_weave_id = self.getServiceWeaveID("Tunnel") self.gateway_weave_id = self.getWeaveNodeID(self.border_gateway) if self.service_weave_id == None: emsg = "Could not find Weave node ID of the service node." self.logger.error("[localhost] WeaveTunnel: %s" % (emsg)) self.exit() if self.gateway_weave_id == None: emsg = "Could not find Weave node ID of the border-gateway node." self.logger.error("[localhost] WeaveTunnel: %s" % (emsg)) self.exit()