Example #1
0
def run(auth: CromwellAuth, metadata: str = None, uuid: str = None):
    if metadata is not None:
        with open(args.metadata) as data_file:
            metadata = json.load(data_file)
    # cli top level parsing ensures metadata is set otherwise
    else:
        response = CromwellAPI.metadata(
            uuid=uuid,
            auth=auth,
            expandSubWorkflows=True,
            raise_for_status=True,
        )
        metadata = response.json()

    if auth.service_key_content is None:
        raise exceptions.CromwellAuthenticationError(
            "task_runtime requires a service account key")

    print_task_runtime_data(metadata, auth.service_key_content)
def get_wf_metadata(cromwell_auth,
                    wf_id,
                    include_keys=None,
                    exclude_keys=None):
    result = CromwellAPI.metadata(wf_id,
                                  cromwell_auth,
                                  includeKey=include_keys,
                                  excludeKey=exclude_keys)

    try:
        result.raise_for_status()

    except requests.exceptions.HTTPError as e:
        logging.error("Unable to fetch metadata for wf: {0}".format(wf_id))
        logging.error("Message from cromwell server:\n{0}".format(
            result.json()))
        raise

    return result.json()
    def test_metadata_returns_200(self, mock_request):
        workflow_id = '12345abcde'
        test_include_key = 'workflow'

        def _request_callback(request, context):
            context.status_code = 200
            context.headers['test'] = 'header'
            return {'id': '12345abcde', 'actualWorkflowLanguageVersion': 'draft-2'}

        for cromwell_auth in self.auth_options:
            mock_request.get(
                '{0}/api/workflows/v1/{1}/metadata?expandSubWorkflows=false&includeKey={2}'.format(
                    cromwell_auth.url, workflow_id, test_include_key
                ),
                json=_request_callback,
            )
            result = CromwellAPI.metadata(
                workflow_id, cromwell_auth, includeKey=test_include_key
            )
            self.assertEqual(result.status_code, 200)
            self.assertEqual(result.json()['id'], workflow_id)
Example #4
0
 def get_status(self):
     return pd.DataFrame(
         [[_a, cwt.metadata(_a, self.auth_obj).json()['status']]
          for _a in self.resp_list])
 def sync_metadata(self):
     self.metadata = CromwellAPI.metadata(
         self.wf_id,
         self.auth,
         includeKey=["outputs", "labels", "status", "inputs"],
         raise_for_status=True).json()