Mini Shell
# -*- 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.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