Beispiel #1
0
    def _add_ha_vips_config(self, hacluster):
        """Add a VirtualIP object for each user specified vip to self.resources

        @param hacluster instance of interface class HAClusterRequires
        """
        if not self.config.get(VIP_KEY):
            return

        vips = self.config[VIP_KEY].split()

        # the `vip` config option has changed and there was a value previously
        # set, the principle needs to ask hacluster to remove it from
        # pacemaker's configuration (LP: #1952363).
        if self.config.changed(VIP_KEY) and self.config.previous(VIP_KEY):
            old_vips = self.config.previous(VIP_KEY).split()
            vips_to_del = set(old_vips) - set(vips)
            for vip in vips_to_del:
                hookenv.log("Registering %s for deletion" % vip)
                hacluster.remove_vip(self.name, vip)

        for vip in vips:
            iface, netmask, fallback = os_ha_utils.get_vip_settings(vip)
            if fallback:
                hacluster.add_vip(
                    self.name,
                    vip,
                    iface,
                    netmask)
            else:
                hacluster.add_vip(self.name, vip)
                if iface:
                    # Remove vip resource using old raw nic name.
                    old_vip_key = 'res_{}_{}_vip'.format(self.name, iface)
                    hacluster.delete_resource(old_vip_key)
    def _add_ha_vips_config(self, hacluster):
        """Add a VirtualIP object for each user specified vip to self.resources

        @param hacluster instance of interface class HAClusterRequires
        """
        if not self.config.get(VIP_KEY):
            return
        for vip in self.config[VIP_KEY].split():
            iface, netmask, fallback = os_ha_utils.get_vip_settings(vip)
            if fallback:
                hacluster.add_vip(self.name, vip, iface, netmask)
            else:
                hacluster.add_vip(self.name, vip)
                if iface:
                    # Remove vip resource using old raw nic name.
                    old_vip_key = 'res_{}_{}_vip'.format(self.name, iface)
                    hacluster.delete_resource(old_vip_key)
Beispiel #3
0
    def _add_ha_vips_config(self, hacluster):
        """Add a VirtualIP object for each user specified vip to self.resources

        @param hacluster instance of interface class HAClusterRequires
        """
        if not self.config.get(VIP_KEY):
            return
        for vip in self.config[VIP_KEY].split():
            iface, netmask, fallback = os_ha_utils.get_vip_settings(vip)
            if fallback:
                hacluster.add_vip(
                    self.name,
                    vip,
                    iface,
                    netmask)
            else:
                hacluster.add_vip(self.name, vip)
                if iface:
                    # Remove vip resource using old raw nic name.
                    old_vip_key = 'res_{}_{}_vip'.format(self.name, iface)
                    hacluster.delete_resource(old_vip_key)
Beispiel #4
0
 def test_get_vip_settings_fallback(self):
     self.conf = {'vip_iface': 'eth3', 'vip_cidr': '255.255.0.0'}
     self.assertEqual(ha.get_vip_settings('192.168.100.1'),
                      ('eth3', '255.255.0.0', True))
Beispiel #5
0
 def test_get_vip_settings(self):
     self.assertEqual(ha.get_vip_settings('10.5.100.1'),
                      ('eth1', '255.255.255.0', False))