예제 #1
0
 def __init__(self):
     self.rdm_requests = Requests()
     self.rdm_db = RdmDatabase()
     self.report = Reports()
     self.rdm_add_record = RdmAddRecord()
     self.general_functions = GeneralFunctions()
     self.report_files = ['console', 'owners']
def rdm_duplicate_records():

    report = Reports()
    delete = Delete()

    # Reads file containing all RDM records
    all_records = open(data_files_name['all_rdm_records'], 'r').readlines()

    temp_arr = []
    count_deleted = 0

    # Starts iterating from the last uploaded records
    for record in reversed(all_records):

        record_split = record.split(' ')

        uuid = record_split[0]
        recid = record_split[1].strip('\n')

        # Checks if they are duplicates
        if uuid in temp_arr:
            count_deleted += 1
            delete.record(recid)
            continue
        temp_arr.append(uuid)

    if count_deleted == 0:
        report.add('\nThere are no duplicate records to delete\n')

    report.add(f'Total items: {len(all_records)}\nDeleted: {count_deleted}\n')
예제 #3
0
def rdm_add_file(file_name: str, recid: str):
    
    rdm_requests = Requests()
    reports      = Reports()
    
    file_path_name = f"{temporary_files_name['base_path']}/{file_name}"

    # PUT FILE TO RDM
    response = rdm_requests.put_file(file_path_name, recid)

    # Report
    reports.add(f'\tRDM put file @ {response} @ {file_name}')

    if response.status_code >= 300:
        reports.add(response.content)
        return False

    else:
        # if the upload was successful then delete file from /reports/temporary_files
        os.remove(file_path_name) 
        return True
예제 #4
0
 def __init__(self):
     self.report = Reports()
     self.add_record = RdmAddRecord()
예제 #5
0
 def __init__(self):
     self.report = Reports()
예제 #6
0
 def __init__(self):
     self.add_record = RdmAddRecord()
     self.report = Reports()
     self.delete = Delete()
     self.general_functions = GeneralFunctions()
import json
import requests
from datetime import date, datetime
from requests.auth import HTTPBasicAuth
from setup                          import pure_username, pure_password, temporary_files_name, \
                                           pure_rest_api_url, pure_api_key, log_files_name
from source.reports import Reports
from source.pure.requests import get_pure_metadata

reports = Reports()


def get_next_page(resp_json):

    if 'navigationLinks' in resp_json:
        if 'next' in resp_json['navigationLinks'][0]['ref']:
            return resp_json['navigationLinks'][0]['href']
        else:
            if len(resp_json['navigationLinks']) == 2:
                if 'next' in resp_json['navigationLinks'][1]['ref']:
                    return resp_json['navigationLinks'][1]['href']
    return False


def get_pure_record_metadata_by_uuid(uuid: str):
    """ Method used to get from Pure record's metadata """

    # PURE REQUEST
    response = get_pure_metadata('research-outputs', uuid)

    report = f'\tPure get metadata     - {response}'
예제 #8
0
 def __init__(self):
     self.report = Reports()
     self.rdm_requests = Requests()
     self.general_functions = GeneralFunctions()
예제 #9
0
 def __init__(self):
     self.rdm_requests = Requests()
     self.report = Reports()
예제 #10
0
 def __init__(self):
     self.rdm_requests = Requests()
     self.report = Reports()
     self.file_name = "/home/bootcamp/src/pure_sync_rdm/synchronizer/data/temporary_files/test.xml"
예제 #11
0
 def __init__(self):
     self.rdm_requests = Requests()
     self.reports = Reports()
     self.delete = Delete()
예제 #12
0
 def __init__(self):
     self.rdm_requests       = Requests()
     self.report             = Reports()
     self.groups             = RdmGroups()
     self.general_functions  = GeneralFunctions()
     self.versioning         = Versioning()
예제 #13
0
 def __init__(self):
     self.rdm_db = RdmDatabase()
     self.report = Reports()
     self.rdm_requests = Requests()
     self.general_functions = GeneralFunctions()
     self.report_files = ['console', 'groups']