Mini Shell
"""
Package support for the REST example
"""
import logging
import salt.utils.data
import salt.utils.platform
log = logging.getLogger(__name__)
# Define the module's virtual name
__virtualname__ = "pkg"
def __virtual__():
"""
Only work on systems that are a proxy minion
"""
try:
if (
salt.utils.platform.is_proxy()
and __opts__["proxy"]["proxytype"] == "rest_sample"
):
return __virtualname__
except KeyError:
return (
False,
"The rest_package execution module failed to load. Check the "
"proxy key in pillar.",
)
return (
False,
"The rest_package execution module failed to load: only works on a "
"rest_sample proxy minion.",
)
def list_pkgs(versions_as_list=False, **kwargs):
return __proxy__["rest_sample.package_list"]()
def install(name=None, refresh=False, fromrepo=None, pkgs=None, sources=None, **kwargs):
return __proxy__["rest_sample.package_install"](name, **kwargs)
def remove(name=None, pkgs=None, **kwargs):
return __proxy__["rest_sample.package_remove"](name)
def version(*names, **kwargs):
"""
Returns a string representing the package version or an empty string if not
installed. If more than one package name is specified, a dict of
name/version pairs is returned.
CLI Example:
.. code-block:: bash
salt '*' pkg.version <package name>
salt '*' pkg.version <package1> <package2> <package3> ...
"""
if len(names) == 1:
return str(__proxy__["rest_sample.package_status"](names[0]))
def upgrade(refresh=True, skip_verify=True, **kwargs):
old = __proxy__["rest_sample.package_list"]()
new = __proxy__["rest_sample.uptodate"]()
pkg_installed = __proxy__["rest_sample.upgrade"]()
return salt.utils.data.compare_dicts(old, pkg_installed)
def installed(
name,
version=None,
refresh=False,
fromrepo=None,
skip_verify=False,
pkgs=None,
sources=None,
**kwargs
):
p = __proxy__["rest_sample.package_status"](name)
if version is None:
if "ret" in p:
return str(p["ret"])
else:
return True
else:
if p is not None:
return version == str(p)
Zerion Mini Shell 1.0