Source code for cobbler.items.file

from cobbler import resource

from cobbler import utils
from cobbler.cexceptions import CX
from cobbler.utils import _


# this data structure is described in item.py
FIELDS = [
    # non-editable in UI (internal)
    ["ctime", 0, 0, "", False, "", 0, "float"],
    ["depth", 2, 0, "", False, "", 0, "float"],
    ["mtime", 0, 0, "", False, "", 0, "float"],
    ["uid", "", 0, "", False, "", 0, "str"],

    # editable in UI
    ["action", "create", 0, "Action", True, "Create or remove file resource", 0, "str"],
    ["comment", "", 0, "Comment", True, "Free form text description", 0, "str"],
    ["group", "", 0, "Owner group in file system", True, "File owner group in file system", 0, "str"],
    ["is_dir", False, 0, "Is Directory", True, "Treat file resource as a directory", 0, "bool"],
    ["mode", "", 0, "Mode", True, "The mode of the file", 0, "str"],
    ["name", "", 0, "Name", True, "Name of file resource", 0, "str"],
    ["owner", "", 0, "Owner user in file system", True, "File owner user in file system", 0, "str"],
    ["owners", "SETTINGS:default_ownership", 0, "Owners", True, "Owners list for authz_ownership (space delimited)", [], "list"],
    ["path", "", 0, "Path", True, "The path for the file", 0, "str"],
    ["template", "", 0, "Template", True, "The template for the file", 0, "str"]
]


[docs]class File(resource.Resource): """ A Cobbler file object. """ TYPE_NAME = _("file") COLLECTION_TYPE = "file" # # override some base class methods first (item.Item) #
[docs] def make_clone(self): _dict = self.to_dict() cloned = File(self.collection_mgr) cloned.from_dict(_dict) return cloned
[docs] def get_fields(self): return FIELDS
[docs] def check_if_valid(self): """ Insure name, path, owner, group, and mode are set. Templates are only required for files, is_dir = False """ if not self.name: raise CX("name is required") if not self.path: raise CX("path is required") if not self.owner: raise CX("owner is required") if not self.group: raise CX("group is required") if not self.mode: raise CX("mode is required") if not self.is_dir and self.template == "": raise CX("Template is required when not a directory")
# # specific methods for item.File #
[docs] def set_is_dir(self, is_dir): """ If true, treat file resource as a directory. Templates are ignored. """ self.is_dir = utils.input_boolean(is_dir)
# EOF