def test_service_deletion(self): _, result = SQLStore.delete_service(self.test_model.id) self.assertEqual(self.result, 200, msg='Assert Service Deleted') exists = ServiceTypeAdapter.exists_in_db(self.test_model.id) self.assertFalse(exists, msg='Assert service does NOT Exist.') service_sql = ServiceTypeAdapter.find_by_id_name(self.test_model.id) self.assertIsNone(service_sql)
def set_up(wait_time=10): connection = SQLStore.get_connection() count = 3 while not connection and count: LOG.debug('Retrying to connect to Database \'{}\'...'.format( Helper.database)) count = count - 1 time.sleep(wait_time) connection = SQLStore.get_connection() if connection: # Create DB connection.cursor().execute( 'CREATE DATABASE IF NOT EXISTS {}'.format(Helper.database)) LOG.debug('Successfully connected to Database \'{}\'...'.format( Helper.database)) # Create tables PlanAdapter.create_table() ServiceTypeAdapter.create_table() PlanServiceTypeAdapter.create_table() ManifestAdapter.create_table() ServiceInstanceAdapter.create_table() LastOperationAdapter.create_table() connection.close() else: raise Exception('Could not connect to the DB')
def get_service(service_id: str = None) -> List[ServiceType]: if service_id: if ServiceTypeAdapter.exists_in_db(service_id): model_sql = ServiceTypeAdapter.find_by_id_name(service_id) model = ServiceTypeAdapter.model_sql_to_model(model_sql) return [model] else: return [] else: return ServiceTypeAdapter.get_all()
def setUp(self): """PREREQUISITES""" PlanAdapter.create_table() ServiceTypeAdapter.create_table() PlanServiceTypeAdapter.create_table() self.service = ServiceTypeAdapter.sample_model('manifest1') ServiceTypeAdapter.save(self.service) ManifestAdapter.create_table() self.test_model = ManifestAdapter.sample_model('manifest1') _, self.result = SQLStore.add_manifest(self.test_model)
def add_service(service: ServiceType) -> tuple: if ServiceTypeAdapter.exists_in_db(service.id): return 'The service already exists in the catalog.', 409 PlanAdapter.create_table() PlanServiceTypeAdapter.create_table() ServiceTypeAdapter.save(service) if ServiceTypeAdapter.exists_in_db(service.id): return 'Service added successfully', 200 else: return 'Could not save the Service in the DB', 500
def test_sample_model_with_plans(self): self.assertIsInstance(self.test_model, ServiceType) model_sql = ServiceTypeAdapter.find_by_id_name(self.test_model.id) self.assertIsInstance(model_sql, ServiceTypeSQL) self.assertFalse(model_sql.plans.is_empty()) plans = PlanAdapter.plans_from_service_sql(model_sql) self.assertGreater(len(plans), 1) model = ServiceTypeAdapter.model_sql_to_model(model_sql) self.assertGreater(len(model.plans), 1)
def setUp(self): """ PREREQUISITES """ PlanAdapter.create_table() ServiceTypeAdapter.create_table() PlanServiceTypeAdapter.create_table() # ManifestAdapter.create_table() self.service = ServiceTypeAdapter.sample_model('instance1') ServiceTypeAdapter.save(self.service) Adapter.create_table() self.test_model = Adapter.sample_model('instance1') self.id_name = Adapter.get_id(self.test_model) _, self.result = SQLStore.add_service_instance(self.test_model)
def delete_service(service_id: str = None) -> tuple: if service_id: if ServiceTypeAdapter.exists_in_db(service_id): ServiceTypeAdapter.delete(service_id) return 'Service Deleted', 200 else: return 'Service ID not found', 500 else: PlanServiceTypeAdapter.delete_all() LastOperationAdapter.delete_all() ServiceInstanceAdapter.delete_all() ManifestAdapter.delete_all() ServiceTypeAdapter.delete_all() PlanAdapter.delete_all() return 'Deleted all Services', 200
def test_sample_model_with_plans(self): self.assertIsInstance(self.test_model, Manifest) model_sql = ManifestAdapter.find_by_id_name(self.test_model.id) self.assertIsInstance(model_sql, ManifestSQL) ''' query associated service ''' service = model_sql.service self.assertIsInstance(service, ServiceTypeSQL) ''' verify relations ''' plans = service.plans plan = model_sql.plan self.assertTrue(plan in plans) ''' manifest also deleted ''' PlanAdapter.delete(plan.id_name) self.assertFalse(ManifestAdapter.exists_in_db(model_sql.id_name)) ''' service updated (has to be re-query-ed) ''' ''' this is not correct! >> service = model_sql.service ''' service = ServiceTypeAdapter.find_by_id_name(service.id_name) plans = service.plans ''' verify plans reduced ''' self.assertEqual(len(plans), 1) ''' verify service has no manifest now ''' self.assertTrue(service.manifests.is_empty())
def add_manifest(manifest) -> tuple: if ManifestAdapter.exists_in_db(manifest.id): return 'The Manifest already exists in the catalog.', 409 ''' Attempt to Create Table ''' PlanAdapter.create_table() ServiceTypeAdapter.create_table() if ServiceTypeAdapter.exists_in_db( manifest.service_id) and PlanAdapter.exists_in_db( manifest.plan_id): ManifestAdapter.save(manifest) else: return 'Could not save the Manifest in the DB, Plan and Service don\'t exist', 500 if ManifestAdapter.exists_in_db(manifest.id): return 'Manifest added successfully', 200 else: return 'Could not save the Manifest in the DB', 500
def delete_last_operation(self, instance_id: str = None) -> tuple: if ServiceInstanceAdapter.exists_in_db(instance_id): instance = ServiceInstanceAdapter.find_by_id_name(instance_id) ''' Attempt to Create Table ''' PlanAdapter.create_table() ServiceTypeAdapter.create_table() ServiceTypeAdapter.create_table() ServiceInstanceAdapter.create_table() LastOperationAdapter.create_table() instance.state = None ServiceInstanceAdapter.save(instance) id_name = ServiceInstanceAdapter.get_id(instance) if ServiceInstanceAdapter.exists_in_db(id_name): return 'Instance added successfully', 200 else: return 'Could not save the Instance in the DB', 500 else: raise Exception('Service Instance not found')
def add_service_instance(instance: ServiceInstance) -> tuple: id_name = ServiceInstanceAdapter.get_id(instance) if ServiceInstanceAdapter.exists_in_db(id_name): LOG.warning( 'An existing instance was attempted to be saved. Updating it...' ) SQLStore.delete_service_instance(id_name) # return 'The Instance already exists in the catalog.', 409 ''' Attempt to Create Table ''' PlanAdapter.create_table() ServiceTypeAdapter.create_table() ManifestAdapter.create_table() ServiceInstanceAdapter.create_table() LastOperationAdapter.create_table() ServiceInstanceAdapter.save(instance) id_name = ServiceInstanceAdapter.get_id(instance) if ServiceInstanceAdapter.exists_in_db(id_name): LOG.warning('Instance added successfully...') return 'Instance added successfully', 200 else: LOG.warning('Could not save the Instance in the DB...') return 'Could not save the Instance in the DB', 500
def test_adapter_save_to_update(self): self.test_model.name = 'new-name' model_sql = ServiceTypeAdapter.save(self.test_model) exists = ServiceTypeAdapter.exists_in_db(model_sql.id_name) self.assertTrue(exists)
def test_adapter_delete(self): with self.assertRaises(Exception): ServiceTypeAdapter.delete(id_name='')
def setUp(self): self.test_model = ServiceTypeAdapter.sample_model('service1') ServiceTypeAdapter.create_table() PlanAdapter.create_table() PlanServiceTypeAdapter.create_table() _, self.result = SQLStore.add_service(self.test_model)
def tearDown(self): SQLStore.delete_service_instance(Adapter.get_id(self.test_model)) ServiceTypeAdapter.delete(self.service.id)
def test_service_created(self): self.assertEqual(self.result, 200, msg='Assert Successful Add') exists = ServiceTypeAdapter.exists_in_db(self.test_model.id) self.assertTrue(exists, msg='Assert service service exists.') service_sql = ServiceTypeAdapter.find_by_id_name(self.test_model.id) self.assertIsInstance(service_sql, ServiceTypeSQL)
def test_adapter_create_from_service(self): service = ServiceTypeAdapter.sample_model() plans_sql = PlanAdapter.plans_sql_from_service(service) self.assertGreater(len(plans_sql), 0) self.assertIsInstance(plans_sql[0], PlanSQL)
def tearDown(self): SQLStore.delete_manifest(self.test_model.id) ServiceTypeAdapter.delete(self.service.id)