[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