예제 #1
0
    def Run(self, args):
        """Run 'operations list'.

    Args:
      args: argparse.Namespace, The arguments that this command was invoked
          with.

    Returns:
      The list of operations for this project.
    """
        both = not args.filter and not args.where
        outputs = []
        if both or args.filter:
            apitools_client = genomics_util.GetGenomicsClient('v2alpha1')
            genomics_messages = genomics_util.GetGenomicsMessages('v2alpha1')

            request = genomics_messages.GenomicsProjectsOperationsListRequest(
                name='projects/%s/operations' %
                (genomics_util.GetProjectId(), ),
                filter=args.filter)

            outputs.append(
                list_pager.YieldFromList(
                    apitools_client.projects_operations,
                    request,
                    limit=args.limit,
                    batch_size_attribute='pageSize',
                    batch_size=args.
                    limit,  # Use limit if any, else server default.
                    field='operations'))

        if both or args.where:
            apitools_client = genomics_util.GetGenomicsClient()
            genomics_messages = genomics_util.GetGenomicsMessages()

            if args.where:
                args.where += ' AND '

            args.where += 'projectId=%s' % genomics_util.GetProjectId()

            request = genomics_messages.GenomicsOperationsListRequest(
                name='operations', filter=args.where)

            outputs.append(
                list_pager.YieldFromList(
                    apitools_client.operations,
                    request,
                    limit=args.limit,
                    batch_size_attribute='pageSize',
                    batch_size=args.
                    limit,  # Use limit if any, else server default.
                    field='operations'))

        return chain.from_iterable(outputs)
예제 #2
0
  def Run(self, args):
    """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    Returns:
      None
    """
    apitools_client = genomics_util.GetGenomicsClient()
    genomics_messages = genomics_util.GetGenomicsMessages()

    # Look it up first so that we can display the name
    existing_rgs = apitools_client.readgroupsets.Get(
        genomics_messages.GenomicsReadgroupsetsGetRequest(readGroupSetId=args.id))

    prompt_message = (
        'Deleting read group set {0} ({1}) will delete all objects in the read '
        'group set.').format(args.id, existing_rgs.name)

    if not console_io.PromptContinue(message=prompt_message):
      raise GenomicsError('Deletion aborted by user.')

    apitools_client.readgroupsets.Delete(
        genomics_messages.GenomicsReadgroupsetsDeleteRequest(
            readGroupSetId=str(args.id)))
    log.DeletedResource('{0} ({1})'.format(args.id,
                                           existing_rgs.name))
예제 #3
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    Returns:
      None
    """
        # Look it up first so that we can display the name
        existing_ds = genomics_util.GetDataset(args.id)

        prompt_message = (
            'Deleting dataset {0} ({1}) will delete all objects in the dataset. '
            'Deleted datasets can be recovered with the "restore" command '
            'up to one week after the deletion occurs.').format(
                existing_ds.id, existing_ds.name)

        if not console_io.PromptContinue(message=prompt_message):
            raise GenomicsError('Deletion aborted by user.')

        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        dataset = genomics_messages.GenomicsDatasetsDeleteRequest(
            datasetId=str(args.id), )

        apitools_client.datasets.Delete(dataset)
        log.DeletedResource('{0} ({1})'.format(existing_ds.id,
                                               existing_ds.name))
예제 #4
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Returns:
      an Operation message which tracks the asynchronous export
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        try:
            return apitools_client.readgroupsets.Export(
                genomics_messages.GenomicsReadgroupsetsExportRequest(
                    readGroupSetId=args.read_group_set_id,
                    exportReadGroupSetRequest=genomics_messages.
                    ExportReadGroupSetRequest(
                        projectId=genomics_util.GetProjectId(),
                        exportUri=args.export_uri,
                        referenceNames=args.reference_names)))
        except apitools_exceptions.HttpError as error:
            # Map our error messages (JSON API camelCased) back into flag names.
            msg = (
                exceptions.HttpException(error).payload.status_message.replace(
                    'exportUri',
                    '--export-uri').replace('referenceNames',
                                            '--reference-names'))
            core_exceptions.reraise(exceptions.HttpException(msg))
예제 #5
0
  def Run(self, args):
    """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    Returns:
      None
    """
    apitools_client = genomics_util.GetGenomicsClient()
    genomics_messages = genomics_util.GetGenomicsMessages()

    variantset = genomics_messages.VariantSet(
        datasetId=args.dataset_id,
        referenceSetId=args.reference_set_id,
        name=args.name,
        description=args.description)

    result = apitools_client.variantsets.Create(variantset)
    log.CreatedResource('{0}, id: {1}'.format(result.name, result.id),
                        kind='variant set',
                        details='belonging to dataset [id: {0}]'.format(
                            result.datasetId))
    return result
예제 #6
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    Returns:
      None
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        request = genomics_messages.GenomicsCallsetsPatchRequest(
            callSet=genomics_messages.CallSet(
                id=args.id,
                name=args.name,
                # Can't construct a callset without the variant id set, but
                # actually setting the variant id would not do anything, so
                # use a dummy value. See b/22818510.
                variantSetIds=['123'],
            ),
            callSetId=args.id,
        )

        result = apitools_client.callsets.Patch(request)
        log.UpdatedResource('{0}, id: {1}'.format(result.name, result.id),
                            kind='call set')
        return result
예제 #7
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    Returns:
      an ExportVariantSetResponse
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()
        enum = genomics_messages.ExportVariantSetRequest.FormatValueValuesEnum
        call_set_ids = args.call_set_ids if args.call_set_ids else []
        project_id = args.bigquery_project
        if not project_id:
            project_id = genomics_util.GetProjectId()
        request = genomics_messages.GenomicsVariantsetsExportRequest(
            variantSetId=args.id,
            exportVariantSetRequest=genomics_messages.ExportVariantSetRequest(
                callSetIds=call_set_ids,
                projectId=project_id,
                format=enum.FORMAT_BIGQUERY,
                bigqueryDataset=args.bigquery_dataset,
                bigqueryTable=args.table))

        return apitools_client.variantsets.Export(request)
예제 #8
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    Returns:
      None
    """
        prompt_message = ('Restoring dataset {0} will restore all objects in '
                          'the dataset.').format(args.id)

        if not console_io.PromptContinue(message=prompt_message):
            raise GenomicsError('Restore aborted by user.')

        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        dataset = genomics_messages.GenomicsDatasetsUndeleteRequest(
            datasetId=args.id)

        result = apitools_client.datasets.Undelete(dataset)
        log.RestoredResource('{0}, id: {1}'.format(result.name, result.id),
                             kind='dataset')
        return result
