8. cobbler package

8.1. Subpackages

8.2. Submodules

8.3. cobbler.api module

This module represents the Cobbler Python API. It is used by the XML-RPC API and can be used by external consumers.

Changelog:

Schema: From -> To

Current Schema: Please refer to the documentation visible of the individual methods.

V3.4.0 (unreleased)
  • Added:
    • clean_items_cache

    • new_item

    • deserialize_item

    • input_string_or_list_no_inherit

    • input_string_or_list

    • input_string_or_dict

    • input_string_or_dict_no_inherit

    • input_boolean

    • input_int

  • Changed:
    • new_*: Accepts kwargs as a last argument now (so a dict) that makes it possible to seed an object

  • Removed:
    • Unused reporter module

V3.3.4 (unreleased)
  • No changes

V3.3.3
  • Added:
    • get_item_resolved_value

    • set_item_resolved_value

  • Changed:
    • dump_vars: Added boolean parameter remove_dicts as a new last argument

V3.3.2
  • No changes

V3.3.1
  • Changes:
    • add_system: Parameter check_for_duplicate_netinfo was removed

    • build_iso: Replaced default None arguments with typed arguments

    • create_grub_images: Renamed to mkloaders

V3.3.0
  • Added:
    • menus

    • copy_menu

    • remove_menu

    • rename_menu

    • new_menu

    • add_menu

    • find_menu

    • get_menus_since

    • sync_systems

    • sync_dns

    • get_valid_obj_boot_loaders

    • create_grub_images

  • Changed:
    • Constructor: Added settingsfile_location and execute_settings_automigration as parameters

    • find_items: Accept an empty str for what if the argument name is given.

    • dump_vars: Parameter format was renamed to formatted_output

    • generate_gpxe: Renamed to generate_ipxe; The second parameter is now image and accepts the name of one.

    • sync: Accepts a new parameter called what which is a List[str] that signals what should be synced. An empty list signals a full sync.

    • sync_dhcp: Parameter verbose was removed

  • Removed:
    • The logger arugment was removed from all methods

    • dlcontent

V3.2.2
  • No changes

V3.2.1
  • Added primitive type annotations for all parameters of all methods

V3.2.0
  • No changes

V3.1.2
  • No changes

V3.1.1
  • No changes

V3.1.0
  • No changes

V3.0.1
  • No changes

V3.0.0
  • Added:
    • power_system: Replaces power_on, power_off, reboot, power_status

  • Changed:
    • import_tree: kickstart_file is now called autoinstall_file

  • Removed:
    • update

    • clear

    • deserialize_raw

    • deserialize_item_raw

    • power_on - Replaced by power_system

    • power_off - Replaced by power_system

    • reboot - Replaced by power_system

    • power_status - Replaced by power_system

V2.8.5
  • Inital tracking of changes.

class cobbler.api.CobblerAPI(is_cobblerd: bool = False, settingsfile_location: str = '/etc/cobbler/settings.yaml', execute_settings_automigration: bool = False)[source]

Bases: object

Python API module for Cobbler. See source for cobbler.py, or pydoc, for example usage. Cli apps and daemons should import api.py, and no other Cobbler code.

acl_config(adduser: Optional[str] = None, addgroup: Optional[str] = None, removeuser: Optional[str] = None, removegroup: Optional[str] = None) None[source]

Configures users/groups to run the Cobbler CLI as non-root. Pass in only one option at a time. Powers cobbler aclconfig.

Parameters
  • adduser

  • addgroup

  • removeuser

  • removegroup

add_distro(ref: Distro, check_for_duplicate_names: bool = False, save: bool = True, with_triggers: bool = True) None[source]

Add a distribution to Cobbler.

Parameters
  • ref – The identifier for the object to add to a collection.

  • check_for_duplicate_names – If the name should be unique or can be present multiple times.

  • save – If the item should be persisted.

  • with_triggers – If triggers should be run when the object is added.

add_image(ref: Image, check_for_duplicate_names: bool = False, save: bool = True, with_triggers: bool = True) None[source]

Add an image to Cobbler.

Parameters
  • ref – The identifier for the object to add to a collection.

  • check_for_duplicate_names – If the name should be unique or can be present multiple times.

  • save – If the item should be persisted.

  • with_triggers – If triggers should be run when the object is added.

add_item(what: str, ref: BaseItem, check_for_duplicate_names: bool = False, save: bool = True, with_triggers: bool = True) None[source]

Add an abstract item to a collection of its specific items. This is not meant for external use. Please reefer to one of the specific methods add_<type>.

Parameters
  • what – The item type.

  • ref – The identifier for the object to add to a collection.

  • check_for_duplicate_names – If the name should be unique or can be present multiple times.

  • save – If the item should be persisted.

  • with_triggers – If triggers should be run when the object is added.

add_menu(ref: Menu, check_for_duplicate_names: bool = False, save: bool = True, with_triggers: bool = True) None[source]

Add a submenu to Cobbler.

Parameters
  • ref – The identifier for the object to add to a collection.

  • check_for_duplicate_names – If the name should be unique or can be present multiple times.

  • save – If the item should be persisted.

  • with_triggers – If triggers should be run when the object is added.

add_profile(ref: Profile, check_for_duplicate_names: bool = False, save: bool = True, with_triggers: bool = True) None[source]

Add a profile to Cobbler.

Parameters
  • ref – The identifier for the object to add to a collection.

  • check_for_duplicate_names – If the name should be unique or can be present multiple times.

  • save – If the item should be persisted.

  • with_triggers – If triggers should be run when the object is added.

add_repo(ref: Repo, check_for_duplicate_names: bool = False, save: bool = True, with_triggers: bool = True) None[source]

Add a repository to Cobbler.

Parameters
  • ref – The identifier for the object to add to a collection.

  • check_for_duplicate_names – If the name should be unique or can be present multiple times.

  • save – If the item should be persisted.

  • with_triggers – If triggers should be run when the object is added.

add_system(ref: System, check_for_duplicate_names: bool = False, save: bool = True, with_triggers: bool = True) None[source]

Add a system to Cobbler.

Parameters
  • ref – The identifier for the object to add to a collection.

  • check_for_duplicate_names – If the name should be unique or can be present multiple times.

  • save – If the item should be persisted.

  • with_triggers – If triggers should be run when the object is added.

authenticate(user: str, password: str) bool[source]

(Remote) access control. This depends on the chosen authentication module. Cobbler internal use only.

Parameters
  • user – The username to check for authentication.

  • password – The password to check for authentication.

Returns

Whether the action succeeded or not.

authorize(user: str, resource: str, arg1: Optional[str] = None, arg2: Any = None) int[source]

(Remote) access control. This depends on the chosen authorization module. Cobbler internal use only.

Parameters
  • user – The username to check for authorization.

  • resource – The type of resource which should be checked for access from the supplied user.

  • arg1 – The actual resource to check for authorization.

  • arg2 – Not known what this parameter does exactly.

Returns

The return code of the action.

auto_add_repos() None[source]

Import any repos this server knows about and mirror them. Run cobbler reposync to apply the changes. Credit: Seth Vidal.

:raises ImportError

build_iso(iso: str = 'autoinst.iso', profiles: Optional[List[str]] = None, systems: Optional[List[str]] = None, buildisodir: str = '', distro_name: str = '', standalone: bool = False, airgapped: bool = False, source: str = '', exclude_dns: bool = False, xorrisofs_opts: str = '', esp: Optional[str] = None) None[source]

Build an iso image which may be network bootable or not.

Parameters
  • iso – The name of the ISO. Defaults to autoinst.iso.

  • profiles – Use these profiles only

  • systems – Use these systems only

  • buildisodir – This overwrites the directory from the settings in which the iso is built in.

  • distro_name – Used with --standalone and --airgapped to create a distro-based ISO including all associated.

  • standalone – This means that no network connection is needed to install the generated iso.

  • airgapped – This option implies standalone=True.

  • source – If the iso should be offline available this is the path to the sources of the image.

  • exclude_dns – Whether the repositories have to be locally available or the internet is reachable.

  • xorrisofs_optsxorrisofs options to include additionally.

  • esp – location of the ESP partition, e.g. for secure boot.

check() List[str][source]

See if all preqs for network booting are valid. This returns a list of strings containing instructions on things to correct. An empty list means there is nothing to correct, but that still doesn’t mean there are configuration errors. This is mainly useful for human admins, who may, for instance, forget to properly set up their TFTP servers for PXE, etc.

Returns

A list of things to address.

clean_items_cache(obj: Union[Settings, Dict[str, Any]])[source]

Items cache invalidation in case of settings or singatures changes. Cobbler internal use only.

clear_logs(system: System) None[source]

Clears console and anamon logs for system

Parameters

system – The system to clear logs of.

copy_distro(ref: Distro, newname: str) None[source]

This method copies a distro which is just different in the name of the object.

Parameters
  • ref – The object itself which gets copied.

  • newname – The new name of the newly created object.

copy_image(ref: Image, newname: str) None[source]

This method copies an image which is just different in the name of the object.

Parameters
  • ref – The object itself which gets copied.

  • newname – The new name of the newly created object.

copy_item(what: str, ref: BaseItem, newname: str) None[source]

General copy method which is called by the specific methods.

Parameters
  • what – The collection type which gets copied.

  • ref – The object itself which gets copied.

  • newname – The new name of the newly created object.

copy_menu(ref: Menu, newname: str) None[source]

This method copies a file which is just different in the name of the object.

Parameters
  • ref – The object itself which gets copied.

  • newname – The new name of the newly created object.

copy_profile(ref: Profile, newname: str) None[source]

This method copies a profile which is just different in the name of the object.

Parameters
  • ref – The object itself which gets copied.

  • newname – The new name of the newly created object.

copy_repo(ref: Repo, newname: str) None[source]

This method copies a repository which is just different in the name of the object.

Parameters
  • ref – The object itself which gets copied.

  • newname – The new name of the newly created object.

copy_system(ref: System, newname: str) None[source]

This method copies a system which is just different in the name of the object.

Parameters
  • ref – The object itself which gets copied.

  • newname – The new name of the newly created object.

deserialize() None[source]

Load cobbler_collections from disk. Cobbler internal use only.

deserialize_item(obj: BaseItem) Dict[str, Any][source]

Load cobbler item from disk. Cobbler internal use only.

distros() Distros[source]

Return the current list of distributions

dump_vars(obj: BootableItem, formatted_output: bool = False, remove_dicts: bool = False) Union[Dict[str, Any], str][source]

Dump all known variables related to that object.

Parameters
  • obj – The object for which the variables should be dumped.

  • formatted_output – If True the values will align in one column and be pretty printed for cli example.

  • remove_dicts – If True the dictionaries will be put into str form.

Returns

