def test_transaction_abort(self): self.start_transaction() self.send_message(messages.KZorpAddZoneMessage('zone')) self.end_transaction() self.check_zone_num(1) # Start a transaction self.start_transaction() self.send_message(messages.KZorpAddZoneMessage('a')) self.check_zone_num(1, False) # Abort the transaction self.reopen_handle() self.check_zone_num(1, False)
def __create_one_zone_with_subnets_do_not_fit_into_one_netlink_packet( self): zone_name = 'zone' zone_subnet_count_that_not_fit_in_netlink_packet = self._get_netlink_packet_size( ) zone_subnet_family = socket.AF_INET zone_subnet_format = '192.168.%d.%d' zone_messages = [] add_zone_message = messages.KZorpAddZoneMessage( zone_name, subnet_num=zone_subnet_count_that_not_fit_in_netlink_packet) zone_messages.append(add_zone_message) for subnet_num in range( zone_subnet_count_that_not_fit_in_netlink_packet): add_zone_subnet_message = messages.KZorpAddZoneSubnetMessage( zone_name, family=zone_subnet_family, address=socket.inet_pton( zone_subnet_family, zone_subnet_format % ( subnet_num % (2**16) / 256, subnet_num % (2**8), )), mask=socket.inet_pton( zone_subnet_family, testutil.size_to_mask(zone_subnet_family, 32))) zone_messages.append(add_zone_subnet_message) return zone_messages
def __create_several_zones_that_do_not_fit_into_one_netlink_packet(self): zone_name_format = 'zone_with_subnets_do_not_fit_into_one_netlink_packet_%d' zone_messages = [] for zone_num in range(self._get_netlink_packet_size()): add_zone_message = messages.KZorpAddZoneMessage(zone_name_format % (zone_num, ), subnet_num=0) zone_messages.append(add_zone_message) return zone_messages
def test_add_subnet_to_zone_with_zero_subnet_num(self): self.start_transaction() self.send_message( messages.KZorpAddZoneMessage('name', pname=None, subnet_num=0)) res = self.send_message(self._create_add_zone_subnet_internet('name'), assert_on_error=False) self.assertEqual(res, -errno.ENOMEM) self.end_transaction()
def _add_zone_with_internet_subnet(self): self.start_transaction() self.send_message( messages.KZorpAddZoneMessage(self.internet_zone_name, None, subnet_num=1)) add_zone_subnet_msg = self._create_add_zone_subnet_internet( self.internet_zone_name) self.send_message(add_zone_subnet_msg) self.end_transaction() self._check_add_zone_subnet_internet(add_zone_subnet_msg)
def _addzones(self): for zone in self._zones: #print "zone=%s\n"%(zone,) subnets = zone['subnets'] self.send_message(messages.KZorpAddZoneMessage( zone['name'], pname=zone['admin_parent'], subnet_num=len(subnets))) for subnet in subnets: self.send_message(messages.KZorpAddZoneSubnetMessage( zone['name'], family=zone['family'], address = testutil.subnet_base(zone['family'], subnet), mask = testutil.subnet_mask(zone['family'], subnet)))
def __test_add_zone_subnet_different_transaction(self): self.start_transaction() self.send_message( messages.KZorpAddZoneMessage(self.internet_zone_name, None, subnet_num=0)) self.end_transaction() self.start_transaction() add_zone_subnet_msg = self._create_add_zone_subnet_internet( self.internet_zone_name) self.send_message(add_zone_subnet_msg) self.end_transaction() self._check_add_zone_subnet_internet(add_zone_subnet_msg)
def newSetUp(self): self.start_transaction() for zone in self._zones: add_zone_message = messages.KZorpAddZoneMessage( zone['name'], pname=zone['pname'], subnet_num=1) self.send_message(add_zone_message) family = zone['family'] add_zone_subnet_message = messages.KZorpAddZoneSubnetMessage( zone['name'], family=family, address=socket.inet_pton(family, zone['address']), mask=socket.inet_pton( family, testutil.size_to_mask(family, zone['mask']))) self.send_message(add_zone_subnet_message) self.end_transaction() self._index = -1 self._add_zone_message = None self._add_zone_messages = []
def test_delete_and_add_zone_used_by_rule(self): self.start_transaction() self.send_message(messages.KZorpDeleteZoneMessage('AAA')) self.send_message(messages.KZorpAddZoneMessage('AAA', 'AA', 0)) self.end_transaction()
def test_zero_subnet_is_valid(self): self.start_transaction() self.send_message( messages.KZorpAddZoneMessage('name', None, subnet_num=0)) self.end_transaction()
def test_add_zone_errors(self): zones = [ { 'desc': 'nonexistent parent', 'name': 'x1', 'pname': 'x', 'error': -errno.ENOENT }, { 'desc': 'no parent', 'name': 'a', 'pname': None, 'error': 0 }, { 'desc': 'existing name', 'name': 'a', 'pname': None, 'error': -errno.EEXIST }, { 'desc': 'nonexistent name', 'name': 'x2', 'pname': None, 'error': 0 }, { 'desc': 'empty name', 'name': '', 'pname': None, 'error': -errno.EINVAL }, { 'desc': 'empty parent', 'name': 'fake', 'pname': '', 'error': -errno.EINVAL }, ] #add_zone_message = messages.KZorpAddZoneMessage('a'); #res = self.send_message(add_zone_message, assert_on_error = False) #self.assertEqual(res, -errno.ENOENT) #import pdb #pdb.set_trace() for zone in zones: self.start_transaction() add_zone_message = messages.KZorpAddZoneMessage( zone['name'], pname=zone['pname']) res = self.send_message(add_zone_message, assert_on_error=False) tr_res = self.end_transaction(assert_on_error=False) expected_result = zone['error'] if expected_result == 0: self.assertEqual(res, 0) self.assertEqual(tr_res, 0) else: if res != 0: self.assertEqual(res, expected_result) else: self.assertEqual(tr_res, expected_result)