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 test_instance_deletion(self): _, result = SQLStore.delete_service_instance(self.id_name) self.assertEqual(self.result, 200, msg='Assert Instance Deleted') exists = Adapter.exists_in_db(self.id_name) self.assertFalse(exists, msg='Assert Instance does NOT Exist.') model_sql = Adapter.find_by_id_name(self.id_name) self.assertIsNone(model_sql)
def get_last_operation(instance_id: str = None) -> List[ServiceInstance]: if instance_id: if ServiceInstanceAdapter.exists_in_db(instance_id): model_sql = ServiceInstanceAdapter.find_by_id_name(instance_id) model = ServiceInstanceAdapter.model_sql_to_model(model_sql) return [model.state] else: return [] else: LOG.warning('No instance ID was provided') return []
def delete_service_instance(instance_id: str = None): # -> None: if instance_id: if ServiceInstanceAdapter.exists_in_db(instance_id): ServiceInstanceAdapter.delete(instance_id) return 'Instance Deleted', 200 else: return 'Instance ID not found', 500 else: LastOperationAdapter.delete_all() ServiceInstanceAdapter.delete_all() return 'Deleted all Instances', 200
def get_service_instance(instance_id: str = None) -> List[ServiceInstance]: if instance_id: if ServiceInstanceAdapter.exists_in_db(instance_id): model_sql = ServiceInstanceAdapter.find_by_id_name(instance_id) model = ServiceInstanceAdapter.model_sql_to_model(model_sql) return [model] else: return [] else: models = ServiceInstanceAdapter.get_all() return models
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(self): self.assertIsInstance(self.test_model, ServiceInstance) model_sql = Adapter.find_by_id_name(self.id_name) self.assertIsInstance(model_sql, ServiceInstanceSQL) ''' query associated service ''' service = model_sql.service self.assertIsInstance(service, ServiceTypeSQL) ''' verify relations ''' instances = service.instances self.assertGreater(len(instances), 0)
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.state = LastOperationAdapter.sample_model( 'instance-updated!') model_sql = Adapter.save(self.test_model) exists = Adapter.exists_in_db(model_sql.id_name) self.assertTrue(exists)
def test_adapter_delete(self): with self.assertRaises(Exception): Adapter.delete(id_name='')
def tearDown(self): SQLStore.delete_service_instance(Adapter.get_id(self.test_model)) ServiceTypeAdapter.delete(self.service.id)
def test_instance_created(self): self.assertEqual(self.result, 200, msg='Assert Successful Add') exists = Adapter.exists_in_db(self.id_name) self.assertTrue(exists, msg='Assert Instance exists.') model_sql = Adapter.find_by_id_name(self.id_name) self.assertIsInstance(model_sql, ServiceInstanceSQL)