def update_dataset():
    result = {}
    body = fl.request.get_json(force=True)
    dataset_id = body['dataset_id']
    name = body['name']
    cleaned = body['cleaned']
    # access_user_list = body['access_user_list']
    # access_business_unit_list = body['access_business_unit_list']
    description = body['description']
    storage_type = body['storage_type']
    dataset = dm.DataManager.get_dataset_by_id(
        dm.DataManager,
        dataset_id=dataset_id,
        local=st.enum_storage_type_bool(storage_type=storage_type))
    # Set the new values/changes in the dataset obkect
    dataset.set_name(name=name)
    dataset.set_cleaned(cleaned=cleaned)
    dataset.set_description(description=description)
    # if access_user_list == ""
    dm.DataManager.update_dataset(
        dm.DataManager,
        dataset=dataset,
        local=st.enum_storage_type_bool(storage_type=storage_type))
    result = DataManagerEndpoints.data_set_to_dict(DataManagerEndpoints,
                                                   dataset=dataset)
    return fl.jsonify(result), 200
Example #2
0
 def parse_dataset_obj(self, db_row):
     if db_row:
         dataset_id = db_row[0]
         name = db_row[1]
         owner = db_row[2]
         hash_of_dataset = db_row[3]
         cleaned = ds.DataSet.enum_cleaned(ds.DataSet, cleaned=db_row[4])
         size = db_row[5]
         access_user_list = db_row[6]
         access_business_unit_list = db_row[7]
         storage_type = db_row[8]
         description = db_row[9]
         local = st.enum_storage_type_bool(storage_type=storage_type)
         data = self.get_table_as_df(DataManager,
                                     table=dataset_id,
                                     local=local)
         dataset = ds.DataSet(
             datasetID=dataset_id,
             name=name,
             owner=owner,
             size=size,
             hash_of_dataset=hash_of_dataset,
             cleaned=cleaned,
             access_user_list=access_user_list,
             access_business_unit_list=access_business_unit_list,
             description=description,
             storage_type=storage_type,
             data=data)
         return dataset
     pass
Example #3
0
 def create_data_set(self,
                     name,
                     owner,
                     data,
                     cleaned,
                     access_user_list,
                     access_business_unit_list,
                     description,
                     storage_type,
                     size=0):
     datasetID = "dataset_" + st.create_id()
     hash_of_dataset = st.hash_data(data)
     size = data.size
     dataset = ds.DataSet(
         datasetID=datasetID,
         name=name,
         owner=owner,
         size=size,
         hash_of_dataset=hash_of_dataset,
         cleaned=cleaned,
         access_user_list=access_user_list,
         access_business_unit_list=access_business_unit_list,
         description=description,
         storage_type=storage_type,
         data=data)
     local = st.enum_storage_type_bool(storage_type=storage_type)
     self.insert_dataset_db(DataManager, dataset=dataset, local=local)
     self.insert_dataset_data_db(DataManager, dataset=dataset, local=local)
     self.insert_user_dataset_access_relation_db(DataManager,
                                                 dataset=dataset)
     self.insert_department_dataset_access_relation_db(DataManager,
                                                       dataset=dataset)
     return dataset
def get_dataset(dataset_id, storage_type):
    result = {}
    local = st.enum_storage_type_bool(storage_type=storage_type)
    dataset = dm.DataManager.get_dataset_by_id(dm.DataManager,
                                               dataset_id=dataset_id,
                                               local=local)
    if dataset:
        result = DataManagerEndpoints.data_set_to_dict(DataManagerEndpoints,
                                                       dataset=dataset)
    else:
        DataManagerEndpoints(404, "DATASET_NOT_FOUND")
    return fl.jsonify(result), 200
def delete_dataset(dataset_id, storage_type):
    result = {}
    local = st.enum_storage_type_bool(storage_type=storage_type)
    dataset = dm.DataManager.get_dataset_by_id(dm.DataManager,
                                               dataset_id=dataset_id,
                                               local=local)
    try:
        dm.DataManager.delete_dataset(dm.DataManager,
                                      dataset_id=dataset_id,
                                      local=local)
    except:
        print('Deleting Dataset from Dataset table unsuccessful')
    try:
        dm.DataManager.drop_dataset_table(dm.DataManager,
                                          dataset_id=dataset_id,
                                          local=local)
    except:
        print('Droping Dataset data table unsuccessful')
    result = DataManagerEndpoints.data_set_to_dict(DataManagerEndpoints,
                                                   dataset=dataset)
    return fl.jsonify(result), 200
