Exemplo n.º 1
0
 def test_get_original_port_for_create_with_ctx(self):
     # with replace, but without replace table - up port +1
     fake_ctx = self.generate_relation_context()
     fake_ctx._target.instance.runtime_properties = {
         public_nat.PORT_REPLACEMENT: {}
     }
     gateway = mock.Mock()
     rule_inlist = self.generate_nat_rule('SNAT', 'external', 10,
                                          'internal', 11, 'TCP')
     gateway.get_nat_rules = mock.MagicMock(return_value=[rule_inlist])
     with mock.patch('vcloud_network_plugin.public_nat.ctx', fake_ctx):
         self.assertEqual(
             public_nat._get_original_port_for_create(
                 gateway, 'SNAT', 'external', '10', 'internal', '11',
                 'TCP'), 11)
         self.assertEqual(
             fake_ctx._target.instance.runtime_properties,
             {public_nat.PORT_REPLACEMENT: {
                 'external:10': 11
             }})
     # same but without replacement at all
     fake_ctx._target.instance.runtime_properties = {}
     with mock.patch('vcloud_network_plugin.public_nat.ctx', fake_ctx):
         self.assertEqual(
             public_nat._get_original_port_for_create(
                 gateway, 'SNAT', 'external', '10', 'internal', '11',
                 'TCP'), 11)
         self.assertEqual(
             fake_ctx._target.instance.runtime_properties,
             {public_nat.PORT_REPLACEMENT: {
                 'external:10': 11
             }})
     # we dont have enought ports
     rule_inlist = self.generate_nat_rule('SNAT', 'external',
                                          utils.MAX_PORT_NUMBER, 'internal',
                                          11, 'TCP')
     gateway.get_nat_rules = mock.MagicMock(return_value=[rule_inlist])
     fake_ctx._target.instance.runtime_properties = {}
     with mock.patch('vcloud_network_plugin.public_nat.ctx', fake_ctx):
         with self.assertRaises(cfy_exc.NonRecoverableError):
             public_nat._get_original_port_for_create(
                 gateway, 'SNAT', 'external', utils.MAX_PORT_NUMBER,
                 'internal', '11', 'TCP')
 def test_get_original_port_for_create(self):
     gateway = mock.Mock()
     fake_ctx = self.generate_relation_context()
     rule_inlist = self.generate_nat_rule(
         'DNAT', 'external', 'any', 'internal', '11', 'TCP')
     gateway.get_nat_rules = mock.MagicMock(return_value=[rule_inlist])
     with mock.patch(
         'vcloud_network_plugin.public_nat.ctx', fake_ctx
     ):
         # exeption about same port
         with self.assertRaises(cfy_exc.NonRecoverableError):
             public_nat._get_original_port_for_create(
                 gateway, 'DNAT', 'external', 'any', 'internal', '11', 'TCP'
             )
         # everythiong fine with different port
         self.assertEqual(
             public_nat._get_original_port_for_create(
                 gateway, 'DNAT', 'external', '12', 'internal', '12', 'TCP'), 12)
         # relink some port to other
         # port have not used yet
         self.assertEqual(
             public_nat._get_original_port_for_create(
                 gateway, 'SNAT', 'external', 13, 'internal', '12', 'TCP'), 13)
Exemplo n.º 3
0
 def test_get_original_port_for_create(self):
     gateway = mock.Mock()
     fake_ctx = self.generate_relation_context()
     rule_inlist = self.generate_nat_rule('DNAT', 'external', 'any',
                                          'internal', '11', 'TCP')
     gateway.get_nat_rules = mock.MagicMock(return_value=[rule_inlist])
     with mock.patch('vcloud_network_plugin.public_nat.ctx', fake_ctx):
         # exeption about same port
         with self.assertRaises(cfy_exc.NonRecoverableError):
             public_nat._get_original_port_for_create(
                 gateway, 'DNAT', 'external', 'any', 'internal', '11',
                 'TCP')
         # everythiong fine with different port
         self.assertEqual(
             public_nat._get_original_port_for_create(
                 gateway, 'DNAT', 'external', '12', 'internal', '12',
                 'TCP'), 12)
         # relink some port to other
         # port have not used yet
         self.assertEqual(
             public_nat._get_original_port_for_create(
                 gateway, 'SNAT', 'external', 13, 'internal', '12', 'TCP'),
             13)
 def test_get_original_port_for_create_with_ctx(self):
     # with replace, but without replace table - up port +1
     fake_ctx = self.generate_relation_context()
     fake_ctx._target.instance.runtime_properties = {
         public_nat.PORT_REPLACEMENT: {}
     }
     gateway = mock.Mock()
     rule_inlist = self.generate_nat_rule(
         'SNAT', 'external', 10, 'internal', 11, 'TCP'
     )
     gateway.get_nat_rules = mock.MagicMock(return_value=[rule_inlist])
     with mock.patch(
         'vcloud_network_plugin.public_nat.ctx', fake_ctx
     ):
         self.assertEqual(
             public_nat._get_original_port_for_create(
                 gateway, 'SNAT', 'external', '10', 'internal', '11', 'TCP'
             ),
             11
         )
         self.assertEqual(
             fake_ctx._target.instance.runtime_properties,
             {
                 public_nat.PORT_REPLACEMENT: {
                     'external:10': 11
                 }
             }
         )
     # same but without replacement at all
     fake_ctx._target.instance.runtime_properties = {}
     with mock.patch(
         'vcloud_network_plugin.public_nat.ctx', fake_ctx
     ):
         self.assertEqual(
             public_nat._get_original_port_for_create(
                 gateway, 'SNAT', 'external', '10', 'internal', '11', 'TCP'
             ),
             11
         )
         self.assertEqual(
             fake_ctx._target.instance.runtime_properties,
             {
                 public_nat.PORT_REPLACEMENT: {
                     'external:10': 11
                 }
             }
         )
     # we dont have enought ports
     rule_inlist = self.generate_nat_rule(
         'SNAT', 'external', utils.MAX_PORT_NUMBER,
         'internal', 11, 'TCP'
     )
     gateway.get_nat_rules = mock.MagicMock(return_value=[rule_inlist])
     fake_ctx._target.instance.runtime_properties = {}
     with mock.patch(
         'vcloud_network_plugin.public_nat.ctx', fake_ctx
     ):
         with self.assertRaises(cfy_exc.NonRecoverableError):
             public_nat._get_original_port_for_create(
                 gateway, 'SNAT', 'external',
                 utils.MAX_PORT_NUMBER, 'internal', '11', 'TCP'
             )