A dictionary with all the information which could be collected.

find_distro(name: str = '', return_list: bool = False, no_errors: bool = False, **kargs: FIND_KWARGS) Optional[Union[List[distro.Distro], distro.Distro]][source]

Find a distribution via a name or keys specified in the **kargs.

Parameters
  • name – The name to search for.

  • return_list – If only the first result or all results should be returned.

  • no_errors – Silence some errors which would raise if this turned to False.

  • kargs – Additional key-value pairs which may help in finding the desired objects.

Returns

A single object or a list of all search results.

find_image(name: str = '', return_list: bool = False, no_errors: bool = False, **kargs: FIND_KWARGS) Optional[Union[List[image_module.Image], image_module.Image]][source]

Find an image via a name or keys specified in the **kargs.

Parameters
  • name – The name to search for.

  • return_list – If only the first result or all results should be returned.

  • no_errors – Silence some errors which would raise if this turned to False.

  • kargs – Additional key-value pairs which may help in finding the desired objects.

Returns

A single object or a list of all search results.

find_items(what: str = '', criteria: Optional[Dict[Any, Any]] = None, name: str = '', return_list: bool = True, no_errors: bool = False) Optional[Union[BootableItem, List[BootableItem]]][source]

This is the abstract base method for finding object int the api. It should not be used by external resources. Please reefer to the specific implementations of this method called find_<object type>.

Parameters
  • what – The object type of the item to search for.

  • criteria – The dictionary with the key-value pairs to find objects with.

  • name – The name of the object.

  • return_list – If only the first result or all results should be returned.

  • no_errors – Silence some errors which would raise if this turned to False.

Returns

The list of items witch match the search criteria.

find_menu(name: str = '', return_list: bool = False, no_errors: bool = False, **kargs: FIND_KWARGS) Optional[Union[List[menu.Menu], menu.Menu]][source]

Find a menu via a name or keys specified in the **kargs.

Parameters
  • name – The name to search for.

  • return_list – If only the first result or all results should be returned.

  • no_errors – Silence some errors which would raise if this turned to False.

  • kargs – Additional key-value pairs which may help in finding the desired objects.

Returns

A single object or a list of all search results.

find_profile(name: str = '', return_list: bool = False, no_errors: bool = False, **kargs: FIND_KWARGS) Optional[Union[List[profile_module.Profile], profile_module.Profile]][source]

Find a profile via a name or keys specified in the **kargs.

Parameters
  • name – The name to search for.

  • return_list – If only the first result or all results should be returned.

  • no_errors – Silence some errors which would raise if this turned to False.

  • kargs – Additional key-value pairs which may help in finding the desired objects.

Returns

A single object or a list of all search results.

find_repo(name: str = '', return_list: bool = False, no_errors: bool = False, **kargs: FIND_KWARGS) Optional[Union[List[repo.Repo], repo.Repo]][source]

Find a repository via a name or keys specified in the **kargs.

Parameters
  • name – The name to search for.

  • return_list – If only the first result or all results should be returned.

  • no_errors – Silence some errors which would raise if this turned to False.

  • kargs – Additional key-value pairs which may help in finding the desired objects.

Returns

A single object or a list of all search results.

find_system(name: str = '', return_list: bool = False, no_errors: bool = False, **kargs: FIND_KWARGS) Optional[Union[List[system_module.System], system_module.System]][source]

Find a system via a name or keys specified in the **kargs.

Parameters
  • name – The name to search for.

  • return_list – If only the first result or all results should be returned.

  • no_errors – Silence some errors which would raise if this turned to False.

  • kargs – Additional key-value pairs which may help in finding the desired objects.

Returns

A single object or a list of all search results.

generate_bootcfg(profile: str = '', system: str = '') str[source]

Generate a boot configuration. The system wins over the profile.

Parameters
  • profile – The profile to return the configuration for.

  • system – The system to return the configuration for.

Returns

The generated configuration file.

generate_ipxe(profile: str, image: str, system: str) str[source]

Generate the ipxe configuration files. The system wins over the profile. Profile and System win over Image.

Parameters
  • profile – The profile to return the configuration for.

  • image – The image to return the configuration for.

  • system – The system to return the configuration for.

Returns

The generated configuration file.

generate_script(profile: Optional[str], system: Optional[str], name: str) str[source]

Generate an autoinstall script for the specified profile or system. The system wins over the profile.

Parameters
  • profile – The profile name to generate the script for.

  • system – The system name to generate the script for.

  • name – The name of the script which should be generated. Must only contain alphanumeric characters, dots and underscores.

Returns

The generated script or an error message.

get_distros_since(mtime: float, collapse: bool = False) List[Distro][source]

Returns distros modified since a certain time (in seconds since Epoch)

Parameters
  • mtime – The timestamp which marks the gate if an object is included or not.

  • collapse – collapse=True specifies returning a dict instead of objects.

Returns

The list of distros which are newer then the given timestamp.

get_images_since(mtime: float, collapse: bool = False) List[Image][source]

Return images modified since a certain time (in seconds since Epoch)

Parameters
  • mtime – The timestamp which marks the gate if an object is included or not.

  • collapse – If True then this specifies that a list of dicts should be returned instead of a list of objects.

Returns

The list of images which are newer then the given timestamp.

get_item(what: str, name: str) Optional[BootableItem][source]

Get a general item.

Parameters
  • what – The item type to retrieve from the internal database.

  • name – The name of the item to retrieve.

Returns

An item of the desired type.

get_item_resolved_value(item_uuid: str, attribute: str) Any[source]

This method helps non Python API consumers to retrieve the final data of a field with inheritance.

This does not help with network interfaces because they don’t have a UUID at the moment and thus can’t be queried via their UUID.

Parameters
  • item_uuid – The UUID of the item that should be retrieved.

  • attribute – The attribute that should be retrieved.

Raises
  • ValueError – In case a value given was either malformed or the desired item did not exist.

  • TypeError – In case the type of the method arguments do have the wrong type.

  • AttributeError – In case the attribute specified is not available on the given item (type).

Returns

The attribute value. Since this might be of type NetworkInterface we cannot yet set this explicitly.

get_items(what: str) Collection[BaseItem][source]

Get all items of a collection.

Parameters

what – The collection to query.

Returns

The items which were queried. May return no items.

get_menus_since(mtime: float, collapse: bool = False) List[Menu][source]

Return files modified since a certain time (in seconds since Epoch)

Parameters
  • mtime – The timestamp which marks the gate if an object is included or not.

  • collapse – If True then this specifies that a list of dicts should be returned instead of a list of objects.

Returns

The list of files which are newer then the given timestamp.

get_module_by_name(module_name: str) Optional[module][source]

Returns a loaded Cobbler module named ‘name’, if one exists, else None. Cobbler internal use only.

Parameters

module_name

Returns

get_module_from_file(section: str, name: str, fallback: Optional[str] = None) module[source]

Looks in /etc/cobbler/settings.yaml for a section called ‘section’ and a key called ‘name’, and then returns the module that corresponds to the value of that key. Cobbler internal use only.

Parameters
  • section – The section to look at.

  • name – The name of the module to retrieve

  • fallback – The default module in case the requested one is not found.

Returns

The requested Python Module.

get_module_name_from_file(section: str, name: str, fallback: Optional[str] = None) str[source]

Looks up a module the same as get_module_from_file but returns the module name rather than the module itself.

Parameters
  • section

  • name

  • fallback

Returns

get_modules_in_category(category: str) List[module][source]

Returns all modules in a given category, for instance “serializer”, or “cli”. Cobbler internal use only.

Parameters

category – The category to check.

Returns

The list of modules.

get_profiles_since(mtime: float, collapse: bool = False) List[Profile][source]

Returns profiles modified since a certain time (in seconds since Epoch)

Parameters
  • mtime – The timestamp which marks the gate if an object is included or not.

  • collapse – If True then this specifies that a list of dicts should be returned instead of a list of objects.

Returns

The list of profiles which are newer then the given timestamp.

get_repo_config_for_profile(obj: BaseItem) str[source]

Get the repository configuration for the specified profile

Parameters

obj – The profile to return the configuration for.

Returns

The repository configuration as a string.

get_repo_config_for_system(obj: BaseItem) str[source]

Get the repository configuration for the specified system.

Parameters

obj – The system to return the configuration for.

Returns

The repository configuration as a string.

get_repos_since(mtime: float, collapse: bool = False) List[Repo][source]

Return repositories modified since a certain time (in seconds since Epoch)

Parameters
  • mtime – The timestamp which marks the gate if an object is included or not.

  • collapse – If True then this specifies that a list of dicts should be returned instead of a list of objects.

Returns

The list of repositories which are newer then the given timestamp.

static get_signatures() Dict[str, Any][source]

This returns the local signature cache.

Returns

The dict containing all signatures.

get_sync(verbose: bool = False) CobblerSync[source]

Get a Cobbler Sync object which may be executed through the call of obj.run().

Parameters

verbose – If the action should be just logged as needed or (if True) as much verbose as possible.

Returns

An instance of the CobblerSync class to execute the sync with.

get_systems_since(mtime: float, collapse: bool = False) List[System][source]

Return systems modified since a certain time (in seconds since Epoch)

Parameters
  • mtime – The timestamp which marks the gate if an object is included or not.

  • collapse – If True then this specifies that a list of dicts should be returned instead of a list of objects.

Returns

The list of systems which are newer then the given timestamp.

get_template_file_for_profile(obj: BootableItem, path: str) str[source]

Get the template for the specified profile.

Parameters
  • obj – The object which is related to that template.

  • path – The path to the template.

Returns

The template as in its string representation.

get_template_file_for_system(obj: BootableItem, path: str) str[source]

Get the template for the specified system.

Parameters
  • obj – The object which is related to that template.

  • path – The path to the template.

Returns

The template as in its string representation.

get_tftp_file(path: str, offset: int, size: int) Tuple[bytes, int][source]

Generate and return a file for a TFTP client.

Parameters
  • path – Path to file

  • offset – Offset of the requested chunk in the file

  • size – Size of the requested chunk in the file

Returns

The requested chunk and the length of the whole file

get_valid_obj_boot_loaders(obj: Union[Distro, Image]) List[str][source]

Return the list of valid boot loaders for the object

Parameters

obj – The object for which the boot loaders should be looked up.

Returns

Get a list of all valid boot loaders.

Hardlink all files where this is possible to improve performance.

Returns

The return code of the subprocess call which actually hardlinks the files.

images() Images[source]

Return the current list of images

import_tree(mirror_url: str, mirror_name: str, network_root: Optional[str] = None, autoinstall_file: Optional[str] = None, rsync_flags: Optional[str] = None, arch: Optional[str] = None, breed: Optional[str] = None, os_version: Optional[str] = None) bool[source]

