Esempio n. 1
0
 def delete_deallocated_ips(self, deallocated_by_func):
     for ip in db.db_api.find_deallocated_ips(
             deallocated_by=deallocated_by_func(), ip_block_id=self.id):
         LOG.debug("Deleting deallocated IP: %s" % ip)
         generator = ipv4.plugin().get_generator(self)
         generator.ip_removed(ip.address)
         ip.delete()
     self.update(is_full=False)
Esempio n. 2
0
    def delete_deallocated_ips(self, deallocated_by_func):
        self.update(is_full=False)

        for ip in db.db_api.find_deallocated_ips(
            deallocated_by=deallocated_by_func(), ip_block_id=self.id):
            LOG.debug("Deleting deallocated IP: %s" % ip)
            generator = ipv4.plugin().get_generator(self)
            generator.ip_removed(ip.address)
            ip.delete()
Esempio n. 3
0
def _db_connect():
    # If you really need to do another migration before all of this goes into
    # quantum, and you need to access the DB, this is what you need:
    oparser = optparse.OptionParser(version="%%prog %s"
                                    % version.version_string())
    create_options(oparser)
    (options, args) = config.parse_options(oparser)
    conf, app = config.Config.load_paste_app('melange', options, args)
    db_api.configure_db(conf, ipv4.plugin(), mac.plugin())
def _db_connect():
    # If you really need to do another migration before all of this goes into
    # quantum, and you need to access the DB, this is what you need:
    oparser = optparse.OptionParser(version="%%prog %s" %
                                    version.version_string())
    create_options(oparser)
    (options, args) = config.parse_options(oparser)
    conf, app = config.Config.load_paste_app('melange', options, args)
    db_api.configure_db(conf, ipv4.plugin(), mac.plugin())
Esempio n. 5
0
    def _generate_ip(self, **kwargs):
        if self.is_ipv6():
            generator = ipv6.address_generator_factory(self.cidr, **kwargs)
            address = next((address for address in IpAddressIterator(generator)
                            if self.does_address_exists(address) is False),
                           None)
        else:
            generator = ipv4.plugin().get_generator(self)
            address = next(
                (address for address in IpAddressIterator(generator)
                 if self._address_is_allocatable(self.policy(), address)),
                None)

        if not address:
            self.update(is_full=True)
            raise exception.NoMoreAddressesError(_("IpBlock is full"))
        return address
Esempio n. 6
0
    def _generate_ip(self, **kwargs):
        if self.is_ipv6():
            generator = ipv6.address_generator_factory(self.cidr,
                                                       **kwargs)
            address = next((address for address in IpAddressIterator(generator)
                           if self.does_address_exists(address) is False),
                           None)
        else:
            generator = ipv4.plugin().get_generator(self)
            address = next((address for address in IpAddressIterator(generator)
                            if self._address_is_allocatable(self.policy(),
                                                            address)),
                           None)

        if not address:
            self.update(is_full=True)
            raise exception.NoMoreAddressesError(_("IpBlock is full"))
        return address
Esempio n. 7
0
 def delete(self):
     for block in self.subnets():
         block.delete()
     IpAddress.find_all(ip_block_id=self.id).delete()
     ipv4.plugin().get_generator(self).delete()
     super(IpBlock, self).delete()
Esempio n. 8
0
 def delete(self):
     for block in self.subnets():
         block.delete()
     IpAddress.find_all(ip_block_id=self.id).delete()
     ipv4.plugin().get_generator(self).delete()
     super(IpBlock, self).delete()
Esempio n. 9
0
    from melange.common import config
    from melange.db import db_api
    from melange.ipam import models
    from melange.db.sqlalchemy import session
    from melange.openstack.common import config as openstack_config

    oparser = optparse.OptionParser()
    openstack_config.add_common_options(oparser)
    openstack_config.add_log_options(oparser)
    (options, args) = openstack_config.parse_options(oparser)

    if len(args) < 1:
        sys.exit("Please include the connection string for the nova DB")

    try:
        conf = config.load_app_environment(optparse.OptionParser())
        db_api.configure_db(conf, ipv4.plugin(), mac.plugin())
        nova_engine = session._create_engine({'sql_connection': args[0]})
        instances = nova_engine.execute("select id,uuid from instances")
        melange_session = session.get_session()

        print "-----"
        for instance in instances:
            print "updating %(id)s with %(uuid)s" % instance
            session._ENGINE.execute("update interfaces set "
                                    "device_id='%(uuid)s' "
                                    "where device_id=%(id)s" % instance)

    except RuntimeError as error:
        sys.exit("ERROR: %s" % error)
Esempio n. 10
0
    from melange.common import config
    from melange.db import db_api
    from melange.ipam import models
    from melange.db.sqlalchemy import session
    from melange.openstack.common import config as openstack_config

    oparser = optparse.OptionParser()
    openstack_config.add_common_options(oparser)
    openstack_config.add_log_options(oparser)
    (options, args) = openstack_config.parse_options(oparser)

    if len(args) < 1:
        sys.exit("Please include the connection string for the nova DB")

    try:
        conf = config.load_app_environment(optparse.OptionParser())
        db_api.configure_db(conf, ipv4.plugin(), mac.plugin())
        nova_engine = session._create_engine({'sql_connection': args[0]})
        instances = nova_engine.execute("select id,uuid from instances")
        melange_session = session.get_session()

        print "-----"
        for instance in instances:
            print "updating %(id)s with %(uuid)s" % instance
            session._ENGINE.execute("update interfaces set "
                                    "device_id='%(uuid)s' "
                                    "where device_id=%(id)s" % instance)

    except RuntimeError as error:
        sys.exit("ERROR: %s" % error)