class WhenTestingWorkerStatus(unittest.TestCase): def setUp(self): self.req = MagicMock() self.resp = MagicMock() self.hostname = 'worker01' self.resource = WorkerStatusResource() self.worker = Worker(_id='010101', hostname=self.hostname, ip_address_v4='172.23.1.100', ip_address_v6='::1', personality='worker01', status='online', system_info={}) self.hostname = 'worker01' self.worker_not_found = None def test_raises_worker_not_found(self): with patch('meniscus.data.model.worker_util.find_worker', MagicMock(return_value=None)): with self.assertRaises(falcon.HTTPError): self.resource.on_get(self.req, self.resp, self.hostname) def test_returns_200_on_get(self): with patch('meniscus.data.model.worker_util.find_worker', MagicMock(return_value=self.worker)): self.resource.on_get(self.req, self.resp, self.hostname) self.assertEquals(self.resp.status, falcon.HTTP_200) resp = jsonutils.loads(self.resp.body) status = resp['status'] for key in resp.keys(): self.assertTrue(key in self.worker.get_status().keys())
class WhenTestingWorkerStatus(unittest.TestCase): def setUp(self): self.req = MagicMock() self.resp = MagicMock() self.resource = WorkerStatusResource() self.registration = WorkerRegistration('worker').format() self.worker = Worker(**self.registration) self.worker_dict = Worker(**self.registration).format() self.worker_id = '51375fc4eea50d53066292b6' self.worker_not_found = None def test_raises_worker_not_found(self): with patch('meniscus.data.model.worker_util.find_worker', MagicMock(return_value=None)): with self.assertRaises(falcon.HTTPError): self.resource.on_get(self.req, self.resp, self.worker_id) def test_returns_200_on_get(self): with patch('meniscus.data.model.worker_util.find_worker', MagicMock(return_value=self.worker)): self.resource.on_get(self.req, self.resp, self.worker_id) self.assertEquals(self.resp.status, falcon.HTTP_200) resp = jsonutils.loads(self.resp.body) status = resp['status'] for key in resp.keys(): self.assertTrue(key in self.worker.get_status().keys())
class WhenTestingWorkerStatus(unittest.TestCase): def setUp(self): self.req = MagicMock() self.resp = MagicMock() self.db_handler = MagicMock() self.resource = WorkerStatusResource(self.db_handler) self.registration = WorkerRegistration('worker').format() self.worker = Worker(**self.registration) self.worker_dict = Worker(**self.registration).format() self.worker_id = '51375fc4eea50d53066292b6' self.worker_not_found = None def test_raises_worker_not_found(self): self.db_handler.find_one.return_value = self.worker_not_found with self.assertRaises(falcon.HTTPError): self.resource.on_get(self.req, self.resp, self.worker_id) def test_returns_200_on_get(self): self.db_handler.find_one.return_value = self.worker_dict self.resource.on_get(self.req, self.resp, self.worker_id) self.assertEquals(self.resp.status, falcon.HTTP_200) resp = jsonutils.loads(self.resp.body) status = resp['status'] for key in resp.keys(): self.assertTrue(key in self.worker.get_status().keys())
def setUp(self): self.req = MagicMock() self.resp = MagicMock() self.db_handler = MagicMock() self.resource = WorkerStatusResource(self.db_handler) self.registration = WorkerRegistration('worker').format() self.worker = Worker(**self.registration) self.worker_dict = Worker(**self.registration).format() self.worker_id = '51375fc4eea50d53066292b6' self.worker_not_found = None
def setUp(self): self.req = MagicMock() self.resp = MagicMock() self.hostname = 'worker01' self.resource = WorkerStatusResource() self.worker = Worker(_id='010101', hostname=self.hostname, ip_address_v4='172.23.1.100', ip_address_v6='::1', personality='worker01', status='online', system_info={}) self.hostname = 'worker01' self.worker_not_found = None
def before(self): self.status = 'online' self.system_info = SystemInfo().format() self.worker_status = { 'worker_status': { 'system_info': self.system_info, 'status': self.status } } self.bad_status = 'bad_status' self.bad_system_info = SystemInfo() self.bad_worker_status = { 'worker_status': { 'system_info': self.system_info, 'status': self.bad_status } } self.req = MagicMock() self.resp = MagicMock() self.registration = WorkerRegistration('worker').format() self.worker_dict = Worker(**self.registration).format() self.worker_not_found = None self.db_handler = MagicMock() self.resource = WorkerStatusResource(self.db_handler) self.worker_id = '51375fc4eea50d53066292b6' self.test_route = '/v1/worker/{worker_id}/status' self.api.add_route(self.test_route, self.resource)
def start_up(): """ This persona hosts resources from a few different APIs in order to facilitate the bootstrap buildout of a brand new meniscus grid. This persona effectively allows the new worker to pair with itself. """ #Datastore adapter/session manager datastore = datasource_handler(COORDINATOR_DB) # Resources versions = VersionResource() configuration = PairingConfigurationResource() worker_registration = WorkerRegistrationResource(datastore) worker_status = WorkerStatusResource(datastore) # Routing application = api = falcon.API() # Pairing Routing api.add_route('/', versions) api.add_route('/v1/pairing/configure', configuration) # Worker Registration Routing api.add_route('/v1/pairing', worker_registration) api.add_route('/v1/worker/{worker_id}/status', worker_status) return application
def setUp(self): self.req = MagicMock() self.resp = MagicMock() self.resource = WorkerStatusResource() self.registration = WorkerRegistration('worker').format() self.worker = Worker(**self.registration) self.worker_dict = Worker(**self.registration).format() self.worker_id = '51375fc4eea50d53066292b6' self.worker_not_found = None
def before(self): self.status = 'online' self.hostname = 'worker01' self.personality = 'worker' self.ip4 = "192.168.100.101", self.ip6 = "::1", self.system_info = SystemInfo().format() self.bad_status = 'bad_status' self.bad_system_info = SystemInfo() self.bad_worker_status = { 'worker_status': { 'hostname': self.hostname, 'system_info': self.system_info, 'status': self.bad_status, 'personality': 'worker', 'ip_address_v4': '192.168.100.101', 'ip_address_v6': '::1' } } self.worker = { 'worker_status': { 'hostname': self.hostname, 'system_info': self.system_info, 'status': self.status, 'personality': 'worker', 'ip_address_v4': '192.168.100.101', 'ip_address_v6': '::1' } } self.returned_worker = Worker(**{"hostname": "worker01", "ip_address_v4": "192.168.100.101", "ip_address_v6": "::1", "personality": "worker", "status": "online", "system_info": self.system_info}) self.req = MagicMock() self.resp = MagicMock() self.resource = WorkerStatusResource() self.test_route = '/worker/{hostname}/status' self.api.add_route(self.test_route, self.resource)
def start_up(): #Common Resource(s) versions = VersionResource() #Datastore adapter/session manager datastore = datasource_handler(COORDINATOR_DB) #Coordinator Resources worker_registration = WorkerRegistrationResource(datastore) workers_status = WorkersStatusResource(datastore) worker_status = WorkerStatusResource(datastore) #Tenant Resources tenant = TenantResource(datastore) user = UserResource(datastore) event_producers = EventProducersResource(datastore) event_producer = EventProducerResource(datastore) token = TokenResource(datastore) # Create API application = api = falcon.API() # Common Routing api.add_route('/', versions) # Coordinator Routing api.add_route('/v1/pairing', worker_registration) api.add_route('/v1/worker/{worker_id}/status', worker_status) api.add_route('/v1/status', workers_status) # Tenant Routing api.add_route('/v1/tenant', tenant) api.add_route('/v1/tenant/{tenant_id}', user) api.add_route('/v1/tenant/{tenant_id}/producers', event_producers) api.add_route('/v1/tenant/{tenant_id}/producers/{event_producer_id}', event_producer) api.add_route('/v1/tenant/{tenant_id}/token', token) return application
def start_up(): #Common Resource(s) versions = VersionResource() #Coordinator Resources workers_status = WorkersStatusResource() worker_status = WorkerStatusResource() #Tenant Resources tenant = TenantResource() user = UserResource() event_producers = EventProducersResource() event_producer = EventProducerResource() token = TokenResource() # Create API application = api = falcon.API() # Common Routing api.add_route('/', versions) api.add_route('/v1/worker/{hostname}/status', worker_status) api.add_route('/v1/status', workers_status) # Tenant Routing api.add_route('/v1/tenant', tenant) api.add_route('/v1/tenant/{tenant_id}', user) api.add_route('/v1/tenant/{tenant_id}/producers', event_producers) api.add_route('/v1/tenant/{tenant_id}/producers/{event_producer_id}', event_producer) api.add_route('/v1/tenant/{tenant_id}/token', token) celery_proc = Process(target=celery.worker_main) celery_proc.start() _LOG.info('Celery started as process: {}'.format(celery_proc.pid)) return application
from meniscus.data.datastore import COORDINATOR_DB, datasource_handler from meniscus import env from meniscus.openstack.common import log log.setup('meniscus') _LOG = env.get_logger(__name__) #Common Resource(s) versions = VersionResource() #Coordinator Resources db_handler = datasource_handler(COORDINATOR_DB) worker_registration = WorkerRegistrationResource(db_handler) workers_status = WorkersStatusResource(db_handler) worker_status = WorkerStatusResource(db_handler) #Tenant Resources tenant = TenantResource(db_handler) user = UserResource(db_handler) event_producers = EventProducersResource(db_handler) event_producer = EventProducerResource(db_handler) token = TokenResource(db_handler) # Create API application = api = falcon.API() # Common Routing api.add_route('/', versions) # Coordinator Routing