當前位置: 首頁>>代碼示例>>Python>>正文


Python BuildService.setReviewState方法代碼示例

本文整理匯總了Python中buildservice.BuildService.setReviewState方法的典型用法代碼示例。如果您正苦於以下問題:Python BuildService.setReviewState方法的具體用法?Python BuildService.setReviewState怎麽用?Python BuildService.setReviewState使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在buildservice.BuildService的用法示例。


在下文中一共展示了BuildService.setReviewState方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: ParticipantHandler

# 需要導入模塊: from buildservice import BuildService [as 別名]
# 或者: from buildservice.BuildService import setReviewState [as 別名]
class ParticipantHandler(object):

    """Participant class as defined by the SkyNET API."""

    def __init__(self):
        self.oscrc = None
        self.obs = None

    def handle_wi_control(self, ctrl):
        """Job control thread."""
        pass

    def handle_lifecycle_control(self, ctrl):
        """Participant control thread."""
        if ctrl.message == "start":
            if ctrl.config.has_option("obs", "oscrc"):
                self.oscrc = ctrl.config.get("obs", "oscrc")

    def setup_obs(self, namespace):
        """Setup the Buildservice instance.

        Using the namespace as an alias to the apiurl.
        """

        self.obs = BuildService(oscrc=self.oscrc, apiurl=namespace)

    def handle_request(self, wid):
        """Request handling implementation."""

        wid.result = False
        if not wid.fields.msg :
            wid.fields.msg = []
        rid = str(wid.fields.ev.id)

        # https://api.opensuse.org/apidocs/request.xsd
        obj_type = "request"
        newstate = None
        if wid.params.action == 'accept':
            newstate = "accepted"
        elif wid.params.action == 'reject' or wid.params.action == 'decline' :
            newstate = "declined"
        elif wid.params.action == 'add review':
            obj_type = "review"
            newstate = "add"
        elif wid.params.action == 'accept review':
            obj_type = "review"
            newstate = "accepted"
        elif wid.params.action == 'decline review':
            obj_type = "review"
            newstate = "declined"

        Verify.assertNotNull("Request ID field must not be empty", rid)
        Verify.assertNotNull("Participant action should be one of accept, "\
                             "decline, add review, accept review, "\
                             "decline review", newstate)

        try:
            if obj_type == "review":
                reviewer = wid.params.reviewer
                extra_msg = ""

                if wid.params.comment:
                    extra_msg = "%s\n" % wid.params.comment

                if not reviewer:
                    reviewer = self.obs.getUserName()
                if newstate == "add":
                    res = self.obs.addReview(rid, extra_msg, reviewer)
                else:
                    res = self.obs.setReviewState(rid, newstate, extra_msg,
                                                  reviewer)
            elif obj_type == "request":

                extra_msg = ""

                if wid.params.comment:
                    extra_msg = "%s\n" % wid.params.comment

                msgstring = "%sBOSS %s this %s because:\n %s" % (
                    extra_msg, newstate, obj_type, "\n ".join(wid.fields.msg) )

                res = self.obs.setRequestState(rid, newstate, msgstring)

            if res:
                self.log.info("%s %s %s" % (newstate , obj_type, rid))
                wid.result = True
            else:
                self.log.info("Failed to %s %s %s" % (wid.params.action , obj_type, rid))

        except HTTPError, exc:
            if exc.code == 403:
                wid.fields.msg.append("Applying the actions required to "\
                                      "automate this process has failed, "\
                                      "because the %s user was not authorized "\
                                      "to do so. "\
                                      "Please add %s as a maintainer in the "\
                                      "target projet %s" %
                                      (self.obs.getUserName(),
                                       self.obs.getUserName(),
                                       wid.fields.project))
#.........這裏部分代碼省略.........
開發者ID:d0b3rm4n,項目名稱:boss-standard-workflow,代碼行數:103,代碼來源:change_request_state.py

示例2: ParticipantHandler

# 需要導入模塊: from buildservice import BuildService [as 別名]
# 或者: from buildservice.BuildService import setReviewState [as 別名]
class ParticipantHandler(object):

    """Participant class as defined by the SkyNET API."""

    def __init__(self):
        self.oscrc = None
        self.obs = None

    def handle_wi_control(self, ctrl):
        """Job control thread."""
        pass

    def handle_lifecycle_control(self, ctrl):
        """Participant control thread."""
        if ctrl.message == "start":
            if ctrl.config.has_option("obs", "oscrc"):
                self.oscrc = ctrl.config.get("obs", "oscrc")

    def setup_obs(self, namespace):
        """Setup the Buildservice instance.

        Using the namespace as an alias to the apiurl.
        """

        self.obs = BuildService(oscrc=self.oscrc, apiurl=namespace)

    def handle_request(self, wid):
        """Request handling implementation."""

        wid.result = False
        if not wid.fields.msg :
            wid.fields.msg = []
        rid = str(wid.fields.ev.id)

        # https://api.opensuse.org/apidocs/request.xsd
        obj_type = "request"
        newstate = None
        if wid.params.action == 'accept':
            newstate = "accepted"
        elif wid.params.action == 'reject' or wid.params.action == 'decline' :
            newstate = "declined"
        elif wid.params.action == 'add review':
            obj_type = "review"
            newstate = "add"
        elif wid.params.action == 'accept review':
            obj_type = "review"
            newstate = "accepted"
        elif wid.params.action == 'decline review':
            obj_type = "review"
            newstate = "declined"

        Verify.assertNotNull("Request ID field must not be empty", rid)
        Verify.assertNotNull("Participant action should be one of accept, "\
                             "decline, add review, accept review, "\
                             "decline review", newstate)

        # So sometimes it seems that the request is not available
        # immediately. In that case we wait a short while and retry
        retries = 0
        retry = True
        while retry:
            retry = False # Only try once unless specified
            try:
                if obj_type == "review":
                    reviewer = wid.params.reviewer
                    extra_msg = ""

                    if wid.params.comment:
                        extra_msg = "%s\n" % wid.params.comment

                    if not reviewer:
                        reviewer = self.obs.getUserName()
                    if newstate == "add":
                        res = self.obs.addReview(rid, extra_msg, reviewer)
                    else:
                        res = self.obs.setReviewState(rid, newstate, extra_msg,
                                                      reviewer)
                elif obj_type == "request":

                    extra_msg = ""

                    if wid.params.comment:
                        extra_msg = "%s\n" % wid.params.comment

                    msgstring = "%sBOSS %s this %s because:\n %s" % (
                        extra_msg, newstate, obj_type, "\n ".join(wid.fields.msg) )

                    print msgstring
                    res = self.obs.setRequestState(str(rid), str(newstate), str(msgstring))

                if res:
                    self.log.info("%s %s %s" % (newstate , obj_type, rid))
                    wid.result = True
                else:
                    self.log.info("Failed to %s %s %s" % (wid.params.action , obj_type, rid))

            except HTTPError, exc:
                if exc.code == 403:
                    self.log.info("Forbidden to %s %s %s" % (wid.params.action, obj_type, rid))
                elif exc.code == 401:
#.........這裏部分代碼省略.........
開發者ID:MeeGoIntegration,項目名稱:boss-standard-workflow,代碼行數:103,代碼來源:change_request_state.py


注:本文中的buildservice.BuildService.setReviewState方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。