003 File Manager
Current Path:
/usr/local/lib/python3.8/site-packages/salt/states
usr
/
local
/
lib
/
python3.8
/
site-packages
/
salt
/
states
/
π
..
π
__init__.py
(25 B)
π
__pycache__
π
acme.py
(5.08 KB)
π
alias.py
(2.49 KB)
π
alternatives.py
(6.75 KB)
π
ansiblegate.py
(7.61 KB)
π
apache.py
(3.95 KB)
π
apache_conf.py
(2.72 KB)
π
apache_module.py
(2.73 KB)
π
apache_site.py
(2.66 KB)
π
aptpkg.py
(1.42 KB)
π
archive.py
(67.76 KB)
π
artifactory.py
(6.84 KB)
π
at.py
(7.54 KB)
π
augeas.py
(10.57 KB)
π
aws_sqs.py
(2.59 KB)
π
azurearm_compute.py
(10.86 KB)
π
azurearm_dns.py
(25.09 KB)
π
azurearm_network.py
(87.86 KB)
π
azurearm_resource.py
(27.22 KB)
π
beacon.py
(7.58 KB)
π
bigip.py
(96.63 KB)
π
blockdev.py
(5.13 KB)
π
boto3_elasticache.py
(48.01 KB)
π
boto3_elasticsearch.py
(32.6 KB)
π
boto3_route53.py
(37.54 KB)
π
boto3_sns.py
(12.69 KB)
π
boto_apigateway.py
(82.78 KB)
π
boto_asg.py
(31.93 KB)
π
boto_cfn.py
(11.53 KB)
π
boto_cloudfront.py
(6.01 KB)
π
boto_cloudtrail.py
(13.18 KB)
π
boto_cloudwatch_alarm.py
(6.4 KB)
π
boto_cloudwatch_event.py
(12.33 KB)
π
boto_cognitoidentity.py
(13.69 KB)
π
boto_datapipeline.py
(18.5 KB)
π
boto_dynamodb.py
(29.32 KB)
π
boto_ec2.py
(71.98 KB)
π
boto_elasticache.py
(16.75 KB)
π
boto_elasticsearch_domain.py
(12.27 KB)
π
boto_elb.py
(55.1 KB)
π
boto_elbv2.py
(12.19 KB)
π
boto_iam.py
(69.16 KB)
π
boto_iam_role.py
(27.12 KB)
π
boto_iot.py
(25.33 KB)
π
boto_kinesis.py
(16.69 KB)
π
boto_kms.py
(12.11 KB)
π
boto_lambda.py
(35.52 KB)
π
boto_lc.py
(11.04 KB)
π
boto_rds.py
(26 KB)
π
boto_route53.py
(19.38 KB)
π
boto_s3.py
(9.32 KB)
π
boto_s3_bucket.py
(24.67 KB)
π
boto_secgroup.py
(32.62 KB)
π
boto_sns.py
(8.92 KB)
π
boto_sqs.py
(7.97 KB)
π
boto_vpc.py
(61.77 KB)
π
bower.py
(8.26 KB)
π
btrfs.py
(10.31 KB)
π
cabal.py
(5.73 KB)
π
ceph.py
(1.9 KB)
π
chef.py
(3.68 KB)
π
chocolatey.py
(17.33 KB)
π
chronos_job.py
(4.6 KB)
π
cimc.py
(14.32 KB)
π
cisconso.py
(3.14 KB)
π
cloud.py
(14.4 KB)
π
cmd.py
(41.24 KB)
π
composer.py
(8.38 KB)
π
cron.py
(23.39 KB)
π
cryptdev.py
(6.17 KB)
π
csf.py
(9.98 KB)
π
cyg.py
(7.05 KB)
π
ddns.py
(4.2 KB)
π
debconfmod.py
(6.33 KB)
π
dellchassis.py
(24.49 KB)
π
disk.py
(6.49 KB)
π
docker_container.py
(85.27 KB)
π
docker_image.py
(16.38 KB)
π
docker_network.py
(36.34 KB)
π
docker_volume.py
(6.72 KB)
π
drac.py
(4.17 KB)
π
dvs.py
(26.29 KB)
π
elasticsearch.py
(20.38 KB)
π
elasticsearch_index.py
(3.25 KB)
π
elasticsearch_index_template.py
(3.67 KB)
π
environ.py
(5.81 KB)
π
eselect.py
(2.27 KB)
π
esxcluster.py
(21.16 KB)
π
esxdatacenter.py
(3.24 KB)
π
esxi.py
(61.77 KB)
π
esxvm.py
(18.86 KB)
π
etcd_mod.py
(8.36 KB)
π
ethtool.py
(7.84 KB)
π
event.py
(2.48 KB)
π
file.py
(299.79 KB)
π
firewall.py
(1.33 KB)
π
firewalld.py
(26.08 KB)
π
gem.py
(7.13 KB)
π
git.py
(124.23 KB)
π
github.py
(27.25 KB)
π
glance_image.py
(2.26 KB)
π
glassfish.py
(21.47 KB)
π
glusterfs.py
(12.12 KB)
π
gnomedesktop.py
(7.47 KB)
π
gpg.py
(5.28 KB)
π
grafana.py
(12.11 KB)
π
grafana4_dashboard.py
(17.31 KB)
π
grafana4_datasource.py
(6.15 KB)
π
grafana4_org.py
(7.73 KB)
π
grafana4_user.py
(5.52 KB)
π
grafana_dashboard.py
(17.74 KB)
π
grafana_datasource.py
(5.31 KB)
π
grains.py
(15.57 KB)
π
group.py
(9.57 KB)
π
heat.py
(9.69 KB)
π
helm.py
(10.39 KB)
π
hg.py
(6.33 KB)
π
highstate_doc.py
(1.41 KB)
π
host.py
(8.64 KB)
π
http.py
(7.43 KB)
π
icinga2.py
(9.07 KB)
π
idem.py
(3.91 KB)
π
ifttt.py
(2.12 KB)
π
incron.py
(5.71 KB)
π
influxdb08_database.py
(2.85 KB)
π
influxdb08_user.py
(3.39 KB)
π
influxdb_continuous_query.py
(2.81 KB)
π
influxdb_database.py
(2.11 KB)
π
influxdb_retention_policy.py
(4.82 KB)
π
influxdb_user.py
(4.84 KB)
π
infoblox_a.py
(4.24 KB)
π
infoblox_cname.py
(4.19 KB)
π
infoblox_host_record.py
(6.59 KB)
π
infoblox_range.py
(6.85 KB)
π
ini_manage.py
(12.67 KB)
π
ipmi.py
(8.39 KB)
π
ipset.py
(9.66 KB)
π
iptables.py
(25.96 KB)
π
jboss7.py
(23.95 KB)
π
jenkins.py
(3.36 KB)
π
junos.py
(17.78 KB)
π
kapacitor.py
(6.46 KB)
π
kernelpkg.py
(6.42 KB)
π
keyboard.py
(2.01 KB)
π
keystone.py
(27.12 KB)
π
keystone_domain.py
(2.81 KB)
π
keystone_endpoint.py
(4.69 KB)
π
keystone_group.py
(3.25 KB)
π
keystone_project.py
(3.36 KB)
π
keystone_role.py
(2.33 KB)
π
keystone_role_grant.py
(4.08 KB)
π
keystone_service.py
(2.89 KB)
π
keystone_user.py
(3.47 KB)
π
keystore.py
(5.29 KB)
π
kmod.py
(8.38 KB)
π
kubernetes.py
(24.87 KB)
π
layman.py
(2.44 KB)
π
ldap.py
(19.78 KB)
π
libcloud_dns.py
(5.7 KB)
π
libcloud_loadbalancer.py
(5.66 KB)
π
libcloud_storage.py
(5.13 KB)
π
linux_acl.py
(24.43 KB)
π
locale.py
(2.52 KB)
π
logadm.py
(4.73 KB)
π
logrotate.py
(3.86 KB)
π
loop.py
(7.74 KB)
π
lvm.py
(13.33 KB)
π
lvs_server.py
(6.28 KB)
π
lvs_service.py
(4.38 KB)
π
lxc.py
(22.17 KB)
π
lxd.py
(7.88 KB)
π
lxd_container.py
(22.25 KB)
π
lxd_image.py
(10.59 KB)
π
lxd_profile.py
(7.11 KB)
π
mac_assistive.py
(1.59 KB)
π
mac_keychain.py
(5.59 KB)
π
mac_xattr.py
(3.15 KB)
π
macdefaults.py
(2.65 KB)
π
macpackage.py
(6.76 KB)
π
makeconf.py
(6.87 KB)
π
marathon_app.py
(4.45 KB)
π
mdadm_raid.py
(6.41 KB)
π
memcached.py
(3.95 KB)
π
modjk.py
(2.84 KB)
π
modjk_worker.py
(6.49 KB)
π
module.py
(17.99 KB)
π
mongodb_database.py
(1.65 KB)
π
mongodb_user.py
(6.26 KB)
π
monit.py
(2.68 KB)
π
mount.py
(49.55 KB)
π
mssql_database.py
(3 KB)
π
mssql_login.py
(3.64 KB)
π
mssql_role.py
(2.37 KB)
π
mssql_user.py
(3.51 KB)
π
msteams.py
(2.53 KB)
π
mysql_database.py
(6.05 KB)
π
mysql_grants.py
(8.49 KB)
π
mysql_query.py
(13.07 KB)
π
mysql_user.py
(9.51 KB)
π
net_napalm_yang.py
(9.15 KB)
π
netacl.py
(31.92 KB)
π
netconfig.py
(33.42 KB)
π
netntp.py
(12.48 KB)
π
netsnmp.py
(11.33 KB)
π
netusers.py
(16.1 KB)
π
network.py
(23.7 KB)
π
neutron_network.py
(3.96 KB)
π
neutron_secgroup.py
(4 KB)
π
neutron_secgroup_rule.py
(4.75 KB)
π
neutron_subnet.py
(4.29 KB)
π
nexus.py
(4.97 KB)
π
nfs_export.py
(4.92 KB)
π
nftables.py
(19.5 KB)
π
npm.py
(11.21 KB)
π
ntp.py
(2.12 KB)
π
nxos.py
(10.67 KB)
π
nxos_upgrade.py
(3.5 KB)
π
openstack_config.py
(3.26 KB)
π
openvswitch_bridge.py
(3.13 KB)
π
openvswitch_port.py
(17.25 KB)
π
opsgenie.py
(4.07 KB)
π
pagerduty.py
(1.89 KB)
π
pagerduty_escalation_policy.py
(5.42 KB)
π
pagerduty_schedule.py
(6.09 KB)
π
pagerduty_service.py
(3.93 KB)
π
pagerduty_user.py
(1.18 KB)
π
panos.py
(48.13 KB)
π
pbm.py
(20.46 KB)
π
pcs.py
(36.46 KB)
π
pdbedit.py
(3.48 KB)
π
pecl.py
(3.65 KB)
π
pip_state.py
(37.55 KB)
π
pkg.py
(127.05 KB)
π
pkgbuild.py
(11.37 KB)
π
pkgng.py
(685 B)
π
pkgrepo.py
(23.59 KB)
π
portage_config.py
(5.01 KB)
π
ports.py
(5.65 KB)
π
postgres_cluster.py
(4.19 KB)
π
postgres_database.py
(6.08 KB)
π
postgres_extension.py
(5.68 KB)
π
postgres_group.py
(8.52 KB)
π
postgres_initdb.py
(2.84 KB)
π
postgres_language.py
(3.94 KB)
π
postgres_privileges.py
(7.86 KB)
π
postgres_schema.py
(4.34 KB)
π
postgres_tablespace.py
(6.62 KB)
π
postgres_user.py
(9.49 KB)
π
powerpath.py
(2.34 KB)
π
probes.py
(15.06 KB)
π
process.py
(1.32 KB)
π
proxy.py
(4.94 KB)
π
pushover.py
(3.13 KB)
π
pyenv.py
(6.07 KB)
π
pyrax_queues.py
(2.97 KB)
π
quota.py
(1.4 KB)
π
rabbitmq_cluster.py
(1.84 KB)
π
rabbitmq_plugin.py
(2.77 KB)
π
rabbitmq_policy.py
(4.58 KB)
π
rabbitmq_upstream.py
(7.9 KB)
π
rabbitmq_user.py
(8.89 KB)
π
rabbitmq_vhost.py
(3.04 KB)
π
rbac_solaris.py
(6.67 KB)
π
rbenv.py
(7.36 KB)
π
rdp.py
(1.28 KB)
π
redismod.py
(4.76 KB)
π
reg.py
(19.22 KB)
π
rsync.py
(4.45 KB)
π
rvm.py
(6.56 KB)
π
salt_proxy.py
(1.34 KB)
π
saltmod.py
(30.88 KB)
π
saltutil.py
(8.91 KB)
π
schedule.py
(11.89 KB)
π
selinux.py
(18.61 KB)
π
serverdensity_device.py
(6.41 KB)
π
service.py
(37.06 KB)
π
slack.py
(4.98 KB)
π
smartos.py
(44.89 KB)
π
smtp.py
(2.3 KB)
π
snapper.py
(7.24 KB)
π
solrcloud.py
(4.48 KB)
π
splunk.py
(4.32 KB)
π
splunk_search.py
(3.17 KB)
π
sqlite3.py
(14.7 KB)
π
ssh_auth.py
(19.1 KB)
π
ssh_known_hosts.py
(7.87 KB)
π
stateconf.py
(494 B)
π
status.py
(2.21 KB)
π
statuspage.py
(17.29 KB)
π
supervisord.py
(10.48 KB)
π
svn.py
(8.14 KB)
π
sysctl.py
(3.82 KB)
π
syslog_ng.py
(2.97 KB)
π
sysrc.py
(2.82 KB)
π
telemetry_alert.py
(7.04 KB)
π
test.py
(13.09 KB)
π
testinframod.py
(1.35 KB)
π
timezone.py
(3.42 KB)
π
tls.py
(1.81 KB)
π
tomcat.py
(9.72 KB)
π
trafficserver.py
(8.82 KB)
π
tuned.py
(3.32 KB)
π
uptime.py
(1.87 KB)
π
user.py
(35.43 KB)
π
vagrant.py
(11.4 KB)
π
vault.py
(3.28 KB)
π
vbox_guest.py
(4.05 KB)
π
victorops.py
(3.32 KB)
π
virt.py
(80.06 KB)
π
virtualenv_mod.py
(11.21 KB)
π
webutil.py
(3.78 KB)
π
win_certutil.py
(2.88 KB)
π
win_dacl.py
(7.96 KB)
π
win_dism.py
(13.02 KB)
π
win_dns_client.py
(8.32 KB)
π
win_firewall.py
(6.87 KB)
π
win_iis.py
(31.56 KB)
π
win_lgpo.py
(25.41 KB)
π
win_license.py
(1.6 KB)
π
win_network.py
(14.18 KB)
π
win_path.py
(6.39 KB)
π
win_pki.py
(5.56 KB)
π
win_powercfg.py
(3.79 KB)
π
win_servermanager.py
(10.4 KB)
π
win_smtp_server.py
(10.01 KB)
π
win_snmp.py
(6.64 KB)
π
win_system.py
(13.78 KB)
π
win_wua.py
(14.47 KB)
π
win_wusa.py
(3.53 KB)
π
winrepo.py
(2.74 KB)
π
wordpress.py
(4.82 KB)
π
x509.py
(26.98 KB)
π
xml.py
(1.75 KB)
π
xmpp.py
(2.61 KB)
π
zabbix_action.py
(9.35 KB)
π
zabbix_host.py
(27.25 KB)
π
zabbix_hostgroup.py
(5.64 KB)
π
zabbix_mediatype.py
(16.89 KB)
π
zabbix_template.py
(35.14 KB)
π
zabbix_user.py
(15.76 KB)
π
zabbix_usergroup.py
(9.64 KB)
π
zabbix_usermacro.py
(9.69 KB)
π
zabbix_valuemap.py
(8.11 KB)
π
zcbuildout.py
(5.16 KB)
π
zenoss.py
(2.89 KB)
π
zfs.py
(34.27 KB)
π
zk_concurrency.py
(5.81 KB)
π
zone.py
(46.49 KB)
π
zookeeper.py
(11.53 KB)
π
zpool.py
(13.08 KB)
Editing: lxd_image.py
""" Manage LXD images. .. versionadded:: 2019.2.0 .. link: https://github.com/lxc/pylxd/blob/master/doc/source/installation.rst .. note: - :role:`pylxd <link>` version 2 is required to let this work, currently only available via pip. To install on Ubuntu: $ apt-get install libssl-dev python-pip $ pip install -U pylxd - you need lxd installed on the minion for the init() and version() methods. - for the config_get() and config_get() methods you need to have lxd-client installed. :maintainer: RenΓ© Jochum <rene@jochums.at> :maturity: new :depends: python-pylxd :platform: Linux """ from salt.exceptions import CommandExecutionError, SaltInvocationError __docformat__ = "restructuredtext en" __virtualname__ = "lxd_image" def __virtual__(): """ Only load if the lxd module is available in __salt__ """ if "lxd.version" in __salt__: return __virtualname__ return (False, "lxd module could not be loaded") def present( name, source, aliases=None, public=None, auto_update=None, remote_addr=None, cert=None, key=None, verify_cert=True, ): """ Ensure an image exists, copy it else from source name : An alias of the image, this is used to check if the image exists and it will be added as alias to the image on copy/create. source : Source dict. For an LXD to LXD copy: .. code-block:: yaml source: type: lxd name: ubuntu/xenial/amd64 # This can also be a fingerprint. remote_addr: https://images.linuxcontainers.org:8443 cert: ~/.config/lxd/client.crt key: ~/.config/lxd/client.key verify_cert: False .. attention: For this kind of remote you also need to provide: - a https:// remote_addr - a cert and key - verify_cert From file: .. code-block:: yaml source: type: file filename: salt://lxd/files/busybox.tar.xz saltenv: base From simplestreams: .. code-block:: yaml source: type: simplestreams server: https://cloud-images.ubuntu.com/releases name: xenial/amd64 From an URL: .. code-block:: yaml source: type: url url: https://dl.stgraber.org/lxd aliases : List of aliases to append, can be empty. public : Make this image public available on this instance? None on source_type LXD means copy source None on source_type file means False auto_update : Try to auto-update from the original source? None on source_type LXD means copy source source_type file does not have auto-update. remote_addr : An URL to a remote Server, you also have to give cert and key if you provide remote_addr! Examples: https://myserver.lan:8443 /var/lib/mysocket.sock cert : PEM Formatted SSL Zertifikate. Examples: ~/.config/lxc/client.crt key : PEM Formatted SSL Key. Examples: ~/.config/lxc/client.key verify_cert : True Wherever to verify the cert, this is by default True but in the most cases you want to set it off as LXD normally uses self-signed certificates. """ if aliases is None: aliases = [] # Create a copy of aliases, since we're modifying it here aliases = aliases[:] ret = { "name": name, "source": source, "aliases": aliases, "public": public, "auto_update": auto_update, "remote_addr": remote_addr, "cert": cert, "key": key, "verify_cert": verify_cert, "changes": {}, } image = None try: image = __salt__["lxd.image_get_by_alias"]( name, remote_addr, cert, key, verify_cert, _raw=True ) except CommandExecutionError as e: return _error(ret, str(e)) except SaltInvocationError as e: # Image not found pass if image is None: if __opts__["test"]: # Test is on, just return that we would create the image msg = 'Would create the image "{}"'.format(name) ret["changes"] = {"created": msg} return _unchanged(ret, msg) try: if source["type"] == "lxd": image = __salt__["lxd.image_copy_lxd"]( source["name"], src_remote_addr=source["remote_addr"], src_cert=source["cert"], src_key=source["key"], src_verify_cert=source.get("verify_cert", True), remote_addr=remote_addr, cert=cert, key=key, verify_cert=verify_cert, aliases=aliases, public=public, auto_update=auto_update, _raw=True, ) if source["type"] == "file": if "saltenv" not in source: source["saltenv"] = __env__ image = __salt__["lxd.image_from_file"]( source["filename"], remote_addr=remote_addr, cert=cert, key=key, verify_cert=verify_cert, aliases=aliases, public=False if public is None else public, saltenv=source["saltenv"], _raw=True, ) if source["type"] == "simplestreams": image = __salt__["lxd.image_from_simplestreams"]( source["server"], source["name"], remote_addr=remote_addr, cert=cert, key=key, verify_cert=verify_cert, aliases=aliases, public=False if public is None else public, auto_update=False if auto_update is None else auto_update, _raw=True, ) if source["type"] == "url": image = __salt__["lxd.image_from_url"]( source["url"], remote_addr=remote_addr, cert=cert, key=key, verify_cert=verify_cert, aliases=aliases, public=False if public is None else public, auto_update=False if auto_update is None else auto_update, _raw=True, ) except CommandExecutionError as e: return _error(ret, str(e)) # Sync aliases if name not in aliases: aliases.append(name) old_aliases = {str(a["name"]) for a in image.aliases} new_aliases = set(map(str, aliases)) alias_changes = [] # Removed aliases for k in old_aliases.difference(new_aliases): if not __opts__["test"]: __salt__["lxd.image_alias_delete"](image, k) alias_changes.append('Removed alias "{}"'.format(k)) else: alias_changes.append('Would remove alias "{}"'.format(k)) # New aliases for k in new_aliases.difference(old_aliases): if not __opts__["test"]: __salt__["lxd.image_alias_add"](image, k, "") alias_changes.append('Added alias "{}"'.format(k)) else: alias_changes.append('Would add alias "{}"'.format(k)) if alias_changes: ret["changes"]["aliases"] = alias_changes # Set public if public is not None and image.public != public: if not __opts__["test"]: ret["changes"]["public"] = "Setting the image public to {!s}".format(public) image.public = public __salt__["lxd.pylxd_save_object"](image) else: ret["changes"]["public"] = "Would set public to {!s}".format(public) if __opts__["test"] and ret["changes"]: return _unchanged(ret, "Would do {} changes".format(len(ret["changes"].keys()))) return _success(ret, "{} changes".format(len(ret["changes"].keys()))) def absent(name, remote_addr=None, cert=None, key=None, verify_cert=True): """ name : An alias or fingerprint of the image to check and delete. remote_addr : An URL to a remote Server, you also have to give cert and key if you provide remote_addr! Examples: https://myserver.lan:8443 /var/lib/mysocket.sock cert : PEM Formatted SSL Zertifikate. Examples: ~/.config/lxc/client.crt key : PEM Formatted SSL Key. Examples: ~/.config/lxc/client.key verify_cert : True Wherever to verify the cert, this is by default True but in the most cases you want to set it off as LXD normally uses self-signed certificates. """ ret = { "name": name, "remote_addr": remote_addr, "cert": cert, "key": key, "verify_cert": verify_cert, "changes": {}, } image = None try: image = __salt__["lxd.image_get_by_alias"]( name, remote_addr, cert, key, verify_cert, _raw=True ) except CommandExecutionError as e: return _error(ret, str(e)) except SaltInvocationError as e: try: image = __salt__["lxd.image_get"]( name, remote_addr, cert, key, verify_cert, _raw=True ) except CommandExecutionError as e: return _error(ret, str(e)) except SaltInvocationError as e: return _success(ret, 'Image "{}" not found.'.format(name)) if __opts__["test"]: ret["changes"] = {"removed": 'Image "{}" would get deleted.'.format(name)} return _success(ret, ret["changes"]["removed"]) __salt__["lxd.image_delete"](image) ret["changes"] = {"removed": 'Image "{}" has been deleted.'.format(name)} return _success(ret, ret["changes"]["removed"]) def _success(ret, success_msg): ret["result"] = True ret["comment"] = success_msg if "changes" not in ret: ret["changes"] = {} return ret def _unchanged(ret, msg): ret["result"] = None ret["comment"] = msg if "changes" not in ret: ret["changes"] = {} return ret def _error(ret, err_msg): ret["result"] = False ret["comment"] = err_msg if "changes" not in ret: ret["changes"] = {} return ret
Upload File
Create Folder