예제 #9
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    Returns:
      None
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        name = args.name
        if not name.startswith(_OPERATIONS_PREFIX):
            name = _OPERATIONS_PREFIX + name

        # Look up the operation so we can display it in the confirmation prompt
        op = apitools_client.operations.Get(
            genomics_messages.GenomicsOperationsGetRequest(name=name))
        operation_string = StringIO()
        print_format = display.Displayer(self, args).GetFormat()
        resource_printer.Print(op, print_format, out=operation_string)

        if not console_io.PromptContinue(
                message='%s\n%s' %
            (operation_string.getvalue(), 'This operation will be canceled')):
            raise GenomicsError('Cancel aborted by user.')

        apitools_client.operations.Cancel(
            genomics_messages.GenomicsOperationsCancelRequest(name=name))
        log.status.write('Canceled [{0}].\n'.format(name))
예제 #10
0
  def Run(self, args):
    """Run 'operations list'.

    Args:
      args: argparse.Namespace, The arguments that this command was invoked
          with.

    Returns:
      The list of operations for this project.
    """
    apitools_client = genomics_util.GetGenomicsClient('v2alpha1')
    genomics_messages = genomics_util.GetGenomicsMessages('v2alpha1')

    request_filter = None
    if args.filter:
      rewriter = filter_rewrite.OperationsBackend()
      args.filter, request_filter = rewriter.Rewrite(args.filter)
      log.info('client_filter=%r server_filter=%r', args.filter, request_filter)

    request = genomics_messages.GenomicsProjectsOperationsListRequest(
        name='projects/%s/operations' % (genomics_util.GetProjectId(),),
        filter=request_filter)

    return list_pager.YieldFromList(
        apitools_client.projects_operations,
        request,
        limit=args.limit,
        batch_size_attribute='pageSize',
        batch_size=args.limit,  # Use limit if any, else server default.
        field='operations')
