def open_database(self, db_name, pathValues=[]): try: if (db_name in ['null', '']): raise ARMException('No database name defined') dbList = list(map(lambda db: db['database'], self.show_databases())) b = Borg() ses_settings = b.get_settings(self.session_id) dbUser = ses_settings['dbUser'] currentlyOpenDbName = ses_settings['dbName'] toOpenDbName = dbUser + '_' + canonicalDbName(db_name) if ((db_name not in dbList) and (toOpenDbName != currentlyOpenDbName)): raise ObjectNotFound(db_name + " does not exist") if (db_name == 'default'): b = Borg() ses_settings = b.get_settings(self.session_id) database_owner = ses_settings['dbUser'] else: database_owner = dbOwner(db_name) self.db_proxy.openDatabase(database_owner + '_' + db_name, self.session_id) return 'Database successfully opened' except ObjectNotFound as ex: self.close() raise ObjectNotFoundHTTPError(db_name + ' does not exist') except DatabaseProxyException as ex: raise ARMHTTPError(ex) except ARMException as ex: raise ARMHTTPError(ex)
def get_permissions(self,db_name, pathValues = []): try: b = Borg() dbUser = b.get_settings(self.session_id)['dbUser'] if (isOwner(dbUser,db_name) == False): raise CairisHTTPError(status_code=http.client.BAD_REQUEST,status="Unauthorised request",message="Not authorised to get permissions for " + db_name) return dbUsers(dbUser + '_' + canonicalDbName(db_name)) except ARMException as ex: self.close() raise ARMHTTPError(ex)
def create_new_database(self,db_name): try: if (db_name in ['null','']): raise ARMException('No database name defined') if (db_name == 'default'): raise ARMException('Cannot create a new default database') b = Borg() ses_settings = b.get_settings(self.session_id) dbUser = ses_settings['dbUser'] dbName = dbUser + '_' + canonicalDbName(db_name) if (dbExists(dbName)): raise ARMException(db_name + " already exists") self.db_proxy.createDatabase(db_name,self.session_id) except DatabaseProxyException as ex: raise ARMHTTPError(ex) except ARMException as ex: raise ARMHTTPError(ex)