示例#1
0
    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')
示例#2
0
    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 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)
示例#4
0
    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 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)
示例#6
0
 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
示例#7
0
    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
示例#8
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 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)
示例#10
0
    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
示例#11
0
 def test_adapter_save_to_update(self):
     self.test_model.name = 'new-name'
     model_sql = PlanAdapter.save(self.test_model)
     exists = PlanAdapter.exists_in_db(model_sql.id_name)
     self.assertTrue(exists)
示例#12
0
 def test_adapter_delete(self):
     with self.assertRaises(Exception):
         PlanAdapter.delete(id_name='')
示例#13
0
 def test_sample_model(self):
     self.assertIsInstance(self.test_model, Plan)
     model_sql = PlanAdapter.sample_model_sql()
     self.assertIsInstance(model_sql, PlanSQL)
     model = PlanAdapter.model_sql_to_model(model_sql)
     self.assertIsInstance(model, Plan)
示例#14
0
 def tearDown(self):
     if PlanAdapter.exists_in_db(self.test_model.id):
         PlanAdapter.delete(self.test_model.id)
示例#15
0
 def setUp(self):
     self.test_model = PlanAdapter.sample_model()
     PlanAdapter.create_table()
     PlanAdapter.save(self.test_model)
示例#16
0
 def test_adapter_get_all(self):
     results = PlanAdapter.get_all()
     self.assertGreater(len(results), 0)
示例#17
0
 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 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)