Esempio n. 1
0
def enable():
    hutil = handler_util.HandlerUtility()
    hutil.do_parse_context('Enable')
    try:
        hutil.exit_if_enabled(
            remove_protected_settings=True)  # If no new seqNum received, exit.

        reset_ssh = None
        remove_user = None
        protect_settings = hutil.get_protected_settings()
        if protect_settings:
            reset_ssh = protect_settings.get('reset_ssh')
            remove_user = protect_settings.get('remove_user')

        if remove_user and _is_sshd_config_modified(protect_settings):
            ext_utils.add_extension_event(
                name=hutil.get_name(),
                op=constants.WALAEventOperation.Enable,
                is_success=False,
                message="(03002)Argument error, conflicting operations")
            raise Exception(
                "Cannot reset sshd_config and remove a user in one operation.")

        _forcibly_reset_chap(hutil)

        if _is_sshd_config_modified(protect_settings):
            _backup_sshd_config(SshdConfigPath)

        if reset_ssh:
            _open_ssh_port()
            hutil.log("Succeeded in check and open ssh port.")
            ext_utils.add_extension_event(name=hutil.get_name(),
                                          op="scenario",
                                          is_success=True,
                                          message="reset-ssh")
            _reset_sshd_config(SshdConfigPath)
            hutil.log("Succeeded in reset sshd_config.")

        if remove_user:
            ext_utils.add_extension_event(name=hutil.get_name(),
                                          op="scenario",
                                          is_success=True,
                                          message="remove-user")
            _remove_user_account(remove_user, hutil)

        _set_user_account_pub_key(protect_settings, hutil)

        if _is_sshd_config_modified(protect_settings):
            MyDistro.restart_ssh_service()

        check_and_repair_disk(hutil)
        hutil.do_exit(0, 'Enable', 'success', '0', 'Enable succeeded.')
    except Exception as e:
        hutil.error(("Failed to enable the extension with error: {0}, "
                     "stack trace: {1}").format(str(e),
                                                traceback.format_exc()))
        hutil.do_exit(1, 'Enable', 'error', '0',
                      "Enable failed: {0}".format(str(e)))
Esempio n. 2
0
def update():
    hutil = handler_util.HandlerUtility()
    hutil.do_parse_context('Update')
    hutil.do_exit(0, 'Update', 'success', '0', 'Update Succeeded')
Esempio n. 3
0
def disable():
    hutil = handler_util.HandlerUtility()
    hutil.do_parse_context('Disable')
    hutil.do_exit(0, 'Disable', 'success', '0', 'Disable Succeeded')
Esempio n. 4
0
def uninstall():
    hutil = handler_util.HandlerUtility()
    hutil.do_parse_context('Uninstall')
    hutil.do_exit(0, 'Uninstall', 'success', '0', 'Uninstall succeeded')