def test_remove_after_releasing_some_addresses(self): """ remove after releasing some addresses shouldn't remove block """ # Assign IP block self._stub.AddIPBlock(self._block_msg) # Allocate 2 IPs alloc_request0 = AllocateIPRequest( sid=self._sid0, version=AllocateIPRequest.IPV4, apn=self._apn0, ) ip_msg0 = self._stub.AllocateIPAddress(alloc_request0) alloc_request1 = AllocateIPRequest( sid=self._sid1, version=AllocateIPRequest.IPV4, apn=self._apn0, ) self._stub.AllocateIPAddress(alloc_request1) # Test remove without force -- should not remove block remove_request0 = RemoveIPBlockRequest( ip_blocks=[self._block_msg], force=False, ) resp = self._stub.RemoveIPBlock(remove_request0) expect = RemoveIPBlockResponse() self.assertEqual(expect, resp) # Ensure that block has not been removed resp = self._stub.ListAddedIPv4Blocks(Void()) expect = ListAddedIPBlocksResponse() expect.ip_block_list.extend([self._block_msg]) self.assertEqual(expect, resp) # Release the allocated IPs release_request0 = ReleaseIPRequest( sid=self._sid0, ip=ip_msg0.ip_list[0], apn=self._apn0, ) resp = self._stub.ReleaseIPAddress(release_request0) self.assertEqual(resp, Void()) # Test remove without force -- should not remove block remove_request1 = RemoveIPBlockRequest( ip_blocks=[self._block_msg], force=False, ) resp = self._stub.RemoveIPBlock(remove_request1) expect = RemoveIPBlockResponse() self.assertEqual(expect, resp) # Ensure that block has not been removed resp = self._stub.ListAddedIPv4Blocks(Void()) expect = ListAddedIPBlocksResponse() expect.ip_block_list.extend([self._block_msg]) self.assertEqual(expect, resp)
def test_remove_no_assigned_blocks(self): """ remove should return nothing """ remove_request0 = RemoveIPBlockRequest(ip_blocks=[self._block_msg], force=False) resp = self._stub.RemoveIPBlock(remove_request0) expect = RemoveIPBlockResponse() self.assertEqual(expect, resp) resp = self._stub.ListAddedIPv4Blocks(Void()) expect = ListAddedIPBlocksResponse() self.assertEqual(expect, resp)
def ListAddedIPv4Blocks(self, void, context): """ Return a list of IPv4 blocks assigned """ resp = ListAddedIPBlocksResponse() ip_blocks = self._ipv4_allocator.list_added_ip_blocks() ip_block_msg_list = [IPBlock(version=IPAddress.IPV4, net_address=block.network_address.packed, prefix_len=block.prefixlen) for block in ip_blocks] resp.ip_block_list.extend(ip_block_msg_list) return resp
def ListAddedIPv4Blocks(self, void, context): """ Return a list of IPv4 blocks assigned """ logging.debug("Received ListAddedIPv4Blocks") self._print_grpc(void) resp = ListAddedIPBlocksResponse() ip_blocks = self._ip_address_man.list_added_ip_blocks() ip_block_msg_list = [ IPBlock(version=IPAddress.IPV4, net_address=block.network_address.packed, prefix_len=block.prefixlen) for block in ip_blocks ] resp.ip_block_list.extend(ip_block_msg_list) self._print_grpc(resp) return resp
def ListAddedIPv6Blocks(self, request, context): """ Return a list of IPv6 blocks assigned """ self._print_grpc(request) resp = ListAddedIPBlocksResponse() ip_blocks = self._ip_address_man.get_assigned_ipv6_block() ip_block_msg_list = [ IPBlock( version=IPAddress.IPV6, net_address=block.network_address.packed, prefix_len=block.prefixlen, ) for block in ip_blocks ] resp.ip_block_list.extend(ip_block_msg_list) self._print_grpc(resp) return resp
def test_remove_allocated_assigned_block_with_force(self): """ remove should return nothing """ self._stub.AddIPBlock(self._block_msg) alloc_request0 = AllocateIPRequest(sid=self._sid0, version=AllocateIPRequest.IPV4) self._stub.AllocateIPAddress(alloc_request0) remove_request0 = RemoveIPBlockRequest(ip_blocks=[self._block_msg], force=True) resp = self._stub.RemoveIPBlock(remove_request0) expect = RemoveIPBlockResponse() expect.ip_blocks.extend([self._block_msg]) self.assertEqual(expect, resp) resp = self._stub.ListAddedIPv4Blocks(Void()) expect = ListAddedIPBlocksResponse() self.assertEqual(expect, resp)
def mocked_mobilityd_list_ip_blocks(): res = ListAddedIPBlocksResponse() res.ip_block_list.extend(ip_blocks_list) return res