Automatically import a directory tree full of distribution files.

Parameters
  • mirror_url – Can be a string that represents a path, a user@host syntax for SSH, or an rsync:// address. If mirror_url is a filesystem path and mirroring is not desired, set network_root to something like “nfs://path/to/mirror_url/root”

  • mirror_name – The name of the mirror.

  • network_root – the remote path (nfs/http/ftp) for the distro files

  • autoinstall_file – user-specified response file, which will override the default

  • rsync_flags – Additional flags that will be passed to the rsync call that will sync everything to the Cobbler webroot.

  • arch – user-specified architecture

  • breed – user-specified breed

  • os_version – user-specified OS version

input_boolean(value: Union[str, bool, int]) bool[source]

See also

input_boolean()

input_int(value: Union[str, int, float]) int[source]

See also

input_int()

input_string_or_dict(options: Union[str, List[Any], Dict[Any, Any]], allow_multiples: bool = True) Union[str, Dict[Any, Any]][source]
input_string_or_dict_no_inherit(options: Union[str, List[Any], Dict[Any, Any]], allow_multiples: bool = True) Dict[Any, Any][source]
input_string_or_list(options: Optional[Union[str, List[Any]]]) Union[List[Any], str][source]
input_string_or_list_no_inherit(options: Optional[Union[str, List[Any]]]) List[Any][source]
is_selinux_enabled() bool[source]

Returns whether selinux is enabled on the Cobbler server. We check this just once at Cobbler API init time, because a restart is required to change this; this does /not/ check enforce/permissive, nor does it need to.

is_selinux_supported() bool[source]

Returns whether or not the OS is sufficient enough to run with SELinux enabled (currently EL 5 or later).

Returns

False per default. If Distro is Redhat and Version >= 5 then it returns true.

last_modified_time() float[source]

Returns the time of the last modification to Cobbler, made by any API instance, regardless of the serializer type.

Returns

0 if there is no file where the information required for this method is saved.

log(msg: str, args: Optional[Union[str, List[Optional[str]], Dict[str, Any]]] = None, debug: bool = False) None[source]

Logs a message with the already initiated logger of this object.

Parameters
  • msg – The message to log.

  • args – Optional message which gets appended to the main msg with a ‘;’.

  • debug – Weather the logged message is a debug message (true) or info (false).

Deprecated since version 3.3.0: We should use the standard logger.

menus() Menus[source]

Return the current list of menus

mkloaders() None[source]

Create the GRUB installer images via this API call. It utilizes grub2-mkimage behind the curtain.

new_distro(is_subobject: bool = False, **kwargs: Any) Distro[source]

Returns a new empty distro object. This distro is not automatically persisted. Persistance is achieved via save().

Parameters

is_subobject – If the object is a subobject of an already existing object or not.

Returns

An empty Distro object.

new_image(is_subobject: bool = False, **kwargs: Any) Image[source]

Returns a new empty image object. This image is not automatically persisted. Persistence is achieved via save().

Parameters

is_subobject – If the object created is a subobject or not.

Returns

An empty image object.

new_item(what: str = '', is_subobject: bool = False, **kwargs: Any) BootableItem[source]

Creates a new (unconfigured) object. The object is not persisted.

Parameters
  • what – Specifies the type of object. Valid item types can be seen at ItemTypes().

  • is_subobject – If the object is a subobject of an already existing object or not.

Returns

The newly created object.

new_menu(is_subobject: bool = False, **kwargs: Any) Menu[source]

Returns a new empty menu object. This file is not automatically persisted. Persistence is achieved via save().

Parameters

is_subobject – If the object created is a subobject or not.

Returns

An empty Menu object.

new_profile(is_subobject: bool = False, **kwargs: Any) Profile[source]

Returns a new empty profile object. This profile is not automatically persisted. Persistence is achieved via save().

Parameters

is_subobject – If the object created is a subobject or not.

Returns

An empty Profile object.

new_repo(is_subobject: bool = False, **kwargs: Any) Repo[source]

Returns a new empty repo object. This repository is not automatically persisted. Persistence is achieved via save().

Parameters

is_subobject – If the object created is a subobject or not.

Returns

An empty repo object.

new_system(is_subobject: bool = False, **kwargs: Any) System[source]

Returns a new empty system object. This system is not automatically persisted. Persistence is achieved via save().

Parameters

is_subobject – If the object created is a subobject or not.

Returns

An empty System object.

power_system(system: System, power_operation: str, user: Optional[str] = None, password: Optional[str] = None) Optional[bool][source]

Power on / power off / get power status /reboot a system.

Parameters
  • system – Cobbler system

  • power_operation – power operation. Valid values: on, off, reboot, status

  • user – power management user

  • password – power management password

Returns

bool if operation was successful

profiles() Profiles[source]

Return the current list of profiles

remove_distro(ref: Union[Distro, str], recursive: bool = False, delete: bool = True, with_triggers: bool = True) None[source]

Remove a distribution from Cobbler.

Parameters
  • ref – The internal unique handle for the item.

  • recursive – If the item should recursively should delete dependencies on itself.

  • delete – Not known what this parameter does exactly.

  • with_triggers – Whether you would like to have the removal triggers executed or not.

remove_image(ref: Union[Image, str], recursive: bool = False, delete: bool = True, with_triggers: bool = True) None[source]

Remove a image from Cobbler.

Parameters
  • ref – The internal unique handle for the item.

  • recursive – If the item should recursively should delete dependencies on itself.

  • delete – Not known what this parameter does exactly.

  • with_triggers – Whether you would like to have the removal triggers executed or not.

remove_item(what: str, ref: Union[BaseItem, str], recursive: bool = False, delete: bool = True, with_triggers: bool = True) None[source]

Remove a general item. This method should not be used by an external api. Please use the specific remove_<itemtype> methods.

Parameters
  • what – The type of the item.

  • ref – The internal unique handle for the item.

  • recursive – If the item should recursively should delete dependencies on itself.

  • delete – Not known what this parameter does exactly.

  • with_triggers – Whether you would like to have the removal triggers executed or not.

remove_menu(ref: Union[Menu, str], recursive: bool = False, delete: bool = True, with_triggers: bool = True) None[source]

Remove a menu from Cobbler.

Parameters
  • ref – The internal unique handle for the item.

  • recursive – If the item should recursively should delete dependencies on itself.

  • delete – Not known what this parameter does exactly.

  • with_triggers – Whether you would like to have the removal triggers executed or not.

remove_profile(ref: Union[Profile, str], recursive: bool = False, delete: bool = True, with_triggers: bool = True) None[source]

Remove a profile from Cobbler.

Parameters
  • ref – The internal unique handle for the item.

  • recursive – If the item should recursively should delete dependencies on itself.

  • delete – Not known what this parameter does exactly.

  • with_triggers – Whether you would like to have the removal triggers executed or not.

remove_repo(ref: Union[Repo, str], recursive: bool = False, delete: bool = True, with_triggers: bool = True) None[source]

Remove a repository from Cobbler.

Parameters
  • ref – The internal unique handle for the item.

  • recursive – If the item should recursively should delete dependencies on itself.

  • delete – Not known what this parameter does exactly.

  • with_triggers – Whether you would like to have the removal triggers executed or not.

remove_system(ref: Union[System, str], recursive: bool = False, delete: bool = True, with_triggers: bool = True) None[source]

Remove a system from Cobbler.

Parameters
  • ref – The internal unique handle for the item.

  • recursive – If the item should recursively should delete dependencies on itself.

  • delete – Not known what this parameter does exactly.

  • with_triggers – Whether you would like to have the removal triggers executed or not.

rename_distro(ref: Distro, newname: str) None[source]

Rename a distro to a new name.

Parameters
  • ref – The internal unique handle for the item.

  • newname – The new name for the item.

rename_image(ref: Image, newname: str) None[source]

Rename an image to a new name.

Parameters
  • ref – The internal unique handle for the item.

  • newname – The new name for the item.

rename_item(what: str, ref: BaseItem, newname: str) None[source]

Remove a general item. This method should not be used by an external api. Please use the specific rename_<itemtype> methods.

Parameters
  • what – The type of object which should be renamed.

  • ref – The internal unique handle for the item.

  • newname – The new name for the item.

rename_menu(ref: Menu, newname: str) None[source]

Rename a menu to a new name.

Parameters
  • ref – The internal unique handle for the item.

  • newname – The new name for the item.

rename_profile(ref: Profile, newname: str) None[source]

Rename a profile to a new name.

Parameters
  • ref – The internal unique handle for the item.

  • newname – The new name for the item.

rename_repo(ref: Repo, newname: str) None[source]

Rename a repository to a new name.

Parameters
  • ref – The internal unique handle for the item.

  • newname – The new name for the item.

rename_system(ref: System, newname: str) None[source]

Rename a system to a new name.

Parameters
  • ref – The internal unique handle for the item.

  • newname – The new name for the item.

replicate(cobbler_master: Optional[str] = None, port: str = '80', distro_patterns: str = '', profile_patterns: str = '', system_patterns: str = '', repo_patterns: str = '', image_patterns: str = '', prune: bool = False, omit_data: bool = False, sync_all: bool = False, use_ssl: bool = False) None[source]

Pull down data/configs from a remote Cobbler server that is a master to this server.

Parameters
  • cobbler_master – The hostname/URL of the other Cobbler server

  • port – The port to use for the replication task.

  • distro_patterns – The pattern of distros which should be synced.

  • profile_patterns – The pattern of profiles which should be synced.

  • system_patterns – The pattern of systems which should be synced.

  • repo_patterns – The pattern of repositories which should be synced.

  • image_patterns – The pattern of images which should be synced.

  • prune – Whether the object not on the master should be removed or not.

  • omit_data – If the data downloaded by the current Cobbler server should be rsynced to the destination server.

  • sync_all – This parameter behaves similarly to a dry run argument. If True then everything will executed, if False then only some things are synced.

  • use_ssl – Whether SSL should be used (True) or not (False).

repos() Repos[source]

Return the current list of repos

reposync(name: Optional[str] = None, tries: int = 1, nofail: bool = False) None[source]

Take the contents of /var/lib/cobbler/repos and update them – or create the initial copy if no contents exist yet.

Parameters
  • name – The name of the repository to run reposync for.

  • tries – How many tries should be executed before the action fails.

  • nofail – If True then the action will fail, otherwise the action will just be skipped. This respects the tries parameter.

serialize() None[source]

Save the cobbler_collections to disk. Cobbler internal use only.

set_item_resolved_value(item_uuid: str, attribute: str, value: Any) None[source]

This method helps non Python API consumers to use the Python property setters without having access to the raw data of the object. In case you pass a dictionary the method tries to deduplicate it.

