ok

Mini Shell

Direktori : /opt/cloudlinux/venv/lib/python3.11/site-packages/clwpos/cli_versions/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/clwpos/cli_versions/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.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.command(help="Shows info about all Accelerate optimization features for WordPress sites")
    def get(self):
        return self._get()

    @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()

Zerion Mini Shell 1.0