def perform(self, packages, cleanup, message):
        """
        Remove request from staging project
        :param packages: packages/requests to delete from staging projects
        """

        if cleanup:
            obsolete = self.api.project_status_requests(
                'obsolete', self.filter_obsolete)
            if len(obsolete) > 0:
                print('Cleanup {} obsolete requests'.format(len(obsolete)))
                packages += tuple(obsolete)

        affected_projects = set()
        for request, request_project in RequestFinder.find_staged_sr(
                packages, self.api).items():
            staging_project = request_project['staging']
            affected_projects.add(staging_project)
            print('Unselecting "{}" from "{}"'.format(request,
                                                      staging_project))
            self.api.rm_from_prj(staging_project, request_id=request)

            req = get_request(self.api.apiurl, str(request))
            if message:
                self.api.add_ignored_request(request, message)
                self.comment.add_comment(request_id=str(request),
                                         comment=message)
            elif req.state.name in ('new', 'review'):
                print(
                    '  Consider marking the request ignored to let others know not to restage.'
                )

        # Notify everybody about the changes
        for prj in affected_projects:
            self.api.update_status_or_deactivate(prj, 'unselect')
    def perform(self, packages, move=False, by_dp=False, split=False):
        """
        Perform the list command
        """
        if len(packages):
            requests = set()
            if move:
                items = RequestFinder.find_staged_sr(packages,
                                                     self.api).items()
                print(items)
                for request, request_project in items:
                    staging_project = request_project['staging']
                    self.api.rm_from_prj(staging_project, request_id=request)
                    self.api.add_review(request,
                                        by_group=self.api.cstaging_group,
                                        msg='Please recheck')
            else:
                items = RequestFinder.find_sr(packages, self.api).items()

            for request, request_project in items:
                requests.add(request)
            self.create_new_adi(requests, split=split)
        else:
            self.check_adi_projects()
            if self.api.is_user_member_of(self.api.user,
                                          self.api.cstaging_group):
                self.create_new_adi((), by_dp=by_dp, split=split)
    def perform(self, packages):
        """
        Remove request from staging project
        :param packages: packages/requests to delete from staging projects
        """

        affected_projects = set()
        for request, request_project in RequestFinder.find_staged_sr(packages, self.api).items():
            staging_project = request_project["staging"]
            affected_projects.add(staging_project)
            msg = 'Unselecting "{}" from "{}"'.format(request, staging_project)
            print(msg)
            self.api.rm_from_prj(staging_project, request_id=request)
            self.api.add_review(request, by_group=self.api.cstaging_group, msg="Please recheck")

        # Notify everybody about the changes
        for prj in affected_projects:
            self.api.update_status_comments(prj, "unselect")
    def perform(self, packages):
        """
        Remove request from staging project
        :param packages: packages/requests to delete from staging projects
        """

        affected_projects = set()
        for request, request_project in RequestFinder.find_staged_sr(packages,
                                                                     self.api).items():
            staging_project = request_project['staging']
            affected_projects.add(staging_project)
            msg = 'Unselecting "{}" from "{}"'.format(request, staging_project)
            print(msg)
            self.api.rm_from_prj(staging_project, request_id=request, msg='Removing from {}, re-evaluation needed'.format(staging_project))
            self.api.add_review(request, by_group=self.api.cstaging_group, msg='Requesting new staging review')

        # Notify everybody about the changes
        for prj in affected_projects:
            self.api.update_status_comments(prj, 'unselect')
    def perform(self, packages):
        """
        Remove request from staging project
        :param packages: packages/requests to delete from staging projects
        """

        affected_projects = set()
        for request, request_project in RequestFinder.find_staged_sr(
                packages, self.api).items():
            staging_project = request_project['staging']
            affected_projects.add(staging_project)
            msg = 'Unselecting "{}" from "{}"'.format(request, staging_project)
            print(msg)
            self.api.rm_from_prj(staging_project, request_id=request)
            self.api.add_review(request,
                                by_group=self.api.cstaging_group,
                                msg='Please recheck')

        # Notify everybody about the changes
        for prj in affected_projects:
            self.api.update_status_comments(prj, 'unselect')
Example #6
0
    def perform(self, packages, cleanup=False):
        """
        Remove request from staging project
        :param packages: packages/requests to delete from staging projects
        """

        if cleanup:
            obsolete = self.api.project_status_requests(
                'obsolete', self.filter_obsolete)
            if len(obsolete) > 0:
                print('Cleanup {} obsolete requests'.format(len(obsolete)))
                packages += tuple(obsolete)

        ignored_requests = self.api.get_ignored_requests()
        affected_projects = set()
        for request, request_project in RequestFinder.find_staged_sr(
                packages, self.api).items():
            staging_project = request_project['staging']
            affected_projects.add(staging_project)
            msg = 'Unselecting "{}" from "{}"'.format(request, staging_project)
            print(msg)
            self.api.rm_from_prj(
                staging_project,
                request_id=request,
                msg='Removing from {}, re-evaluation needed'.format(
                    staging_project))
            self.api.add_review(request,
                                by_group=self.api.cstaging_group,
                                msg='Requesting new staging review')

            req = get_request(self.api.apiurl, str(request))
            if req.state.name in (
                    'new', 'review') and request not in ignored_requests:
                print(
                    '  Consider marking the request ignored to let others know not to restage.'
                )

        # Notify everybody about the changes
        for prj in affected_projects:
            self.api.update_status_or_deactivate(prj, 'unselect')
    def perform(self, packages, move=False, by_dp=False, split=False):
        """
        Perform the list command
        """
        if len(packages):
            requests = set()
            if move:
                items = RequestFinder.find_staged_sr(packages, self.api).items()
                print(items)
                for request, request_project in items:
                    staging_project = request_project['staging']
                    self.api.rm_from_prj(staging_project, request_id=request)
                    self.api.add_review(request, by_group=self.api.cstaging_group, msg='Please recheck')
            else:
                items = RequestFinder.find_sr(packages, self.api).items()

            for request, request_project in items:
                requests.add(request)
            self.create_new_adi(requests, split=split)
        else:
            self.check_adi_projects()
            if self.api.is_user_member_of(self.api.user, self.api.cstaging_group):
                self.create_new_adi((), by_dp=by_dp, split=split)