This does not help with network interfaces because they don’t have a UUID at the moment and thus can’t be queried via their UUID.

Warning

This function may throw any exception that is thrown by a setter of a Python property defined in Cobbler.

Parameters
  • item_uuid – The UUID of the item that should be retrieved.

  • attribute – The attribute that should be retrieved.

  • value – The new value to set.

Raises
  • ValueError – In case a value given was either malformed or the desired item did not exist.

  • TypeError – In case the type of the method arguments do have the wrong type.

  • AttributeError – In case the attribute specified is not available on the given item (type).

settings() Settings[source]

Return the application configuration

signature_update() None[source]

Update all signatures from the URL specified in the settings.

status(mode: str) Union[Dict[Any, Any], str][source]

Get the status of the current Cobbler instance.

Parameters

mode – “text” or anything else. Meaning whether the output is thought for the terminal or not.

Returns

The current status of Cobbler.

sync(verbose: bool = False, what: Optional[List[str]] = None) None[source]

Take the values currently written to the configuration files in /etc, and /var, and build out the information tree found in /tftpboot. Any operations done in the API that have not been saved with serialize() will NOT be synchronized with this command.

Parameters
  • verbose – If the action should be just logged as needed or (if True) as much verbose as possible.

  • what – List of strings what services to sync (e.g. dhcp and/or dns). Empty list for full sync.

sync_dhcp() None[source]

Only build out the DHCP configuration.

sync_dns() None[source]

Only build out the DNS configuration.

sync_systems(systems: List[str], verbose: bool = False) None[source]

Take the values currently written to the configuration files in /etc, and /var, and build out the information tree found in /tftpboot. Any operations done in the API that have not been saved with serialize() will NOT be synchronized with this command.

Parameters
  • systems – List of specified systems that needs to be synced

  • verbose – If the action should be just logged as needed or (if True) as much verbose as possible.

systems() Systems[source]

Return the current list of systems

validate_autoinstall_files() None[source]

Validate if any of the autoinstallation files are invalid and if yes report this.

version(extended: bool = False) Union[float, Dict[str, Union[str, List[Any]]]][source]

What version is Cobbler?

If extended == False, returns a float for backwards compatibility If extended == True, returns a dict:

gitstamp – the last git commit hash gitdate – the last git commit date on the builder machine builddate – the time of the build version – something like “1.3.2” version_tuple – something like [ 1, 3, 2 ]

Parameters

extended – False returns a float, True a Dictionary.

8.4. cobbler.autoinstall_manager module

This module contains code in order to create the automatic installation files. For example kickstarts, autoyast files or preseed files.

class cobbler.autoinstall_manager.AutoInstallationManager(api: CobblerAPI)[source]

Bases: object

Manage automatic installation templates, snippets and final files

generate_autoinstall(profile: Optional[str] = None, system: Optional[str] = None) str[source]

Generates the autoinstallation for a system or a profile. You may only specifify one parameter. If you specify both, the system is generated and the profile argument is ignored.

Parameters
  • profile – The Cobbler profile you want an autoinstallation generated for.

  • system – The Cobbler system you want an autoinstallation generated for.

Returns

The rendered template for the system or profile.

get_autoinstall_snippets() List[str][source]

Get a list of all autoinstallation snippets.

Returns

The list of snippets

get_autoinstall_templates() List[str][source]

Get automatic OS installation templates

Returns

A list of automatic installation templates

is_autoinstall_in_use(name: str) bool[source]

Reports the status if a given system is currently being provisioned.

Parameters

name – The name of the system.

Returns

Whether the system is in install mode or not.

log_autoinstall_validation_errors(errors_type: int, errors: List[Any])[source]

Log automatic installation file errors

Parameters
  • errors_type – validation errors type

  • errors – A list with all the errors which occurred.

read_autoinstall_snippet(file_path: str) str[source]

Reads a autoinstall snippet from underneath the configured snippet base dir.

Parameters

file_path – The relative file path under the configured snippets base dir.

Returns

The read snippet.

read_autoinstall_template(file_path: str) str[source]

Read an automatic OS installation template

Parameters

file_path – automatic installation template relative file path

Returns

automatic installation template content

remove_autoinstall_snippet(file_path: str) bool[source]

Remove the autoinstall snippet with the given path.

Parameters

file_path – The path relative to the configured snippet root.

Returns

A boolean indicating the success of the task.

remove_autoinstall_template(file_path: str)[source]

Remove an automatic OS installation template

Parameters

file_path – automatic installation template relative file path

validate_autoinstall_file(obj: BaseItem, is_profile: bool) List[Any][source]

Validate automatic installation file used by a system/profile.

Parameters
  • obj – system/profile

  • is_profile – if obj is a profile

Returns

[bool, int, list] list with validation result, errors type and list of errors

validate_autoinstall_files() bool[source]

Determine if Cobbler automatic OS installation files will be accepted by corresponding Linux distribution installers. The presence of an error does not imply that the automatic installation file is bad, only that the possibility exists. Automatic installation file validators are not available for all automatic installation file types and on all operating systems in which Cobbler may be installed.

Returns

True if all automatic installation files are valid, otherwise false.

validate_autoinstall_snippet_file_path(snippet: str, new_snippet: bool = False) str[source]

Validate the snippet’s relative file path.

Parameters
  • snippet – automatic installation snippet relative file path

  • new_snippet – when set to true new filenames are allowed

Returns

Snippet if successful otherwise raises an exception.

Raises
  • TypeError – Raised in case snippet is not a string.

  • ValueError – Raised in case snippet file is invalid.

  • OSError – Raised in case snippet file location is not found.

validate_autoinstall_template_file_path(autoinstall: str, for_item: bool = True, new_autoinstall: bool = False) str[source]

Validate the automatic installation template’s relative file path.

Parameters
  • autoinstall – automatic installation template relative file path

  • for_item – enable/disable special handling for Item objects

  • new_autoinstall – when set to true new filenames are allowed

Returns

automatic installation template relative file path

Raises
  • TypeError – Raised in case autoinstall is not a string.

  • OSError – Raised in case template file not found.

  • ValueError – Raised in case template file is invalid.

write_autoinstall_snippet(file_path: str, data: str)[source]

Writes a snippet with the given content to the relative path under the snippet root directory.

Parameters
  • file_path – The relative path under the configured snippet base dir.

  • data – The snippet code.

write_autoinstall_template(file_path: str, data: str) bool[source]

Write an automatic OS installation template

Parameters
  • file_path – automatic installation template relative file path

  • data – automatic installation template content

8.5. cobbler.autoinstallgen module

Builds out filesystem trees/data based on the object tree. This is the code behind ‘cobbler sync’.

class cobbler.autoinstallgen.AutoInstallationGen(api: CobblerAPI)[source]

Bases: object

Handles conversion of internal state to the tftpboot tree layout

add_autoyast_script(document: Document, script_type: str, source: str)[source]

Add scripts to an existing AutoYaST XML.

Parameters
  • document – The existing AutoYaST XML object.

  • script_type – The type of the script which should be added.

  • source – The source of the script. This should be ideally a string.

create_autoyast_script(document: Document, script: str, name: str) Element[source]

This method attaches a script with a given name to an existing AutoYaST XML file.

Parameters
  • document – The existing AutoYaST XML file.

  • script – The script to attach.

  • name – The name of the script.

Returns

The AutoYaST file with the attached script.

generate_autoinstall(profile: Optional[Profile] = None, system: Optional[System] = None) str[source]

This is an internal method for generating an autoinstall config/script. Please use the generate_autoinstall_for_* methods. If you insist on using this mehtod please only supply a profile or a system, not both.

Parameters
  • profile – The profile to use for generating the autoinstall config/script.

  • system – The system to use for generating the autoinstall config/script. If both arguments are given, this wins.

Returns

The autoinstall script or configuration file as a string.

generate_autoinstall_for_profile(profile: str) str[source]

Generate an autoinstall config or script for a profile.

Parameters

profile – The Profile to generate the script/config for.

Returns

The generated output or an error message with a human readable description.

Raises

CX – Raised in case the profile references a missing distro.

generate_autoinstall_for_system(sys_name: str) str[source]

Generate an autoinstall config or script for a system.

Parameters

sys_name – The system name to generate an autoinstall script for.

Returns

The generated output or an error message with a human readable description.

Raises

CX – Raised in case the system references a missing profile.

generate_autoyast(profile: Optional[Profile] = None, system: Optional[System] = None, raw_data: Optional[str] = None) str[source]

Generate auto installation information for SUSE distribution (AutoYaST XML file) for a specific system or general profile. Only a system OR profile can be supplied, NOT both.

Parameters
  • profile – The profile to generate the AutoYaST file for.

  • system – The system to generate the AutoYaST file for.

  • raw_data – The raw data which should be included in the profile.

Returns

The generated AutoYaST XML file.

generate_config_stanza(obj: Union[Profile, System], is_profile: bool = True) str[source]

Add in automatic to configure /etc/yum.repos.d on the remote system if the automatic installation file (template file) contains the magic $yum_config_stanza.

Parameters
  • obj – The profile or system to generate a generate a config stanza for.

  • is_profile – If the object is a profile. If False it is assumed that the object is a system.

Returns

The curl command to execute to get the configuration for a system or profile.

generate_repo_stanza(obj: Union[Profile, System], is_profile: bool = True) str[source]

Automatically attaches yum repos to profiles/systems in automatic installation files (template files) that contain the magic $yum_repo_stanza variable. This includes repo objects as well as the yum repos that are part of split tree installs, whose data is stored with the distro (example: RHEL5 imports)

Parameters
  • obj – The profile or system to generate the repo stanza for.

  • is_profile – If True then obj is a profile, otherwise obj has to be a system. Otherwise this method will silently fail.

Returns

The string with the attached yum repos.

get_last_errors() List[Any][source]

Returns the list of errors generated by the last template render action.

Returns

The list of error messages which are available. This may not only contain error messages related to generating autoinstallation configuration and scripts.

8.6. cobbler.cexceptions module

Custom exceptions for Cobbler

exception cobbler.cexceptions.CX(value: Any, *args: Iterable[str])[source]

Bases: CobblerException

This is a general exception which gets thrown often inside Cobbler.

exception cobbler.cexceptions.CobblerException(value: Any, *args: Iterable[str])[source]

Bases: Exception

This is the default Cobbler exception where all other exceptions are inheriting from.

8.7. cobbler.cli module

Command line interface for Cobbler.

class cobbler.cli.CobblerCLI(cliargs)[source]

Bases: object

Main CLI Class which contains the logic to communicate with the Cobbler Server.

check_setup() int[source]

Detect permissions and service accessibility problems and provide nicer error messages for them.

cleanup_fault_string(fault_str: str) str[source]

