[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-9885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16328347#comment-16328347
 ] 

Alexander Conn commented on CLOUDSTACK-9885:
--------------------------------------------

As I needed a fix for this sooner rather than later, I modified the required 
python scripts on VR myself. Fortunately the private gateways we use are all 
part of the same subnet so this was fixed as per below. My added code in *bold*

+File: /opt/cloud/bin/cs/CsRedundant.py+

 

def _redundant_on(self):

        guest = self.address.get_guest_if()

 

        # No redundancy if there is no guest network

        if guest is None:

            self.set_backup()

            self._redundant_off()

            return

 

        interfaces = [interface for interface in self.address.get_interfaces() 
if interface.is_guest()]

        isDeviceReady = False

        dev = ''

        for interface in interfaces:

            if dev == interface.get_device():

                continue

 

            *int_ip = interface.get_ip()*

            *if int_ip.startswith('10.200.200.'):*

                *continue*

 

            dev = interface.get_device()

            logging.info("Wait for devices to be configured so we can start 
keepalived")

            devConfigured = CsDevice(dev, self.config).waitfordevice()

            if devConfigured:

                command = "ip link show %s | grep 'state UP'" % dev

                devUp = CsHelper.execute(command)

                if devUp:

                    logging.info("Device %s is present, let's start keepalive 
now." % dev)

                    isDeviceReady = True

 

+File: /opt/cloud/bin/cs/CsAddress.py+

def get_guest_if(self):

        """

        Return CsInterface object for the lowest in use guest interface

        """

        guest_interface = None

        lowest_device = 1000

        for interface in self.get_interfaces():

            *int_ip = interface.get_ip()*

            *if int_ip.startswith('10.200.200.'):*

                *continue*

            if interface.is_guest() and interface.is_added():

                device = interface.get_device()

                device_suffix = int(''.join([digit for digit in device if 
digit.isdigit()]))

                if device_suffix < lowest_device:

                    lowest_device = device_suffix

                    guest_interface = interface

                    logging.debug("Guest interface will be set on device '%s' 
and IP '%s'" % (guest_interface.get_device(), guest_interface.get_ip()))

        return guest_interface

 

Also add this code to all instances of the needs_vrrp function in CsAddress.py, 
example below:

 

def needs_vrrp(self, o):

        """

        Returns if the ip needs to be managed by keepalived or not

        """

 

        *int_ip = self.get_ip()*

        *if int_ip.startswith('10.200.200.'):*

            *return False*

 

        if "nw_type" in o and o['nw_type'] in VRRP_TYPES:

            return True

        return False

 

Hopefully this helps you guys with your bug fix and anyone else experiencing 
this issue.

 

 

 

 

 

> VPC RVR: On deleting first tier and configuring Private GW  both VRs becoming 
> MASTER
> ------------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-9885
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9885
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>    Affects Versions: 4.10.0.0
>            Reporter: Jayapal Reddy
>            Assignee: Jayapal Reddy
>            Priority: Critical
>             Fix For: 4.10.1.0
>
>
> - Configure two tier networks t1 and t2. Delete the t1 network. Both VRs are 
> getting  into MASTER state.
> r-269-QA - was BACKUP VR. On deleting t1 network it became MASTER.
> {noformat}
> root@r-269-QA:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
>     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>     inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 0e:00:a9:fe:01:dc brd ff:ff:ff:ff:ff:ff
>     inet 169.254.1.220/16 brd 169.254.255.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
>     link/ether 06:e4:c8:00:00:0e brd ff:ff:ff:ff:ff:ff
>     inet 10.147.46.102/24 brd 10.147.46.255 scope global eth1
> 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 02:00:5d:a4:00:03 brd ff:ff:ff:ff:ff:ff
>     inet 10.1.1.33/24 brd 10.1.1.255 scope global eth2
> 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 06:de:fc:00:00:29 brd ff:ff:ff:ff:ff:ff
>     inet 10.147.52.200/24 brd 10.147.52.255 scope global eth3
> 6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 02:00:31:e1:00:03 brd ff:ff:ff:ff:ff:ff
>     inet 10.1.2.78/24 brd 10.1.2.255 scope global eth4
> root@r-269-QA:~#
> root@r-269-QA:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
>     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>     inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 0e:00:a9:fe:01:dc brd ff:ff:ff:ff:ff:ff
>     inet 169.254.1.220/16 brd 169.254.255.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 06:e4:c8:00:00:0e brd ff:ff:ff:ff:ff:ff
>     inet 10.147.46.102/24 brd 10.147.46.255 scope global eth1
> 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 06:de:fc:00:00:29 brd ff:ff:ff:ff:ff:ff
>     inet 10.147.52.200/24 brd 10.147.52.255 scope global eth3
>     inet 10.147.52.100/24 brd 10.147.52.255 scope global secondary eth3
> 6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 02:00:31:e1:00:03 brd ff:ff:ff:ff:ff:ff
>     inet 10.1.2.78/24 brd 10.1.2.255 scope global eth4
>     inet 10.1.2.1/24 brd 10.1.2.255 scope global secondary eth4
> root@r-269-QA:~# checkrouter.sh
> Status: MASTER
> root@r-269-QA:~#
> {noformat}
> root@r-268-QA - was MASTER VR. On deleting t1 it deleted its eth2 interface 
> and delete 10.2.1.1 ip on ethic interface.
>    After some time it configured 10.2.1.1 ip on eth4 and it became master.
> {noformat}
> root@r-268-QA:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
>     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>     inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 0e:00:a9:fe:02:ac brd ff:ff:ff:ff:ff:ff
>     inet 169.254.2.172/16 brd 169.254.255.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 06:e4:c8:00:00:0e brd ff:ff:ff:ff:ff:ff
>     inet 10.147.46.102/24 brd 10.147.46.255 scope global eth1
> 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 02:00:15:ab:00:02 brd ff:ff:ff:ff:ff:ff
>     inet 10.1.1.189/24 brd 10.1.1.255 scope global eth2
>     inet 10.1.1.1/24 brd 10.1.1.255 scope global secondary eth2
> 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 06:67:ce:00:00:29 brd ff:ff:ff:ff:ff:ff
>     inet 10.147.52.200/24 brd 10.147.52.255 scope global eth3
>     inet 10.147.52.100/24 brd 10.147.52.255 scope global secondary eth3
> 6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 02:00:09:1d:00:02 brd ff:ff:ff:ff:ff:ff
>     inet 10.1.2.49/24 brd 10.1.2.255 scope global eth4
>     inet 10.1.2.1/24 brd 10.1.2.255 scope global secondary eth4
> root@r-268-QA:~#
> root@r-268-QA:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
>     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>     inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 0e:00:a9:fe:02:ac brd ff:ff:ff:ff:ff:ff
>     inet 169.254.2.172/16 brd 169.254.255.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 06:e4:c8:00:00:0e brd ff:ff:ff:ff:ff:ff
>     inet 10.147.46.102/24 brd 10.147.46.255 scope global eth1
> 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 02:00:15:ab:00:02 brd ff:ff:ff:ff:ff:ff
> 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 06:67:ce:00:00:29 brd ff:ff:ff:ff:ff:ff
>     inet 10.147.52.200/24 brd 10.147.52.255 scope global eth3
> 6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 02:00:09:1d:00:02 brd ff:ff:ff:ff:ff:ff
>     inet 10.1.2.49/24 brd 10.1.2.255 scope global eth4
> root@r-268-QA:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
>     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>     inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 0e:00:a9:fe:02:ac brd ff:ff:ff:ff:ff:ff
>     inet 169.254.2.172/16 brd 169.254.255.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
>     link/ether 06:e4:c8:00:00:0e brd ff:ff:ff:ff:ff:ff
>     inet 10.147.46.102/24 brd 10.147.46.255 scope global eth1
> 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 06:67:ce:00:00:29 brd ff:ff:ff:ff:ff:ff
>     inet 10.147.52.200/24 brd 10.147.52.255 scope global eth3
> 6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 02:00:09:1d:00:02 brd ff:ff:ff:ff:ff:ff
>     inet 10.1.2.49/24 brd 10.1.2.255 scope global eth4
> root@r-268-QA:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
>     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>     inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 0e:00:a9:fe:02:ac brd ff:ff:ff:ff:ff:ff
>     inet 169.254.2.172/16 brd 169.254.255.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 06:e4:c8:00:00:0e brd ff:ff:ff:ff:ff:ff
>     inet 10.147.46.102/24 brd 10.147.46.255 scope global eth1
> 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 06:67:ce:00:00:29 brd ff:ff:ff:ff:ff:ff
>     inet 10.147.52.200/24 brd 10.147.52.255 scope global eth3
>     inet 10.147.52.100/24 brd 10.147.52.255 scope global secondary eth3
> 6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
> qlen 1000
>     link/ether 02:00:09:1d:00:02 brd ff:ff:ff:ff:ff:ff
>     inet 10.1.2.49/24 brd 10.1.2.255 scope global eth4
>     inet 10.1.2.1/24 brd 10.1.2.255 scope global secondary eth4
> root@r-268-QA:~# checkrouter.sh
> Status: MASTER
> root@r-268-QA:~#
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to