def test_add_route_with_content(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.add_route("inst", "/somewhere", None, "location /x { something; }") LoadBalancer.find.assert_called_with("inst") binding_data = self.storage.find_binding("inst") self.assertDictEqual(binding_data, { "_id": "inst", "app_host": "app.host.com", "paths": [ { "path": "/", "destination": "app.host.com", }, { "path": "/somewhere", "destination": None, "content": "location /x { something; }", } ] }) manager.consul_manager.write_location.assert_called_with("inst", "/somewhere", destination=None, content="location /x { something; }")
def test_add_route_with_content(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.add_route("inst", "/somewhere", None, "location /x { something; }") LoadBalancer.find.assert_called_with("inst") binding_data = self.storage.find_binding("inst") self.assertDictEqual( binding_data, { "_id": "inst", "app_host": "app.host.com", "paths": [{ "path": "/", "destination": "app.host.com", }, { "path": "/somewhere", "destination": None, "content": "location /x { something; }", }] }) manager.consul_manager.write_location.assert_called_with( "inst", "/somewhere", destination=None, content="location /x { something; }")
def test_add_route_with_content(self, LoadBalancer, nginx): self.storage.store_binding('inst', 'app.host.com') lb = LoadBalancer.find.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.add_route('inst', '/somewhere', None, 'location /x { something; }') LoadBalancer.find.assert_called_with('inst') binding_data = self.storage.find_binding('inst') self.assertDictEqual(binding_data, { '_id': 'inst', 'app_host': 'app.host.com', 'paths': [ { 'path': '/', 'destination': 'app.host.com', }, { 'path': '/somewhere', 'destination': None, 'content': 'location /x { something; }', } ] }) nginx_manager = nginx.NginxDAV.return_value nginx_manager.update_binding.assert_any_call( lb.hosts[0].dns_name, '/somewhere', None, 'location /x { something; }') nginx_manager.update_binding.assert_any_call( lb.hosts[1].dns_name, '/somewhere', None, 'location /x { something; }')
def test_bind_instance_with_route(self, LoadBalancer): lb = LoadBalancer.find.return_value lb.hosts = [mock.Mock(), mock.Mock()] lb.hosts[0].dns_name = "h1" lb.hosts[1].dns_name = "h2" manager = Manager(self.config) manager.consul_manager = mock.Mock() manager.add_route("x", "/somewhere", "my.other.host", None) manager.bind("x", "apphost.com") binding_data = self.storage.find_binding("x") self.assertDictEqual( binding_data, { "_id": "x", "app_host": "apphost.com", "paths": [{ "path": "/somewhere", "destination": "my.other.host", "content": None }, { "path": "/", "destination": "apphost.com" }] }) LoadBalancer.find.assert_called_with("x") manager.consul_manager.write_location.assert_any_call( "x", "/somewhere", destination="my.other.host", content=None) manager.consul_manager.write_location.assert_any_call( "x", "/", destination="apphost.com")
def test_bind_instance_with_route(self, LoadBalancer, nginx): lb = LoadBalancer.find.return_value nginx_manager = nginx.NginxDAV.return_value lb.hosts = [mock.Mock(), mock.Mock()] lb.hosts[0].dns_name = 'h1' lb.hosts[1].dns_name = 'h2' manager = Manager(self.config) manager.add_route('x', '/somewhere', 'my.other.host', None) manager.bind('x', 'apphost.com') binding_data = self.storage.find_binding('x') self.assertDictEqual(binding_data, { '_id': 'x', 'app_host': 'apphost.com', 'paths': [ {'path': '/somewhere', 'destination': 'my.other.host', 'content': None}, {'path': '/', 'destination': 'apphost.com'} ] }) LoadBalancer.find.assert_called_with('x') nginx_manager.update_binding.assert_any_call('h1', '/', 'apphost.com') nginx_manager.update_binding.assert_any_call('h2', '/', 'apphost.com') nginx_manager.update_binding.assert_any_call( 'h1', '/somewhere', 'my.other.host', None) nginx_manager.update_binding.assert_any_call( 'h2', '/somewhere', 'my.other.host', None)
def test_add_route_with_content(self, LoadBalancer, nginx): self.storage.store_binding("inst", "app.host.com") lb = LoadBalancer.find.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.add_route("inst", "/somewhere", None, "location /x { something; }") LoadBalancer.find.assert_called_with("inst") binding_data = self.storage.find_binding("inst") self.assertDictEqual(binding_data, { "_id": "inst", "app_host": "app.host.com", "paths": [ { "path": "/", "destination": "app.host.com", }, { "path": "/somewhere", "destination": None, "content": "location /x { something; }", } ] }) nginx_manager = nginx.NginxDAV.return_value nginx_manager.update_binding.assert_any_call( lb.hosts[0].dns_name, "/somewhere", None, "location /x { something; }") nginx_manager.update_binding.assert_any_call( lb.hosts[1].dns_name, "/somewhere", None, "location /x { something; }")
def test_bind_instance_with_route(self, LoadBalancer): lb = LoadBalancer.find.return_value lb.hosts = [mock.Mock(), mock.Mock()] lb.hosts[0].dns_name = "h1" lb.hosts[1].dns_name = "h2" manager = Manager(self.config) manager.consul_manager = mock.Mock() manager.add_route("x", "/somewhere", "my.other.host", None) manager.bind("x", "apphost.com") binding_data = self.storage.find_binding("x") self.assertDictEqual(binding_data, { "_id": "x", "app_host": "apphost.com", "paths": [ {"path": "/somewhere", "destination": "my.other.host", "content": None}, {"path": "/", "destination": "apphost.com"} ] }) LoadBalancer.find.assert_called_with("x") manager.consul_manager.write_location.assert_any_call("x", "/somewhere", destination="my.other.host", content=None) manager.consul_manager.write_location.assert_any_call("x", "/", destination="apphost.com")
def test_add_route_no_binding_creates_one(self, LoadBalancer): lb = LoadBalancer.find.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.consul_manager = mock.Mock() manager.add_route("inst", "/somewhere", "my.other.host", None) LoadBalancer.find.assert_called_with("inst") binding_data = self.storage.find_binding("inst") self.assertDictEqual( binding_data, { "_id": "inst", "paths": [{ "path": "/somewhere", "destination": "my.other.host", "content": None, }] }) manager.consul_manager.write_location.assert_called_with( "inst", "/somewhere", destination="my.other.host", content=None)
def test_add_route_no_binding_creates_one(self, LoadBalancer): lb = LoadBalancer.find.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.consul_manager = mock.Mock() manager.add_route("inst", "/somewhere", "my.other.host", None) LoadBalancer.find.assert_called_with("inst") binding_data = self.storage.find_binding("inst") self.assertDictEqual(binding_data, { "_id": "inst", "paths": [ { "path": "/somewhere", "destination": "my.other.host", "content": None, } ] }) manager.consul_manager.write_location.assert_called_with("inst", "/somewhere", destination="my.other.host", content=None)
def test_add_route_no_binding_creates_one(self, LoadBalancer, nginx): lb = LoadBalancer.find.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.add_route('inst', '/somewhere', 'my.other.host', None) LoadBalancer.find.assert_called_with('inst') binding_data = self.storage.find_binding('inst') self.assertDictEqual(binding_data, { '_id': 'inst', 'paths': [ { 'path': '/somewhere', 'destination': 'my.other.host', 'content': None, } ] }) nginx_manager = nginx.NginxDAV.return_value nginx_manager.update_binding.assert_any_call( lb.hosts[0].dns_name, '/somewhere', 'my.other.host', None) nginx_manager.update_binding.assert_any_call( lb.hosts[1].dns_name, '/somewhere', 'my.other.host', None)
def test_add_route_no_binding_creates_one(self, LoadBalancer, nginx): lb = LoadBalancer.find.return_value lb.hosts = [mock.Mock(), mock.Mock()] manager = Manager(self.config) manager.add_route("inst", "/somewhere", "my.other.host", None) LoadBalancer.find.assert_called_with("inst") binding_data = self.storage.find_binding("inst") self.assertDictEqual(binding_data, { "_id": "inst", "paths": [ { "path": "/somewhere", "destination": "my.other.host", "content": None, } ] }) nginx_manager = nginx.NginxDAV.return_value nginx_manager.update_binding.assert_any_call( lb.hosts[0].dns_name, "/somewhere", "my.other.host", None) nginx_manager.update_binding.assert_any_call( lb.hosts[1].dns_name, "/somewhere", "my.other.host", None)
def test_add_route_error_task_running(self): self.storage.store_task("inst") manager = Manager(self.config) with self.assertRaises(rpaas.tasks.NotReadyError): manager.add_route("inst", "/somewhere", "my.other.host", None)
def test_add_route_error_task_running(self): self.storage.store_task('inst') manager = Manager(self.config) with self.assertRaises(rpaas.manager.NotReadyError): manager.add_route('inst', '/somewhere', 'my.other.host', None)