예제 #11
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Returns:
      A list of reads that meet the search criteria.
    """
        apitools_client = genomics_util.GetGenomicsClient()
        messages = genomics_util.GetGenomicsMessages()
        fields = genomics_util.GetQueryFields(self.GetReferencedKeyNames(args),
                                              'alignments')
        if fields:
            global_params = messages.StandardQueryParameters(fields=fields)
        else:
            global_params = None

        return list_pager.YieldFromList(
            apitools_client.reads,
            messages.SearchReadsRequest(
                readGroupSetIds=[args.read_group_set_id],
                referenceName=args.reference_name,
                start=args.start,
                end=args.end),
            global_params=global_params,
            limit=args.limit,
            method='Search',
            batch_size_attribute='pageSize',
            batch_size=args.page_size,
            field='alignments')
예제 #12
0
파일: list.py 프로젝트: TobiahRex/Wingman
    def Run(self, args):
        """Run 'datasets list'.

    Args:
      args: argparse.Namespace, The arguments that this command was invoked
          with.

    Yields:
      The list of datasets for this project.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    """
        apitools_client = genomics_util.GetGenomicsClient()
        request = genomics_util.GetGenomicsMessages(
        ).GenomicsDatasetsListRequest(projectId=genomics_util.GetProjectId())
        try:
            for resource in list_pager.YieldFromList(
                    apitools_client.datasets,
                    request,
                    limit=args.limit,
                    batch_size_attribute='pageSize',
                    batch_size=args.
                    limit,  # Use limit if any, else server default.
                    field='datasets'):
                yield resource
        except apitools_exceptions.HttpError as error:
            raise exceptions.HttpException(
                genomics_util.GetErrorMessage(error))
예제 #13
0
  def Run(self, args):
    """Run 'variantsets list'.

    Args:
      args: argparse.Namespace, The arguments that this command was invoked
          with.

    Yields:
      The list of variant sets for this dataset.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    """
    apitools_client = genomics_util.GetGenomicsClient()
    req_class = genomics_util.GetGenomicsMessages().SearchVariantSetsRequest
    request = req_class(datasetIds=[args.dataset_id])
    try:
      for resource in list_pager.YieldFromList(
          apitools_client.variantsets,
          request,
          method='Search',
          limit=args.limit,
          batch_size_attribute='pageSize',
          batch_size=args.limit,  # Use limit if any, else server default.
          field='variantSets'):
        yield resource
    except apitools_exceptions.HttpError as error:
      raise exceptions.HttpException(genomics_util.GetErrorMessage(error))
예제 #14
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    Returns:
      None
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        dataset = genomics_messages.Dataset(
            name=args.name,
            projectId=genomics_util.GetProjectId(),
        )

        result = apitools_client.datasets.Create(dataset)
        log.CreatedResource('{0}, id: {1}'.format(result.name, result.id),
                            kind='dataset')
        return result
예제 #15
0
    def Run(self, args):
        """Run 'operations list'.

    Args:
      args: argparse.Namespace, The arguments that this command was invoked
          with.

    Returns:
      The list of operations for this project.
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        if args.where:
            args.where += ' AND '

        args.where += 'projectId=%s' % genomics_util.GetProjectId()

        request = genomics_messages.GenomicsOperationsListRequest(
            name='operations', filter=args.where)

        return list_pager.YieldFromList(
            apitools_client.operations,
            request,
            limit=args.limit,
            batch_size_attribute='pageSize',
            batch_size=args.limit,  # Use limit if any, else server default.
            field='operations')
예제 #16
0
    def Run(self, args):
        """Run 'references list'.

    Args:
      args: argparse.Namespace, The arguments that this command was invoked
          with.

    Yields:
      The list of matching references.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    """
        apitools_client = genomics_util.GetGenomicsClient()
        req_class = genomics_util.GetGenomicsMessages().SearchReferencesRequest
        request = req_class(md5checksums=args.md5checksums,
                            accessions=args.accessions,
                            referenceSetId=args.reference_set_id)
        for resource in list_pager.YieldFromList(
                apitools_client.references,
                request,
                method='Search',
                limit=args.limit,
                batch_size_attribute='pageSize',
                batch_size=args.
                limit,  # Use limit if any, else server default.
                field='references'):
            yield resource
