def passive(self, other_node_up=True): if self.__check_active_passive(False) == False: address = self.get_this_node_address() self.logprint("I", "%s: is already passive." % (address)) return other_node_address = self.get_other_node_address() if self.__check_node_connection(other_node_address) == False: self.logprint( "W", "Failed to swith to passive since active node: %s is unreachable." % (env.host_string)) sys.exit(1) self.__check_remote_permissions() self.__check_local_permissions() self.plugin.plugin_object.service_stop() self.__make_node_passive() self.__disable_vip() if other_node_up == True: self.__make_other_node_active()
def __disable_vip(self): if not hasattr(self, 'vip_device') or not hasattr(self, 'vip_address'): self.logprint("E","%s -- Required vip_device and vip_address is missing in config file, can't use vip." % self.get_this_node_address()) sys.exit(1) self.logprint("I","%s -- Disables vip device: %s " % ( self.get_this_node_address(), self.vip_device )) status, output = commands.getstatusoutput("sudo ifconfig %s down" % ( self.vip_device ))
def __enable_vip(self): if not hasattr(self, 'vip_device') or not hasattr(self, 'vip_address'): self.logprint("E","%s -- Required vip_device and vip_address is missing in config file, can't use vip." % self.get_this_node_address()) sys.exit(1) self.logprint("I","%s -- Configures virtual address: %s " % ( self.get_this_node_address(), self.vip_address )) status, output = commands.getstatusoutput("sudo ifconfig %s %s netmask 255.255.255.0" % ( self.vip_device, self.vip_address ))
def __check_local_permissions(self): status, output = commands.getstatusoutput('sudo whoami') if status != 0: self.logprint("E"," -- sudo access is reguired to control the cluster resource.") sys.exit(1) if output != "root": self.logprint("E"," -- Missing required permissions.") sys.exit(1)
def __load_settings(self): config = SafeConfigParser() path = os.path.dirname(os.path.abspath(__file__)) filename = "%s/cluster.cfg" % path if os.path.isfile(filename) == False: self.logprint("E"," -- Can't find config: %s" % (filename)) sys.exit(1) config.read(filename) return config
def __load_settings(self): config = SafeConfigParser() path = os.path.dirname(os.path.abspath(__file__)) filename = "%s/cluster.cfg" % path if os.path.isfile(filename) == False: self.logprint("E", " -- Can't find config: %s" % (filename)) sys.exit(1) config.read(filename) return config
def __check_local_permissions(self): status, output = commands.getstatusoutput('sudo whoami') if status != 0: self.logprint( "E", " -- sudo access is reguired to control the cluster resource.") sys.exit(1) if output != "root": self.logprint("E", " -- Missing required permissions.") sys.exit(1)
def __disable_vip(self): if not hasattr(self, 'vip_device') or not hasattr(self, 'vip_address'): self.logprint( "E", "%s -- Required vip_device and vip_address is missing in config file, can't use vip." % self.get_this_node_address()) sys.exit(1) self.logprint( "I", "%s -- Disables vip device: %s " % (self.get_this_node_address(), self.vip_device)) status, output = commands.getstatusoutput("sudo ifconfig %s down" % (self.vip_device))
def __enable_vip(self): if not hasattr(self, 'vip_device') or not hasattr(self, 'vip_address'): self.logprint( "E", "%s -- Required vip_device and vip_address is missing in config file, can't use vip." % self.get_this_node_address()) sys.exit(1) self.logprint( "I", "%s -- Configures virtual address: %s " % (self.get_this_node_address(), self.vip_address)) status, output = commands.getstatusoutput( "sudo ifconfig %s %s netmask 255.255.255.0" % (self.vip_device, self.vip_address))
def passive(self, other_node_up = True): if self.__check_active_passive(False) == False: address = self.get_this_node_address() self.logprint("I","%s: is already passive." % ( address )) return other_node_address = self.get_other_node_address() if self.__check_node_connection(other_node_address) == False: self.logprint("W","Failed to swith to passive since active node: %s is unreachable." % ( env.host_string )) sys.exit(1) self.__check_remote_permissions() self.__check_local_permissions() self.plugin.plugin_object.service_stop() self.__make_node_passive() self.__disable_vip() if other_node_up == True: self.__make_other_node_active()