Make a remote exception nicely readable by humans so it’s not evident that is a remote fault. Users should not have to understand tracebacks.

Parameters

fault_str – The stacktrace to niceify.

Returns

A nicer error messsage.

direct_command(action_name: str)[source]

Process non-object based commands like “sync” and “hardlink”.

Parameters

action_name – The action to execute.

Returns

Depending on the action.

follow_task(task_id)[source]

Parse out this task’s specific messages from the global log

Parameters

task_id – The id of the task to follow.

get_direct_action(object_type, args) Optional[str][source]

If this is a general command, e.g. “cobbler hardlink”, return the action, like “hardlink”

Parameters
  • object_type – Must be None or None is returned.

  • args – The arg from the CLI.

Returns

The action key, “version” or None.

get_fields(object_type: str) list[source]

For a given name of an object type, return the FIELDS data structure.

Parameters

object_type – The object to return the fields of.

Returns

The fields or None

get_object_action(object_type, args) Optional[str][source]

If this is a CLI command about an object type, e.g. “cobbler distro add”, return the action, like “add”

Parameters
  • object_type – The object type.

  • args – The args from the CLI.

Returns

The action or None.

get_object_type(args) Optional[str][source]

If this is a CLI command about an object type, e.g. “cobbler distro add”, return the type, like “distro”

Parameters

args – The args from the CLI.

Returns

The object type or None

object_command(object_type: str, object_action: str) int[source]

Process object-based commands such as “distro add” or “profile rename”

Parameters
  • object_type – The object type to execute an action for.

  • object_action – The action to execute.

Returns

Depending on the object and action.

Raises
print_help() int[source]

Prints general-top level help, e.g. “cobbler –help” or “cobbler” or “cobbler command-does-not-exist”

print_object_help(object_type) int[source]

Prints the subcommands for a given object, e.g. “cobbler distro –help”

Parameters

object_type – The object type to print the help for.

print_task(task_id)[source]

Pretty print a task executed on the server. This prints to stdout.

Parameters

task_id – The id of the task to be pretty printed.

run(args) int[source]

Process the command line and do what the user asks.

Parameters

args – The args of the CLI

start_task(name: str, options: dict) str[source]

Start an asynchronous task in the background.

Parameters
  • name – “background_” % name function must exist in remote.py. This function will be called in a subthread.

  • options – Dictionary of options passed to the newly started thread

Returns

Id of the newly started task

cobbler.cli.add_options_from_fields(object_type, parser, fields, network_interface_fields, settings, object_action)[source]

Add options to the command line from the fields queried from the Cobbler server.

Parameters
  • object_type – The object type to add options for.

  • parser – The optparse instance to add options to.

  • fields – The list of fields to add options for.

  • network_interface_fields – The list of network interface fields if the object type is a system.

  • settings – Global cobbler settings as returned from CollectionManager.settings()

  • object_action – The object action to add options for. May be “add”, “edit”, “find”, “copy”, “rename”, “remove”. If none of these options is given then this method does nothing.

cobbler.cli.get_comma_separated_args(option: Option, opt_str, value: str, parser: OptionParser)[source]

Simple callback function to achieve option split with comma.

Reference for the method signature can be found at:

https://docs.python.org/3/library/optparse.html#defining-a-callback-option

Parameters
  • option – The option the callback is executed for

  • opt_str – Unused for this callback function. Would be the extended option if the user used the short version.

  • value – The value which should be split by comma.

  • parser – The optparse instance which the callback should be added to.

cobbler.cli.list_items(remote, otype)[source]

List all items of a given object type and print it to stdout.

Parameters
  • remote – The remote to use as the query-source.

  • otype – The object type to query.

cobbler.cli.main() int[source]

CLI entry point

cobbler.cli.n2s(data)[source]

Return spaces for None

Parameters

data – The data to check for.

Returns

The data itself or an empty string.

cobbler.cli.opt(options, k, defval='')[source]

Returns an option from an Optparse values instance

Parameters
  • options – The options object to search in.

  • k – The key which is in the optparse values instance.

  • defval – The default value to return.

Returns

The value for the specified key.

cobbler.cli.report_item(remote, otype: str, item=None, name=None)[source]

Return a single item in a given collection. Either this is an item object or this method searches for a name.

Parameters
  • remote – The remote to use as the query-source.

  • otype – The object type to query.

  • item – The item to display

  • name – The name to search for and display.

cobbler.cli.report_items(remote, otype: str)[source]

Return all items for a given collection.

Parameters
  • remote – The remote to use as the query-source. The remote to use as the query-source.

  • otype – The object type to query.

cobbler.cli.report_single_breed(name: str, items: dict) int[source]

Helper function which prints a single signature breed list to the terminal.

cobbler.cli.to_string_from_fields(item_dict, fields, interface_fields=None) str[source]

item_dict is a dictionary, fields is something like item_distro.FIELDS :param item_dict: The dictionary representation of a Cobbler item. :param fields: This is the list of fields a Cobbler item has. :param interface_fields: This is the list of fields from a network interface of a system. This is optional. :return: The string representation of a Cobbler item with all its values.

8.8. cobbler.cobblerd module

8.9. cobbler.configgen module

configgen.py: Generate configuration data.

module for generating configuration manifest using autoinstall_meta data and templates for a given system (hostname)

class cobbler.configgen.ConfigGen(cobbler_api: CobblerAPI, hostname: str)[source]

Bases: object

Generate configuration data for Cobbler’s management resource “repos”. Mainly used by Koan to configure systems.

gen_config_data() Dict[Any, Any][source]

Generate configuration data for repos.

Returns

A dict which has all config data in it.

gen_config_data_for_koan() str[source]

Encode configuration data. Return json object for Koan.

Returns

A json string for koan.

get_cobbler_resource(resource_key: str) Union[List[Any], str, Dict[Any, Any]][source]

Wrapper around Cobbler blender method

Parameters

resource_key – Not known what this actually is doing.

Returns

The blendered data. In some cases this is a str, in others it is a list or it might be a dict. In case the key is not found it will return an empty string.

resolve_resource_var(string_data: Union[ResourceAction, str]) str[source]

Substitute variables in strings with data from the autoinstall_meta dictionary of the system.

Parameters

string_data – The template which will then be substituted by the variables in this class.

Returns

A str with the substituted data. If the host_vars are not of type dict then this will return an empty str.

Raises

KeyError – When the autoinstall_meta variable does not contain the required Keys in the dict.

8.10. cobbler.decorator module

This module provides decorators that are required for Cobbler to work as expected.

class cobbler.decorator.InheritableDictProperty(fget=None, fset=None, fdel=None, doc=None)[source]

Bases: InheritableProperty

This property is supposed to provide a way to identify properties in code that can be set to inherit.

class cobbler.decorator.InheritableProperty(fget=None, fset=None, fdel=None, doc=None)[source]

Bases: LazyProperty

This property is supposed to provide a way to identify properties in code that can be set to inherit.

inheritable = True
class cobbler.decorator.LazyProperty(fget=None, fset=None, fdel=None, doc=None)[source]

Bases: property

This property is supposed to provide a way to override the lazy-read value getter.

8.11. cobbler.download_manager module

Cobbler DownloadManager

class cobbler.download_manager.DownloadManager[source]

Bases: object

TODO

urlread(url: str, proxies: Any = None, cert: Optional[Union[str, Tuple[str, str]]] = None) Response[source]

Read the content of a given URL and pass the requests. Response object to the caller.

Parameters
  • url – The URL the request.

  • proxies – Override the default Cobbler proxies.

  • cert – Override the default Cobbler certs.

Returns

The Python requests.Response object.

8.12. cobbler.enums module

This module is responsible for containing all enums we use in Cobbler. It should not be dependent upon any other module except the Python standard library.

