Mercurial > libervia-backend
annotate libervia/cli/cmd_profile.py @ 4140:13dd5660c28f
tests (unit/frontends): tests for webrtc implementation:
rel 426
| author | Goffi <goffi@goffi.org> |
|---|---|
| date | Wed, 01 Nov 2023 14:04:25 +0100 |
| parents | 47401850dec6 |
| children | 0d7bb4df2343 |
| rev | line source |
|---|---|
| 3137 | 1 #!/usr/bin/env python3 |
| 2 | |
| 815 | 3 |
|
4075
47401850dec6
refactoring: rename `libervia.frontends.jp` to `libervia.cli`
Goffi <goffi@goffi.org>
parents:
4074
diff
changeset
|
4 # Libervia CLI |
| 3479 | 5 # Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org) |
| 815 | 6 |
| 7 # This program is free software: you can redistribute it and/or modify | |
| 8 # it under the terms of the GNU Affero General Public License as published by | |
| 9 # the Free Software Foundation, either version 3 of the License, or | |
| 10 # (at your option) any later version. | |
| 11 | |
| 12 # This program is distributed in the hope that it will be useful, | |
| 13 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 15 # GNU Affero General Public License for more details. | |
| 16 | |
| 17 # You should have received a copy of the GNU Affero General Public License | |
| 18 # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 19 | |
| 814 | 20 """This module permits to manage profiles. It can list, create, delete |
| 1199 | 21 and retrieve information about a profile.""" |
| 0 | 22 |
|
4075
47401850dec6
refactoring: rename `libervia.frontends.jp` to `libervia.cli`
Goffi <goffi@goffi.org>
parents:
4074
diff
changeset
|
23 from libervia.cli.constants import Const as C |
|
4071
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
24 from libervia.backend.core.log import getLogger |
|
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
25 from libervia.backend.core.i18n import _ |
|
4075
47401850dec6
refactoring: rename `libervia.frontends.jp` to `libervia.cli`
Goffi <goffi@goffi.org>
parents:
4074
diff
changeset
|
26 from libervia.cli import base |
|
402
f03688bdb858
jp: use with statement to open fifo
Goffi <goffi@goffi.org>
parents:
401
diff
changeset
|
27 |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
28 log = getLogger(__name__) |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
29 |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
30 |
| 817 | 31 __commands__ = ["Profile"] |
| 32 | |
| 33 PROFILE_HELP = _('The name of the profile') | |
| 0 | 34 |
| 35 | |
| 1597 | 36 class ProfileConnect(base.CommandBase): |
| 37 """Dummy command to use profile_session parent, i.e. to be able to connect without doing anything else""" | |
| 38 | |
| 39 def __init__(self, host): | |
| 40 # it's weird to have a command named "connect" with need_connect=False, but it can be handy to be able | |
|
2336
a7438fe4e24d
jp (profile): added disconnect command
Goffi <goffi@goffi.org>
parents:
2221
diff
changeset
|
41 # to launch just the session, so some paradoxes don't hurt |
| 3028 | 42 super(ProfileConnect, self).__init__(host, 'connect', need_connect=False, help=('connect a profile')) |
| 1597 | 43 |
| 44 def add_parser_options(self): | |
| 45 pass | |
| 46 | |
| 3040 | 47 async def start(self): |
| 48 # connection is already managed by profile common commands | |
| 49 # so we just need to check arguments and quit | |
| 50 if not self.args.connect and not self.args.start_session: | |
| 51 self.parser.error(_("You need to use either --connect or --start-session")) | |
| 52 self.host.quit() | |
| 1597 | 53 |
|
2336
a7438fe4e24d
jp (profile): added disconnect command
Goffi <goffi@goffi.org>
parents:
2221
diff
changeset
|
54 class ProfileDisconnect(base.CommandBase): |
|
a7438fe4e24d
jp (profile): added disconnect command
Goffi <goffi@goffi.org>
parents:
2221
diff
changeset
|
55 |
|
a7438fe4e24d
jp (profile): added disconnect command
Goffi <goffi@goffi.org>
parents:
2221
diff
changeset
|
56 def __init__(self, host): |
| 3028 | 57 super(ProfileDisconnect, self).__init__(host, 'disconnect', need_connect=False, help=('disconnect a profile')) |
|
2336
a7438fe4e24d
jp (profile): added disconnect command
Goffi <goffi@goffi.org>
parents:
2221
diff
changeset
|
58 |
|
a7438fe4e24d
jp (profile): added disconnect command
Goffi <goffi@goffi.org>
parents:
2221
diff
changeset
|
59 def add_parser_options(self): |
|
a7438fe4e24d
jp (profile): added disconnect command
Goffi <goffi@goffi.org>
parents:
2221
diff
changeset
|
60 pass |
|
a7438fe4e24d
jp (profile): added disconnect command
Goffi <goffi@goffi.org>
parents:
2221
diff
changeset
|
61 |
| 3040 | 62 async def start(self): |
| 63 try: | |
| 64 await self.host.bridge.disconnect(self.args.profile) | |
| 65 except Exception as e: | |
| 66 self.disp(f"can't disconnect profile: {e}", error=True) | |
| 67 self.host.quit(C.EXIT_BRIDGE_ERRBACK) | |
| 68 else: | |
| 69 self.host.quit() | |
| 70 | |
| 71 | |
| 72 class ProfileCreate(base.CommandBase): | |
| 73 def __init__(self, host): | |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
74 super(ProfileCreate, self).__init__( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
75 host, 'create', use_profile=False, help=('create a new profile')) |
| 3040 | 76 |
| 77 def add_parser_options(self): | |
| 78 self.parser.add_argument('profile', type=str, help=_('the name of the profile')) | |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
79 self.parser.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
80 '-p', '--password', type=str, default='', |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
81 help=_('the password of the profile')) |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
82 self.parser.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
83 '-j', '--jid', type=str, help=_('the jid of the profile')) |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
84 self.parser.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
85 '-x', '--xmpp-password', type=str, |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
86 help=_( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
87 'the password of the XMPP account (use profile password if not specified)' |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
88 ), |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
89 metavar='PASSWORD') |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
90 self.parser.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
91 '-A', '--autoconnect', choices=[C.BOOL_TRUE, C.BOOL_FALSE], nargs='?', |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
92 const=C.BOOL_TRUE, |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
93 help=_('connect this profile automatically when backend starts') |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
94 ) |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
95 self.parser.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
96 '-C', '--component', default='', |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
97 help=_('set to component import name (entry point) if this is a component')) |
| 3040 | 98 |
| 99 async def start(self): | |
| 100 """Create a new profile""" | |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
101 if self.args.profile in await self.host.bridge.profiles_list_get(): |
| 3040 | 102 self.disp(f"Profile {self.args.profile} already exists.", error=True) |
| 103 self.host.quit(C.EXIT_BRIDGE_ERROR) | |
| 104 try: | |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
105 await self.host.bridge.profile_create( |
| 3040 | 106 self.args.profile, self.args.password, self.args.component) |
| 107 except Exception as e: | |
| 108 self.disp(f"can't create profile: {e}", error=True) | |
| 109 self.host.quit(C.EXIT_BRIDGE_ERRBACK) | |
| 110 | |
| 111 try: | |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
112 await self.host.bridge.profile_start_session( |
| 3040 | 113 self.args.password, self.args.profile) |
| 114 except Exception as e: | |
| 115 self.disp(f"can't start profile session: {e}", error=True) | |
| 116 self.host.quit(C.EXIT_BRIDGE_ERRBACK) | |
| 117 | |
| 118 if self.args.jid: | |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
119 await self.host.bridge.param_set( |
| 3040 | 120 "JabberID", self.args.jid, "Connection", profile_key=self.args.profile) |
| 121 xmpp_pwd = self.args.password or self.args.xmpp_password | |
| 122 if xmpp_pwd: | |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
123 await self.host.bridge.param_set( |
| 3040 | 124 "Password", xmpp_pwd, "Connection", profile_key=self.args.profile) |
| 125 | |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
126 if self.args.autoconnect is not None: |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
127 await self.host.bridge.param_set( |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
128 "autoconnect_backend", self.args.autoconnect, "Connection", |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
129 profile_key=self.args.profile) |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
130 |
| 3040 | 131 self.disp(f'profile {self.args.profile} created successfully', 1) |
| 132 self.host.quit() | |
|
2336
a7438fe4e24d
jp (profile): added disconnect command
Goffi <goffi@goffi.org>
parents:
2221
diff
changeset
|
133 |
|
a7438fe4e24d
jp (profile): added disconnect command
Goffi <goffi@goffi.org>
parents:
2221
diff
changeset
|
134 |
| 1596 | 135 class ProfileDefault(base.CommandBase): |
| 136 def __init__(self, host): | |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
137 super(ProfileDefault, self).__init__( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
138 host, 'default', use_profile=False, help=('print default profile')) |
| 1596 | 139 |
| 140 def add_parser_options(self): | |
| 141 pass | |
| 142 | |
| 3040 | 143 async def start(self): |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
144 print(await self.host.bridge.profile_name_get('@DEFAULT@')) |
| 3040 | 145 self.host.quit() |
| 1596 | 146 |
| 147 | |
| 817 | 148 class ProfileDelete(base.CommandBase): |
| 149 def __init__(self, host): | |
| 3028 | 150 super(ProfileDelete, self).__init__(host, 'delete', use_profile=False, help=('delete a profile')) |
| 817 | 151 |
| 152 def add_parser_options(self): | |
| 153 self.parser.add_argument('profile', type=str, help=PROFILE_HELP) | |
| 3028 | 154 self.parser.add_argument('-f', '--force', action='store_true', help=_('delete profile without confirmation')) |
| 0 | 155 |
| 3040 | 156 async def start(self): |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
157 if self.args.profile not in await self.host.bridge.profiles_list_get(): |
| 3040 | 158 log.error(f"Profile {self.args.profile} doesn't exist.") |
| 159 self.host.quit(C.EXIT_NOT_FOUND) | |
|
1861
3b2a236fa743
jp (profile): added confirmation and --force arguement to profile/delete
Goffi <goffi@goffi.org>
parents:
1766
diff
changeset
|
160 if not self.args.force: |
| 3040 | 161 message = f"Are you sure to delete profile [{self.args.profile}] ?" |
| 162 cancel_message = "Profile deletion cancelled" | |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
163 await self.host.confirm_or_quit(message, cancel_message) |
|
1861
3b2a236fa743
jp (profile): added confirmation and --force arguement to profile/delete
Goffi <goffi@goffi.org>
parents:
1766
diff
changeset
|
164 |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
165 await self.host.bridge.profile_delete_async(self.args.profile) |
| 3040 | 166 self.host.quit() |
| 817 | 167 |
| 0 | 168 |
| 817 | 169 class ProfileInfo(base.CommandBase): |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
170 |
| 817 | 171 def __init__(self, host): |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
172 super(ProfileInfo, self).__init__( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
173 host, 'info', need_connect=False, use_output=C.OUTPUT_DICT, |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
174 help=_('get information about a profile')) |
| 3028 | 175 self.to_show = [(_("jid"), "Connection", "JabberID"),] |
|
1402
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
176 |
| 817 | 177 def add_parser_options(self): |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
178 self.parser.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
179 '--show-password', action='store_true', |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
180 help=_('show the XMPP password IN CLEAR TEXT')) |
| 814 | 181 |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
182 async def start(self): |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
183 if self.args.show_password: |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
184 self.to_show.append((_("XMPP password"), "Connection", "Password")) |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
185 self.to_show.append((_("autoconnect (backend)"), "Connection", |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
186 "autoconnect_backend")) |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
187 data = {} |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
188 for label, category, name in self.to_show: |
| 3040 | 189 try: |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
190 value = await self.host.bridge.param_get_a_async( |
| 3040 | 191 name, category, profile_key=self.host.profile) |
| 192 except Exception as e: | |
| 193 self.disp(f"can't get {name}/{category} param: {e}", error=True) | |
| 194 else: | |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
195 data[label] = value |
| 814 | 196 |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
197 await self.output(data) |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
198 self.host.quit() |
| 817 | 199 |
| 200 | |
| 201 class ProfileList(base.CommandBase): | |
| 202 def __init__(self, host): | |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
203 super(ProfileList, self).__init__( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
204 host, 'list', use_profile=False, use_output='list', help=('list profiles')) |
| 657 | 205 |
| 817 | 206 def add_parser_options(self): |
|
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
207 group = self.parser.add_mutually_exclusive_group() |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
208 group.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
209 '-c', '--clients', action='store_true', help=_('get clients profiles only')) |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
210 group.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
211 '-C', '--components', action='store_true', |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
212 help=('get components profiles only')) |
| 817 | 213 |
| 3040 | 214 async def start(self): |
|
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
215 if self.args.clients: |
|
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
216 clients, components = True, False |
|
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
217 elif self.args.components: |
|
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
218 clients, components = False, True |
|
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
219 else: |
|
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
220 clients, components = True, True |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
221 await self.output(await self.host.bridge.profiles_list_get(clients, components)) |
| 817 | 222 self.host.quit() |
| 657 | 223 |
| 817 | 224 |
|
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
225 class ProfileModify(base.CommandBase): |
| 3040 | 226 |
|
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
227 def __init__(self, host): |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
228 super(ProfileModify, self).__init__( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
229 host, 'modify', need_connect=False, help=_('modify an existing profile')) |
|
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
230 |
|
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
231 def add_parser_options(self): |
|
1687
de9cc4d62a4a
jp (profile): fixed profile/modify command:
Goffi <goffi@goffi.org>
parents:
1597
diff
changeset
|
232 profile_pwd_group = self.parser.add_mutually_exclusive_group() |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
233 profile_pwd_group.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
234 '-w', '--password', help=_('change the password of the profile')) |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
235 profile_pwd_group.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
236 '--disable-password', action='store_true', |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
237 help=_('disable profile password (dangerous!)')) |
| 3028 | 238 self.parser.add_argument('-j', '--jid', help=_('the jid of the profile')) |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
239 self.parser.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
240 '-x', '--xmpp-password', help=_('change the password of the XMPP account'), |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
241 metavar='PASSWORD') |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
242 self.parser.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
243 '-D', '--default', action='store_true', help=_('set as default profile')) |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
244 self.parser.add_argument( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
245 '-A', '--autoconnect', choices=[C.BOOL_TRUE, C.BOOL_FALSE], nargs='?', |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
246 const=C.BOOL_TRUE, |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
247 help=_('connect this profile automatically when backend starts') |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
248 ) |
|
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
249 |
| 3040 | 250 async def start(self): |
|
1687
de9cc4d62a4a
jp (profile): fixed profile/modify command:
Goffi <goffi@goffi.org>
parents:
1597
diff
changeset
|
251 if self.args.disable_password: |
|
de9cc4d62a4a
jp (profile): fixed profile/modify command:
Goffi <goffi@goffi.org>
parents:
1597
diff
changeset
|
252 self.args.password = '' |
|
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
253 if self.args.password is not None: |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
254 await self.host.bridge.param_set( |
| 3040 | 255 "Password", self.args.password, "General", profile_key=self.host.profile) |
|
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
256 if self.args.jid is not None: |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
257 await self.host.bridge.param_set( |
| 3040 | 258 "JabberID", self.args.jid, "Connection", profile_key=self.host.profile) |
|
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
259 if self.args.xmpp_password is not None: |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
260 await self.host.bridge.param_set( |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
261 "Password", self.args.xmpp_password, "Connection", |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
262 profile_key=self.host.profile) |
| 1596 | 263 if self.args.default: |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
264 await self.host.bridge.profile_set_default(self.host.profile) |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
265 if self.args.autoconnect is not None: |
|
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
266 await self.host.bridge.param_set( |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
267 "autoconnect_backend", self.args.autoconnect, "Connection", |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
268 profile_key=self.host.profile) |
| 3040 | 269 |
| 270 self.host.quit() | |
|
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
271 |
|
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
272 |
| 817 | 273 class Profile(base.CommandBase): |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
274 subcommands = ( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
275 ProfileConnect, ProfileDisconnect, ProfileCreate, ProfileDefault, ProfileDelete, |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
276 ProfileInfo, ProfileList, ProfileModify) |
| 817 | 277 |
| 278 def __init__(self, host): | |
|
3122
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
279 super(Profile, self).__init__( |
|
4486d72658b9
jp (profile): added --autoconnect argument in `modify` and `create` + use output in `info`
Goffi <goffi@goffi.org>
parents:
3040
diff
changeset
|
280 host, 'profile', use_profile=False, help=_('profile commands')) |
