Exemple #1
0
    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
Exemple #6
0
    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
Exemple #7
0
    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)
Exemple #8
0
    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))
Exemple #9
0
    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()