class cobbler.enums.Archs(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: ConvertableEnum

This enum describes all system architectures which Cobbler is able to provision.

AARCH64 = 'aarch64'
ARM = 'arm'
I386 = 'i386'
IA64 = 'ia64'
PPC = 'ppc'
PPC64 = 'ppc64'
PPC64EL = 'ppc64el'
PPC64LE = 'ppc64le'
S390 = 's390'
S390X = 's390x'
X86_64 = 'x86_64'
class cobbler.enums.BaudRates(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: Enum

This enum describes all baud rates which are commonly used.

B0 = 0
B110 = 110
B115200 = 115200
B1200 = 1200
B128000 = 128000
B14400 = 14400
B19200 = 19200
B2400 = 2400
B256000 = 256000
B300 = 300
B38400 = 38400
B4800 = 4800
B57600 = 57600
B600 = 600
B9600 = 9600
DISABLED = -1
class cobbler.enums.ConvertableEnum(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: Enum

Abstract class to convert the enum via our convert method.

classmethod to_enum(value: Union[str, CONVERTABLEENUM]) CONVERTABLEENUM[source]

This method converts the chosen str to the corresponding enum type.

Parameters

value – str which contains the to be converted value.

Returns

The enum value.

Raises
  • TypeError – In case value was not of type str.

  • ValueError – In case value was not in the range of valid values.

class cobbler.enums.DHCP(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: Enum

TODO

V4 = 4
V6 = 6
class cobbler.enums.EventStatus(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: ConvertableEnum

This enums describes the status an event can have. The cycle is the following:

“Running” –> “Complete” or “Failed”

COMPLETE = 'complete'

Shows that an event did complete as desired

FAILED = 'failed'

Shows that an event did not complete as expected

INFO = 'notification'

Default Event status

RUNNING = 'running'

Shows that an event is currently being processed by the server

class cobbler.enums.ImageTypes(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: ConvertableEnum

This enum represents all image types which Cobbler can manage.

DIRECT = 'direct'
ISO = 'iso'
MEMDISK = 'memdisk'
VIRT_CLONE = 'virt-clone'
class cobbler.enums.ItemTypes(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: ConvertableEnum

This enum represents all valid item types in Cobbler. If a new item type is created it must be added into this enum. Abstract base item types don’t have to be added here.

DISTRO = 'distro'

See Distro()

IMAGE = 'image'

See Image()

MENU = 'menu'

See Menu()

PROFILE = 'profile'

See Profile()

REPO = 'repo'

See Repo()

SYSTEM = 'system'

See System()

class cobbler.enums.MirrorType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: ConvertableEnum

This enum represents all mirror types which Cobbler can manage.

BASEURL = 'baseurl'
MIRRORLIST = 'mirrorlist'
NONE = 'none'
class cobbler.enums.NetworkInterfaceType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: Enum

This enum represents all interface types Cobbler is able to set up on a target host.

BMC = 6
BOND = 1
BONDED_BRIDGE_SLAVE = 5
BOND_SLAVE = 2
BRIDGE = 3
BRIDGE_SLAVE = 4
INFINIBAND = 7
NA = 0
class cobbler.enums.RepoArchs(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: ConvertableEnum

This enum describes all repository architectures Cobbler is able to serve in case the content of the repository is serving the same architecture.

AARCH64 = 'aarch64'
ARM = 'arm'
I386 = 'i386'
IA64 = 'ia64'
NOARCH = 'noarch'
NONE = 'none'
PPC = 'ppc'
PPC64 = 'ppc64'
PPC64EL = 'ppc64el'
PPC64LE = 'ppc64le'
S390 = 's390'
SRC = 'src'
X86_64 = 'x86_64'
class cobbler.enums.RepoBreeds(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: ConvertableEnum

This enum describes all repository breeds Cobbler is able to manage.

APT = 'apt'
NONE = 'none'
RHN = 'rhn'
RSYNC = 'rsync'
WGET = 'wget'
YUM = 'yum'
class cobbler.enums.ResourceAction(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: ConvertableEnum

This enum represents all actions a resource may execute.

CREATE = 'create'
REMOVE = 'remove'
class cobbler.enums.TlsRequireCert(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: ConvertableEnum

This enum represents all TLS validation server cert types which Cobbler can manage.

ALLOW = 'allow'
DEMAND = 'demand'
HARD = 'hard'
NEVER = 'never'
class cobbler.enums.VirtDiskDrivers(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: ConvertableEnum

This enum represents all virtual disk driver Cobbler can handle.

INHERITED = '<<inherit>>'
QCOW2 = 'qcow2'
QED = 'qed'
RAW = 'raw'
VDI = 'vdi'
VDMK = 'vdmk'
class cobbler.enums.VirtType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: ConvertableEnum

This enum represents all known types of virtualization Cobbler is able to handle via Koan.

AUTO = 'auto'
INHERITED = '<<inherit>>'
KVM = 'kvm'
OPENVZ = 'openvz'
QEMU = 'qemu'
VMWARE = 'vmware'
VMWAREW = 'vmwarew'
XENFV = 'xenfv'
XENPV = 'xenpv'

8.13. cobbler.grub module

Module that contains GRUB related helper functionality.

cobbler.grub.parse_grub_remote_file(file_location: str) Optional[str][source]

Parses a URI which grub would try to load from the network.

Parameters

file_location – The location which grub would try to load from the network.

Returns

In case the URL could be parsed it is returned in the converted format. Otherwise None is returned.

Raises
  • TypeError – In case file_location is not of type str.

  • ValueError – In case the file location does not contain a valid IPv4 or IPv6 address

8.14. cobbler.module_loader module

Module loader, adapted for Cobbler usage

class cobbler.module_loader.ModuleLoader(api: CobblerAPI, module_path: str = '')[source]

Bases: object

Class for dynamically loading Cobbler Plugins on startup

get_module_by_name(name: str) Optional[module][source]

Get a module by its name. The category of the module is not needed.

Parameters

name – The name of the module.

Returns

The module asked by the function parameter.

get_module_from_file(category: str, field: str, fallback_module_name: Optional[str] = None) module[source]

Get Python module, based on name defined in configuration file

Parameters
  • category – field category in configuration file

  • field – field in configuration file

  • fallback_module_name – default value used if category/field is not found in configuration file

Raises

CX – If unable to load Python module

Returns

A Python module.

get_module_name(category: str, field: str, fallback_module_name: Optional[str] = None) str[source]

Get module name from the settings.

Parameters
  • category – Field category in configuration file.

  • field – Field in configuration file

  • fallback_module_name – Default value used if category/field is not found in configuration file

Raises
  • FileNotFoundError – If unable to find configuration file.

  • ValueError – If the category does not exist or the field is empty.

  • CX – If the field could not be read and no fallback_module_name was given.

Returns

The name of the module.

get_modules_in_category(category: str) List[module][source]

Return all modules of a module category.

Parameters

category – The module category.

Returns

A list of all modules of that category. Returns an empty list if the Category does not exist.

load_modules() Tuple[Dict[str, module], Dict[str, Dict[str, module]]][source]

Load the modules from the path handed to the function into Cobbler.

Returns

Two dictionary’s with the dynamically loaded modules.

8.15. cobbler.power_manager module

Power management library. Encapsulate the logic to run power management commands so that the Cobbler user does not have to remember different power management tools syntaxes. This makes rebooting a system for OS installation much easier.

class cobbler.power_manager.PowerManager(api: CobblerAPI)[source]

Bases: object

Handles power management in systems

get_power_status(system: System, user: Optional[str] = None, password: Optional[str] = None) Optional[bool][source]

Get power status for a system that has power management configured.

Parameters
  • system (System) – Cobbler system

  • user – power management user

  • password – power management password

Returns

if system is powered on

power_off(system: System, user: Optional[str] = None, password: Optional[str] = None) None[source]

Powers down a system that has power management configured.

Parameters
  • system (System) – Cobbler system

  • user – power management user

  • password – power management password

power_on(system: System, user: Optional[str] = None, password: Optional[str] = None) None[source]

Powers up a system that has power management configured.

Parameters
  • system (System) – Cobbler system

  • user – power management user

  • password – power management password

reboot(system: System, user: Optional[str] = None, password: Optional[str] = None) None[source]

Reboot a system that has power management configured.

Parameters
  • system (System) – Cobbler system

  • user – power management user

  • password – power management password

cobbler.power_manager.get_power_command(power_type: str) Optional[str][source]

Get power management command path

Parameters

power_type – power management type

Returns

power management command path

cobbler.power_manager.get_power_types() List[str][source]

Get possible power management types.

Returns

Possible power management types

cobbler.power_manager.validate_power_type(power_type: str) None[source]

Check if a power management type is valid.

Parameters

power_type – Power management type.

Raises

CX – if power management type is invalid

8.16. cobbler.remote module

This module contains all code related to the Cobbler XML-RPC API.

Changelog:

Schema: From -> To

Current Schema: Please refer to the documentation visible of the individual methods.

V3.4.0 (unreleased)
  • Added:
    • set_item_resolved_value

    • input_string_or_list_no_inherit

    • input_string_or_list

    • input_string_or_dict

    • input_string_or_dict_no_inherit

    • input_boolean

    • input_int

  • Changed:
    • `get_random_mac: Change default virt_type` to kvm

V3.3.4 (unreleased)
  • No changes

V3.3.3
  • Added:
    • get_item_resolved_value

    • dump_vars

V3.3.2
  • No changes

V3.3.1
  • Changed:
    • background_mkgrub: Renamed to background_mkloaders

V3.3.0
  • Added:
    • background_syncsystems

    • background_mkgrub

    • get_menu

    • find_menu

    • get_menu_handle

    • remove_menu

    • copy_menu

    • rename_menu

    • new_menu

    • modify_menu

    • save_menu

    • get_valid_distro_boot_loaders

    • get_valid_image_boot_loaders

    • get_valid_profile_boot_loaders

    • get_valid_system_boot_loaders

    • get_menus_since

    • get_menu_as_rendered

  • Changed:
    • generate_gpxe: Renamed to generate_ipxe

  • Removed:
    • background_dlcontent

    • get_distro_for_koan

    • get_profile_for_koan

    • get_system_for_koan

    • get_repo_for_koan

    • get_image_for_koan

    • get_mgmtclass_for_koan

    • get_package_for_koan

    • get_file_for_koan

    • get_file_for_koan

V3.2.2
  • No changes

V3.2.1
  • Added:
    • auto_add_repos

V3.2.0
  • No changes

V3.1.2
  • No changes

V3.1.1
  • No changes

V3.1.0
  • No changes

V3.0.1
  • No changes

V3.0.0
  • Added:
    • generate_profile_autoinstall

    • generate_system_autoinstall

    • get_valid_archs

    • read_autoinstall_template

    • write_autoinstall_template

    • remove_autoinstall_template

    • read_autoinstall_snippet

    • write_autoinstall_snippet

    • remove_autoinstall_snippet

  • Changed:
    • get_kickstart_templates: Renamed to get_autoinstall_templates

    • get_snippets: Renamed to get_autoinstall_snippets

    • is_kickstart_in_use: Renamed to is_autoinstall_in_use

    • generate_kickstart: Renamed to generate_autoinstall

  • Removed:
    • update

    • read_or_write_kickstart_template

    • read_or_write_snippet

V2.8.5
  • Inital tracking of changes.

class cobbler.remote.CobblerXMLRPCInterface(api: CobblerAPI)[source]

Bases: object

This is the interface used for all XMLRPC methods, for instance, as used by koan or CobblerWeb.

Most read-write operations require a token returned from “login”. Read operations do not.

auto_add_repos(token: str)[source]
Parameters

token – The API-token obtained via the login() method.

background_aclsetup(options: Dict[str, Any], token: str) str[source]

Get the acl configuration from the config and set the acls in the backgroud.

Parameters
  • options – Not known what this parameter does.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

Returns

The id of the task which was started.

background_buildiso(options: Dict[str, Any], token: str) str[source]

Generates an ISO in /var/www/cobbler/pub that can be used to install profiles without using PXE.

Parameters
  • options – This parameter does contain the options passed from the CLI or remote API who called this.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

Returns

The id of the task which was started.

Hardlink all files as a background task.

Parameters
  • options – Not known what this parameter does.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

Returns

The id of the task which was started.

background_import(options: Dict[str, Any], token: str) str[source]

Import an ISO image in the background.

Parameters
  • options – Not known what this parameter does.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

Returns

The id of the task which was started.

background_load_items() str[source]

Loading items

background_mkloaders(options: Dict[str, Any], token: str) str[source]

TODO

Parameters
  • options – TODO

  • token – TODO

Returns

TODO

background_power_system(options: Dict[str, Any], token: str) str[source]

Power a system asynchronously in the background.

Parameters
  • options – Not known what this parameter does.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

Returns

The id of the task which was started.

background_replicate(options: Dict[str, Any], token: str) str[source]

Replicate Cobbler in the background to another Cobbler instance.

Parameters
  • options – Not known what this parameter does.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

Returns

The id of the task which was started.

background_reposync(options: Dict[str, Any], token: str) str[source]

Run a reposync in the background.

Parameters
  • options – Not known what this parameter does.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

Returns

The id of the task which was started.

background_signature_update(options: Dict[str, Any], token: str) str[source]

Run a signature update in the background.

Parameters
  • options – Not known what this parameter does.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

Returns

The id of the task which was started.

background_sync(options: Dict[str, Any], token: str) str[source]

Run a full Cobbler sync in the background.

Parameters
  • options – Possible options: verbose, dhcp, dns

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

Returns

The id of the task which was started.

background_syncsystems(options: Dict[str, Any], token: str) str[source]

Run a lite Cobbler sync in the background with only systems specified.

Parameters
  • options – Unknown what this parameter does.

  • token – The API-token obtained via the login() method.

Returns

The id of the task that was started.

background_validate_autoinstall_files(options: Dict[str, Any], token: str) str[source]

Validate all autoinstall files in the background.

Parameters
  • options – Not known what this parameter does.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

Returns

The id of the task which was started.

check(token: str) List[str][source]

Returns a list of all the messages/warnings that are things that admin may want to correct about the configuration of the Cobbler server. This has nothing to do with “check_access” which is an auth/authz function in the XMLRPC API.

Parameters

token – The API-token obtained via the login() method. The API-token obtained via the login() method.

Returns

A list of things to address.

check_access(token: Optional[str], resource: str, arg1: Optional[str] = None, arg2: Any = None) int[source]

Check if the token which was provided has access.

Parameters
  • token – The token to check access for.

  • resource – The resource for which access shall be checked.

  • arg1 – Arguments to hand to the authorization provider.

  • arg2 – Arguments to hand to the authorization provider.

Returns

If the operation was successful return 1. If unsuccessful then return 0. Other codes may be returned if specified by the currently configured authorization module.

check_access_no_fail(token: str, resource: str, arg1: Optional[str] = None, arg2: Any = None) int[source]

This is called by the WUI to decide whether an element is editable or not. It differs form check_access in that it is supposed to /not/ log the access checks (TBA) and does not raise exceptions.

Parameters
  • token – The token to check access for.

  • resource – The resource for which access shall be checked.

  • arg1 – Arguments to hand to the authorization provider.

  • arg2 – Arguments to hand to the authorization provider.

Returns

1 if the object is editable or 0 otherwise.

clear_system_logs(object_id: str, token: str) bool[source]

clears console logs of a system

Parameters
  • object_id – The object id of the system to clear the logs of.

  • token – The API-token obtained via the login() method.

Returns

True if the operation succeeds.

copy_distro(object_id: str, newname: str, token: Optional[str] = None)[source]

Copies a distribution and renames it afterwards.

Parameters
  • object_id – The object id of the item in question.

  • newname – The new name for the copied object.

  • token – The API-token obtained via the login() method.

Returns

True if the action succeeded.

copy_image(object_id: str, newname: str, token: Optional[str] = None)[source]

Copies an image and renames it afterwards.

Parameters
  • object_id – The object id of the item in question.

  • newname – The new name for the copied object.

  • token – The API-token obtained via the login() method.

Returns

True if the action succeeded.

copy_item(what: str, object_id: str, newname: str, token: Optional[str] = None)[source]

Creates a new object that matches an existing object, as specified by an id.

Parameters
  • what – The item type which should be copied.

  • object_id – The object id of the item in question.

  • newname – The new name for the copied object.

  • token – The API-token obtained via the login() method.

Returns

True if the action succeeded.

copy_menu(object_id: str, newname: str, token: Optional[str] = None)[source]

Copies a menu and rename it afterwards.

Parameters
  • object_id – The object id of the item in question.

  • newname – The new name for the copied object.

  • token – The API-token obtained via the login() method.

Returns

True if the action succeeded.

copy_profile(object_id: str, newname: str, token: Optional[str] = None)[source]

Copies a profile and renames it afterwards.

Parameters
  • object_id – The object id of the item in question.

  • newname – The new name for the copied object.

  • token – The API-token obtained via the login() method.

Returns

True if the action succeeded.

copy_repo(object_id: str, newname: str, token: Optional[str] = None)[source]

Copies a repository and renames it afterwards.

Parameters
  • object_id – The object id of the item in question.

  • newname – The new name for the copied object.

  • token – The API-token obtained via the login() method.

Returns

True if the action succeeded.

copy_system(object_id: str, newname: str, token: Optional[str] = None)[source]

Copies a system and renames it afterwards.

Parameters
  • object_id – The object id of the item in question.

  • newname – The new name for the copied object.

  • token – The API-token obtained via the login() method.

Returns

True if the action succeeded.

disable_netboot(name: str, token: Optional[str] = None, **rest: Any) bool[source]

This is a feature used by the pxe_just_once support, see manpage. Sets system named “name” to no-longer PXE. Disabled by default as this requires public API access and is technically a read-write operation.

Parameters
  • name – The name of the system to disable netboot for.

  • token – The API-token obtained via the login() method.

  • rest – This parameter is unused.

Returns

A boolean indicated the success of the action.

dump_vars(item_uuid: str, formatted_output: bool = False, remove_dicts: bool = True)[source]

This function dumps all variables related to an object. The difference to the above mentioned function is that it accepts the item uid instead of the Python object itself.

See also

Logically identical to dump_vars()

extended_version(token: Optional[str] = None, **rest: Any) Dict[str, Union[str, List[str]]][source]

Returns the full dictionary of version information. See api.py for documentation.

Parameters
  • token – The API-token obtained via the login() method.

  • rest – This is dropped in this method since it is not needed here.

Returns

The extended version of Cobbler

find_distro(criteria: Optional[Dict[str, Any]] = None, expand: bool = False, resolved: bool = False, token: Optional[str] = None, **rest: Any) List[Any][source]

Find a distro matching certain criteria.

Parameters
  • criteria – The criteria a distribution needs to match.

  • expand – Not only get the names but also the complete object in form of a dict.

  • resolved – This only has an effect when expand = True. It returns the resolved representation of the object instead of the raw data.

  • token – The API-token obtained via the login() method.

  • rest – This parameter is not used currently.

Returns

All distributions which have matched the criteria.

find_image(criteria: Optional[Dict[str, Any]] = None, expand: bool = False, resolved: bool = False, token: Optional[str] = None, **rest: Any) List[Any][source]

Find an image matching certain criteria.

Parameters
  • criteria – The criteria a distribution needs to match.

  • expand – Not only get the names but also the complete object in form of a dict.

  • resolved – This only has an effect when expand = True. It returns the resolved representation of the object instead of the raw data.

  • token – The API-token obtained via the login() method.

  • rest – This parameter is not used currently.

Returns

All images which have matched the criteria.

find_items(what: str, criteria: Optional[Dict[str, Any]] = None, sort_field: Optional[str] = None, expand: bool = False, resolved: bool = False, token: Optional[str] = None, **rest: Any) List[Any][source]

Works like get_items but also accepts criteria as a dict to search on.

Example: { "name" : "*.example.org" }

Wildcards work as described by ‘pydoc fnmatch’.

Parameters
  • what – The object type to find.

  • criteria – The criteria an item needs to match.

  • sort_field – The field to sort the results after.

  • expand – Not only get the names but also the complete object in form of a dict.

  • resolved – This only has an effect when expand = True. It returns the resolved representation of the object instead of the raw data.

Returns

A list of dicts.

find_items_paged(what: str, criteria: Optional[Dict[str, Any]] = None, sort_field: Optional[str] = None, page: int = 1, items_per_page: int = 25, resolved: bool = False, token: Optional[str] = None)[source]

Returns a list of dicts as with find_items but additionally supports returning just a portion of the total list, for instance in supporting a web app that wants to show a limited amount of items per page.

Parameters
  • what – The object type to find.

  • criteria – The criteria a distribution needs to match.

  • sort_field – The field to sort the results after.

  • page – The page to return

  • items_per_page – The number of items per page.

  • resolved – This only has an effect when expand = True. It returns the resolved representation of the object instead of the raw data.

  • token – The API-token obtained via the login() method.

Returns

The found items.

find_menu(criteria: Optional[Dict[str, Any]] = None, expand: bool = False, resolved: bool = False, token: Optional[str] = None, **rest: Any) List[Any][source]

Find a menu matching certain criteria.

Parameters
  • criteria – The criteria a distribution needs to match.

  • expand – Not only get the names but also the complete object in form of a dict.

  • resolved – This only has an effect when expand = True. It returns the resolved representation of the object instead of the raw data.

  • token – The API-token obtained via the login() method.

  • rest – This parameter is not used currently.

Returns

All files which have matched the criteria.

find_profile(criteria: Optional[Dict[str, Any]] = None, expand: bool = False, resolved: bool = False, token: Optional[str] = None, **rest: Any) List[Any][source]

Find a profile matching certain criteria.

Parameters
  • criteria – The criteria a distribution needs to match.

  • expand – Not only get the names but also the complete object in form of a dict.

  • resolved – This only has an effect when expand = True. It returns the resolved representation of the object instead of the raw data.

  • token – The API-token obtained via the login() method.

  • rest – This parameter is not used currently.

Returns

All profiles which have matched the criteria.

find_repo(criteria: Optional[Dict[str, Any]] = None, expand: bool = False, resolved: bool = False, token: Optional[str] = None, **rest: Any) List[Any][source]

Find a repository matching certain criteria.

Parameters
  • criteria – The criteria a distribution needs to match.

  • expand – Not only get the names but also the complete object in form of a dict.

  • resolved – This only has an effect when expand = True. It returns the resolved representation of the object instead of the raw data.

  • token – The API-token obtained via the login() method.

  • rest – This parameter is not used currently.

Returns

All repositories which have matched the criteria.

find_system(criteria: Optional[Dict[str, Any]] = None, expand: bool = False, resolved: bool = False, token: Optional[str] = None, **rest: Any) List[Any][source]

Find a system matching certain criteria.

Parameters
  • criteria – The criteria a distribution needs to match.

  • expand – Not only get the names but also the complete object in form of a dict.

  • resolved – This only has an effect when expand = True. It returns the resolved representation of the object instead of the raw data.

  • token – The API-token obtained via the login() method.

  • rest – This parameter is not used currently.

Returns

All systems which have matched the criteria.

find_system_by_dns_name(dns_name: str) Dict[str, Any][source]

This is used by the puppet external nodes feature.

Parameters

dns_name – The dns name of the system. This should be the fqdn and not only the hostname.

Returns

All system information or an empty dict.

generate_autoinstall(profile: Optional[str] = None, system: Optional[str] = None, REMOTE_ADDR: Optional[Any] = None, REMOTE_MAC: Optional[Any] = None, **rest: Any) str[source]

Generate the autoinstallation file and return it.

Parameters
  • profile – The profile to generate the file for.

  • system – The system to generate the file for.

  • REMOTE_ADDR – This is dropped in this method since it is not needed here.

  • REMOTE_MAC – This is dropped in this method since it is not needed here.

  • rest – This is dropped in this method since it is not needed here.

Returns

The str representation of the file.

generate_bootcfg(profile: Optional[str] = None, system: Optional[str] = None, **rest: Any) str[source]

This generates the bootcfg for a system which is related to a certain profile.

Parameters
  • profile – The profile which is associated to the system.

  • system – The system which the bootcfg should be generated for.

  • rest – This is dropped in this method since it is not needed here.

Returns

The generated bootcfg.

generate_ipxe(profile: Optional[str] = None, image: Optional[str] = None, system: Optional[str] = None, **rest: Any) str[source]

Generate the ipxe configuration.

Parameters
  • profile – The profile to generate iPXE config for.

  • image – The image to generate iPXE config for.

  • system – The system to generate iPXE config for.

  • rest – This is dropped in this method since it is not needed here.

Returns

The configuration as a str representation.

generate_profile_autoinstall(profile: str)[source]

Generate a profile autoinstallation.

Parameters

profile – The profile to generate the file for.

Returns

The str representation of the file.

generate_script(profile: Optional[str] = None, system: Optional[str] = None, name: str = '') str[source]

This generates the autoinstall script for a system or profile. Profile and System cannot be both given, if they are, Profile wins.

Parameters
  • profile – The profile name to generate the script for.

  • system – The system name to generate the script for.

  • name – Name of the generated script. Must only contain alphanumeric characters, dots and underscores.

Returns

Some generated script.

generate_system_autoinstall(system: str)[source]

Generate a system autoinstallation.

Parameters

system – The system to generate the file for.

Returns

The str representation of the file.

get_authn_module_name(token: str) str[source]

Get the name of the currently used authentication module.

Parameters

token – The API-token obtained via the login() method. Cobbler token, obtained form login()

Returns

The name of the module.

get_autoinstall_snippets(token: Optional[str] = None, **rest: Any)[source]

Returns all the automatic OS installation templates’ snippets.

Parameters
  • token – The API-token obtained via the login() method.

  • rest – This is dropped in this method since it is not needed here.

Returns

A list with all snippets.

get_autoinstall_templates(token: Optional[str] = None, **rest: Any)[source]

Returns all of the automatic OS installation templates that are in use by the system.

Parameters
  • token – The API-token obtained via the login() method.

  • rest – This is dropped in this method since it is not needed here.

Returns

A list with all templates.

get_blended_data(profile: Optional[str] = None, system: Optional[str] = None)[source]

Combine all data which is available from a profile and system together and return it.

Deprecated since version 3.4.0: Please make use of the dump_vars endpoint.

Parameters
  • profile – The profile of the system.

  • system – The system for which the data should be rendered.

Returns

All values which could be blended together through the inheritance chain.

get_config_data(hostname: str) str[source]

Generate configuration data for the system specified by hostname.

Parameters

hostname – The hostname for what to get the config data of.

Returns

The config data as a json for Koan.

get_distro(name: str, flatten: bool = False, resolved: bool = False, token: Optional[str] = None, **rest: Any)[source]

Get a distribution.

Parameters
  • name – The name of the distribution to get.

  • flatten – If the item should be flattened.

  • resolved – If this is True, Cobbler will resolve the values to its final form, rather than give you the objects raw value.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

  • rest – Not used with this method currently.

Returns

The item or None.

get_distro_as_rendered(name: str, token: Optional[str] = None, **rest: Any) Union[List[Any], Dict[Any, Any], int, str, float][source]

Get distribution after passing through Cobbler’s inheritance engine.

Parameters
  • name – distro name

  • token – authentication token

  • rest – This is dropped in this method since it is not needed here.

Returns

Get a template rendered as a distribution.

get_distro_handle(name: str)[source]

Get a handle for a distribution which allows you to use the functions modify_* or save_* to manipulate it.

Parameters

name – The name of the item.

Returns

The handle of the desired object.

get_distros(page: Any = None, results_per_page: Any = None, token: Optional[str] = None, **rest: Any) List[Dict[str, Any]][source]

This returns all distributions.

Parameters
  • page – This parameter is not used currently.

  • results_per_page – This parameter is not used currently.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

  • rest – This parameter is not used currently.

Returns

The list with all distros.

get_distros_since(mtime: float) Union[List[Any], Dict[Any, Any], int, str, float][source]

Return all of the distro objects that have been modified after mtime.

Parameters

mtime – The time after which all items should be included. Everything before this will be excluded.

Returns

The list of items which were modified after mtime.

get_event_log(event_id: str) str[source]

Returns the contents of a task log. Events that are not task-based do not have logs.

Parameters

event_id – The event-id generated by Cobbler.

Returns

The event log or a ?.

get_events(for_user: str = '') Dict[str, List[Union[str, float]]][source]

Returns a dict(key=event id) = [ statetime, name, state, [read_by_who] ]

Parameters

for_user – (Optional) Filter events the user has not seen yet. If left unset, it will return all events.

Returns

A dictionary with all the events (or all filtered events).

get_image(name: str, flatten: bool = False, resolved: bool = False, token: Optional[str] = None, **rest: Any)[source]

Get an image.

Parameters
  • name – The name of the image to get.

  • flatten – If the item should be flattened.

  • resolved – If this is True, Cobbler will resolve the values to its final form, rather than give you the objects raw value.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

  • rest – Not used with this method currently.

Returns

The item or None.

get_image_as_rendered(name: str, token: Optional[str] = None, **rest: Any) Union[List[Any], Dict[Any, Any], int, str, float][source]

Get repository after passing through Cobbler’s inheritance engine.

Parameters
  • name – image name

  • token – authentication token

  • rest – This is dropped in this method since it is not needed here.

Returns

Get a template rendered as an image.

get_image_handle(name: str)[source]

Get a handle for an image which allows you to use the functions modify_* or save_* to manipulate it.

Parameters

name – The name of the item.

Returns

The handle of the desired object.

get_images(page: Any = None, results_per_page: Any = None, token: Optional[str] = None, **rest: Any) List[Dict[str, Any]][source]

This returns all images.

Parameters
  • page – This parameter is not used currently.

  • results_per_page – This parameter is not used currently.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

  • rest – This parameter is not used currently.

Returns

The list of all images.

get_images_since(mtime: float) Union[List[Any], Dict[Any, Any], int, str, float][source]

See documentation for get_distros_since

Parameters

mtime – The time after which all items should be included. Everything before this will be excluded.

Returns

The list of items which were modified after mtime.

get_item(what: str, name: str, flatten: bool = False, resolved: bool = False)[source]

Returns a dict describing a given object.

Parameters
  • what – “distro”, “profile”, “system”, “image”, “repo”, etc

  • name – the object name to retrieve

  • flatten – reduce dicts to string representations (True/False)

  • resolved – If this is True, Cobbler will resolve the values to its final form, rather than give you the objects raw value.

Returns

The item or None.

get_item_handle(what: str, name: str) str[source]

Given the name of an object (or other search parameters), return a reference (object id) that can be used with modify_* functions or save_* functions to manipulate that object.

Parameters
  • what – The collection where the item is living in.

  • name – The name of the item.

Returns

The handle of the desired object.

get_item_names(what: str) List[str][source]

This is just like get_items, but transmits less data.

Parameters

what – is the name of a Cobbler object type, as described for get_item.

Returns

Returns a list of object names (keys) for the given object type.

get_item_resolved_value(item_uuid: str, attribute: str) Union[str, int, float, List[Any], Dict[Any, Any]][source]

See also

Logically identical to get_item_resolved_value()

get_items(what: str) List[Dict[str, Any]][source]

Individual list elements are the same for get_item.

Parameters

what – is the name of a Cobbler object type, as described for get_item.

Returns

This returns a list of dicts.

get_menu(name: str, flatten: bool = False, resolved: bool = False, token: Optional[str] = None, **rest: Any)[source]

Get a menu.

Parameters
  • name – The name of the file to get.

  • flatten – If the item should be flattened.

  • resolved – If this is True, Cobbler will resolve the values to its final form, rather than give you the objects raw value.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

  • rest – Not used with this method currently.

Returns

The item or None.

get_menu_as_rendered(name: str, token: Optional[str] = None, **rest: Any) Union[List[Any], Dict[Any, Any], int, str, float][source]

Get menu after passing through Cobbler’s inheritance engine

Parameters
  • name – Menu name

  • token – Authentication token

  • rest – This is dropped in this method since it is not needed here.

Returns

Get a template rendered as a file.

get_menu_handle(name: str)[source]

Get a handle for a menu which allows you to use the functions modify_* or save_* to manipulate it.

Parameters

name – The name of the item.

Returns

The handle of the desired object.

get_menus(page: Any = None, results_per_page: Any = None, token: Optional[str] = None, **rest: Any) List[Dict[str, Any]][source]

This returns all menus.

Parameters
  • page – This parameter is not used currently.

  • results_per_page – This parameter is not used currently.

  • token – The API-token obtained via the login() method.

  • rest – This parameter is not used currently.

Returns

The list of all files.

get_menus_since(mtime: float) Union[List[Any], Dict[Any, Any], int, str, float][source]

See documentation for get_distros_since

Parameters

mtime – The time after which all items should be included. Everything before this will be excluded.

Returns

The list of items which were modified after mtime.

get_profile(name: str, flatten: bool = False, resolved: bool = False, token: Optional[str] = None, **rest: Any)[source]

Get a profile.

Parameters
  • name – The name of the profile to get.

  • flatten – If the item should be flattened.

  • resolved – If this is True, Cobbler will resolve the values to its final form, rather than give you the objects raw value.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

  • rest – Not used with this method currently.

Returns

The item or None.

get_profile_as_rendered(name: str, token: Optional[str] = None, **rest: Any) Union[List[Any], Dict[Any, Any], int, str, float][source]

Get profile after passing through Cobbler’s inheritance engine.

Parameters
  • name – profile name

  • token – authentication token

  • rest – This is dropped in this method since it is not needed here.

Returns

Get a template rendered as a profile.

get_profile_handle(name: str)[source]

Get a handle for a profile which allows you to use the functions modify_* or save_* to manipulate it.

Parameters

name – The name of the item.

Returns

The handle of the desired object.

get_profiles(page: Any = None, results_per_page: Any = None, token: Optional[str] = None, **rest: Any) List[Dict[str, Any]][source]

This returns all profiles.

Parameters
  • page – This parameter is not used currently.

  • results_per_page – This parameter is not used currently.

  • token – The API-token obtained via the login() method. The API-token obtained via the login() method.

  • rest – This parameter is not used currently.

Returns

The list with all profiles.

get_profiles_since(mtime: float) Union[List[Any], Dict[Any, Any], int, str, float][source]

See documentation for get_distros_since

Parameters

mtime – The time after which all items should be included. Everything before this will be excluded.

Returns

The list of items which were modified after mtime.

get_random_mac(virt_type: str = 'kvm', token: Optional[str] = None, **rest: Any) str[source]

Wrapper for utils.get_random_mac(). Used in the webui.

Parameters
  • virt_type – The type of the virtual machine.

  • token – The API-token obtained via the login() method. Auth token to authenticate against the api.

  • rest – This is dropped in this method since it is n