from cobbler import resource
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, "Install or remove package resource", 0, "str"],
["comment", "", 0, "Comment", True, "Free form text description", 0, "str"],
["installer", "yum", 0, "Installer", True, "Package Manager", 0, "str"],
["name", "", 0, "Name", True, "Name of file resource", 0, "str"],
["owners", "SETTINGS:default_ownership", 0, "Owners", True, "Owners list for authz_ownership (space delimited)", [], "list"],
["version", "", 0, "Version", True, "Package Version", 0, "str"],
]
[docs]class Package(resource.Resource):
TYPE_NAME = _("package")
COLLECTION_TYPE = "package"
#
# override some base class methods first (item.Item)
#
[docs] def make_clone(self):
_dict = self.to_dict()
cloned = Package(self.collection_mgr)
cloned.from_dict(_dict)
return cloned
[docs] def get_fields(self):
return FIELDS
[docs] def check_if_valid(self):
if not self.name:
raise CX("name is required")
#
# specific methods for item.Package
#
[docs] def set_installer(self, installer):
self.installer = installer.lower()
[docs] def set_version(self, version):
self.version = version
# EOF