Пример #1
0
    def _get_fixed_ip_address(self, port_id):
        """Get a port's fixed ip address.

        :param port_id: Neutron port id.
        :returns: Neutron port ip address.
        :raises: FailedToGetIPAddressOnPort
        :raises: InvalidIPv4Address
        """
        ip_address = None
        try:
            neutron_port = self.client.show_port(port_id).get('port')
        except neutron_client_exc.NeutronClientException:
            LOG.exception(_LE("Failed to Get IP address on Neutron port %s."),
                          port_id)
            raise exception.FailedToGetIPAddressOnPort(port_id=port_id)

        fixed_ips = neutron_port.get('fixed_ips')

        # NOTE(faizan) At present only the first fixed_ip assigned to this
        # neutron port will be used, since nova allocates only one fixed_ip
        # for the instance.
        if fixed_ips:
            ip_address = fixed_ips[0].get('ip_address', None)

        if ip_address:
            if utils.is_valid_ipv4(ip_address):
                return ip_address
            else:
                LOG.error(_LE("Neutron returned invalid IPv4 address %s."),
                          ip_address)
                raise exception.InvalidIPv4Address(ip_address=ip_address)
        else:
            LOG.error(_LE("No IP address assigned to Neutron port %s."),
                      port_id)
            raise exception.FailedToGetIPAddressOnPort(port_id=port_id)
Пример #2
0
    def _get_fixed_ip_address(self, port_id):
        """Get a port's fixed ip address.

        :param port_id: Neutron port id.
        :returns: Neutron port ip address.
        :raises: FailedToGetIPAddressOnPort
        :raises: InvalidIPv4Address
        """
        ip_address = None
        try:
            neutron_port = self.client.show_port(port_id).get('port')
        except neutron_client_exc.NeutronClientException:
            LOG.exception(_LE("Failed to Get IP address on Neutron port %s."),
                          port_id)
            raise exception.FailedToGetIPAddressOnPort(port_id=port_id)

        fixed_ips = neutron_port.get('fixed_ips')

        # NOTE(faizan) At present only the first fixed_ip assigned to this
        # neutron port will be used, since nova allocates only one fixed_ip
        # for the instance.
        if fixed_ips:
            ip_address = fixed_ips[0].get('ip_address', None)

        if ip_address:
            if utils.is_valid_ipv4(ip_address):
                return ip_address
            else:
                LOG.error(_LE("Neutron returned invalid IPv4 address %s."),
                          ip_address)
                raise exception.InvalidIPv4Address(ip_address=ip_address)
        else:
            LOG.error(_LE("No IP address assigned to Neutron port %s."),
                      port_id)
            raise exception.FailedToGetIPAddressOnPort(port_id=port_id)
Пример #3
0
 def test_is_valid_ipv4(self):
     self.assertTrue(utils.is_valid_ipv4('127.0.0.1'))
     self.assertFalse(utils.is_valid_ipv4('::1'))
     self.assertFalse(utils.is_valid_ipv4('bacon'))
     self.assertFalse(utils.is_valid_ipv4(""))
     self.assertFalse(utils.is_valid_ipv4(10))
Пример #4
0
 def test_is_valid_ipv4(self):
     self.assertTrue(utils.is_valid_ipv4('127.0.0.1'))
     self.assertFalse(utils.is_valid_ipv4('::1'))
     self.assertFalse(utils.is_valid_ipv4('bacon'))
     self.assertFalse(utils.is_valid_ipv4(""))
     self.assertFalse(utils.is_valid_ipv4(10))