def deallocate(self, pool_id): context = get_session() pool = db.api.used_pool_get(context, pool_id) logger.info('deallocate pool %s' % pool.pool_id) pool.is_free = True pool.save(context) db.api.concat_pool(context, pool)
def deallocate(self, pool_id): context = get_session() pool = db.api.used_pool_get(context, pool_id) logger.info('deallocate pool %s' % pool.pool_id) pool.is_free = True pool.save(context) db.api.concat_pool(context, pool)
def test_allocate_pool(self): context = get_session() group1 = db.api.pool_group_add(context, {'group_name': '10.31_pool'}) network = IPNetwork('10.31.214.0/22') initial_pool1 = db.api.initial_pool_add(context, {'group_id': group1.group_id, 'cidr': network}) network_new_pool = IPNetwork('0.0.0.0/30') pool = db.api.free_pool_find_by_netmask_and_netgroup(context, network_new_pool.netmask.value, group1.group_name) assert pool.count == initial_pool1.count
def create_new_initial_pool(self, group_id, ip, mask): network = IPNetwork('%s/%s' % (ip, mask)) context = get_session() initial_pool = db.api.initial_pool_add(context, { 'group_id': group_id, 'cidr': network }) return initial_pool
def test_create_initial_pool(self): context = get_session() group1 = db.api.pool_group_add(context, {'group_name': '10.31_pool'}) network = IPNetwork('10.31.214.0/22') initial_pool1 = db.api.initial_pool_add(context, { 'group_id': group1.group_id, 'cidr': network })
def test_add_used_pool(self): context = get_session() group1 = db.api.pool_group_add(context, {'group_name': '10.31_pool'}) network = IPNetwork('10.31.214.0/22') stack_name = 'stack_name FFF' stack_id = 'FFF-FFF-FFF-FFF' initial_pool1 = db.api.initial_pool_add(context, {'group_id': group1.group_id, 'cidr': network}) allocated_pool = db.api.used_pool_add(context, {'initial_pool': initial_pool1, 'cidr': network, 'stack_id': stack_id, 'stack_name': stack_name}) assert allocated_pool.stack_id == stack_id assert allocated_pool.stack_name == stack_name assert allocated_pool.initial_pool.initial_pool_id == initial_pool1.initial_pool_id
def test_allocate_pool(self): context = get_session() group1 = db.api.pool_group_add(context, {'group_name': '10.31_pool'}) network = IPNetwork('10.31.214.0/22') initial_pool1 = db.api.initial_pool_add(context, { 'group_id': group1.group_id, 'cidr': network }) network_new_pool = IPNetwork('0.0.0.0/30') pool = db.api.free_pool_find_by_netmask_and_netgroup( context, network_new_pool.netmask.value, group1.group_name) assert pool.count == initial_pool1.count
def test_add_used_pool(self): context = get_session() group1 = db.api.pool_group_add(context, {'group_name': '10.31_pool'}) network = IPNetwork('10.31.214.0/22') stack_name = 'stack_name FFF' stack_id = 'FFF-FFF-FFF-FFF' initial_pool1 = db.api.initial_pool_add(context, { 'group_id': group1.group_id, 'cidr': network }) allocated_pool = db.api.used_pool_add( context, { 'initial_pool': initial_pool1, 'cidr': network, 'stack_id': stack_id, 'stack_name': stack_name }) assert allocated_pool.stack_id == stack_id assert allocated_pool.stack_name == stack_name assert allocated_pool.initial_pool.initial_pool_id == initial_pool1.initial_pool_id
def allocate(self, netmask, net_group_name, stack_id=None, stack_name=None): context = get_session() network = IPNetwork('0.0.0.0/%s' % netmask) pool = db.api.free_pool_find_by_netmask_and_netgroup(context, network.netmask.value, net_group_name) ip_network = pool_to_network(pool) if ip_network.size == network.size: pool.is_free = False pool.stack_id = stack_id pool.stack_name = stack_name pool.save() allocated_pool = pool else: pool_list = list(ip_network.subnet(netmask)) allocated_network = pool_list[0] pool_list = IPSet(pool_list[1::]) allocated_pool = db.api.used_pool_add(context, {'initial_pool': pool.initial_pool, 'cidr': allocated_network, 'stack_id': stack_id, 'stack_name': stack_name}) for free_pool in pool_list.iter_cidrs(): db.api.free_pool_add(context, {'initial_pool': pool.initial_pool, 'cidr': free_pool}) db.api.pool_delete(context, pool.pool_id) logger.info('allocate pool id %s %s' % (allocated_pool.pool_id, allocated_network)) return allocated_pool
def allocate(self, netmask, net_group_name, stack_id=None, stack_name=None): context = get_session() network = IPNetwork('0.0.0.0/%s' % netmask) pool = db.api.free_pool_find_by_netmask_and_netgroup( context, network.netmask.value, net_group_name) ip_network = pool_to_network(pool) if ip_network.size == network.size: pool.is_free = False pool.stack_id = stack_id pool.stack_name = stack_name pool.save() allocated_pool = pool else: pool_list = list(ip_network.subnet(netmask)) allocated_network = pool_list[0] pool_list = IPSet(pool_list[1::]) allocated_pool = db.api.used_pool_add( context, { 'initial_pool': pool.initial_pool, 'cidr': allocated_network, 'stack_id': stack_id, 'stack_name': stack_name }) for free_pool in pool_list.iter_cidrs(): db.api.free_pool_add(context, { 'initial_pool': pool.initial_pool, 'cidr': free_pool }) db.api.pool_delete(context, pool.pool_id) logger.info('allocate pool id %s %s' % (allocated_pool.pool_id, allocated_network)) return allocated_pool
def create_new_pool_group(self, group_name): context = get_session() group = db.api.pool_group_add(context, {'group_name': group_name}) return group
def test_create_group(self): context = get_session() group1 = db.api.pool_group_add(context, {'group_name': '10.31_pool'}) group2 = db.api.pool_group_add(context, {'group_name': '10.31_instances'}) assert group1 is not group2
def get_pool_group(self, group_name): context = get_session() group = db.api.pool_group_get_by_name(context, group_name) return group
def create_new_pool_group(self, group_name): context = get_session() group = db.api.pool_group_add(context, {'group_name': group_name}) return group
def test_create_group(self): context = get_session() group1 = db.api.pool_group_add(context, {'group_name': '10.31_pool'}) group2 = db.api.pool_group_add(context, {'group_name': '10.31_instances'}) assert group1 is not group2
def get_pool_group(self, group_name): context = get_session() group = db.api.pool_group_get_by_name(context, group_name) return group
def create_new_initial_pool(self, group_id, ip, mask): network = IPNetwork('%s/%s' % (ip, mask)) context = get_session() initial_pool = db.api.initial_pool_add(context, {'group_id': group_id, 'cidr': network}) return initial_pool
def test_create_initial_pool(self): context = get_session() group1 = db.api.pool_group_add(context, {'group_name': '10.31_pool'}) network = IPNetwork('10.31.214.0/22') initial_pool1 = db.api.initial_pool_add(context, {'group_id': group1.group_id, 'cidr': network})