[Patchew-devel] [PATCH 2/2] Make Patchew cli use rest api

Shubham Jain shubhamjain7495 at gmail.com
Thu Jun 28 19:07:06 UTC 2018


Make project functions use the rest_api_do instead of api_do
---
 patchew-cli | 35 ++++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 15 deletions(-)

diff --git a/patchew-cli b/patchew-cli
index c53526b..cde2386 100755
--- a/patchew-cli
+++ b/patchew-cli
@@ -256,11 +256,11 @@ class ProjectCommand(SubCommand):
         parser.add_argument("--verbose", "-v", action="store_true",
                             help="Show details about projects")
         args = parser.parse_args(argv)
-        r = self.api_do("get-projects")
+        r = self.rest_api_do(url_cmd="projects", request_method='get')
         if args.raw:
             print(json.dumps(r, indent=2, separators=",:"))
             return 0
-        for p in r:
+        for p in r['results']:
             print(p["name"])
             if args.verbose:
                 for k, v in p.items():
@@ -274,8 +274,8 @@ class ProjectCommand(SubCommand):
         parser.add_argument("name", nargs="+",
                             help="The name of project to show info")
         args = parser.parse_args(argv)
-        r = self.api_do("get-projects")
-        for p in r:
+        r = self.rest_api_do(url_cmd="projects", request_method='get')
+        for p in r['results']:
             if not p["name"] in args.name:
                 continue
             if len(args.name) > 1:
@@ -298,12 +298,15 @@ class ProjectCommand(SubCommand):
         parser.add_argument("--desc", "-d", default="",
                             help="Project short discription")
         args = parser.parse_args(argv)
-        self.api_do("add-project",
-                    name=args.name,
-                    mailing_list=args.mailing_list,
-                    url=args.url,
-                    git=args.git,
-                    description=args.desc)
+        data = {'name':args.name,
+                'mailing_list':args.mailing_list,
+                'url':args.url,
+                'git':args.git,
+                'description':args.desc}
+        self.rest_api_do(url_cmd="projects",
+                         request_method='post',
+                         content_type='application/json',
+                         data=json.dumps(data))
 
     def update_one_project(self, wd, project):
         logging.info("Updating project '%s'", project["name"])
@@ -355,16 +358,17 @@ class ProjectCommand(SubCommand):
             except Exception as e:
                 logging.warn("Failed to push the new head to patchew mirror: %s",
                              str(e))
-        self.api_do("update-project-head", project=project["name"],
-                                           old_head=old_head,
-                                           new_head=new_head,
-                                           message_ids=msgids)
+        url = project['resource_uri'] + "/update_project_head/"
+        self.rest_api_do(url, old_head=old_head,
+                         new_head=new_head,
+                         message_ids=msgids)
 
     def update_project(self, argv):
         parser = argparse.ArgumentParser()
         parser.add_argument("--name", "-n", help="Name of the project")
         args = parser.parse_args(argv)
-        projects = self.api_do("get-projects", name=args.name)
+        projects = self.rest_api_do("projects")
+        projects = [p for p in projects['results'] if p['name'] == args.name]
         wd = tempfile.mkdtemp()
         logging.debug("TMPDIR: %s", wd)
         try:
@@ -415,6 +419,7 @@ class ProjectCommand(SubCommand):
                 return self.update_project(argv[1:])
         return self.list_projects(argv)
 
+
 class SearchCommand(SubCommand):
     name = "search"
 
-- 
2.15.1 (Apple Git-101)




More information about the Patchew-devel mailing list