Example #1
0
    def test_get_dhcp_opts_for_nw01(self):
        self.mox.StubOutWithMock(db, 'network_get_associated_fixed_ips')
        self.mox.StubOutWithMock(db, 'virtual_interface_get_by_instance')

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg())\
                                            .AndReturn([fixed_ips[1],
                                                        fixed_ips[2],
                                                        fixed_ips[5]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg())\
                                             .AndReturn([vifs[0],
                                                         vifs[1],
                                                         vifs[4]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg())\
                                             .AndReturn([vifs[2],
                                                         vifs[3],
                                                         vifs[5]])
        self.mox.ReplayAll()

        expected_opts = "NW-i00000000-1,3"
        actual_opts = self.driver.get_dhcp_opts(None, networks[1])

        self.assertEquals(actual_opts, expected_opts)
Example #2
0
    def test_get_dhcp_hosts_for_nw01(self):
        self.flags(use_single_default_gateway=True)

        def get_vif(_context, vif_id):
            return vifs[vif_id]

        def get_instance(_context, instance_id):
            return instances[instance_id]

        self.stubs.Set(db, 'virtual_interface_get', get_vif)
        self.stubs.Set(db, 'instance_get', get_instance)
        self.mox.StubOutWithMock(db, 'network_get_associated_fixed_ips')

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg()).AndReturn(
                                                [fixed_ips[1], fixed_ips[2]])
        self.mox.ReplayAll()

        expected = ("DE:AD:BE:EF:00:01,fake_instance00.novalocal,"
                    "192.168.1.100,net:NW-i00000000-1\n"
                    "DE:AD:BE:EF:00:02,fake_instance01.novalocal,"
                    "192.168.0.101,net:NW-i00000001-1")
        actual_hosts = self.driver.get_dhcp_hosts(self.context, networks[0])

        self.assertEquals(actual_hosts, expected)
Example #3
0
    def test_get_dhcp_opts_for_nw01(self):
        def get_instance(_context, instance_id):
            print instance_id
            return instances[instance_id]

        self.stubs.Set(db, 'instance_get', get_instance)
        self.mox.StubOutWithMock(db, 'network_get_associated_fixed_ips')
        self.mox.StubOutWithMock(db, 'virtual_interface_get_by_instance')

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg()).AndReturn([
                                                fixed_ips[1], fixed_ips[2],
                                                fixed_ips[5]
                                            ])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg()).AndReturn(
                                                 [vifs[0], vifs[1], vifs[4]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg()).AndReturn(
                                                 [vifs[2], vifs[3], vifs[5]])
        self.mox.ReplayAll()

        expected_opts = "NW-i00000000-1,3"
        actual_opts = self.driver.get_dhcp_opts(self.context, networks[1])

        self.assertEquals(actual_opts, expected_opts)
Example #4
0
    def test_get_dhcp_opts_for_nw01(self):
        self.mox.StubOutWithMock(db, 'network_get_associated_fixed_ips')
        self.mox.StubOutWithMock(db, 'virtual_interface_get_by_instance')

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg())\
                                            .AndReturn([fixed_ips[1],
                                                        fixed_ips[2],
                                                        fixed_ips[5]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg())\
                                             .AndReturn([vifs[0],
                                                         vifs[1],
                                                         vifs[4]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg())\
                                             .AndReturn([vifs[2],
                                                         vifs[3],
                                                         vifs[5]])
        self.mox.ReplayAll()

        expected_opts = "NW-i00000000-1,3"
        actual_opts = self.driver.get_dhcp_opts(None, networks[1])

        self.assertEquals(actual_opts, expected_opts)
Example #5
0
 def test_network_get_associated_fixed_ips(self):
     ctxt = context.get_admin_context()
     values = {"host": "foo", "hostname": "myname"}
     instance = db.instance_create(ctxt, values)
     values = {"address": "bar", "instance_id": instance["id"]}
     vif = db.virtual_interface_create(ctxt, values)
     values = {
         "address": "baz",
         "network_id": 1,
         "allocated": True,
         "instance_id": instance["id"],
         "virtual_interface_id": vif["id"],
     }
     fixed_address = db.fixed_ip_create(ctxt, values)
     data = db.network_get_associated_fixed_ips(ctxt, 1)
     self.assertEqual(len(data), 1)
     record = data[0]
     self.assertEqual(record["address"], fixed_address)
     self.assertEqual(record["instance_id"], instance["id"])
     self.assertEqual(record["network_id"], 1)
     self.assertEqual(record["instance_created"], instance["created_at"])
     self.assertEqual(record["instance_updated"], instance["updated_at"])
     self.assertEqual(record["instance_hostname"], instance["hostname"])
     self.assertEqual(record["vif_id"], vif["id"])
     self.assertEqual(record["vif_address"], vif["address"])
     data = db.network_get_associated_fixed_ips(ctxt, 1, "nothing")
     self.assertEqual(len(data), 0)
Example #6
0
    def test_get_dhcp_hosts_for_nw01(self):
        self.flags(use_single_default_gateway=True)

        def get_vif(_context, vif_id):
            return vifs[vif_id]

        def get_instance(_context, instance_id):
            return instances[instance_id]

        self.stubs.Set(db, "virtual_interface_get", get_vif)
        self.stubs.Set(db, "instance_get", get_instance)
        self.mox.StubOutWithMock(db, "network_get_associated_fixed_ips")

        db.network_get_associated_fixed_ips(mox.IgnoreArg(), mox.IgnoreArg()).AndReturn([fixed_ips[1], fixed_ips[2]])
        self.mox.ReplayAll()

        expected = (
            "DE:AD:BE:EF:00:01,fake_instance00.novalocal,"
            "192.168.1.100,net:NW-i00000000-1\n"
            "DE:AD:BE:EF:00:02,fake_instance01.novalocal,"
            "192.168.0.101,net:NW-i00000001-1"
        )
        actual_hosts = self.driver.get_dhcp_hosts(self.context, networks[0])

        self.assertEquals(actual_hosts, expected)
Example #7
0
    def test_get_dhcp_opts_for_nw01(self):
        def get_instance(_context, instance_id):
            print instance_id
            return instances[instance_id]

        self.stubs.Set(db, 'instance_get', get_instance)
        self.mox.StubOutWithMock(db, 'network_get_associated_fixed_ips')
        self.mox.StubOutWithMock(db, 'virtual_interface_get_by_instance')

        db.network_get_associated_fixed_ips(
                mox.IgnoreArg(),
                mox.IgnoreArg()).AndReturn([fixed_ips[1], fixed_ips[2],
                                            fixed_ips[5]])
        db.virtual_interface_get_by_instance(
                mox.IgnoreArg(),
                mox.IgnoreArg()).AndReturn([vifs[0], vifs[1], vifs[4]])
        db.virtual_interface_get_by_instance(
                mox.IgnoreArg(),
                mox.IgnoreArg()).AndReturn([vifs[2], vifs[3], vifs[5]])
        self.mox.ReplayAll()

        expected_opts = "NW-i00000000-1,3"
        actual_opts = self.driver.get_dhcp_opts(self.context, networks[1])

        self.assertEquals(actual_opts, expected_opts)
Example #8
0
 def test_network_get_associated_fixed_ips(self):
     ctxt = context.get_admin_context()
     values = {'host': 'foo', 'hostname': 'myname'}
     instance = db.instance_create(ctxt, values)
     values = {'address': 'bar', 'instance_id': instance['id']}
     vif = db.virtual_interface_create(ctxt, values)
     values = {
         'address': 'baz',
         'network_id': 1,
         'allocated': True,
         'instance_id': instance['id'],
         'virtual_interface_id': vif['id']
     }
     fixed_address = db.fixed_ip_create(ctxt, values)
     data = db.network_get_associated_fixed_ips(ctxt, 1)
     self.assertEqual(len(data), 1)
     record = data[0]
     self.assertEqual(record['address'], fixed_address)
     self.assertEqual(record['instance_id'], instance['id'])
     self.assertEqual(record['network_id'], 1)
     self.assertEqual(record['instance_created'], instance['created_at'])
     self.assertEqual(record['instance_updated'], instance['updated_at'])
     self.assertEqual(record['instance_hostname'], instance['hostname'])
     self.assertEqual(record['vif_id'], vif['id'])
     self.assertEqual(record['vif_address'], vif['address'])
     data = db.network_get_associated_fixed_ips(ctxt, 1, 'nothing')
     self.assertEqual(len(data), 0)
Example #9
0
 def test_network_get_associated_fixed_ips(self):
     ctxt = context.get_admin_context()
     values = {'host': 'foo', 'hostname': 'myname'}
     instance = db.instance_create(ctxt, values)
     values = {'address': 'bar', 'instance_id': instance['id']}
     vif = db.virtual_interface_create(ctxt, values)
     values = {'address': 'baz',
               'network_id': 1,
               'allocated': True,
               'instance_id': instance['id'],
               'virtual_interface_id': vif['id']}
     fixed_address = db.fixed_ip_create(ctxt, values)
     data = db.network_get_associated_fixed_ips(ctxt, 1)
     self.assertEqual(len(data), 1)
     record = data[0]
     self.assertEqual(record['address'], fixed_address)
     self.assertEqual(record['instance_id'], instance['id'])
     self.assertEqual(record['network_id'], 1)
     self.assertEqual(record['instance_created'], instance['created_at'])
     self.assertEqual(record['instance_updated'], instance['updated_at'])
     self.assertEqual(record['instance_hostname'], instance['hostname'])
     self.assertEqual(record['vif_id'], vif['id'])
     self.assertEqual(record['vif_address'], vif['address'])
     data = db.network_get_associated_fixed_ips(ctxt, 1, 'nothing')
     self.assertEqual(len(data), 0)
Example #10
0
    def get_by_network(cls, context, network, host=None):
        ipinfo = db.network_get_associated_fixed_ips(context, network["id"], host=host)
        if not ipinfo:
            return []

        fips = cls(context=context, objects=[])

        for info in ipinfo:
            inst = instance_obj.Instance(
                context=context,
                uuid=info["instance_uuid"],
                hostname=info["instance_hostname"],
                created_at=info["instance_created"],
                updated_at=info["instance_updated"],
            )
            vif = vif_obj.VirtualInterface(context=context, id=info["vif_id"], address=info["vif_address"])
            fip = FixedIP(
                context=context,
                address=info["address"],
                instance_uuid=info["instance_uuid"],
                network_id=info["network_id"],
                virtual_interface_id=info["vif_id"],
                allocated=info["allocated"],
                leased=info["leased"],
                instance=inst,
                virtual_interface=vif,
            )
            fips.objects.append(fip)
        fips.obj_reset_changes()
        return fips
Example #11
0
def get_dhcp_hosts(context, network_id):
    """Get a string containing a network's hosts config in dhcp-host format"""
    hosts = []
    for fixed_ip_ref in db.network_get_associated_fixed_ips(
            context, network_id):
        hosts.append(_host_dhcp(fixed_ip_ref))
    return '\n'.join(hosts)
Example #12
0
def get_dhcp_opts(context, network_ref):
    """Get network's hosts config in dhcp-opts format."""
    hosts = []
    ips_ref = db.network_get_associated_fixed_ips(context, network_ref['id'])

    if ips_ref:
        #set of instance ids
        instance_set = set(
            [fixed_ip_ref['instance_id'] for fixed_ip_ref in ips_ref])
        default_gw_network_node = {}
        for instance_id in instance_set:
            vifs = db.virtual_interface_get_by_instance(context, instance_id)
            if vifs:
                #offer a default gateway to the first virtual interface
                default_gw_network_node[instance_id] = vifs[0]['network_id']

        for fixed_ip_ref in ips_ref:
            instance_id = fixed_ip_ref['instance_id']
            try:
                instance_ref = db.instance_get(context, instance_id)
            except exception.InstanceNotFound:
                msg = _("Instance %(instance_id)s not found")
                LOG.debug(msg % {'instance_id': instance_id})
                continue

            if instance_id in default_gw_network_node:
                target_network_id = default_gw_network_node[instance_id]
                # we don't want default gateway for this fixed ip
                if target_network_id != fixed_ip_ref['network_id']:
                    hosts.append(_host_dhcp_opts(fixed_ip_ref, instance_ref))
    return '\n'.join(hosts)
Example #13
0
def get_dhcp_leases(context, network_id):
    """Return a network's hosts config in dnsmasq leasefile format"""
    hosts = []
    for fixed_ip_ref in db.network_get_associated_fixed_ips(context,
                                                            network_id):
        hosts.append(_host_lease(fixed_ip_ref))
    return '\n'.join(hosts)
def get_dhcp_opts(context, network_ref):
    """Get network's hosts config in dhcp-opts format."""
    hosts = []
    host = None
    if network_ref['multi_host']:
        host = FLAGS.host
    data = db.network_get_associated_fixed_ips(context,
                                               network_ref['id'],
                                               host=host)

    if data:
        #set of instance ids
        instance_set = set([datum['instance_id'] for datum in data])
        default_gw_vif = {}
        for instance_id in instance_set:
            vifs = db.virtual_interface_get_by_instance(context, instance_id)
            if vifs:
                #offer a default gateway to the first virtual interface
                default_gw_vif[instance_id] = vifs[0]['id']

        for datum in data:
            if instance_id in default_gw_vif:
                # we don't want default gateway for this fixed ip
                if default_gw_vif[instance_id] != datum['vif_id']:
                    hosts.append(_host_dhcp_opts(datum))
    return '\n'.join(hosts)
Example #15
0
    def get_by_network(cls, context, network, host=None):
        ipinfo = db.network_get_associated_fixed_ips(context,
                                                     network['id'],
                                                     host=host)
        if not ipinfo:
            return []

        fips = cls(context=context, objects=[])

        for info in ipinfo:
            inst = objects.Instance(context=context,
                                    uuid=info['instance_uuid'],
                                    hostname=info['instance_hostname'],
                                    created_at=info['instance_created'],
                                    updated_at=info['instance_updated'])
            vif = objects.VirtualInterface(context=context,
                                           id=info['vif_id'],
                                           address=info['vif_address'])
            fip = objects.FixedIP(context=context,
                                  address=info['address'],
                                  instance_uuid=info['instance_uuid'],
                                  network_id=info['network_id'],
                                  virtual_interface_id=info['vif_id'],
                                  allocated=info['allocated'],
                                  leased=info['leased'],
                                  default_route=info['default_route'],
                                  instance=inst,
                                  virtual_interface=vif)
            fips.objects.append(fip)
        fips.obj_reset_changes()
        return fips
Example #16
0
def get_dhcp_opts(context, network_ref):
    """Get network's hosts config in dhcp-opts format."""
    hosts = []
    host = None
    if network_ref['multi_host']:
        host = FLAGS.host
    data = db.network_get_associated_fixed_ips(context,
                                               network_ref['id'],
                                               host=host)

    if data:
        #set of instance ids
        instance_set = set([datum['instance_id'] for datum in data])
        default_gw_vif = {}
        for instance_id in instance_set:
            vifs = db.virtual_interface_get_by_instance(context, instance_id)
            if vifs:
                #offer a default gateway to the first virtual interface
                default_gw_vif[instance_id] = vifs[0]['id']

        for datum in data:
            if instance_id in default_gw_vif:
                # we don't want default gateway for this fixed ip
                if default_gw_vif[instance_id] != datum['vif_id']:
                    hosts.append(_host_dhcp_opts(datum))
    return '\n'.join(hosts)
Example #17
0
def get_dhcp_opts(context, network_ref):
    """Get network's hosts config in dhcp-opts format."""
    hosts = []
    ips_ref = db.network_get_associated_fixed_ips(context, network_ref['id'])

    if ips_ref:
        #set of instance ids
        instance_set = set([fixed_ip_ref['instance_id']
                            for fixed_ip_ref in ips_ref])
        default_gw_network_node = {}
        for instance_id in instance_set:
            vifs = db.virtual_interface_get_by_instance(context, instance_id)
            if vifs:
                #offer a default gateway to the first virtual interface
                default_gw_network_node[instance_id] = vifs[0]['network_id']

        for fixed_ip_ref in ips_ref:
            instance_id = fixed_ip_ref['instance_id']
            try:
                instance_ref = db.instance_get(context, instance_id)
            except exception.InstanceNotFound:
                msg = _("Instance %(instance_id)s not found")
                LOG.debug(msg % {'instance_id': instance_id})
                continue

            if instance_id in default_gw_network_node:
                target_network_id = default_gw_network_node[instance_id]
                # we don't want default gateway for this fixed ip
                if target_network_id != fixed_ip_ref['network_id']:
                    hosts.append(_host_dhcp_opts(fixed_ip_ref,
                                                 instance_ref))
    return '\n'.join(hosts)
Example #18
0
def get_dhcp_hosts(context, network_id):
    """Get a string containing a network's hosts config in dhcp-host format"""
    hosts = []
    for fixed_ip_ref in db.network_get_associated_fixed_ips(context,
                                                            network_id):
        hosts.append(_host_dhcp(fixed_ip_ref))
    return '\n'.join(hosts)
Example #19
0
def get_dhcp_leases(context, network_id):
    """Return a network's hosts config in dnsmasq leasefile format"""
    hosts = []
    for fixed_ip_ref in db.network_get_associated_fixed_ips(
            context, network_id):
        hosts.append(_host_lease(fixed_ip_ref))
    return '\n'.join(hosts)
Example #20
0
    def test_update_dhcp_for_nw01(self):
        self.flags(use_single_default_gateway=True)

        def get_vif(_context, vif_id):
            return vifs[vif_id]

        def get_instance(_context, instance_id):
            return instances[instance_id]

        self.stubs.Set(db, 'virtual_interface_get', get_vif)
        self.stubs.Set(db, 'instance_get', get_instance)
        self.mox.StubOutWithMock(db, 'network_get_associated_fixed_ips')
        self.mox.StubOutWithMock(db, 'virtual_interface_get_by_instance')
        self.mox.StubOutWithMock(self.driver, 'write_to_file')
        self.mox.StubOutWithMock(self.driver, 'ensure_path')
        self.mox.StubOutWithMock(os, 'chmod')

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg())\
                                            .AndReturn([fixed_ips[1],
                                                        fixed_ips[2]])

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg())\
                                            .AndReturn([fixed_ips[1],
                                                        fixed_ips[2]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg())\
                                             .AndReturn([vifs[0], vifs[1]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg())\
                                             .AndReturn([vifs[2], vifs[3]])
        self.driver.write_to_file(mox.IgnoreArg(), mox.IgnoreArg())
        self.driver.write_to_file(mox.IgnoreArg(), mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        os.chmod(mox.IgnoreArg(), mox.IgnoreArg())
        os.chmod(mox.IgnoreArg(), mox.IgnoreArg())

        self.mox.ReplayAll()

        self.driver.update_dhcp(self.context, "eth0", networks[0])
Example #21
0
    def test_update_dhcp_for_nw01(self):
        self.flags(use_single_default_gateway=True)

        def get_vif(_context, vif_id):
            return vifs[vif_id]

        def get_instance(_context, instance_id):
            return instances[instance_id]

        self.stubs.Set(db, 'virtual_interface_get', get_vif)
        self.stubs.Set(db, 'instance_get', get_instance)
        self.mox.StubOutWithMock(db, 'network_get_associated_fixed_ips')
        self.mox.StubOutWithMock(db, 'virtual_interface_get_by_instance')
        self.mox.StubOutWithMock(self.driver, 'write_to_file')
        self.mox.StubOutWithMock(self.driver, 'ensure_path')
        self.mox.StubOutWithMock(os, 'chmod')

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg())\
                                            .AndReturn([fixed_ips[1],
                                                        fixed_ips[2]])

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg())\
                                            .AndReturn([fixed_ips[1],
                                                        fixed_ips[2]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg())\
                                             .AndReturn([vifs[0], vifs[1]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg())\
                                             .AndReturn([vifs[2], vifs[3]])
        self.driver.write_to_file(mox.IgnoreArg(), mox.IgnoreArg())
        self.driver.write_to_file(mox.IgnoreArg(), mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        os.chmod(mox.IgnoreArg(), mox.IgnoreArg())
        os.chmod(mox.IgnoreArg(), mox.IgnoreArg())

        self.mox.ReplayAll()

        self.driver.update_dhcp(self.context, "eth0", networks[0])
Example #22
0
def get_dhcp_hosts(context, network_ref):
    """Get network's hosts config in dhcp-host format."""
    hosts = []
    host = None
    if network_ref["multi_host"]:
        host = FLAGS.host
    for data in db.network_get_associated_fixed_ips(context, network_ref["id"], host=host):
        hosts.append(_host_dhcp(data))
    return "\n".join(hosts)
Example #23
0
def get_dhcp_hosts(context, network_ref):
    """Get network's hosts config in dhcp-host format."""
    hosts = []
    for fixed_ref in db.network_get_associated_fixed_ips(context, network_ref["id"]):
        host = fixed_ref["instance"]["host"]
        if network_ref["multi_host"] and FLAGS.host != host:
            continue
        hosts.append(_host_dhcp(fixed_ref))
    return "\n".join(hosts)
Example #24
0
    def test_get_dhcp_hosts_for_nw01(self):
        self.flags(use_single_default_gateway=True)
        self.mox.StubOutWithMock(db, 'network_get_associated_fixed_ips')

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg())\
                                            .AndReturn([fixed_ips[1],
                                                        fixed_ips[2]])
        self.mox.ReplayAll()

        expected = \
        "10.0.0.2,fake_instance00.novalocal,"\
            "192.168.1.100,net:NW-i00000000-1\n"\
        "10.0.0.3,fake_instance01.novalocal,"\
            "192.168.0.101,net:NW-i00000001-1"
        actual_hosts = self.driver.get_dhcp_hosts(None, networks[0])

        self.assertEquals(actual_hosts, expected)
Example #25
0
    def test_get_dhcp_hosts_for_nw01(self):
        self.flags(use_single_default_gateway=True)
        self.mox.StubOutWithMock(db, 'network_get_associated_fixed_ips')

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg())\
                                            .AndReturn([fixed_ips[1],
                                                        fixed_ips[2]])
        self.mox.ReplayAll()

        expected = \
        "10.0.0.2,fake_instance00.novalocal,"\
            "192.168.1.100,net:NW-i00000000-1\n"\
        "10.0.0.3,fake_instance01.novalocal,"\
            "192.168.0.101,net:NW-i00000001-1"
        actual_hosts = self.driver.get_dhcp_hosts(None, networks[0])

        self.assertEquals(actual_hosts, expected)
Example #26
0
def get_dhcp_hosts(context, network_ref):
    """Get network's hosts config in dhcp-host format."""
    hosts = []
    for fixed_ref in db.network_get_associated_fixed_ips(context,
                                                         network_ref['id']):
        host = fixed_ref['instance']['host']
        if network_ref['multi_host'] and FLAGS.host != host:
            continue
        hosts.append(_host_dhcp(fixed_ref))
    return '\n'.join(hosts)
Example #27
0
def get_dhcp_hosts(context, network_ref):
    """Get network's hosts config in dhcp-host format."""
    hosts = []
    for fixed_ref in db.network_get_associated_fixed_ips(
            context, network_ref['id']):
        host = fixed_ref['instance']['host']
        if network_ref['multi_host'] and FLAGS.host != host:
            continue
        hosts.append(_host_dhcp(fixed_ref))
    return '\n'.join(hosts)
def get_dhcp_leases(context, network_ref):
    """Return a network's hosts config in dnsmasq leasefile format."""
    hosts = []
    host = None
    if network_ref['multi_host']:
        host = FLAGS.host
    for data in db.network_get_associated_fixed_ips(context,
                                                    network_ref['id'],
                                                    host=host):
        hosts.append(_host_lease(data))
    return '\n'.join(hosts)
Example #29
0
def get_dhcp_hosts(context, network_ref):
    """Get network's hosts config in dhcp-host format."""
    hosts = []
    host = None
    if network_ref['multi_host']:
        host = FLAGS.host
    for data in db.network_get_associated_fixed_ips(context,
                                                    network_ref['id'],
                                                    host=host):
        hosts.append(_host_dhcp(data))
    return '\n'.join(hosts)
Example #30
0
    def test_update_dhcp_for_nw00(self):
        self.flags(use_single_default_gateway=True)

        self.mox.StubOutWithMock(db, 'network_get_associated_fixed_ips')
        self.mox.StubOutWithMock(db, 'virtual_interface_get_by_instance')
        self.mox.StubOutWithMock(self.driver, 'write_to_file')
        self.mox.StubOutWithMock(self.driver, 'ensure_path')
        self.mox.StubOutWithMock(os, 'chmod')

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg())\
                                            .AndReturn([fixed_ips[0],
                                                        fixed_ips[3]])

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg())\
                                            .AndReturn([fixed_ips[0],
                                                        fixed_ips[3]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg())\
                                             .AndReturn([vifs[0], vifs[1]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg())\
                                             .AndReturn([vifs[2], vifs[3]])
        self.driver.write_to_file(mox.IgnoreArg(), mox.IgnoreArg())
        self.driver.write_to_file(mox.IgnoreArg(), mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        self.driver.ensure_path(mox.IgnoreArg())
        os.chmod(mox.IgnoreArg(), mox.IgnoreArg())
        os.chmod(mox.IgnoreArg(), mox.IgnoreArg())

        self.mox.ReplayAll()

        self.driver.update_dhcp(None, "eth0", networks[0])
Example #31
0
    def test_update_dhcp_for_nw01(self):
        self.flags(use_single_default_gateway=True)
        self.mox.StubOutWithMock(db, 'network_get_associated_fixed_ips')
        self.mox.StubOutWithMock(db, 'virtual_interface_get_by_instance')

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg())\
                                            .AndReturn([fixed_ips[1],
                                                        fixed_ips[2]])

        db.network_get_associated_fixed_ips(mox.IgnoreArg(),
                                            mox.IgnoreArg())\
                                            .AndReturn([fixed_ips[1],
                                                        fixed_ips[2]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg())\
                                             .AndReturn([vifs[0], vifs[1]])
        db.virtual_interface_get_by_instance(mox.IgnoreArg(),
                                             mox.IgnoreArg())\
                                             .AndReturn([vifs[2], vifs[3]])
        self.mox.ReplayAll()

        self.driver.update_dhcp(None, "eth0", networks[0])
Example #32
0
def get_dhcp_hosts(context, network_ref):
    """Get network's hosts config in dhcp-host format."""
    hosts = []
    for fixed_ref in db.network_get_associated_fixed_ips(context, network_ref["id"]):
        vif_id = fixed_ref["virtual_interface_id"]
        # NOTE(jkoelker) We need a larger refactor to happen to prevent
        #                looking these up here
        vif_ref = db.virtual_interface_get(context, vif_id)
        instance_id = fixed_ref["instance_id"]
        try:
            instance_ref = db.instance_get(context, instance_id)
        except exception.InstanceNotFound:
            msg = _("Instance %(instance_id)s not found")
            LOG.debug(msg % {"instance_id": instance_id})
            continue
        if network_ref["multi_host"] and FLAGS.host != instance_ref["host"]:
            continue
        hosts.append(_host_dhcp(fixed_ref, vif_ref, instance_ref))
    return "\n".join(hosts)
Example #33
0
def get_dhcp_hosts(context, network_ref):
    """Get network's hosts config in dhcp-host format."""
    hosts = []
    for fixed_ref in db.network_get_associated_fixed_ips(
            context, network_ref['id']):
        vif_id = fixed_ref['virtual_interface_id']
        # NOTE(jkoelker) We need a larger refactor to happen to prevent
        #                looking these up here
        vif_ref = db.virtual_interface_get(context, vif_id)
        instance_id = fixed_ref['instance_id']
        try:
            instance_ref = db.instance_get(context, instance_id)
        except exception.InstanceNotFound:
            msg = _("Instance %(instance_id)s not found")
            LOG.debug(msg % {'instance_id': instance_id})
            continue
        if network_ref['multi_host'] and FLAGS.host != instance_ref['host']:
            continue
        hosts.append(_host_dhcp(fixed_ref, vif_ref, instance_ref))
    return '\n'.join(hosts)
Example #34
0
def get_dhcp_leases(context, network_ref):
    """Return a network's hosts config in dnsmasq leasefile format."""
    hosts = []
    for fixed_ref in db.network_get_associated_fixed_ips(context,
                                                         network_ref['id']):
        vif_id = fixed_ref['virtual_interface_id']
        # NOTE(jkoelker) We need a larger refactor to happen to prevent
        #                looking these up here
        vif_ref = db.virtual_interface_get(context, vif_id)
        instance_id = fixed_ref['instance_id']
        try:
            instance_ref = db.instance_get(context, instance_id)
        except exception.InstanceNotFound:
            msg = _("Instance %(instance_id)s not found")
            LOG.debug(msg % {'instance_id': instance_id})
            continue
        if network_ref['multi_host'] and FLAGS.host != instance_ref['host']:
            continue
        hosts.append(_host_lease(fixed_ref, vif_ref, instance_ref))
    return '\n'.join(hosts)
Example #35
0
def get_dhcp_opts(context, network_ref):
    """Get network's hosts config in dhcp-opts format."""
    hosts = []
    ips_ref = db.network_get_associated_fixed_ips(context, network_ref["id"])

    if ips_ref:
        # set of instance ids
        instance_set = set([fixed_ip_ref["instance_id"] for fixed_ip_ref in ips_ref])
        default_gw_network_node = {}
        for instance_id in instance_set:
            vifs = db.virtual_interface_get_by_instance(context, instance_id)
            if vifs:
                # offer a default gateway to the first virtual interface
                default_gw_network_node[instance_id] = vifs[0]["network_id"]

        for fixed_ip_ref in ips_ref:
            instance_id = fixed_ip_ref["instance_id"]
            if instance_id in default_gw_network_node:
                target_network_id = default_gw_network_node[instance_id]
                # we don't want default gateway for this fixed ip
                if target_network_id != fixed_ip_ref["network_id"]:
                    hosts.append(_host_dhcp_opts(fixed_ip_ref))
    return "\n".join(hosts)