OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
python3
/
dist-packages
/
uaclient
/
cli
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
10/28/2024 08:41:34 AM
rwxr-xr-x
📄
__init__.py
9.16 KB
08/08/2024 08:21:51 PM
rw-r--r--
📁
__pycache__
-
10/28/2024 08:41:34 AM
rwxr-xr-x
📄
api.py
2.37 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
attach.py
5.48 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
auto_attach.py
958 bytes
08/08/2024 08:21:51 PM
rw-r--r--
📄
cli_util.py
5.93 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
collect_logs.py
1.3 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
commands.py
3.68 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
config.py
9.9 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
detach.py
3.38 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
disable.py
10.62 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
enable.py
17.02 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
fix.py
28.7 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
help.py
1.67 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
parser.py
2.64 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
refresh.py
2.42 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
security_status.py
2.79 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
status.py
2.37 KB
08/08/2024 08:21:51 PM
rw-r--r--
📄
system.py
1.05 KB
08/08/2024 08:21:51 PM
rw-r--r--
Editing: detach.py
Close
from uaclient import ( config, daemon, entitlements, event_logger, exceptions, messages, timer, util, ) from uaclient.cli import cli_util from uaclient.cli.commands import ProArgument, ProArgumentGroup, ProCommand from uaclient.cli.disable import perform_disable from uaclient.cli.parser import HelpCategory from uaclient.files import machine_token, state_files from uaclient.timer.update_messaging import update_motd_messages event = event_logger.get_event_logger() @cli_util.verify_json_format_args @cli_util.assert_root @cli_util.assert_attached() @cli_util.assert_lock_file("pro detach") def action_detach(args, *, cfg, **kwargs) -> int: """Perform the detach action for this machine. @return: 0 on success, 1 otherwise """ ret = _detach( cfg, assume_yes=args.assume_yes, json_output=(args.format == "json") ) if ret == 0: daemon.start() timer.stop() event.process_events() return ret def _detach(cfg: config.UAConfig, assume_yes: bool, json_output: bool) -> int: """Detach the machine from the active Ubuntu Pro subscription, :param cfg: a ``config.UAConfig`` instance :param assume_yes: Assume a yes answer to any prompts requested. In this case, it means automatically disable any service during detach. :param json_output: output should be json only @return: 0 on success, 1 otherwise """ to_disable = [] for ent_name in entitlements.entitlements_disable_order(cfg): try: ent = entitlements.entitlement_factory( cfg=cfg, name=ent_name, ) except exceptions.EntitlementNotFoundError: continue # For detach, we should not consider that a service # cannot be disabled because of dependent services, # since we are going to disable all of them anyway ret, _ = ent.can_disable(ignore_dependent_services=True) if ret: to_disable.append(ent) if to_disable: event.info(messages.DETACH_WILL_DISABLE.pluralize(len(to_disable))) for ent in to_disable: event.info(" {}".format(ent.name)) if not util.prompt_for_confirmation(assume_yes=assume_yes): return 1 for ent in to_disable: perform_disable( ent, cfg, json_output=json_output, assume_yes=assume_yes, update_status=False, ) machine_token_file = machine_token.get_machine_token_file(cfg) machine_token_file.delete() state_files.delete_state_files() update_motd_messages(cfg) event.info(messages.DETACH_SUCCESS) return 0 detach_command = ProCommand( "detach", help=messages.CLI_ROOT_DETACH, description=messages.CLI_DETACH_DESC, action=action_detach, help_category=HelpCategory.OTHER, argument_groups=[ ProArgumentGroup( arguments=[ ProArgument( "--assume-yes", help=messages.CLI_ASSUME_YES.format(command="detach"), action="store_true", ), ProArgument( "--format", help=messages.CLI_FORMAT_DESC.format(default="cli"), action="store", choices=["cli", "json"], default="cli", ), ] ) ], )