changeset 3521:62f490eff51c

jp (pubsub, blog): `rename` commands implementation
author Goffi <goffi@goffi.org>
date Sat, 01 May 2021 18:39:34 +0200
parents 8acaf857cd0a
children 41a6c144dc90
files sat_frontends/jp/cmd_blog.py sat_frontends/jp/cmd_pubsub.py
diffstat 2 files changed, 75 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/sat_frontends/jp/cmd_blog.py	Sat May 01 18:38:58 2021 +0200
+++ b/sat_frontends/jp/cmd_blog.py	Sat May 01 18:39:34 2021 +0200
@@ -637,6 +637,42 @@
         self.host.quit()
 
 
+class Rename(base.CommandBase):
+
+    def __init__(self, host):
+        base.CommandBase.__init__(
+            self,
+            host,
+            "rename",
+            use_pubsub=True,
+            pubsub_flags={C.SINGLE_ITEM},
+            help=_("rename an blog item"),
+        )
+
+    def add_parser_options(self):
+        self.parser.add_argument(
+            "new_id",
+            help=_("new item id to use")
+        )
+
+    async def start(self):
+        try:
+            await self.host.bridge.mbRename(
+                self.args.service,
+                self.args.node,
+                self.args.item,
+                self.args.new_id,
+                self.profile,
+            )
+        except Exception as e:
+            self.disp(
+                f"can't rename item: {e}", error=True
+            )
+            self.host.quit(C.EXIT_BRIDGE_ERRBACK)
+        else:
+            self.disp("Item renamed")
+            self.host.quit(C.EXIT_OK)
+
 class Preview(base.CommandBase, common.BaseEdit):
     # TODO: need to be rewritten with template output
 
@@ -994,7 +1030,7 @@
             await self.set_progress_id(progress_id)
 
 class Blog(base.CommandBase):
-    subcommands = (Set, Get, Edit, Preview, Import)
+    subcommands = (Set, Get, Edit, Rename, Preview, Import)
 
     def __init__(self, host):
         super(Blog, self).__init__(
--- a/sat_frontends/jp/cmd_pubsub.py	Sat May 01 18:38:58 2021 +0200
+++ b/sat_frontends/jp/cmd_pubsub.py	Sat May 01 18:39:34 2021 +0200
@@ -960,6 +960,43 @@
         self.host.quit()
 
 
+class Rename(base.CommandBase):
+
+    def __init__(self, host):
+        base.CommandBase.__init__(
+            self,
+            host,
+            "rename",
+            use_pubsub=True,
+            pubsub_flags={C.NODE, C.SINGLE_ITEM},
+            help=_("rename a pubsub item"),
+        )
+
+    def add_parser_options(self):
+        self.parser.add_argument(
+            "new_id",
+            help=_("new item id to use")
+        )
+
+    async def start(self):
+        try:
+            await self.host.bridge.psItemRename(
+                self.args.service,
+                self.args.node,
+                self.args.item,
+                self.args.new_id,
+                self.profile,
+            )
+        except Exception as e:
+            self.disp(
+                f"can't rename item: {e}", error=True
+            )
+            self.host.quit(C.EXIT_BRIDGE_ERRBACK)
+        else:
+            self.disp("Item renamed")
+            self.host.quit(C.EXIT_OK)
+
+
 class Subscribe(base.CommandBase):
     def __init__(self, host):
         base.CommandBase.__init__(
@@ -1982,6 +2019,7 @@
         Get,
         Delete,
         Edit,
+        Rename,
         Subscribe,
         Unsubscribe,
         Subscriptions,