def associate_address(self, pool_id, ip_id, vm_id, csep_id=None): LOGGER.info('Associating address...') pool = IPPool.get_pool_by_id(pool_id) ip_db = pool.associate_address(ip_id, vm_id) if pool.type == constants.PUBLIC_IP_POOL: public_ip = self.remove_cidr_format_from_ip(ip_db.ip) add_flag = 'TRUE' public_ip_id = None self.manage_public_ip(vm_id, public_ip_id, public_ip, csep_id, add_flag) return ip_db
def disassociate_address(self, pool_id, ip_id, csep_id=None): LOGGER.info('Disassociating address...') pool = IPPool.get_pool_by_id(pool_id) ip_db = self.get_ip_by_id(ip_id) if pool.type == constants.PUBLIC_IP_POOL: public_ip_id = ip_db.id public_ip = self.remove_cidr_format_from_ip(ip_db.ip) add_flag = 'FALSE' vm_id = None nw_vm_rel = DBSession.query(NetworkVMRelation).filter_by(public_ip_id = ip_id).first() if nw_vm_rel: rec_list = DBSession.query(CSEPDefLink).filter_by(def_id = nw_vm_rel.nw_def_id) for rec in rec_list: csep_id = rec.csep_id self.manage_public_ip(vm_id,public_ip_id,public_ip,csep_id,add_flag) ip_db = pool.disassociate_address(ip_id) return ip_db
def add_new_ip(self, pool_id, addresses, cidr=None): pool = IPPool.get_pool_by_id(pool_id) return pool.app_new_ip(addresses, cidr)
def get_pool_by_id(self, pool_id): return IPPool.get_pool_by_id(pool_id)
def release_address(self, pool_id, entity_id, ip_id=None): pool = IPPool.get_pool_by_id(pool_id) ip_db = pool.release_address(entity_id, ip_id) return ip_db
def reserve_address(self, pool_id, entity_id): pool = IPPool.get_pool_by_id(pool_id) ip_db = pool.reserve_address(entity_id) return ip_db
def get_all_addresses(self, pool_id): pool = IPPool.get_pool_by_id(pool_id) return pool.get_all_ips()