PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB` REDROOM
PHP 5.6.40
Preview: atomic_helper.py Size: 2.45 KB
//lib/python3.6/site-packages/cloudinit/atomic_helper.py

# This file is part of cloud-init. See LICENSE file for license information.

import json
import logging
import os
import stat
import tempfile
from base64 import b64decode, b64encode

_DEF_PERMS = 0o644
LOG = logging.getLogger(__name__)


def b64d(source):
    # Base64 decode some data, accepting bytes or unicode/str, and returning
    # str/unicode if the result is utf-8 compatible, otherwise returning bytes.
    decoded = b64decode(source)
    try:
        return decoded.decode("utf-8")
    except UnicodeDecodeError:
        return decoded


def b64e(source):
    # Base64 encode some data, accepting bytes or unicode/str, and returning
    # str/unicode if the result is utf-8 compatible, otherwise returning bytes.
    if not isinstance(source, bytes):
        source = source.encode("utf-8")
    return b64encode(source).decode("utf-8")


def write_file(
    filename, content, mode=_DEF_PERMS, omode="wb", preserve_mode=False
):
    # open filename in mode 'omode', write content, set permissions to 'mode'

    if preserve_mode:
        try:
            file_stat = os.stat(filename)
            mode = stat.S_IMODE(file_stat.st_mode)
        except OSError:
            pass

    tf = None
    try:
        tf = tempfile.NamedTemporaryFile(
            dir=os.path.dirname(filename), delete=False, mode=omode
        )
        LOG.debug(
            "Atomically writing to file %s (via temporary file %s) - %s: [%o]"
            " %d bytes/chars",
            filename,
            tf.name,
            omode,
            mode,
            len(content),
        )
        tf.write(content)
        tf.close()
        os.chmod(tf.name, mode)
        os.rename(tf.name, filename)
    except Exception as e:
        if tf is not None:
            os.unlink(tf.name)
        raise e


def json_serialize_default(_obj):
    """Handler for types which aren't json serializable."""
    try:
        return "ci-b64:{0}".format(b64e(_obj))
    except AttributeError:
        return "Warning: redacted unserializable type {0}".format(type(_obj))


def json_dumps(data):
    """Return data in nicely formatted json."""
    return json.dumps(
        data,
        indent=1,
        sort_keys=True,
        separators=(",", ": "),
        default=json_serialize_default,
    )


def write_json(filename, data, mode=_DEF_PERMS):
    # dump json representation of data to file filename.
    return write_file(
        filename,
        json_dumps(data) + "\n",
        omode="w",
        mode=mode,
    )

Directory Contents

Dirs: 11 × Files: 29

Name Size Perms Modified Actions
analyze DIR
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
cmd DIR
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
config DIR
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
distros DIR
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
filters DIR
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
handlers DIR
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
mergers DIR
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
net DIR
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
reporting DIR
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
sources DIR
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
7.05 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
2.45 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
3.22 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
6.77 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
2.00 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
3.38 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
4.28 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
16.41 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
2.43 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
5.47 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
22.97 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
2.52 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
1022 B lrw-r--r-- 2023-12-04 11:47:40
Edit Download
10.28 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
2.02 KB lrw-r--r-- 2026-01-23 08:56:46
Edit Download
1.74 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
1.93 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
22.28 KB lrw-r--r-- 2026-01-23 08:56:47
Edit Download
38.88 KB lrw-r--r-- 2026-01-23 08:56:46
Edit Download
13.23 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
5.95 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
3.15 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
703 B lrw-r--r-- 2023-12-04 11:47:40
Edit Download
27.32 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
14.43 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
96.43 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
566 B lrw-r--r-- 2026-01-23 08:56:50
Edit Download
3.76 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
0 B lrw-r--r-- 2023-12-04 11:47:40
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 REDROOM — Secure File Manager. All rights reserved. Built with ❤️ & Red Dark UI