def test_safe_create(self): """Test safe create.""" svc = presence_service.PresenceResourceService() # Node does not exist. self.assertTrue( svc._safe_create(12345, '/running/foo.bar#1234', 'h.hh.com')) treadmill.zkutils.create.assert_called_with(mock.ANY, '/running/foo.bar#1234', 'h.hh.com', acl=[mock.ANY], ephemeral=True) # Node exists, session match. svc.zkclient.client_id = (12345, '') treadmill.zkutils.get_with_metadata.return_value = ( 'h.hh.com', collections.namedtuple('metadata', 'owner_session_id')(12345)) treadmill.zkutils.create.side_effect = kazoo.client.NodeExistsError self.assertTrue( svc._safe_create(12345, '/running/foo.bar#1234', 'h.hh.com')) # Node exists, session does not match svc.zkclient.client_id = (98765, '') treadmill.zkutils.get_with_metadata.return_value = ( 'h.hh.com', collections.namedtuple('metadata', 'owner_session_id')(12345)) treadmill.zkutils.create.side_effect = kazoo.client.NodeExistsError self.assertFalse( svc._safe_create(12345, '/running/foo.bar#1234', 'h.hh.com'))
def test_on_delete_request(self): """Test processing of a delete request. """ svc = presence_service.PresenceResourceService() svc.zkclient.client_id = (12345, '') treadmill.zkutils.get_with_metadata.return_value = ( 'h.hh.com', mock.Mock(owner_session_id=12345)) request = { 'endpoints': [{ 'name': 'xxx', 'port': 8000, 'real_port': 32000 }] } svc.on_create_request('foo.bar-12345-Uniq2', request) svc.on_delete_request('foo.bar-12345-Uniq1') self.assertIn('foo.bar#12345', svc.presence) treadmill.zkutils.ensure_deleted.assert_not_called() svc.on_delete_request('foo.bar-12345-Uniq2') self.assertNotIn('foo.bar#12345', svc.presence) treadmill.zkutils.ensure_deleted.assert_has_calls([ mock.call(mock.ANY, '/running/foo.bar#12345'), mock.call(mock.ANY, '/endpoints/foo/bar#12345:tcp:xxx') ], any_order=True)
def test_on_create_request(self): """Test processing of a network create request. """ svc = presence_service.PresenceResourceService() request = { 'endpoints': [{'name': 'xxx', 'port': 8000, 'real_port': 32000}] } request_id = 'foo.bar#12345' svc.on_create_request(request_id, request) self.assertEqual(svc.state['foo.bar#12345'], set(['/running/foo.bar#12345', '/endpoints/foo/bar#12345:tcp:xxx']))
def test_safe_delete(self): """Tests safe node deletion.""" svc = presence_service.PresenceResourceService() # Node exists, session match. svc.zkclient.client_id = (12345, '') treadmill.zkutils.get_with_metadata.return_value = ( 'h.hh.com', collections.namedtuple('metadata', 'owner_session_id')(12345)) svc._safe_delete('/running/foo.bar#1234') treadmill.zkutils.ensure_deleted.assert_called_with( mock.ANY, '/running/foo.bar#1234') treadmill.zkutils.ensure_deleted.reset_mock() svc.zkclient.client_id = (99999, '') svc._safe_delete('/running/foo.bar#1234') self.assertFalse(treadmill.zkutils.ensure_deleted.called)
def test_on_create_with_ident(self): """Test processing of a network create request. """ svc = presence_service.PresenceResourceService() request = { 'identity': 0, 'identity_group': 'bla', 'endpoints': [{ 'name': 'xxx', 'port': 8000, 'real_port': 32000 }] } request_id = 'foo.bar-12345-Uniq1' svc.on_create_request(request_id, request) self.assertEqual( svc.presence['foo.bar#12345'], { '/running/foo.bar#12345': 'foo.bar-12345-Uniq1', '/identity-groups/bla/0': 'foo.bar-12345-Uniq1', '/endpoints/foo/bar#12345:tcp:xxx': 'foo.bar-12345-Uniq1' })
def test_on_delete_request(self): """Test processing of a delete request. """ svc = presence_service.PresenceResourceService() request_id = 'myproid.test#12345' svc.on_delete_request(request_id)