Skip to main content

Simple module containing various types of resource to manage files.

Project description

inmanta-module-files

pypi version build status

This package is an adapter that is meant to be used with the inmanta orchestrator: https://docs.inmanta.com

Features

This module allows to manage files, on a unix host. It contains the following resources:

  1. files::Directory: to manage a directory, its existence, permissions and ownership.
  2. files::TextFile: to manage a simple text file, its existence, content, permissions and ownership. This should not be used for big files, as the content of the file is embedded in the resource itself.
  3. files::HostFile: to manage hosts file entries (i.e. /etc/hosts), but allowing the file to be managed by other tools. The resource makes sure to only modify the entries defined in its desired state and leave the rest untouched.
  4. files::JsonFile and files::SharedJsonFile: to manage json file entries. Similarly to files::HostFile, only change in the file what is present in the desired state. The file can then still be modified by other tools.
  5. files::SystemdUnitFile: an entity representing a unit file, which exposes it most useful properties directly in the model. After being exported, this resource becomes nothing more than a text file.
  6. files::Symlink: to manage a symlink, its existence and ownership.

Example

The following example makes sure that the directory /example/folder/a exists, and creates a text file in it.

import mitogen
import files

import std

host = std::Host(
    name="localhost",
    os=std::linux,
    via=mitogen::Local(),
)

dir = files::Directory(
    host=host,
    path="/example/folder/a",
    # The directory that is managed is /example/folder/a, but the resource
    # will also make sure that any of its parent directories exists as well
    create_parents=true,
)

file = files::TextFile(
    host=host,
    path=f"{dir.path}/file.txt",
    content="test",
    # No need to explicitly add the dependency to the parent, the
    # exporter takes care of adding it
    # requires=dir,
)

Find more examples in the ´tests` folder of this module!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inmanta_module_files-2.8.1.tar.gz (34.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

inmanta_module_files-2.8.1-py3-none-any.whl (37.5 kB view details)

Uploaded Python 3

File details

Details for the file inmanta_module_files-2.8.1.tar.gz.

File metadata

  • Download URL: inmanta_module_files-2.8.1.tar.gz
  • Upload date:
  • Size: 34.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for inmanta_module_files-2.8.1.tar.gz
Algorithm Hash digest
SHA256 353e5916b24ac1ba0d3f5d7bf9d6085160ec5920b652b0a7c0e6fb5536fa774a
MD5 f0046866b502f7d332a87cb93f520103
BLAKE2b-256 31f74e3f68dfcdb92d43f2e997d286e9bbf2038790dac361c7652c15e51ce4b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for inmanta_module_files-2.8.1.tar.gz:

Publisher: continuous-delivery.yml on edvgui/inmanta-module-files

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file inmanta_module_files-2.8.1-py3-none-any.whl.

File metadata

File hashes

Hashes for inmanta_module_files-2.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f735e8b04c627c03d1db182da5df2e8a88e3fbb93d3f35914caee8dc53f0f63f
MD5 67b7a5a5002ffdfd998e88304d49b195
BLAKE2b-256 eb666c5c93273b49974a9acef7cf924344d1ae9b4f5cefa2df0233dffb6d052c

See more details on using hashes here.

Provenance

The following attestation bundles were made for inmanta_module_files-2.8.1-py3-none-any.whl:

Publisher: continuous-delivery.yml on edvgui/inmanta-module-files

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page