예제 #17
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    Returns:
      None
    """
        op = None
        apitools_client = genomics_util.GetGenomicsClient('v2alpha1')
        genomics_messages = genomics_util.GetGenomicsMessages('v2alpha1')

        name, v2 = genomics_util.CanonicalizeOperationName(args.name)
        if v2:
            op = apitools_client.projects_operations.Get(
                genomics_messages.GenomicsProjectsOperationsGetRequest(
                    name=name))
        else:
            apitools_client = genomics_util.GetGenomicsClient()
            genomics_messages = genomics_util.GetGenomicsMessages()
            op = apitools_client.operations.Get(
                genomics_messages.GenomicsOperationsGetRequest(name=name))

        operation_string = io.StringIO()
        print_format = display.Displayer(self, args).GetFormat()
        resource_printer.Print(op, print_format, out=operation_string)

        if not console_io.PromptContinue(
                message='%s\n%s' %
            (operation_string.getvalue(), 'This operation will be canceled')):
            raise GenomicsError('Cancel aborted by user.')

        if v2:
            apitools_client.projects_operations.Cancel(
                genomics_messages.GenomicsProjectsOperationsCancelRequest(
                    name=name))
        else:
            apitools_client.operations.Cancel(
                genomics_messages.GenomicsOperationsCancelRequest(name=name))
        log.status.write('Canceled [{0}].\n'.format(name))
예제 #18
0
    def Run(self, args):
        apitools_client = genomics_util.GetGenomicsClient()
        messages = genomics_util.GetGenomicsMessages()

        dataset_resource = resources.REGISTRY.Parse(
            args.id, collection='genomics.datasets')

        policy_request = messages.GenomicsDatasetsGetIamPolicyRequest(
            resource='datasets/{0}'.format(dataset_resource.Name()),
            getIamPolicyRequest=messages.GetIamPolicyRequest(),
        )
        return apitools_client.datasets.GetIamPolicy(policy_request)
예제 #19
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Returns:
      a Operation message
    """
        name, v2 = genomics_util.CanonicalizeOperationName(args.name)
        if v2:
            apitools_client = genomics_util.GetGenomicsClient('v2alpha1')
            genomics_messages = genomics_util.GetGenomicsMessages('v2alpha1')
            return apitools_client.projects_operations.Get(
                genomics_messages.GenomicsProjectsOperationsGetRequest(
                    name=name))

        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()
        return apitools_client.operations.Get(
            genomics_messages.GenomicsOperationsGetRequest(name=name))
예제 #20
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Returns:
      an Operation message which tracks the asynchronous import
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        if not args.source_uris:
            raise GenomicsError(
                'at least one value is required for --source-uris')

        partition_enum = (genomics_messages.ImportReadGroupSetsRequest.
                          PartitionStrategyValueValuesEnum)
        partition_strat = None
        if args.partition_strategy:
            if args.partition_strategy not in partition_enum.to_dict():
                raise GenomicsError(
                    '--partition-strategy must be one of {0}; received: {1}'.
                    format(sorted(partition_enum.names()),
                           args.partition_strategy))
            partition_strat = partition_enum.lookup_by_name(
                args.partition_strategy)

        try:
            return apitools_client.readgroupsets.Import(
                genomics_messages.ImportReadGroupSetsRequest(
                    datasetId=args.dataset_id,
                    sourceUris=args.source_uris,
                    referenceSetId=args.reference_set_id,
                    partitionStrategy=partition_strat,
                ))
        except apitools_exceptions.HttpError as error:
            # Map our error messages (JSON API camelCased) back into flag names.
            msg = (
                exceptions.HttpException(error).payload.status_message.replace(
                    'datasetId', '--dataset-id').replace(
                        'partitionStrategy', '--partition-strategy').replace(
                            'sourceUris',
                            '--source-uris').replace('referenceSetId',
                                                     '--reference-set-id'))
            unused_type, unused_value, traceback = sys.exc_info()
            raise exceptions.HttpException, msg, traceback
예제 #21
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Returns:
      a Reference message
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        request = genomics_messages.GenomicsReferencesGetRequest(
            referenceId=args.id, )
        return apitools_client.references.Get(request)
예제 #22
0
    def Run(self, args):
        apitools_client = genomics_util.GetGenomicsClient()
        messages = genomics_util.GetGenomicsMessages()

        dataset_resource = resources.REGISTRY.Parse(
            args.id, collection='genomics.datasets')

        policy = iam_util.ParsePolicyFile(args.policy_file, messages.Policy)

        policy_request = messages.GenomicsDatasetsSetIamPolicyRequest(
            resource='datasets/{0}'.format(dataset_resource.Name()),
            setIamPolicyRequest=messages.SetIamPolicyRequest(policy=policy),
        )
        result = apitools_client.datasets.SetIamPolicy(policy_request)
        iam_util.LogSetIamPolicy(dataset_resource.Name(), 'dataset')
        return result
예제 #23
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Yields:
      A list of variants that meet the search criteria.
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        fields = genomics_util.GetQueryFields(self.GetReferencedKeyNames(args),
                                              'variants')
        if fields:
            global_params = genomics_messages.StandardQueryParameters(
                fields=fields)
        else:
            global_params = None

        variant_set_id = [args.variant_set_id] if args.variant_set_id else []
        try:
            for resource in list_pager.YieldFromList(
                    apitools_client.variants,
                    genomics_messages.SearchVariantsRequest(
                        variantSetIds=variant_set_id,
                        callSetIds=args.call_set_ids,
                        referenceName=args.reference_name,
                        start=args.start,
                        end=args.end,
                        maxCalls=args.limit_calls),
                    global_params=global_params,
                    limit=args.limit,
                    method='Search',
                    batch_size_attribute='pageSize',
                    batch_size=args.page_size,
                    field='variants'):
                yield resource
        except apitools_exceptions.HttpError as error:
            msg = (
                exceptions.HttpException(error).payload.status_message.replace(
                    'variantSetIds', '--variant-set-id').replace(
                        'callSetIds', '--call-set-ids').replace(
                            'referenceName', '--reference-name').replace(
                                'start', '--start').replace('end', '--end'))
            raise exceptions.HttpException(msg)
