[Patchew-devel] [PATCH 4/9] git: remove prepare_series_hook, include result URI in applier-get reply

Fam Zheng famz at redhat.com
Wed Aug 22 06:00:55 UTC 2018


On Sat, 08/18 16:10, Paolo Bonzini wrote:
> api.views.prepare_series is only used in two places, the search
> and applier-get endpoints.  Simplify a bit the code by dropping support
> for the git properties in the search endpoint, and add a result URI
> that can be used for patchew-cli's applier mode to switch to the REST
> API.
> 
> Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
> ---
>  api/rest.py  |  2 +-
>  api/views.py |  4 ----
>  mods/git.py  | 30 +++++++++++++++++-------------
>  3 files changed, 18 insertions(+), 18 deletions(-)
> 
> diff --git a/api/rest.py b/api/rest.py
> index bd46211..646d6ad 100644
> --- a/api/rest.py
> +++ b/api/rest.py
> @@ -102,7 +102,7 @@ def reverse_detail(obj, request):
>                                                request=request,
>                                                kwargs={"projects_pk": m.project.id,
>                                                        "series_message_id": m.message_id,
> -                                                      "name": obj.name}),
> +                                                      "name": obj.name})

Squash this hunk to the previous patch?

>      raise Error("unhandled object type")
>  
>  # pluggable field for plugin support
> diff --git a/api/views.py b/api/views.py
> index 7a37481..f2262b6 100644
> --- a/api/views.py
> +++ b/api/views.py
> @@ -168,8 +168,6 @@ def prepare_series(request, s, fields=None):
>          r["subject"] = s.subject
>      if want_field("project"):
>          r["project"] = s.project.name
> -    if want_field("project.git"):
> -        r["project.git"] = s.project.git
>      if want_field("message-id"):
>          r["message-id"] = s.message_id
>      if want_field("patches"):
> @@ -178,8 +176,6 @@ def prepare_series(request, s, fields=None):
>          r["properties"] = s.get_properties()
>      if want_field("is_complete"):
>          r["is_complete"] = s.is_complete
> -    dispatch_module_hook("prepare_series_hook", request=request, series=s,
> -                         response=r)
>      if fields:
>          r = dict([(k, v) for k, v in r.items() if k in fields])
>      return r
> diff --git a/mods/git.py b/mods/git.py
> index 924547a..97db081 100644
> --- a/mods/git.py
> +++ b/mods/git.py
> @@ -19,7 +19,7 @@ from django.utils.html import format_html
>  from mod import PatchewModule
>  from event import declare_event, register_handler, emit_event
>  from api.models import Message, MessageProperty, Project, Result
> -from api.rest import PluginMethodField
> +from api.rest import PluginMethodField, reverse_detail
>  from api.views import APILoginRequiredView, prepare_series
>  from patchew.logviewer import LogView
>  from schema import *
> @@ -218,16 +218,6 @@ class GitModule(PatchewModule):
>              r = base.git_result
>              return r if r and r.data.get("repo") else None
>  
> -    def prepare_series_hook(self, request, series, response):
> -        po = series.project
> -        for prop in ["git.push_to", "git.public_repo", "git.url_template"]:
> -            if po.get_property(prop):
> -                response[prop] = po.get_property(prop)
> -        base = self.get_base(series)
> -        if base:
> -            response["git.repo"] = base.data["repo"]
> -            response["git.base"] = base.data["tag"]
> -
>      def _poll_project(self, po):
>          repo, branch = self._get_project_repo_and_branch(po)
>          cache_repo = self._update_cache_repo(po.name, repo, branch)
> @@ -263,8 +253,22 @@ class ApplierGetView(APILoginRequiredView):
>  
>      def handle(self, request):
>          m = Message.objects.filter(results__name="git", results__status="pending").first()
> -        if m:
> -            return prepare_series(request, m)
> +        if not m:
> +            return None
> +
> +        response = prepare_series(request, m, fields=["project", "message-id", "patches", "properties"])
> +
> +        po = m.project
> +        for prop in ["git.push_to", "git.public_repo", "git.url_template"]:
> +            if po.get_property(prop):
> +                response[prop] = po.get_property(prop)
> +        base = _instance.get_base(m)
> +        if base:
> +            response["git.repo"] = base.data["repo"]
> +            response["git.base"] = base.data["tag"]
> +        response["project.git"] = po.git
> +        response["result_uri"] = reverse_detail(m.git_result, request)
> +        return response
>  
>  class ApplierReportView(APILoginRequiredView):
>      name = "applier-report"
> -- 
> 2.17.1
> 
> 
> _______________________________________________
> Patchew-devel mailing list
> Patchew-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/patchew-devel




More information about the Patchew-devel mailing list