コード例 #1
0
def process_command(command, issue_file=None, dataset_file=None, issue_path=None, dataset_path=None, status=None,
                    list_of_ids=None, **kwargs):
    payload = issue_file

    if command in [CREATE, UPDATE, CLOSE]:
        credentials = _get_credentials(kwargs)
        # Initializing non-mandatory fields to pass validation process.
        if URL not in payload.keys():
            payload[URL] = []
        if MATERIALS not in payload.keys():
            payload[MATERIALS] = []
    # intializing mandatory new issue fields
    if command == CREATE:
        payload[UID] = str(uuid4())
        payload[STATUS] = unicode(STATUS_NEW)

    # instatiating a localissue object
    local_issue = LocalIssue(action=command, issue_file=payload, dataset_file=dataset_file, issue_path=issue_path,
                             dataset_path=dataset_path)

    # issue file validation
    if command not in [RETRIEVE, RETRIEVE_ALL]:
        local_issue.validate(command)
    # WS Call
    if command == CREATE:
        local_issue.create(credentials)
    elif command == UPDATE:
        local_issue.update(credentials)
    elif command == CLOSE:
        local_issue.close(credentials, status)
    elif command == RETRIEVE:
        local_issue.retrieve(list_of_ids, issue_path, dataset_path)
    elif command == RETRIEVE_ALL:
        local_issue.retrieve_all(issue_path, dataset_path)
コード例 #2
0
def process_command(command,
                    issue_file=None,
                    dataset_file=None,
                    issue_path=None,
                    dataset_path=None,
                    status=None,
                    list_of_ids=None,
                    **kwargs):
    payload = issue_file

    # Fill in mandatory fields
    if command in [CREATE, UPDATE, CLOSE]:
        if 'passphrase' in kwargs:
            credentials = _authenticate(passphrase=kwargs['passphrase'])
        else:
            credentials = _authenticate()
        # Initializing non-mandatory fields to pass validation process.
        if URL not in payload.keys():
            payload[URL] = ''
        if MATERIALS not in payload.keys():
            payload[MATERIALS] = []
    if command == CREATE:
        payload[UID] = str(uuid4())
        payload[STATUS] = unicode(STATUS_NEW)
        payload[DATE_CREATED] = datetime.utcnow().strftime(TIME_FORMAT)
        payload[DATE_UPDATED] = payload[DATE_CREATED]

    local_issue = LocalIssue(action=command,
                             issue_file=payload,
                             dataset_file=dataset_file,
                             issue_path=issue_path,
                             dataset_path=dataset_path)
    if command not in [RETRIEVE, RETRIEVE_ALL]:
        local_issue.validate(command)
    # WS Call
    if command == CREATE:
        local_issue.create(credentials)
    elif command == UPDATE:
        local_issue.update(credentials)
    elif command == CLOSE:
        local_issue.close(credentials, status)
    elif command == RETRIEVE:
        local_issue.retrieve(list_of_ids, issue_path, dataset_path)
    elif command == RETRIEVE_ALL:
        local_issue.retrieve_all(issue_path, dataset_path)
コード例 #3
0
ファイル: esgissue.py プロジェクト: AtefBN/esgf-issue-manager
def process_command(command, issue_file, dataset_file, issue_path, dataset_path):
    payload = issue_file
    if dataset_file is not None:
        dsets = _get_datasets(dataset_file)
    else:
        dsets = None
    if command == 'create':
        payload['uid'] = str(uuid4())
        payload['workflow'] = unicode('new')
        payload['dateCreated'] = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
    local_issue = LocalIssue(payload, dsets, issue_path, dataset_path, command)
    local_issue.validate(command)
    if command == 'create':
        local_issue.create()
    elif command == 'update':
        local_issue.update()
    elif command == 'close':
        local_issue.close()