def _calculate_instance_properties(self, pool, vip):
        """ ServiceInstance settings
        - right network: public side, determined by the vip
        - left network: backend, determined by the pool subnet
        """
        props = ServiceInstanceType()

        vmi = self._get_virtual_ip_interface(vip)
        if not vmi:
            return None

        vnet_refs = vmi.get_virtual_network_refs()
        if vnet_refs is None:
            return None
        props.right_virtual_network = ':'.join(vnet_refs[0]['to'])

        props.right_ip_address = self._get_interface_address(vmi)
        if props.right_ip_address is None:
            return None

        pool_attrs = pool.get_loadbalancer_pool_properties()
        backnet_id = utils.get_subnet_network_id(
            self._api, pool_attrs.subnet_id)
        if backnet_id != vnet_refs[0]['uuid']:
            try:
                vnet = self._api.virtual_network_read(id=backnet_id)
            except NoIdError as ex:
                LOG.error(ex)
                return None
            props.left_virtual_network = ':'.join(vnet.get_fq_name())

        # set flag to create policy automatically
        props.set_auto_policy(True)

        return props
Exemple #2
0
    def _calculate_instance_properties(self, pool, vip):
        """ ServiceInstance settings
        - right network: public side, determined by the vip
        - left network: backend, determined by the pool subnet
        """
        props = ServiceInstanceType()

        vmi = self._get_virtual_ip_interface(vip)
        if not vmi:
            return None

        vnet_refs = vmi.get_virtual_network_refs()
        if vnet_refs is None:
            return None
        props.right_virtual_network = ':'.join(vnet_refs[0]['to'])

        props.right_ip_address = self._get_interface_address(vmi)
        if props.right_ip_address is None:
            return None

        pool_attrs = pool.get_loadbalancer_pool_properties()
        backnet_id = utils.get_subnet_network_id(self._api,
                                                 pool_attrs.subnet_id)
        if backnet_id != vnet_refs[0]['uuid']:
            try:
                vnet = self._api.virtual_network_read(id=backnet_id)
            except NoIdError as ex:
                LOG.error(ex)
                return None
            props.left_virtual_network = ':'.join(vnet.get_fq_name())

        # set flag to create policy automatically
        props.set_auto_policy(True)

        return props