예제 #24
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Returns:
      a Variant message
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        variant = genomics_messages.Variant(names=args.names, )
        request = genomics_messages.GenomicsVariantsPatchRequest(
            updateMask='names', variant=variant, variantId=args.id)

        return apitools_client.variants.Patch(request)
예제 #25
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Returns:
      a Operation message
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        name = args.name
        if not name.startswith(_OPERATIONS_PREFIX):
            name = _OPERATIONS_PREFIX + name
        return apitools_client.operations.Get(
            genomics_messages.GenomicsOperationsGetRequest(name=name))
예제 #26
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Returns:
      The ID of the variant that was deleted.
    """
        vid = args.id
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        request = genomics_messages.GenomicsVariantsDeleteRequest(
            variantId=vid, )
        apitools_client.variants.Delete(request)
        log.DeletedResource('variant {0}'.format(vid))
        return vid
예제 #27
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    Returns:
      None
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        if not (args.name or args.reference_set_id):
            raise GenomicsError(
                'Must specify --name and/or --reference-set-id')

        updated = genomics_messages.ReadGroupSet()
        mask = []
        # TODO(b/26871577): Consider using resource parser here
        if args.name:
            updated.name = args.name
            mask.append('name')
        if args.reference_set_id:
            updated.referenceSetId = args.reference_set_id
            mask.append('referenceSetId')

        request = genomics_messages.GenomicsReadgroupsetsPatchRequest(
            readGroupSet=updated,
            readGroupSetId=str(args.id),
            updateMask=','.join(mask))

        result = apitools_client.readgroupsets.Patch(request)
        name = str(result.id)
        if result.name:
            name += ', name: {0}'.format(result.name)
        if result.referenceSetId:
            name += ', referenceSetId: {0}'.format(result.referenceSetId)
        log.UpdatedResource(name, kind='readgroupset')
        return result
예제 #28
0
    def Run(self, args):
        """Run 'datasets list'.

    Args:
      args: argparse.Namespace, The arguments that this command was invoked
          with.

    Returns:
      The list of datasets for this project.
    """
        apitools_client = genomics_util.GetGenomicsClient()
        request = genomics_util.GetGenomicsMessages(
        ).GenomicsDatasetsListRequest(projectId=genomics_util.GetProjectId())
        return list_pager.YieldFromList(
            apitools_client.datasets,
            request,
            limit=args.limit,
            batch_size_attribute='pageSize',
            batch_size=args.limit,  # Use limit if any, else server default.
            field='datasets')
예제 #29
0
    def Run(self, args):
        """This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace, All the arguments that were provided to this
        command invocation.

    Raises:
      HttpException: An http error response was received while executing api
          request.
    Returns:
      a VariantSet whose id matches args.id.
    """
        apitools_client = genomics_util.GetGenomicsClient()
        genomics_messages = genomics_util.GetGenomicsMessages()

        get_request = genomics_messages.GenomicsVariantsetsGetRequest(
            variantSetId=args.id, )

        return apitools_client.variantsets.Get(get_request)
예제 #30
0
    def Run(self, args):
        apitools_client = genomics_util.GetGenomicsClient()
        messages = genomics_util.GetGenomicsMessages()

        dataset_resource = resources.REGISTRY.Parse(
            args.id, collection='genomics.datasets')

        policy_request = messages.GenomicsDatasetsGetIamPolicyRequest(
            resource='datasets/{0}'.format(dataset_resource.Name()),
            getIamPolicyRequest=messages.GetIamPolicyRequest(),
        )
        policy = apitools_client.datasets.GetIamPolicy(policy_request)

        iam_util.RemoveBindingFromIamPolicy(policy, args.member, args.role)

        policy_request = messages.GenomicsDatasetsSetIamPolicyRequest(
            resource='datasets/{0}'.format(dataset_resource.Name()),
            setIamPolicyRequest=messages.SetIamPolicyRequest(policy=policy),
        )
        return apitools_client.datasets.SetIamPolicy(policy_request)