/
snap
/
core24
/
1643
/
usr
/
lib
/
python3
/
dist-packages
/
cloudinit
/
/snap/core24/1643/usr/lib/python3/dist-packages/cloudinit
mkdir
upload
Name
Size
Mode
Actions
analyze/
-
0755
rm
cmd/
-
0755
rm
config/
-
0755
rm
distros/
-
0755
rm
filters/
-
0755
rm
handlers/
-
0755
rm
log/
-
0755
rm
mergers/
-
0755
rm
net/
-
0755
rm
reporting/
-
0755
rm
sources/
-
0755
rm
__pycache__/
-
0755
rm
apport.py
8496
0644
edit
dl
rm
atomic_helper.py
2860
0644
edit
dl
rm
cloud.py
3798
0644
edit
dl
rm
dmi.py
8002
0644
edit
dl
rm
event.py
2051
0644
edit
dl
rm
features.py
5761
0644
edit
dl
rm
gpg.py
8186
0644
edit
dl
rm
helpers.py
16547
0644
edit
dl
rm
importer.py
2485
0644
edit
dl
rm
lifecycle.py
7979
0644
edit
dl
rm
netinfo.py
24646
0644
edit
dl
rm
performance.py
3175
0644
edit
dl
rm
persistence.py
2583
0644
edit
dl
rm
registry.py
1022
0644
edit
dl
rm
safeyaml.py
10349
0644
edit
dl
rm
settings.py
2172
0644
edit
dl
rm
signal_handler.py
3027
0644
edit
dl
rm
simpletable.py
1976
0644
edit
dl
rm
socket.py
5991
0644
edit
dl
rm
ssh_util.py
22983
0644
edit
dl
rm
stages.py
42526
0644
edit
dl
rm
subp.py
12658
0644
edit
dl
rm
templater.py
7930
0644
edit
dl
rm
temp_utils.py
3013
0644
edit
dl
rm
type_utils.py
703
0644
edit
dl
rm
url_helper.py
39164
0644
edit
dl
rm
user_data.py
14784
0644
edit
dl
rm
util.py
93272
0644
edit
dl
rm
version.py
564
0644
edit
dl
rm
warnings.py
3853
0644
edit
dl
rm
__init__.py
0
0644
edit
dl
rm
Edit:
/snap/core24/1643/usr/lib/python3/dist-packages/cloudinit/temp_utils.py
(3013B)
# This file is part of cloud-init. See LICENSE file for license information. import contextlib import errno import logging import os import shutil import tempfile from cloudinit import util LOG = logging.getLogger(__name__) _ROOT_TMPDIR = "/run/cloud-init/tmp" _EXE_ROOT_TMPDIR = "/var/tmp/cloud-init" def get_tmp_ancestor(odir=None, needs_exe: bool = False): if odir is not None: return odir if needs_exe: return _EXE_ROOT_TMPDIR if os.getuid() == 0: return _ROOT_TMPDIR return os.environ.get("TMPDIR", "/tmp") def _tempfile_dir_arg(odir=None, needs_exe: bool = False): """Return the proper 'dir' argument for tempfile functions. When root, cloud-init will use /run/cloud-init/tmp to avoid any cleaning that a distro boot might do on /tmp (such as systemd-tmpfiles-clean). If the caller of this function (mkdtemp or mkstemp) was provided with a 'dir' argument, then that is respected. @param odir: original 'dir' arg to 'mkdtemp' or other. @param needs_exe: Boolean specifying whether or not exe permissions are needed for tempdir. This is needed because /run is mounted noexec. """ tdir = get_tmp_ancestor(odir, needs_exe) if not os.path.isdir(tdir): os.makedirs(tdir) os.chmod(tdir, 0o1777) if needs_exe: if util.has_mount_opt(tdir, "noexec"): LOG.warning( "Requested temporal dir with exe permission `%s` is" " mounted as noexec", tdir, ) return tdir def ExtendedTemporaryFile(**kwargs): kwargs["dir"] = _tempfile_dir_arg() fh = tempfile.NamedTemporaryFile(**kwargs) # Replace its unlink with a quiet version # that does not raise errors when the # file to unlink has been unlinked elsewhere.. def _unlink_if_exists(path): try: os.unlink(path) except OSError as e: if e.errno != errno.ENOENT: raise e fh.unlink = _unlink_if_exists # Add a new method that will unlink # right 'now' but still lets the exit # method attempt to remove it (which will # not throw due to our del file being quiet # about files that are not there) def unlink_now(): fh.unlink(fh.name) setattr(fh, "unlink_now", unlink_now) return fh @contextlib.contextmanager def tempdir(rmtree_ignore_errors=False, **kwargs): # This seems like it was only added in python 3.2 # Make it since its useful... # See: http://bugs.python.org/file12970/tempdir.patch tdir = mkdtemp(**kwargs) try: yield tdir finally: shutil.rmtree(tdir, ignore_errors=rmtree_ignore_errors) def mkdtemp(dir=None, needs_exe: bool = False, **kwargs): dir = _tempfile_dir_arg(dir, needs_exe) return tempfile.mkdtemp(dir=dir, **kwargs) def mkstemp(dir=None, needs_exe: bool = False, **kwargs): dir = _tempfile_dir_arg(dir, needs_exe) return tempfile.mkstemp(dir=dir, **kwargs)
Save
cmd:
run