\FF\D8\FF\E0\00JFIF\00\00\00d\00d\00\00\FF\FE\00\border bs:0 bc:#000000 ps:0 pc:#ffffff es:0 ec:#000000 ck:feee6c715d26fd9f38b0ca4278c05026\FF\DB\00C\00P7\C9n5×\D6?\BDê\9Ds\EBp\9F[`8m\B7)o\B5\E8\E6I\99\FE3]]A2\BA\8Cw\D6E\93\\DEv\C8\009\F2\F1NI?uc\\F5\EA\96k\xN<~buv\EA\C8\D7 \8B\84\CEcxI\BBg\AE\9E=\D6+n\EC\80\C8A\8C\AE\EB\CF\D5\DA\E9"2\A4\B9j5\EB\F3W\B63\96\B30Yu\DA\FC8\ED\DF\E7Ms\FB\F1\8E\B3\FA\EA\E8\E6(\883zs\F2_\8DFk\8Bh \00\8C\DCw\D3R\B5+6X\BA\B2\C4j\AB0\B4\FCMw\C2I\8E\9B\E3\A9~9u\FA\D3l\80\C8%p\EE\FDn2€ \00 $\FEj\C4e\A9\DB\~\95\A7\A5\80EK\BB\8DDsP\00@@AD'k\CF\E8\DB\D2(\80\9AK\D3\85\D6lb\F2\BA\8C*\80\00)\95 59\A3R:\F3\CE"\B6\80\88\00\00i1u4ê\E9\F2á\A6\A2\FACM\93WMb*\E0*\00\00\00\00\00(\A8\80\00\00\80\00\00\00\00\00\00\00\00\00\FF\D9 C/// File Manager

File Manager

Path: /opt/cloudlinux/venv/lib64/python3.11/site-packages/clwpos/cli_versions/

Viewing File: user_api.py

# -*- coding: utf-8 -*-

# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT

# keeps different API_VERSIONS of cloudlinux-awp-admin utility

from __future__ import absolute_import

import sys
import argparse

from copy import deepcopy

from clwpos import gettext as _
from clwpos.user.wpos_user import CloudlinuxWposUser, parser
from clwpos.cli_versions.registry import user_cli_version_registry
from clwpos.optimization_features import ALL_OPTIMIZATION_FEATURES, Feature

versioned_parser = deepcopy(parser)


@user_cli_version_registry.register('1')
@user_cli_version_registry.latest()
class CloudlinuxWposUserV1(CloudlinuxWposUser):
    """
    We announced those commands in public doc as api-version=1,
    it means that we make any changes to CLI cautiously:
     - if you are making change which could break backward compatibility (e.g - rename parameter) ->
     you should create new class e.g CloudlinuxWposAdminV2 and override needed methods
    """

    def _parse_args(self, argv):
        return versioned_parser.parse_args(argv)

    @versioned_parser.argument('--domain', help=_('User\'s wordpress domain'), type=str,
                               required=("--wp-path" in sys.argv))
    @versioned_parser.argument('--wp-path', help=_('Path to user\'s wordpress'), type=str, required=False)
    @versioned_parser.command(help=_("Shows info about all Accelerate optimization features for WordPress sites,"
                                     " use '--domain' option to get info for a single domain and "
                                     "'--wp-path' option to get info for a single website"))
    def get(self):
        return self._get()

    @versioned_parser.command(help=_('Disables and uninstalls module for ALL user sites'))
    def disable_all(self):
        return self._disable_all()

    @versioned_parser.argument("--feature", help=_("Optimization feature to disable"), type=Feature,
                     required=True,
                     choices=[feature.to_interface_name() for feature in ALL_OPTIMIZATION_FEATURES])
    @versioned_parser.argument('--wp-path', help=_('Path to user\'s wordpress'), type=str, default='')
    @versioned_parser.argument('--domain', help=_('User\'s wordpress domain'), type=str, required=True)
    @versioned_parser.command(help=_('Disables and uninstalls module on wordpress'))
    def disable(self):
        return self._disable()

    @versioned_parser.argument(
        "--ignore-errors",
        help=_("ignore ALL site check results after plugin install and enable"),
        action="store_true",
    )
    @versioned_parser.argument(
        '--skip-dns-check',
        help=_('ignores ONLY website resolving check after plugin install and enable'),
        action='store_true'
    )
    @versioned_parser.argument("--wp-path", help=_("Path to user's wordpress"), type=str, default="")
    @versioned_parser.argument("--domain", help=_("User's wordpress domain"), type=str, required=True)
    @versioned_parser.argument("--feature", help=_("Optimization feature to enable"), type=Feature, required=True,
                     choices=[feature.to_interface_name() for feature in ALL_OPTIMIZATION_FEATURES])
    @versioned_parser.argument("--approve-license-terms", help=argparse.SUPPRESS, action='store_true', default=False)
    @versioned_parser.command(help=_("Installs and enables module on wordpress"))
    def enable(self):
        return self._enable()

    @versioned_parser.mutual_exclusive_group(
        [
            (["--disable"],
             {"help": _("Hide Object Cache PRO banners"), "action": "store_true",
              "default": False}),
            (["--enable"],
             {"help": _("Show Object Cache PRO banners"), "action": "store_true",
              "default": False}),
        ],
        required=True,
    )
    @versioned_parser.argument("--all", help=_("For all websites"), action='store_true',
                     required=("--wp-path" not in sys.argv
                               and '--domain' not in sys.argv))
    @versioned_parser.argument('--wp-path', help=_('Path to WordPress'), type=str, default='',
                     required=("--all" not in sys.argv))
    @versioned_parser.argument('--domain', help=_('WordPress domain'), type=str,
                     required=("--all" not in sys.argv))
    @versioned_parser.command(help=_("Manage visibility of Object Cache PRO banners in plugin for websites"))
    def object_cache_banner(self):
        return self._object_cache_banner()

    @versioned_parser.mutual_exclusive_group(
        [
            (["--enable"], {"help": _("Enable MAx Cache"), "action": "store_true"}),
            (["--disable"], {"help": _("Disable MAx Cache"), "action": "store_true"}),
        ],
        required=True,
    )
    @versioned_parser.argument("--domain", help=_("Process only specified domain"), type=str, required=False)
    @versioned_parser.command(help=_("Manage MAx Cache state for user websites"))
    def maxcache(self):
        return self._maxcache()