Esempio n. 1
0
 def test_unbind_and_bind_instance_with_extra_path(self, LoadBalancer):
     self.storage.store_binding("inst", "app.host.com")
     self.storage.replace_binding_path("inst", "/me", "somewhere.com")
     lb = LoadBalancer.find.return_value
     lb.hosts = [mock.Mock(), mock.Mock()]
     manager = Manager(self.config)
     manager.consul_manager = mock.Mock()
     manager.unbind("inst", "app.host.com")
     manager.bind("inst", "app2.host.com")
     binding_data = self.storage.find_binding("inst")
     self.assertDictEqual(
         binding_data, {
             "_id":
             "inst",
             "app_host":
             "app2.host.com",
             "paths": [{
                 "path": "/me",
                 "destination": "somewhere.com",
                 "content": None
             }, {
                 "path": "/",
                 "destination": "app2.host.com"
             }]
         })
     LoadBalancer.find.assert_called_with("inst")
     manager.consul_manager.remove_location.assert_called_with("inst", "/")
     manager.consul_manager.write_location.assert_called_with(
         "inst", "/", destination="app2.host.com")
Esempio n. 2
0
 def test_unbind_and_bind_instance_with_extra_path(self, LoadBalancer, nginx):
     self.storage.store_binding('inst', 'app.host.com')
     self.storage.replace_binding_path('inst', '/me', 'somewhere.com')
     lb = LoadBalancer.find.return_value
     nginx_manager = nginx.NginxDAV.return_value
     lb.hosts = [mock.Mock(), mock.Mock()]
     manager = Manager(self.config)
     manager.unbind('inst', 'app.host.com')
     manager.bind('inst', 'app2.host.com')
     binding_data = self.storage.find_binding('inst')
     self.assertDictEqual(binding_data, {
         '_id': 'inst',
         'app_host': 'app2.host.com',
         'paths': [
             {'path': '/me', 'destination': 'somewhere.com', 'content': None},
             {'path': '/', 'destination': 'app2.host.com'}
         ]
     })
     LoadBalancer.find.assert_called_with('inst')
     self.assertEqual(nginx_manager.delete_binding.call_count, 2)
     nginx_manager.delete_binding.assert_any_call(lb.hosts[0].dns_name, '/')
     nginx_manager.delete_binding.assert_any_call(lb.hosts[1].dns_name, '/')
     self.assertEqual(nginx_manager.update_binding.call_count, 2)
     nginx_manager.update_binding.assert_any_call(lb.hosts[0].dns_name, '/', 'app2.host.com')
     nginx_manager.update_binding.assert_any_call(lb.hosts[1].dns_name, '/', 'app2.host.com')
Esempio n. 3
0
 def test_unbind_and_bind_instance_with_extra_path(self, LoadBalancer, nginx):
     self.storage.store_binding("inst", "app.host.com")
     self.storage.replace_binding_path("inst", "/me", "somewhere.com")
     lb = LoadBalancer.find.return_value
     nginx_manager = nginx.NginxDAV.return_value
     lb.hosts = [mock.Mock(), mock.Mock()]
     manager = Manager(self.config)
     manager.unbind("inst", "app.host.com")
     manager.bind("inst", "app2.host.com")
     binding_data = self.storage.find_binding("inst")
     self.assertDictEqual(binding_data, {
         "_id": "inst",
         "app_host": "app2.host.com",
         "paths": [
             {"path": "/me", "destination": "somewhere.com", "content": None},
             {"path": "/", "destination": "app2.host.com"}
         ]
     })
     LoadBalancer.find.assert_called_with("inst")
     self.assertEqual(nginx_manager.delete_binding.call_count, 2)
     nginx_manager.delete_binding.assert_any_call(lb.hosts[0].dns_name, "/")
     nginx_manager.delete_binding.assert_any_call(lb.hosts[1].dns_name, "/")
     self.assertEqual(nginx_manager.update_binding.call_count, 2)
     nginx_manager.update_binding.assert_any_call(lb.hosts[0].dns_name, "/", "app2.host.com")
     nginx_manager.update_binding.assert_any_call(lb.hosts[1].dns_name, "/", "app2.host.com")
