当前位置: 首页>>代码示例>>Python>>正文


Python BuildService.setRequestState方法代码示例

本文整理汇总了Python中buildservice.BuildService.setRequestState方法的典型用法代码示例。如果您正苦于以下问题:Python BuildService.setRequestState方法的具体用法?Python BuildService.setRequestState怎么用?Python BuildService.setRequestState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在buildservice.BuildService的用法示例。


在下文中一共展示了BuildService.setRequestState方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: ParticipantHandler

# 需要导入模块: from buildservice import BuildService [as 别名]
# 或者: from buildservice.BuildService import setRequestState [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 setRequestState [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.setRequestState方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。