def get_table_df(dataset_id, storage_type):
    result = dm.DataManager.get_table_as_df(
        dm.DataManager,
        table=dataset_id,
        local=st.enum_storage_type_bool(storage_type=storage_type)).to_json()
    return fl.jsonify(result), 200
 def delete_user(self, user_issuer, user_to_delete):
     if (self.check_admin(UserManager, user_issuer) or user_issuer == user_to_delete) and len(self.get_all_users(UserManager)) > 1:
         # Delete datasets which only deleted user has access
         try:
             datasets = dm.DataManager.get_all_datasets(
                 dm.DataManager, user_id=user_to_delete)
             for dataset in datasets:
                 access_user_list = dataset.get_access_user_list().split(',')
                 local = st.enum_storage_type_bool(
                     storage_type=dataset.get_storage_type())
                 if len(access_user_list) <= 1:
                     dm.DataManager.delete_dataset(
                         dm.DataManager, dataset.get_datasetID(),
                         local=local)
                     dm.DataManager.drop_dataset_table(
                         dm.DataManager, dataset_id=dataset.get_datasetID(), local=local)
                 # If user to delete is dataset owner and not the only one with access, he gets assigned an successor
                 elif dataset.get_owner() == user_to_delete:
                     new_owner = ''
                     access_user_list.remove(user_to_delete)
                     if not user_issuer == user_to_delete:
                         new_owner = user_issuer
                     else:
                         new_owner = [
                             val for val in access_user_list if not val == user_to_delete][0]
                     if len(access_user_list) <= 1:
                         access_user_list = access_user_list[0]
                     else:
                         access_user_list = ','.join(access_user_list)
                     for user in self.get_all_users(UserManager):
                         db_utils.DataBaseUtils.execute_sql(db_utils.DataBaseUtils,
                                                            sql_stmt.DataBaseSQL.
                                                            update_value(
                                                                sql_stmt.DataBaseSQL, table=st.TABLE_DATASET,
                                                                column=st.TB_DATASET_COL_ACCESS_USER_LIST,
                                                                value=access_user_list,
                                                                condition=st.TB_DATASET_COL_OWNER,
                                                                condition_value=user.get_userID()),
                                                            local=False)
                     db_utils.DataBaseUtils.execute_sql(db_utils.DataBaseUtils,
                                                        sql_stmt.DataBaseSQL.
                                                        update_value(
                                                            sql_stmt.DataBaseSQL, table=st.TABLE_DATASET,
                                                            column=st.TB_DATASET_COL_OWNER,
                                                            value=new_owner,
                                                            condition=st.TB_DATASET_COL_OWNER,
                                                            condition_value=user_to_delete),
                                                        local=False)
                 else:
                     access_user_list.remove(user_to_delete)
                     db_utils.DataBaseUtils.execute_sql(db_utils.DataBaseUtils,
                                                        sql_stmt.DataBaseSQL.
                                                        update_value(
                                                            sql_stmt.DataBaseSQL, table=st.TABLE_DATASET,
                                                            column=st.TB_DATASET_COL_ACCESS_USER_LIST,
                                                            value=access_user_list,
                                                            condition=st.TB_DATASET_COL_DATASET_ID,
                                                            condition_value=dataset.get_datasetID()),
                                                        local=False)
             # Delete User from users
             db_utils.DataBaseUtils.execute_sql(db_utils.DataBaseUtils,
                                                sql_stmt.DataBaseSQL.
                                                delete_row_from_table(
                                                    sql_stmt.DataBaseSQL, table=st.TABLE_USER,
                                                    condition=st.TB_USER_COL_USER_ID,
                                                    condition_value=user_to_delete),
                                                local=False)
             return True
         except:
             return True
             print("User Deleletion Unsuccessful")
     else:
         return False