def test_get_original_port_for_create(self):
     gateway = mock.Mock()
     rule_inlist = self.generate_nat_rule(
         'SNAT', 'external', 'any', 'internal', '11', 'TCP'
     )
     gateway.get_nat_rules = mock.MagicMock(return_value=[rule_inlist])
     # exeption about same port
     with self.assertRaises(cfy_exc.NonRecoverableError):
         public_nat._get_original_port_for_create(
             gateway, 'SNAT', 'external', 'any', 'internal', '11', 'TCP'
         )
     # everythiong fine with different port
     self.assertEqual(
         public_nat._get_original_port_for_create(
             gateway, 'SNAT', 'external', 'any', 'internal', '12', 'TCP'
         ),
         'any'
     )
     # relink some port to other
     # port have not used yet
     self.assertEqual(
         public_nat._get_original_port_for_create(
             gateway, 'SNAT', 'external', 10, 'internal', '12', 'TCP'
         ),
         10
     )
 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('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('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('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()
     rule_inlist = self.generate_nat_rule('SNAT', 'external', 'any',
                                          'internal', '11', 'TCP')
     gateway.get_nat_rules = mock.MagicMock(return_value=[rule_inlist])
     # exeption about same port
     with self.assertRaises(cfy_exc.NonRecoverableError):
         public_nat._get_original_port_for_create(gateway, 'SNAT',
                                                  'external', 'any',
                                                  'internal', '11', 'TCP')
     # everythiong fine with different port
     self.assertEqual(
         public_nat._get_original_port_for_create(gateway, 'SNAT',
                                                  'external', 'any',
                                                  'internal', '12', 'TCP'),
         'any')
     # relink some port to other
     # port have not used yet
     self.assertEqual(
         public_nat._get_original_port_for_create(gateway, 'SNAT',
                                                  'external', 10,
                                                  'internal', '12', 'TCP'),
         10)
 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(
         '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)
Esempio n. 5
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('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(
         '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(
         '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', public_nat.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(
         'network_plugin.public_nat.ctx', fake_ctx
     ):
         with self.assertRaises(cfy_exc.NonRecoverableError):
             public_nat._get_original_port_for_create(
                 gateway, 'SNAT', 'external',
                 public_nat.MAX_PORT_NUMBER, 'internal', '11', 'TCP'
             )