Esempio n. 4
0
 def test_unbind_instance(self, LoadBalancer):
     self.storage.store_binding("inst", "app.host.com")
     lb = LoadBalancer.find.return_value
     lb.hosts = [mock.Mock(), mock.Mock()]
     manager = Manager(self.config)
     manager.consul_manager = mock.Mock()
     manager.unbind("inst", "app.host.com")
     binding_data = self.storage.find_binding("inst")
     self.assertDictEqual(binding_data, {"_id": "inst", "paths": []})
     LoadBalancer.find.assert_called_with("inst")
     manager.consul_manager.remove_location.assert_called_with("inst", "/")
Esempio n. 5
0
 def test_unbind_instance(self, LoadBalancer):
     self.storage.store_binding("inst", "app.host.com")
     lb = LoadBalancer.find.return_value
     lb.hosts = [mock.Mock(), mock.Mock()]
     manager = Manager(self.config)
     manager.consul_manager = mock.Mock()
     manager.unbind("inst", "app.host.com")
     binding_data = self.storage.find_binding("inst")
     self.assertDictEqual(binding_data, {
         "_id": "inst",
         "paths": []
     })
     LoadBalancer.find.assert_called_with("inst")
     manager.consul_manager.remove_location.assert_called_with("inst", "/")
Esempio n. 6
0
 def test_unbind_instance(self, LoadBalancer, nginx):
     self.storage.store_binding('inst', 'app.host.com')
     lb = LoadBalancer.find.return_value
     nginx_manager = nginx.NginxDAV.return_value
     lb.hosts = [mock.Mock(), mock.Mock()]
     manager = Manager(self.config)
     manager.unbind('inst', 'app.host.com')
     binding_data = self.storage.find_binding('inst')
     self.assertDictEqual(binding_data, {
         '_id': 'inst',
         'paths': []
     })
     LoadBalancer.find.assert_called_with('inst')
     self.assertEqual(nginx_manager.delete_binding.call_count, 2)
     nginx_manager.delete_binding.assert_any_call(lb.hosts[0].dns_name, '/')
     nginx_manager.delete_binding.assert_any_call(lb.hosts[1].dns_name, '/')
Esempio n. 7
0
 def test_unbind_instance(self, LoadBalancer, nginx):
     self.storage.store_binding("inst", "app.host.com")
     lb = LoadBalancer.find.return_value
     nginx_manager = nginx.NginxDAV.return_value
     lb.hosts = [mock.Mock(), mock.Mock()]
     manager = Manager(self.config)
     manager.unbind("inst", "app.host.com")
     binding_data = self.storage.find_binding("inst")
     self.assertDictEqual(binding_data, {
         "_id": "inst",
         "paths": []
     })
     LoadBalancer.find.assert_called_with("inst")
     self.assertEqual(nginx_manager.delete_binding.call_count, 2)
     nginx_manager.delete_binding.assert_any_call(lb.hosts[0].dns_name, "/")
     nginx_manager.delete_binding.assert_any_call(lb.hosts[1].dns_name, "/")
Esempio n. 8
0
 def test_unbind_instance_with_extra_path(self, LoadBalancer):
     self.storage.store_binding("inst", "app.host.com")
     self.storage.replace_binding_path("inst", "/me", "somewhere.com")
     lb = LoadBalancer.find.return_value
     lb.hosts = [mock.Mock(), mock.Mock()]
     manager = Manager(self.config)
     manager.consul_manager = mock.Mock()
     manager.unbind("inst", "app.host.com")
     binding_data = self.storage.find_binding("inst")
     self.assertDictEqual(binding_data, {
         "_id": "inst",
         "paths": [
             {"path": "/me", "destination": "somewhere.com", "content": None}
         ]
     })
     LoadBalancer.find.assert_called_with("inst")
     manager.consul_manager.remove_location.assert_called_with("inst", "/")