+#
+# Copyright (C) 2020 Red Hat, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+importlogging
+log=logging.getLogger("lorax")
+
+importdnf
+importos
+importshutil
+
+frompyloraximportDEFAULT_PLATFORM_ID
+frompylorax.sysutilsimportflatconfig
+
+
[docs]defget_dnf_base_object(installroot,sources,mirrorlists=None,repos=None,
+ enablerepos=None,disablerepos=None,
+ tempdir="/var/tmp",proxy=None,releasever="8",
+ cachedir=None,logdir=None,sslverify=True):
+ """ Create a dnf Base object and setup the repositories and installroot
+
+ :param string installroot: Full path to the installroot
+ :param list sources: List of source repo urls to use for the installation
+ :param list enablerepos: List of repo names to enable
+ :param list disablerepos: List of repo names to disable
+ :param list mirrorlist: List of mirrors to use
+ :param string tempdir: Path of temporary directory
+ :param string proxy: http proxy to use when fetching packages
+ :param string releasever: Release version to pass to dnf
+ :param string cachedir: Directory to use for caching packages
+ :param bool noverifyssl: Set to True to ignore the CA of ssl certs. eg. use self-signed ssl for https repos.
+
+ If tempdir is not set /var/tmp is used.
+ If cachedir is None a dnf.cache directory is created inside tmpdir
+ """
+ defsanitize_repo(repo):
+ """Convert bare paths to file:/// URIs, and silently reject protocols unhandled by yum"""
+ ifrepo.startswith("/"):
+ return"file://{0}".format(repo)
+ elifany(repo.startswith(p)forpin('http://','https://','ftp://','file://')):
+ returnrepo
+ else:
+ returnNone
+
+ mirrorlists=mirrorlistsor[]
+
+ # sanitize the repositories
+ sources=list(sanitize_repo(r)forrinsources)
+ mirrorlists=list(sanitize_repo(r)forrinmirrorlists)
+
+ # remove invalid repositories
+ sources=list(rforrinsourcesifr)
+ mirrorlists=list(rforrinmirrorlistsifr)
+
+ ifnotcachedir:
+ cachedir=os.path.join(tempdir,"dnf.cache")
+ ifnotos.path.isdir(cachedir):
+ os.mkdir(cachedir)
+
+ ifnotlogdir:
+ logdir=os.path.join(tempdir,"dnf.logs")
+ ifnotos.path.isdir(logdir):
+ os.mkdir(logdir)
+
+ dnfbase=dnf.Base()
+ conf=dnfbase.conf
+ conf.logdir=logdir
+ conf.cachedir=cachedir
+
+ conf.install_weak_deps=False
+ conf.releasever=releasever
+ conf.installroot=installroot
+ conf.prepend_installroot('persistdir')
+ conf.tsflags.append('nodocs')
+
+ ifproxy:
+ conf.proxy=proxy
+
+ ifsslverify==False:
+ conf.sslverify=False
+
+ # DNF 3.2 needs to have module_platform_id set, otherwise depsolve won't work correctly
+ ifnotos.path.exists("/etc/os-release"):
+ log.warning("/etc/os-release is missing, cannot determine platform id, falling back to %s",DEFAULT_PLATFORM_ID)
+ platform_id=DEFAULT_PLATFORM_ID
+ else:
+ os_release=flatconfig("/etc/os-release")
+ platform_id=os_release.get("PLATFORM_ID",DEFAULT_PLATFORM_ID)
+ log.info("Using %s for module_platform_id",platform_id)
+ conf.module_platform_id=platform_id
+
+ # Add .repo files
+ ifrepos:
+ reposdir=os.path.join(tempdir,"dnf.repos")
+ ifnotos.path.isdir(reposdir):
+ os.mkdir(reposdir)
+ forrinrepos:
+ shutil.copy2(r,reposdir)
+ conf.reposdir=[reposdir]
+ dnfbase.read_all_repos()
+
+ # add the sources
+ fori,rinenumerate(sources):
+ if"SRPM"inror"srpm"inr:
+ log.info("Skipping source repo: %s",r)
+ continue
+ repo_name="lorax-repo-%d"%i
+ repo=dnf.repo.Repo(repo_name,conf)
+ repo.baseurl=[r]
+ ifproxy:
+ repo.proxy=proxy
+ repo.enable()
+ dnfbase.repos.add(repo)
+ log.info("Added '%s': %s",repo_name,r)
+ log.info("Fetching metadata...")
+ try:
+ repo.load()
+ exceptdnf.exceptions.RepoErrorase:
+ log.error("Error fetching metadata for %s: %s",repo_name,e)
+ returnNone
+
+ # add the mirrorlists
+ fori,rinenumerate(mirrorlists):
+ if"SRPM"inror"srpm"inr:
+ log.info("Skipping source repo: %s",r)
+ continue
+ repo_name="lorax-mirrorlist-%d"%i
+ repo=dnf.repo.Repo(repo_name,conf)
+ repo.mirrorlist=r
+ ifproxy:
+ repo.proxy=proxy
+ repo.enable()
+ dnfbase.repos.add(repo)
+ log.info("Added '%s': %s",repo_name,r)
+ log.info("Fetching metadata...")
+ try:
+ repo.load()
+ exceptdnf.exceptions.RepoErrorase:
+ log.error("Error fetching metadata for %s: %s",repo_name,e)
+ returnNone
+
+ # Enable repos listed on the cmdline
+ forrinenablerepos:
+ repolist=dnfbase.repos.get_matching(r)
+ ifnotrepolist:
+ log.warning("%s is an unknown repo, not enabling it",r)
+ else:
+ repolist.enable()
+ log.info("Enabled repo %s",r)
+
+ # Disable repos listed on the cmdline
+ forrindisablerepos:
+ repolist=dnfbase.repos.get_matching(r)
+ ifnotrepolist:
+ log.warning("%s is an unknown repo, not disabling it",r)
+ else:
+ repolist.disable()
+ log.info("Disabled repo %s",r)
+
+ dnfbase.fill_sack(load_system_repo=False)
+ dnfbase.read_comps()
+
+ returndnfbase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/rhel8-branch/_modules/pylorax/dnfhelper.html b/rhel8-branch/_modules/pylorax/dnfhelper.html
index 779d5ce5..8560206f 100644
--- a/rhel8-branch/_modules/pylorax/dnfhelper.html
+++ b/rhel8-branch/_modules/pylorax/dnfhelper.html
@@ -8,7 +8,7 @@
- pylorax.dnfhelper — Lorax 28.14.33 documentation
+ pylorax.dnfhelper — Lorax 28.14.42 documentation
@@ -58,7 +58,7 @@
@@ -230,7 +230,8 @@
def__init__(self,product,arch,dbo,templatedir=None,installpkgs=None,excludepkgs=None,add_templates=None,
- add_template_vars=None):
+ add_template_vars=None,
+ skip_branding=False):root=dbo.conf.installroot# use a copy of product so we can modify it locallyproduct=product.copy()
@@ -246,23 +247,36 @@
self._excludepkgs=excludepkgsor[]self._runner.defaults=self.varsself.dbo.reset()
+ self._skip_branding=skip_brandingdef_install_branding(self):
+ """Select the branding from the available 'system-release' packages
+ The *best* way to control this is to have a single package in the repo provide 'system-release'
+ When there are more than 1 package it will:
+ - Make a list of the available packages
+ - If variant is set look for a package ending with lower(variant) and use that
+ - If there are one or more non-generic packages, use the first one after sorting
+ """
+ ifself._skip_branding:
+ return
+
release=Noneq=self.dbo.sack.query()a=q.available()
- forpkgina.filter(provides='system-release'):
- logger.debug("Found release package %s",pkg)
- ifpkg.name.startswith('generic'):
- continue
- else:
- release=pkg.name
- break
-
- ifnotrelease:
- logger.error('could not get the release')
+ pkgs=sorted([p.nameforpina.filter(provides='system-release')
+ ifnotp.name.startswith("generic")])
+ ifnotpkgs:
+ logger.error("No system-release packages found, could not get the release")return
+ logger.debug("system-release packages: %s",pkgs)
+ ifself.vars.product.variant:
+ variant=[pforpinpkgsifp.endswith("-"+self.vars.product.variant.lower())]
+ ifvariant:
+ release=variant[0]
+ ifnotrelease:
+ release=pkgs[0]
+
# releaselogger.info('got release: %s',release)self._runner.installpkg(release)
diff --git a/rhel8-branch/_modules/pylorax/treeinfo.html b/rhel8-branch/_modules/pylorax/treeinfo.html
index ceabf445..6a250178 100644
--- a/rhel8-branch/_modules/pylorax/treeinfo.html
+++ b/rhel8-branch/_modules/pylorax/treeinfo.html
@@ -8,7 +8,7 @@
- pylorax.treeinfo — Lorax 28.14.33 documentation
+ pylorax.treeinfo — Lorax 28.14.42 documentation
@@ -58,7 +58,7 @@
- 28.14.33
+ 28.14.42
diff --git a/rhel8-branch/_sources/lorax.rst.txt b/rhel8-branch/_sources/lorax.rst.txt
index 65c866bc..f1bed0ad 100644
--- a/rhel8-branch/_sources/lorax.rst.txt
+++ b/rhel8-branch/_sources/lorax.rst.txt
@@ -54,6 +54,29 @@ Under ``./results/`` will be the release tree files: .discinfo, .treeinfo, every
goes onto the boot.iso, the pxeboot directory, and the boot.iso under ``./images/``.
+Branding
+--------
+
+By default lorax will search for the first package that provides ``system-release``
+that doesn't start with ``generic-`` and will install it. It then selects a
+corresponding logo package by using the first part of the system-release package and
+appending ``-logos`` to it. eg. fedora-release and fedora-logos.
+
+Custom Branding
+~~~~~~~~~~~~~~~
+
+If ``--skip-branding`` is passed to lorax it will skip selecting the
+``system-release``, and logos packages and leave it up to the user to pass any
+branding related packages to lorax using ``--installpkgs``. When using
+``skip-branding`` you must make sure that you provide all of the expected files,
+otherwise Anaconda may not work as expected. See the contents of ``fedora-release``
+and ``fedora-logos`` for examples of what to include.
+
+Note that this does not prevent something else in the dependency tree from
+causing these packages to be included. Using ``--excludepkgs`` may help if they
+are unexpectedly included.
+
+
Running inside of mock
----------------------
diff --git a/rhel8-branch/_sources/pylorax.rst.txt b/rhel8-branch/_sources/pylorax.rst.txt
index d3e88c12..2cd84475 100644
--- a/rhel8-branch/_sources/pylorax.rst.txt
+++ b/rhel8-branch/_sources/pylorax.rst.txt
@@ -6,7 +6,7 @@ Subpackages
.. toctree::
- pylorax.api
+ pylorax.api
Submodules
----------
@@ -15,143 +15,151 @@ pylorax.base module
-------------------
.. automodule:: pylorax.base
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.buildstamp module
-------------------------
.. automodule:: pylorax.buildstamp
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.cmdline module
----------------------
.. automodule:: pylorax.cmdline
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.creator module
----------------------
.. automodule:: pylorax.creator
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.decorators module
-------------------------
.. automodule:: pylorax.decorators
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.discinfo module
-----------------------
.. automodule:: pylorax.discinfo
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+pylorax.dnfbase module
+----------------------
+
+.. automodule:: pylorax.dnfbase
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.dnfhelper module
------------------------
.. automodule:: pylorax.dnfhelper
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.executils module
------------------------
.. automodule:: pylorax.executils
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.imgutils module
-----------------------
.. automodule:: pylorax.imgutils
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.installer module
------------------------
.. automodule:: pylorax.installer
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.ltmpl module
--------------------
.. automodule:: pylorax.ltmpl
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.monitor module
----------------------
.. automodule:: pylorax.monitor
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.mount module
--------------------
.. automodule:: pylorax.mount
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.output module
---------------------
.. automodule:: pylorax.output
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.sysutils module
-----------------------
.. automodule:: pylorax.sysutils
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.treebuilder module
--------------------------
.. automodule:: pylorax.treebuilder
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
pylorax.treeinfo module
-----------------------
.. automodule:: pylorax.treeinfo
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
Module contents
---------------
.. automodule:: pylorax
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/rhel8-branch/_static/basic.css b/rhel8-branch/_static/basic.css
index 0807176e..c41d718e 100644
--- a/rhel8-branch/_static/basic.css
+++ b/rhel8-branch/_static/basic.css
@@ -231,6 +231,16 @@ a.headerlink {
visibility: hidden;
}
+a.brackets:before,
+span.brackets > a:before{
+ content: "[";
+}
+
+a.brackets:after,
+span.brackets > a:after {
+ content: "]";
+}
+
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
@@ -279,6 +289,12 @@ img.align-center, .figure.align-center, object.align-center {
margin-right: auto;
}
+img.align-default, .figure.align-default {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
.align-left {
text-align: left;
}
@@ -287,6 +303,10 @@ img.align-center, .figure.align-center, object.align-center {
text-align: center;
}
+.align-default {
+ text-align: center;
+}
+
.align-right {
text-align: right;
}
@@ -358,6 +378,11 @@ table.align-center {
margin-right: auto;
}
+table.align-default {
+ margin-left: auto;
+ margin-right: auto;
+}
+
table caption span.caption-number {
font-style: italic;
}
@@ -391,6 +416,16 @@ table.citation td {
border-bottom: none;
}
+th > p:first-child,
+td > p:first-child {
+ margin-top: 0px;
+}
+
+th > p:last-child,
+td > p:last-child {
+ margin-bottom: 0px;
+}
+
/* -- figures --------------------------------------------------------------- */
div.figure {
@@ -460,11 +495,57 @@ ol.upperroman {
list-style: upper-roman;
}
+li > p:first-child {
+ margin-top: 0px;
+}
+
+li > p:last-child {
+ margin-bottom: 0px;
+}
+
+dl.footnote > dt,
+dl.citation > dt {
+ float: left;
+}
+
+dl.footnote > dd,
+dl.citation > dd {
+ margin-bottom: 0em;
+}
+
+dl.footnote > dd:after,
+dl.citation > dd:after {
+ content: "";
+ clear: both;
+}
+
+dl.field-list {
+ display: flex;
+ flex-wrap: wrap;
+}
+
+dl.field-list > dt {
+ flex-basis: 20%;
+ font-weight: bold;
+ word-break: break-word;
+}
+
+dl.field-list > dt:after {
+ content: ":";
+}
+
+dl.field-list > dd {
+ flex-basis: 70%;
+ padding-left: 1em;
+ margin-left: 0em;
+ margin-bottom: 0em;
+}
+
dl {
margin-bottom: 15px;
}
-dd p {
+dd > p:first-child {
margin-top: 0px;
}
@@ -537,6 +618,12 @@ dl.glossary dt {
font-style: oblique;
}
+.classifier:before {
+ font-style: normal;
+ margin: 0.5em;
+ content: ":";
+}
+
abbr, acronym {
border-bottom: dotted 1px;
cursor: help;
diff --git a/rhel8-branch/_static/doctools.js b/rhel8-branch/_static/doctools.js
index 344db17d..b33f87fc 100644
--- a/rhel8-branch/_static/doctools.js
+++ b/rhel8-branch/_static/doctools.js
@@ -87,14 +87,13 @@ jQuery.fn.highlightText = function(text, className) {
node.nextSibling));
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
- var bbox = span.getBBox();
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
- rect.x.baseVal.value = bbox.x;
+ var bbox = node.parentElement.getBBox();
+ rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className);
- var parentOfText = node.parentNode.parentNode;
addItems.push({
"parent": node.parentNode,
"target": rect});
diff --git a/rhel8-branch/_static/documentation_options.js b/rhel8-branch/_static/documentation_options.js
index 49fa5ed9..f1e2208a 100644
--- a/rhel8-branch/_static/documentation_options.js
+++ b/rhel8-branch/_static/documentation_options.js
@@ -1,10 +1,10 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
- VERSION: '28.14.33',
+ VERSION: '28.14.42',
LANGUAGE: 'None',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
- NAVIGATION_WITH_KEYS: false,
+ NAVIGATION_WITH_KEYS: false
};
\ No newline at end of file
diff --git a/rhel8-branch/_static/searchtools.js b/rhel8-branch/_static/searchtools.js
index 5ff31806..6031f991 100644
--- a/rhel8-branch/_static/searchtools.js
+++ b/rhel8-branch/_static/searchtools.js
@@ -36,8 +36,10 @@ if (!Scorer) {
// query found in title
title: 15,
+ partialTitle: 7,
// query found in terms
- term: 5
+ term: 5,
+ partialTerm: 2
};
}
@@ -56,6 +58,14 @@ var Search = {
_queued_query : null,
_pulse_status : -1,
+ htmlToText : function(htmlString) {
+ var htmlElement = document.createElement('span');
+ htmlElement.innerHTML = htmlString;
+ $(htmlElement).find('.headerlink').remove();
+ docContent = $(htmlElement).find('[role=main]')[0];
+ return docContent.textContent || docContent.innerText;
+ },
+
init : function() {
var params = $.getQueryParameters();
if (params.q) {
@@ -120,7 +130,7 @@ var Search = {
this.out = $('#search-results');
this.title = $('
').appendTo(this.out);
$('#search-progress').text(_('Preparing search...'));
@@ -259,11 +269,7 @@ var Search = {
displayNextItem();
});
} else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
- var suffix = DOCUMENTATION_OPTIONS.SOURCELINK_SUFFIX;
- if (suffix === undefined) {
- suffix = '.txt';
- }
- $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[5] + (item[5].slice(-suffix.length) === suffix ? '' : suffix),
+ $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX,
dataType: "text",
complete: function(jqxhr, textstatus) {
var data = jqxhr.responseText;
@@ -313,12 +319,13 @@ var Search = {
for (var prefix in objects) {
for (var name in objects[prefix]) {
var fullname = (prefix ? prefix + '.' : '') + name;
- if (fullname.toLowerCase().indexOf(object) > -1) {
+ var fullnameLower = fullname.toLowerCase()
+ if (fullnameLower.indexOf(object) > -1) {
var score = 0;
- var parts = fullname.split('.');
+ var parts = fullnameLower.split('.');
// check for different match types: exact matches of full name or
// "last name" (i.e. last dotted part)
- if (fullname == object || parts[parts.length - 1] == object) {
+ if (fullnameLower == object || parts[parts.length - 1] == object) {
score += Scorer.objNameMatch;
// matches in last name
} else if (parts[parts.length - 1].indexOf(object) > -1) {
@@ -385,6 +392,19 @@ var Search = {
{files: terms[word], score: Scorer.term},
{files: titleterms[word], score: Scorer.title}
];
+ // add support for partial matches
+ if (word.length > 2) {
+ for (var w in terms) {
+ if (w.match(word) && !terms[word]) {
+ _o.push({files: terms[w], score: Scorer.partialTerm})
+ }
+ }
+ for (var w in titleterms) {
+ if (w.match(word) && !titleterms[word]) {
+ _o.push({files: titleterms[w], score: Scorer.partialTitle})
+ }
+ }
+ }
// no match but word was a required one
if ($u.every(_o, function(o){return o.files === undefined;})) {
@@ -424,8 +444,12 @@ var Search = {
var valid = true;
// check if all requirements are matched
- if (fileMap[file].length != searchterms.length)
- continue;
+ var filteredTermCount = // as search terms with length < 3 are discarded: ignore
+ searchterms.filter(function(term){return term.length > 2}).length
+ if (
+ fileMap[file].length != searchterms.length &&
+ fileMap[file].length != filteredTermCount
+ ) continue;
// ensure that none of the excluded terms is in the search result
for (i = 0; i < excluded.length; i++) {
@@ -456,7 +480,8 @@ var Search = {
* words. the first one is used to find the occurrence, the
* latter for highlighting it.
*/
- makeSearchSummary : function(text, keywords, hlwords) {
+ makeSearchSummary : function(htmlText, keywords, hlwords) {
+ var text = Search.htmlToText(htmlText);
var textLower = text.toLowerCase();
var start = 0;
$.each(keywords, function() {
diff --git a/rhel8-branch/composer-cli.html b/rhel8-branch/composer-cli.html
index 209e4ead..4559d33f 100644
--- a/rhel8-branch/composer-cli.html
+++ b/rhel8-branch/composer-cli.html
@@ -8,7 +8,7 @@
- composer-cli — Lorax 28.14.33 documentation
+ composer-cli — Lorax 28.14.42 documentation
@@ -60,7 +60,7 @@
composer-cli is used to interact with the lorax-composer API server, managing blueprints, exploring available packages, and building new images.
It requires lorax-composer to be installed on the
local system, and the user running it needs to be a member of the weldr
group. They do not need to be root, but all of the security precautions apply.
Display the differences between 2 versions of a blueprint.
-FROM-COMMIT can be a commit hash or NEWEST
-TO-COMMIT can be a commit hash, NEWEST, or WORKSPACE
-
blueprints save <BLUEPRINT,…>
-
Save the blueprint to a file, <BLUEPRINT>.toml
-
blueprints delete <BLUEPRINT>
-
Delete a blueprint from the server
-
blueprints depsolve <BLUEPRINT,…>
-
Display the packages needed to install the blueprint.
-
blueprints push <BLUEPRINT>
-
Push a blueprint TOML file to the server.
-
blueprints freeze <BLUEPRINT,…>
-
Display the frozen blueprint’s modules and packages.
-
blueprints freeze show <BLUEPRINT,…>
-
Display the frozen blueprint in TOML format.
-
blueprints freeze save <BLUEPRINT,…>
-
Save the frozen blueprint to a file, <blueprint-name>.frozen.toml.
-
blueprints tag <BLUEPRINT>
-
Tag the most recent blueprint commit as a release.
-
blueprints undo <BLUEPRINT> <COMMIT>
-
Undo changes to a blueprint by reverting to the selected commit.
-
blueprints workspace <BLUEPRINT>
-
Push the blueprint TOML to the temporary workspace storage.
livemedia-creator uses Anaconda,
kickstart and Lorax to create bootable media that use the
same install path as a normal system installation. It can be used to make live
@@ -222,7 +219,8 @@ you have the anaconda-tui package installed.
image is the disk image being created by running livemedia-creator
usage:livemedia-creator[-h](--make-iso|--make-disk|--make-fsimage|--make-appliance|--make-ami|--make-tar|--make-tar-disk|--make-pxe-live|--make-ostree-live|--make-oci|--make-vagrant)[--isoISO][--iso-only][--iso-nameISO_NAME]
@@ -258,364 +256,282 @@ you have the anaconda-tui package installed.
@@ -664,8 +580,8 @@ or the live directory below the directory specified by
-
Note
-
The output from –make-iso includes the artifacts used to create the boot.iso;
+
Note
+
The output from –make-iso includes the artifacts used to create the boot.iso;
the kernel, initrd, the squashfs filesystem, etc. If you only want the
boot.iso you can pass --iso-only and the other files will be removed. You
can also name the iso by using --iso-namemy-live.iso.
@@ -680,26 +596,20 @@ includes several needed packages that are not always included by dependencies.
Or you can use existing spin kickstarts to create live media with a few
changes. Here are the steps I used to convert the Fedora XFCE spin.
-
Flatten the xfce kickstart using ksflatten
-
-
Add zerombr so you don’t get the disk init dialog
-
-
Add clearpart –all
-
-
Add swap partition
-
-
bootloader target
-
-
Add shutdown to the kickstart
-
-
Add network –bootproto=dhcp –activate to activate the network
+
Flatten the xfce kickstart using ksflatten
+
Add zerombr so you don’t get the disk init dialog
+
Add clearpart –all
+
Add swap partition
+
bootloader target
+
Add shutdown to the kickstart
+
Add network –bootproto=dhcp –activate to activate the network
This works for F16 builds but for F15 and before you need to pass
something on the cmdline that activate the network, like sshd:
livemedia-creator--kernel-args="sshd"
-
Add a root password:
+
Add a root password:
rootpwrootmenetwork--bootproto=dhcp--activatezerombr
@@ -710,39 +620,39 @@ something on the cmdline that activate the network, like sshd:
-
In the livesys script section of the %post remove the root password. This
+
In the livesys script section of the %post remove the root password. This
really depends on how the spin wants to work. You could add the live user
that you create to the %wheel group so that sudo works if you wanted to.
passwd-droot>/dev/null
-
Remove /etc/fstab in %post, dracut handles mounting the rootfs
+
Remove /etc/fstab in %post, dracut handles mounting the rootfs
cat/dev/null>/dev/fstab
Do this only for live iso’s, the filesystem will be mounted read only if
there is no /etc/fstab
-
Don’t delete initramfs files from /boot in %post
-
-
When creating live iso’s you need to have, at least, these packages in the %package section::
+
Don’t delete initramfs files from /boot in %post
+
When creating live iso’s you need to have, at least, these packages in the %package section::
dracut-config-generic
dracut-live
-dracut-config-rescue
grub-efi
memtest86+
-syslinux
-
+syslinux
One drawback to using qemu is that it pulls the packages from the repo each
time you run it. To speed things up you either need a local mirror of the
packages, or you can use a caching proxy. When using a proxy you pass it to
livemedia-creator like this:
-
--proxy=http://proxy.yourdomain.com:3128
+
--proxy=http://proxy.yourdomain.com:3128
+
You also need to use a specific mirror instead of mirrormanager so that the
packages will get cached, so your kickstart url would look like:
You can also add an update repo, but don’t name it updates. Add –proxy to it
as well.
@@ -752,29 +662,29 @@ as well.
cmdline. This will use Anaconda’s directory install feature to handle the
install. There are a couple of things to keep in mind when doing this:
-
It will be most reliable when building images for the same release that the
+
It will be most reliable when building images for the same release that the
host is running. Because Anaconda has expectations about the system it is
running under you may encounter strange bugs if you try to build newer or
-older releases.
-
It may totally trash your host. So far I haven’t had this happen, but the
+older releases.
+
It may totally trash your host. So far I haven’t had this happen, but the
possibility exists that a bug in Anaconda could result in it operating on
real devices. I recommend running it in a virt or on a system that you can
-afford to lose all data from.
+afford to lose all data from.
The logs from anaconda will be placed in an ./anaconda/ directory in either
the current directory or in the directory used for –logfile
Using no-virt to create a partitioned disk image (eg. –make-disk or
+
Note
+
Using no-virt to create a partitioned disk image (eg. –make-disk or
–make-vagrant) will only create disks usable on the host platform (BIOS
or UEFI). You can create BIOS partitioned disk images on UEFI by using
virt.
-
Note
-
As of version 30.7 SELinux can be set to Enforcing. The current state is
+
Note
+
As of version 30.7 SELinux can be set to Enforcing. The current state is
logged for debugging purposes and if there are SELinux denials they should
be reported as a bug.
The following variables are passed to the template:
-
-
disks
-
A list of disk_info about each disk.
+
+
disks
A list of disk_info about each disk.
Each entry has the following attributes:
-
+
name
base name of the disk image file
format
@@ -838,7 +747,8 @@ from --releasever
The created image can be imported into libvirt using:
-
virt-imageappliance.xml
+
virt-imageappliance.xml
+
You can also create qcow2 appliance images using --image-type=qcow2, for example:
sudolivemedia-creator--make-appliance--iso=/path/to/boot.iso--ks=./docs/rhel-minimal.ks \
--image-type=qcow2--app-file=minimal-test.xml--image-name=minimal-test.img
@@ -852,7 +762,8 @@ the --make-fsimage<
no-virt modes of operation. Previously it was only available with no-virt.
Kickstarts should have a single / partition with no extra mountpoints.
You can name the output image with --image-name and set a label on the filesystem with --fs-label
@@ -890,18 +801,16 @@ mock environment.
As of lorax version 22.2 you can use livemedia-creator and anaconda version
22.15 inside of a mock chroot with –make-iso and –make-fsimage.
-
Note
-
As of mock 1.3.4 you need to use --old-chroot with mock. Mock now defaults to using systemd-nspawn
+
Note
+
As of mock 1.3.4 you need to use --old-chroot with mock. Mock now defaults to using systemd-nspawn
which cannot create the needed loop device nodes. Passing --old-chroot will use the old system
where /dev/loop* is setup for you.
On the host system:
-
yum install -y mock
-
-
Add a user to the mock group to use for running mock. eg. builder
-
-
Create a new /etc/mock/ config file based on the rawhide one, or modify the
+
yum install -y mock
+
Add a user to the mock group to use for running mock. eg. builder
+
Create a new /etc/mock/ config file based on the rawhide one, or modify the
existing one so that the following options are setup:
config_opts['chroot_setup_cmd']='install @buildsys-build anaconda-tui lorax'
@@ -916,22 +825,17 @@ the updates-testing repository so that you get the latest builds in your mock ch
The following steps are run as the builder user who is a member of the mock
group.
-
Make a directory for results matching the bind mount above
-mkdir~/results/
-
-
Copy the example kickstarts
-cp/usr/share/docs/lorax/*ks.
-
-
Make sure tar and dracut-network are in the %packages section and that the
-urlpointstothecorrectrepo
-
-
Init the mock
-mock-rrhel-8-x86_64--old-chroot--init
-
-
Copy the kickstart inside the mock
-mock-rrhel-8-x86_64--old-chroot--copyin./rhel-minimal.ks/root/
-
-
Make a minimal iso:
+
Make a directory for results matching the bind mount above
+mkdir~/results/
+
Copy the example kickstarts
+cp/usr/share/docs/lorax/*ks.
+
Make sure tar and dracut-network are in the %packages section and that the
+urlpointstothecorrectrepo
+
Init the mock
+mock-rrhel-8-x86_64--old-chroot--init
+
Copy the kickstart inside the mock
+mock-rrhel-8-x86_64--old-chroot--copyin./rhel-minimal.ks/root/
+
Make a minimal iso:
mock-rrhel-8-x86_64--old-chroot--chroot--livemedia-creator--no-virt \
--resultdir=/results/try-1--logfile=/results/logs/try-1/try-1.log \
--make-iso--ks/root/rhel-minimal.ks
@@ -951,11 +855,9 @@ This allows creation of all image types, and use of the KVM on the host if
/dev/kvm is present in the mock environment.
On the host system:
-
yum install -y mock
-
-
Add a user to the mock group to use for running mock. eg. builder
-
-
Create a new /etc/mock/ config file based on the rawhide one, or modify the
+
yum install -y mock
+
Add a user to the mock group to use for running mock. eg. builder
+
Create a new /etc/mock/ config file based on the rawhide one, or modify the
existing one so that the following options are setup:
config_opts['chroot_setup_cmd']='install @buildsys-build lorax qemu'
@@ -970,25 +872,19 @@ the updates-testing repository so that you get the latest builds in your mock ch
The following steps are run as the builder user who is a member of the mock
group.
-
Make a directory for results matching the bind mount above
-mkdir~/results/
-
-
Copy the example kickstarts
-cp/usr/share/docs/lorax/*ks.
-
-
Make sure tar and dracut-network are in the %packages section and that the
-urlpointstothecorrectrepo
-
-
Init the mock
-mock-rrhel-8-x86_64--old-chroot--init
-
-
Copy the kickstart inside the mock
-mock-rrhel-8-x86_64--old-chroot--copyin./rhel-minimal.ks/root/
-
-
Copy the Anaconda boot.iso inside the mock
-mock-rrhel-8-x86_64--old-chroot--copyin./boot.iso/root/
-
-
Make a minimal iso:
+
Make a directory for results matching the bind mount above
+mkdir~/results/
+
Copy the example kickstarts
+cp/usr/share/docs/lorax/*ks.
+
Make sure tar and dracut-network are in the %packages section and that the
+urlpointstothecorrectrepo
+
Init the mock
+mock-rrhel-8-x86_64--old-chroot--init
+
Copy the kickstart inside the mock
+mock-rrhel-8-x86_64--old-chroot--copyin./rhel-minimal.ks/root/
+
Copy the Anaconda boot.iso inside the mock
+mock-rrhel-8-x86_64--old-chroot--copyin./boot.iso/root/
+
Make a minimal iso:
mock-rrhel-8-x86_64--old-chroot--chroot--livemedia-creator \
--resultdir=/results/try-1--logfile=/results/logs/try-1/try-1.log \
--make-iso--ks/root/rhel-minimal.ks--iso/root/boot.iso
@@ -1015,10 +911,11 @@ packages. OpenStack supports setting up the image using cloud-init, and
cloud-utils-growpart will grow the image to fit the instance’s disk size.
Create a qcow2 image using the kickstart like this:
On the RHEL7 version of lmc --image-type isn’t supported. You can only create a bare partitioned disk image.
+
Note
+
On the RHEL7 version of lmc --image-type isn’t supported. You can only create a bare partitioned disk image.
Import the resulting disk image into the OpenStack system, either via the web UI, or glance on the cmdline:
glanceimage-create--name"rhel-openstack"--is-publictrue--disk-formatqcow2 \
@@ -1033,10 +930,12 @@ cloud-utils-growpart will grow the image to fit the instance’s disk size.
rhel-container.ks example kickstart which removes the requirement for core files and the kernel.
You can then import the tarfile into podman or docker like this:
lorax-composer is an API server that allows you to build disk images using
Blueprints to describe the package versions to be installed into the image.
It is compatible with the Weldr project’s bdcs-api REST protocol. More
@@ -216,13 +213,13 @@ installation and configuration of the images.
As of version 30.7 SELinux can be set to Enforcing. The current state is
+
As of version 30.7 SELinux can be set to Enforcing. The current state is
logged for debugging purposes and if there are SELinux denials they should
-be reported as a bug.
-
All image types lock the root account, except for live-iso. You will need to either
+be reported as a bug.
+
All image types lock the root account, except for live-iso. You will need to either
use one of the Customizations methods for setting a ssh key/password, install a
package that creates a user, or use something like cloud-init to setup access at
-boot time.
Create a weldr user and group by running useraddweldr
-
Remove any pre-existing socket directory with rm-rf/run/weldr/
-A new directory with correct permissions will be created the first time the server runs.
-
Enable the socket activation with systemctlenablelorax-composer.socket
-&&sudosystemctlstartlorax-composer.socket.
+
Create a weldr user and group by running useraddweldr
+
Remove any pre-existing socket directory with rm-rf/run/weldr/
+A new directory with correct permissions will be created the first time the server runs.
+
Enable the socket activation with systemctlenablelorax-composer.socket
+&&sudosystemctlstartlorax-composer.socket.
NOTE: You can also run it directly with lorax-composer/path/to/blueprints. However,
lorax-composer does not react well to being started both on the command line and via
@@ -264,8 +261,8 @@ messages as well as extra debugging info and API requests.
Some security related issues that you should be aware of before running lorax-composer:
-
One of the API server threads needs to retain root privileges in order to run Anaconda.
-
Only allow authorized users access to the weldr group and socket.
+
One of the API server threads needs to retain root privileges in order to run Anaconda.
+
Only allow authorized users access to the weldr group and socket.
Since Anaconda kickstarts are used there is the possibility that a user could
inject commands into a blueprint that would result in the kickstart executing
@@ -274,7 +271,8 @@ images using lorax-
Path to logfile (/var/log/lorax-composer/composer.log)
-
Default: “/var/log/lorax-composer/composer.log”
-
-
---mockfiles
-
Path to JSON files used for /api/mock/ paths (/var/tmp/bdcs-mockfiles/)
-
Default: “/var/tmp/bdcs-mockfiles/”
-
-
---sharedir
-
Directory containing all the templates. Overrides config file sharedir
-
--V
-
show program’s version number and exit
-
Default: False
-
-
--c, --config
-
Path to lorax-composer configuration file.
-
Default: “/etc/lorax/composer.conf”
-
-
---releasever
-
Release version to use for $releasever in dnf repository urls
-
---tmp
-
Top level temporary directory
-
Default: “/var/tmp”
-
-
---proxy
-
Set proxy for DNF, overrides configuration file setting.
-
---no-system-repos
-
-
Do not copy over system repos from /etc/yum.repos.d/ at startup
-
Default: False
-
-
-
+
+
--socket
+
Path to the socket file to listen on
+
Default: “/run/weldr/api.socket”
+
+
--user
+
User to use for reduced permissions
+
Default: “root”
+
+
--group
+
Group to set ownership of the socket to
+
Default: “weldr”
+
+
--log
+
Path to logfile (/var/log/lorax-composer/composer.log)
+
Default: “/var/log/lorax-composer/composer.log”
+
+
--mockfiles
+
Path to JSON files used for /api/mock/ paths (/var/tmp/bdcs-mockfiles/)
+
Default: “/var/tmp/bdcs-mockfiles/”
+
+
--sharedir
+
Directory containing all the templates. Overrides config file sharedir
+
+
-V
+
show program’s version number and exit
+
Default: False
+
+
-c, --config
+
Path to lorax-composer configuration file.
+
Default: “/etc/lorax/composer.conf”
+
+
--releasever
+
Release version to use for $releasever in dnf repository urls
+
+
--tmp
+
Top level temporary directory
+
Default: “/var/tmp”
+
+
--proxy
+
Set proxy for DNF, overrides configuration file setting.
+
+
--no-system-repos
+
Do not copy over system repos from /etc/yum.repos.d/ at startup
+
Default: False
+
+
@@ -573,13 +553,13 @@ image build metadata.
-
rpmname: Name of the rpm to create, also used as the prefix name in the tar archive
-
rpmversion: Version of the rpm, eg. “1.0.0”
-
rpmrelease: Release of the rpm, eg. “1”
-
summary: Summary string for the rpm
-
repo: URL of the get repo to clone and create the archive from
-
ref: Git reference to check out. eg. origin/branch-name, git tag, or git commit hash
-
destination: Path to install the / of the git repo at when installing the rpm
+
rpmname: Name of the rpm to create, also used as the prefix name in the tar archive
+
rpmversion: Version of the rpm, eg. “1.0.0”
+
rpmrelease: Release of the rpm, eg. “1”
+
summary: Summary string for the rpm
+
repo: URL of the get repo to clone and create the archive from
+
ref: Git reference to check out. eg. origin/branch-name, git tag, or git commit hash
+
destination: Path to install the / of the git repo at when installing the rpm
An rpm will be created with the contents of the git repository referenced, with the files
being installed under /opt/server/ in this case.
@@ -597,12 +577,12 @@ these are currently available via ./share/composer/. The
name of the kickstart is what will be used by the /compose/types route, and the
compose_type field of the POST to start a compose. It also needs to have
-code added to the pylorax.api.compose.compose_args() function. The
+code added to the pylorax.api.compose.compose_args() function. The
_MAP entry in this function defines what lorax-composer will pass to
pylorax.installer.novirt_install() when it runs the compose. When the
compose is finished the output files need to be copied out of the build
directory (/var/lib/lorax/composer/results/<UUID>/compose/),
-pylorax.api.compose.move_compose_results() handles this for each type.
+pylorax.api.compose.move_compose_results() handles this for each type.
You should move them instead of copying to save space.
If the new output type does not have support in livemedia-creator it should be
added there first. This will make the output available to the widest number of
@@ -613,10 +593,10 @@ users.
via the --make-disk cmdline argument. To add this to lorax-composer it
needs 3 things:
A new entry in the _MAP in pylorax.api.compose.compose_args()
+
Add a bit of code to pylorax.api.compose.move_compose_results() to move the disk image from
+the compose directory to the results directory.
The partitioned-disk.ks is pretty similar to the example minimal kickstart
in ./docs/rhel-minimal.ks. You should remove the url and repo
@@ -658,9 +638,9 @@ TOML):
The proxy and gpgkey_urls entries are optional. All of the others are required. The supported
types for the urls are:
-
yum-baseurl is a URL to a yum repository.
-
yum-mirrorlist is a URL for a mirrorlist.
-
yum-metalink is a URL for a metalink.
+
yum-baseurl is a URL to a yum repository.
+
yum-mirrorlist is a URL for a mirrorlist.
+
yum-metalink is a URL for a metalink.
If check_ssl is true the https certificates must be valid. If they are self-signed you can either set
this to false, or add your Certificate Authority to the host system.
@@ -684,11 +664,9 @@ source, not the repos from the network. file:// URLs so you can mount an iso on the host, and replace the
system repo files with a configuration file pointing to the DVD.
-
Stop the lorax-composer.service if it is running
-
-
Move the repo files in /etc/yum.repos.d/ someplace safe
-
-
Create a new iso.repo file in /etc/yum.repos.d/:
+
Stop the lorax-composer.service if it is running
+
Move the repo files in /etc/yum.repos.d/ someplace safe
+
Create a new iso.repo file in /etc/yum.repos.d/:
[iso]name=isobaseurl=file:///mnt/iso/
@@ -698,14 +676,11 @@ system repo files with a configuration file pointing to the DVD.
-
Remove all the cached repo files from /var/lib/lorax/composer/repos/
-
-
Restart the lorax-composer.service
-
-
Check the output of composer-clistatusshow for any output specific depsolve errors.
+
Remove all the cached repo files from /var/lib/lorax/composer/repos/
+
Restart the lorax-composer.service
+
Check the output of composer-clistatusshow for any output specific depsolve errors.
For example, the DVD usually does not include grub2-efi-*-cdboot-* so the live-iso image
-type will not be available.
-
+type will not be available.
If you want to add the DVD source to the existing sources you can do that by
mounting the iso and creating a source file to point to it as described in the
diff --git a/rhel8-branch/lorax.html b/rhel8-branch/lorax.html
index e0bb270f..ecd819ea 100644
--- a/rhel8-branch/lorax.html
+++ b/rhel8-branch/lorax.html
@@ -8,7 +8,7 @@
-
“I am the Lorax. I speak for the trees [and images].”
The lorax tool is used to create the
Anaconda installer boot.iso as
@@ -199,7 +200,8 @@ rawhide version to build the boot.iso for rawhide, along with the rawhide
repositories.
Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the default. (default: )
-
-
+
+
--dracut-arg
+
Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the default. (default: )
+
+
@@ -437,6 +395,25 @@ override the ones in the distribution repositories.
Under ./results/ will be the release tree files: .discinfo, .treeinfo, everything that
goes onto the boot.iso, the pxeboot directory, and the boot.iso under ./images/.
By default lorax will search for the first package that provides system-release
+that doesn’t start with generic- and will install it. It then selects a
+corresponding logo package by using the first part of the system-release package and
+appending -logos to it. eg. fedora-release and fedora-logos.
If --skip-branding is passed to lorax it will skip selecting the
+system-release, and logos packages and leave it up to the user to pass any
+branding related packages to lorax using --installpkgs. When using
+skip-branding you must make sure that you provide all of the expected files,
+otherwise Anaconda may not work as expected. See the contents of fedora-release
+and fedora-logos for examples of what to include.
+
Note that this does not prevent something else in the dependency tree from
+causing these packages to be included. Using --excludepkgs may help if they
+are unexpectedly included.
If you are using lorax with mock v1.3.4 or later you will need to pass
@@ -474,16 +451,16 @@ start the anaconda.target instead of a default system target, and a number of
unneeded services are disabled, some of which can interfere with the
installation. A number of template commands are used here:
@@ -491,14 +468,14 @@ installation. A number of template commands are used here:
The runtime-cleanup.tmpl template is used to remove files that aren’t strictly needed
by the installation environment. In addition to the remove template command it uses:
@@ -217,60 +218,49 @@ package NEVRAs will be appended to it at build time.
parameters needed to generate the desired output. Other types should be set to False.
Returns the settings to pass to novirt_install for the compose type
-
-
-
-
-
Parameters:
compose_type (str) – The type of compose to create, from compose_types()
-
-
-
+
+
Parameters
+
compose_type (str) – The type of compose to create, from compose_types()
+
+
This will return a dict of options that match the ArgumentParser options for livemedia-creator.
These are the ones the define the type of output, it’s filename, etc.
Other options will be filled in by make_compose()
@@ -278,7 +268,7 @@ Other options will be filled in by make_compose()
Returns a list of tuples of the supported output types, and their state
The output types come from the kickstart names in /usr/share/lorax/composer/*ks
If they are disabled on the current arch their state is False. If enabled, it is True.
@@ -287,20 +277,16 @@ eg. [(“alibaba”, False), (“ext4-filesystem”, True), …]
When no services have been selected we don’t need to add anything to the kickstart
so return an empty string. Otherwise return “services” which will be updated with
the settings.
Currently this is only needed by live-iso, it reads ./live/live-install.tmpl and
processes only the installpkg lines. It lists the packages needed to complete creation of the
iso using the templates such as x86.tmpl
@@ -380,173 +356,155 @@ even though the results are applied differently.
Return a kickstart line with the correct args.
:param r: DNF repository information
:type r: dnf.Repo
@@ -559,130 +517,109 @@ is parsed correctly, and re-assembled for inclusion into the final kickstart
If the entry contains a ssh key, use sshkey to write it
All of the user fields are optional, except name, write out a kickstart user entry
with whatever options are relevant.
@@ -716,72 +649,62 @@ with whatever options are relevant.
The DNF Repo.dump() function does not produce a string that can be used as a dnf .repo file,
it ouputs baseurl and gpgkey as python lists which DNF cannot read. So do this manually with
only the attributes we care about.
@@ -910,26 +828,22 @@ only the attributes we care about.
Estimating actual requirements is difficult without the actual file sizes, which
dnf doesn’t provide access to. So use the file count and block size to estimate
a minimum size for each package.
@@ -937,307 +851,275 @@ a minimum size for each package.
status_filter (str) – What builds to return. None == all, “FINISHED”, or “FAILED”
-
-
-
Returns:
A list of the build details (from compose_details)
-
-
-
Return type:
list of dicts
-
-
-
-
+
+
Returns
+
A list of the build details (from compose_details)
+
+
Return type
+
list of dicts
+
+
This returns a list of build details for each of the matching builds on the
system. It does not return the status of builds that have not been finished.
Use queue_status() for those.
@@ -1321,119 +1198,112 @@ Use queue_status() for those.
IOError if it cannot read the directory, STATUS, or blueprint file.
+
+
The following details are included in the dict:
-
id - The uuid of the comoposition
-
queue_status - The final status of the composition (FINISHED or FAILED)
-
compose_type - The type of output generated (tar, iso, etc.)
-
blueprint - Blueprint name
-
version - Blueprint version
-
image_size - Size of the image, if finished. 0 otherwise.
+
id - The uuid of the comoposition
+
queue_status - The final status of the composition (FINISHED or FAILED)
+
compose_type - The type of output generated (tar, iso, etc.)
+
blueprint - Blueprint name
+
version - Blueprint version
+
image_size - Size of the image, if finished. 0 otherwise.
Various timestamps are also included in the dict. These are all Unix UTC timestamps.
It is possible for these timestamps to not always exist, in which case they will be
None in Python (or null in JSON). The following timestamps are included:
-
job_created - When the user submitted the compose
-
job_started - Anaconda started running
-
job_finished - Job entered FINISHED or FAILED state
+
job_created - When the user submitted the compose
+
job_started - Anaconda started running
+
job_finished - Job entered FINISHED or FAILED state
results_dir (str) – The directory containing the metadata and results for the build
-
-
-
Returns:
Nothing
-
-
-
Raises:
May raise various exceptions
-
-
-
-
+
+
Returns
+
Nothing
+
+
Raises
+
May raise various exceptions
+
+
This takes the final-kickstart.ks, and the settings in config.toml and runs Anaconda
in no-virt mode (directly on the host operating system). Exceptions should be caught
at the higer level.
The queue has 2 subdirectories, new and run. When a compose is ready to be run
a symlink to the uniquely named results directory should be placed in ./queue/new/
When the it is ready to be run (it is checked every 30 seconds or after a previous
@@ -1468,245 +1336,212 @@ from ./queue/run/ to ./queue/new/ and rerun them.
This returns a dict with 2 lists. “new” is the list of uuids that are waiting to be built,
and “run” has the uuids that are being built (currently limited to 1 at a time).
This is a subclass of dict that enforces the constructor arguments
@@ -1778,22 +1609,22 @@ and adds a .filename property to return the recipe’s filename,
and a .toml() function to return the recipe as a TOML string.
If neither have a version, 0.0.1 is returned
If there is no old version the new version is checked and returned
If there is no new version, but there is a old one, bump its patch level
@@ -1801,64 +1632,63 @@ If the old and new versions are the same, bump the patch level
If they are different, check and return the new version
This checks a dict to make sure required fields are present,
that optional fields are correct, and that other optional fields
are of the correct format, when included.
@@ -1951,223 +1777,191 @@ a string that can be presented to users.
A bare git repo will be created in the git directory of the specified path.
If a repo already exists it will be opened and returned instead of
creating a new one.
This uses git tags, of the form refs/tags/<branch>/<filename>/r<revision>
Only the most recent recipe commit can be tagged to prevent out of order tagging.
Revisions start at 1 and increment for each new commit that is tagged.
@@ -2840,61 +2552,53 @@ If the commit has already been tagged it will return false.
@@ -3166,8 +2870,8 @@ error response with it set to false and an error message included.
Return the differences between two commits, or the workspace. The commit hash
from the changes response can be used here, or several special strings:
-
NEWEST will select the newest git commit. This works for from_commit or to_commit
-
WORKSPACE will select the workspace copy. This can only be used in to_commit
+
NEWEST will select the newest git commit. This works for from_commit or to_commit
+
WORKSPACE will select the workspace copy. This can only be used in to_commit
eg. /api/v0/blueprints/diff/glusterfs/NEWEST/WORKSPACE will return the differences
between the most recent git commit and the contents of the workspace.
@@ -3476,9 +3180,9 @@ will have it set to false. System sources cannot be changed or deleted.
The proxy and gpgkey_urls entries are optional. All of the others are required. The supported
types for the urls are:
-
yum-baseurl is a URL to a yum repository.
-
yum-mirrorlist is a URL for a mirrorlist.
-
yum-metalink is a URL for a metalink.
+
yum-baseurl is a URL to a yum repository.
+
yum-mirrorlist is a URL for a mirrorlist.
+
yum-metalink is a URL for a metalink.
If check_ssl is true the https certificates must be valid. If they are self-signed you can either set
this to false, or add your Certificate Authority to the host system.
@@ -3630,19 +3334,17 @@ build and add it to the queue. It returns the build uuid and a status if it succ
Returns the list of supported output types that are valid for use with ‘POST /api/v0/compose’
-
-
{
-
-
“types”: [
-
-
{
-
“enabled”: true,
-“name”: “tar”
-
-
}
+
+
{
+
“types”: [
+
{
“enabled”: true,
+“name”: “tar”
-
]
+
}
+
+
+
]
}
@@ -3811,13 +3513,13 @@ status of True if it is successful.
contain the following information:
-
id - The uuid of the comoposition
-
config - containing the configuration settings used to run Anaconda
-
blueprint - The depsolved blueprint used to generate the kickstart
-
commit - The (local) git commit hash for the blueprint used
-
deps - The NEVRA of all of the dependencies used in the composition
-
compose_type - The type of output generated (tar, iso, etc.)
-
queue_status - The final status of the composition (FINISHED or FAILED)
+
id - The uuid of the comoposition
+
config - containing the configuration settings used to run Anaconda
+
blueprint - The depsolved blueprint used to generate the kickstart
+
commit - The (local) git commit hash for the blueprint used
+
deps - The NEVRA of all of the dependencies used in the composition
+
compose_type - The type of output generated (tar, iso, etc.)
+
queue_status - The final status of the composition (FINISHED or FAILED)
Returns the output image from the build. The filename is set to the filename
-from the build with the UUID as a prefix. eg. UUID-root.tar.xz or UUID-boot.iso.
+
Returns the output image from the build. The filename is set to the filename
+from the build with the UUID as a prefix. eg. UUID-root.tar.xz or UUID-boot.iso.
A minimal DNF object suitable for passing to RuntimeBuilder
lmc uses RuntimeBuilder to run the arch specific iso creation
@@ -346,207 +347,179 @@ templates, so the the installroot config value is the important part of
this. Everything else should be a nop.
fsck.ext4 is run on the rootfs_image to make sure there are no errors and to zero
out any deleted blocks to make it compress better. If this fails for any reason
it will return None and log the error.
@@ -554,28 +527,23 @@ it will return None and log the error.
Execute an external command and return the line output of the command
in real-time.
This method assumes that there is a reasonably low delay between the
end of output and the process exiting. If the child process closes
stdout and then keeps on truckin’ there will be problems.
-
-
NOTE/WARNING: UnicodeDecodeError will be raised if the output of the
-
external command can’t be decoded as UTF-8.
+
+
NOTE/WARNING: UnicodeDecodeError will be raised if the output of the
external command can’t be decoded as UTF-8.
+
-
-
-
-
-
Parameters:
-
command – The command to run
-
argv – The argument list
-
stdin – The file object to read stdin from.
-
stdout – Optional file object to redirect stdout and stderr to.
-
root – The directory to chroot to before running command.
-
env_prune – environment variable to remove before execution
-
filter_stderr – Whether stderr should be excluded from the returned output
-
callback – method to call while waiting for process to finish, passed Popen object
-
env_add – environment variables to add before execution
-
reset_handlers – whether to reset to SIG_DFL any signal handlers set to SIG_IGN
-
reset_lang – whether to set the locale of the child process to C
+
+
Parameters
+
+
command – The command to run
+
argv – The argument list
+
stdin – The file object to read stdin from.
+
stdout – Optional file object to redirect stdout and stderr to.
+
root – The directory to chroot to before running command.
+
env_prune – environment variable to remove before execution
+
filter_stderr – Whether stderr should be excluded from the returned output
+
callback – method to call while waiting for process to finish, passed Popen object
+
env_add – environment variables to add before execution
+
reset_handlers – whether to reset to SIG_DFL any signal handlers set to SIG_IGN
+
reset_lang – whether to set the locale of the child process to C
-
-
-
Returns:
Iterator of the lines from the command
-
-
-
-
+
+
Returns
+
Iterator of the lines from the command
+
+
Output from the file is not logged to program.log
This returns an iterator with the lines from the command until it has finished
Set an environment variable to be used by child processes.
This method does not modify os.environ for the running process, which
is not thread-safe. If setenv has already been called for a particular
variable name, the old value is overwritten.
Start an external program and return the Popen object.
The root and reset_handlers arguments are handled by passing a
preexec_fn argument to subprocess.Popen, but an additional preexec_fn
can still be specified and will be run. The user preexec_fn will be run
last.
-
-
-
-
-
Parameters:
-
argv – The command to run and argument
-
root – The directory to chroot to before running command.
-
stdin – The file object to read stdin from.
-
stdout – The file object to write stdout to.
-
stderr – The file object to write stderr to.
-
env_prune – environment variables to remove before execution
-
env_add – environment variables to add before execution
-
reset_handlers – whether to reset to SIG_DFL any signal handlers set to SIG_IGN
-
reset_lang – whether to set the locale of the child process to C
-
kwargs – Additional parameters to pass to subprocess.Popen
-
preexec_fn – A function to run before execution starts.
+
+
Parameters
+
+
argv – The command to run and argument
+
root – The directory to chroot to before running command.
+
stdin – The file object to read stdin from.
+
stdout – The file object to write stdout to.
+
stderr – The file object to write stderr to.
+
env_prune – environment variables to remove before execution
+
env_add – environment variables to add before execution
+
reset_handlers – whether to reset to SIG_DFL any signal handlers set to SIG_IGN
+
reset_lang – whether to set the locale of the child process to C
+
kwargs – Additional parameters to pass to subprocess.Popen
+
preexec_fn – A function to run before execution starts.
Make a compressed archive of the given rootdir or file.
command is a list of the archiver commands to run
compression should be “xz”, “gzip”, “lzma”, “bzip2”, or None.
@@ -987,7 +945,7 @@ compressargs will be used on the compression commandline.
Copy a tree of files using cp -a, thus preserving modes, timestamps,
links, acls, sparse files, xattrs, selinux contexts, etc.
If preserve is False, uses cp -R (useful for modeless filesystems)
@@ -996,29 +954,25 @@ raises CalledProcessError if copy fails.
Attach a devicemapper device to the given device, with the given size.
If name is None, a random name will be chosen. Returns the device name.
raises CalledProcessError if dmsetup fails.
@@ -1026,13 +980,13 @@ raises CalledProcessError if dmsetup fails.
Copy each of the items listed in grafts into dest.
If the key ends with ‘/’ it’s assumed to be a directory which should be
created, otherwise just the leading directories will be created.
@@ -1040,32 +994,32 @@ created, otherwise just the leading directories will be created.
Make sure the loop device is attached to the outfile.
It seems that on rare occasions losetup can return before the /dev/loopX is
ready for use, causing problems with mkfs. This tries to make sure that the
@@ -1075,65 +1029,62 @@ loop device really is associated with the backing file before continuing.
Generic filesystem image creation function.
fstype should be a filesystem type - “mkfs.${fstype}” must exist.
graft should be a dict: {“some/path/in/image”: “local/file/or/dir”};
-
if the path ends with a ‘/’ it’s assumed to be a directory.
+
if the path ends with a ‘/’ it’s assumed to be a directory.
+
Will raise CalledProcessError if something goes wrong.
Mount the given device at the given mountpoint, using the given opts.
opts should be a comma-separated string of mount options.
if mnt is none, a temporary directory will be created and its path will be
@@ -1199,13 +1146,13 @@ raises CalledProcessError if mount fails.
Unmount the given mountpoint. If lazy is True, do a lazy umount (-l).
If the mount was a temporary dir created by mount, it will be deleted.
raises CalledProcessError if umount fails.
@@ -1216,31 +1163,29 @@ raises CalledProcessError if umount fails.
The cancel_funcs functions should return a True if an error has been detected.
When an error is detected the process is terminated and this returns True
Request installation of all packages matching the given globs.
Note that this is just a request - nothing is actually installed
until the ‘run_pkg_transaction’ command is given.
-
–required is now the default. If the PKGGLOB can be missing pass –optional
+
–required is now the default. If the PKGGLOB can be missing pass –optional
@@ -1441,18 +1357,18 @@ until the ‘run_pkg_transaction’ command is given.
Commands that run external programs (e.g. systemctl) currently use
+
Commands that run external programs (e.g. systemctl) currently use
the host’s copy of that program, which may cause problems if there’s a
-big enough difference between the host and the image you’re modifying.
-
The commands are not executed under a real chroot, so absolute symlinks
-will point outside the inroot/outroot. Be careful with symlinks!
+big enough difference between the host and the image you’re modifying.
+
The commands are not executed under a real chroot, so absolute symlinks
+will point outside the inroot/outroot. Be careful with symlinks!
ADDING NEW COMMANDS:
-
Each template command is just a method of the LoraxTemplateRunner
-object - so adding a new command is as easy as adding a new function.
-
Each function gets arguments that correspond to the rest of the tokens
-on that line (after word splitting and brace expansion)
-
Commands should raise exceptions for errors - don’t use sys.exit()
+
Each template command is just a method of the LoraxTemplateRunner
+object - so adding a new command is as easy as adding a new function.
+
Each function gets arguments that correspond to the rest of the tokens
+on that line (after word splitting and brace expansion)
+
Commands should raise exceptions for errors - don’t use sys.exit()
Append STRING (followed by a newline character) to FILE.
+append(filename, data)[source]¶
+
+
append FILE STRING
Append STRING (followed by a newline character) to FILE.
Python character escape sequences (‘n’, ‘t’, etc.) will be
converted to the appropriate characters.
Copy SRC to DEST.
If DEST is a directory, SRC will be copied inside it.
If DEST doesn’t exist, SRC will be copied to a file with
-that name, if the path leading to it exists.
Copy the given file (or files, if a glob is used) from the input
+install(srcglob, dest)[source]¶
+
+
install SRC DEST
Copy the given file (or files, if a glob is used) from the input
tree to the given destination in the output tree.
The path to DEST must exist in the output tree.
If DEST is a directory, SRC will be copied into that directory.
If DEST doesn’t exist, SRC will be copied to a file with that name,
assuming the rest of the path exists.
This is pretty much like how the ‘cp’ command works.
Install the kernel from SRC in the input tree to DEST in the output
+installkernel(section, src, dest)[source]¶
+
+
installkernel SECTION SRC DEST
Install the kernel from SRC in the input tree to DEST in the output
tree, and then add an item to the treeinfo data store, in the named
SECTION, where “kernel” = DEST.
-
-
Equivalent to:
-
install SRC DEST
-treeinfo SECTION kernel DEST
+
+
Equivalent to:
install SRC DEST
+treeinfo SECTION kernel DEST
+
@@ -1609,35 +1521,33 @@ treeinfo SECTION kernel DEST
Request installation of all packages matching the given globs.
Note that this is just a request - nothing is actually installed
until the ‘run_pkg_transaction’ command is given.
-
–required is now the default. If the PKGGLOB can be missing pass –optional
+
–required is now the default. If the PKGGLOB can be missing pass –optional
Remove all files matching the given file globs from the package
+removefrom(pkg, *globs)[source]¶
+
+
removefrom PKGGLOB [–allbut] FILEGLOB [FILEGLOB…]
Remove all files matching the given file globs from the package
(or packages) named.
If ‘–allbut’ is used, all the files from the given package(s) will
be removed except the ones which match the file globs.
Remove all files and directories matching the given file globs from the kernel
modules directory.
If ‘–allbut’ is used, all the files from the modules will be removed except
the ones which match the file globs. There must be at least one initial GLOB
to search and one KEEPGLOB to keep. The KEEPGLOB is expanded to be KEEPGLOB
so that it will match anywhere in the path.
This only removes files from under /lib/modules/*/kernel/
NOTE: All paths given MUST be COMPLETE, ABSOLUTE PATHS to the file
or files mentioned. ${root}/${inroot}/${outroot} are good for
constructing these paths.
FURTHER NOTE: Please use this command only as a last resort!
Whenever possible, you should use the existing template commands.
If the existing commands don’t do what you need, fix them!
-
-
Examples:
-
(this should be replaced with a “find” function)
+
+
Examples:
(this should be replaced with a “find” function)
runcmd find ${root} -name “.pyo” -type f -delete
%for f in find(root, name=”.pyo”):
Handle monitoring and saving the logfiles from the virtual install
Incoming data is written to self.server.log_path and each line is checked
@@ -1902,12 +1804,12 @@ for patterns that would indicate that the installation failed.
self.server.log_error is set True when this happens.
Rebuild all the initrds in the tree. If backup is specified, each
initrd will be renamed with backup as a suffix before rebuilding.
If backup is empty, the existing initrd files will be overwritten.
@@ -2151,32 +2048,29 @@ name of the kernel.
diff --git a/rhel8-branch/searchindex.js b/rhel8-branch/searchindex.js
index b5c85bf1..3ff6a6f4 100644
--- a/rhel8-branch/searchindex.js
+++ b/rhel8-branch/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["composer-cli","index","intro","livemedia-creator","lorax","lorax-composer","modules","product-images","pylorax","pylorax.api"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:55},filenames:["composer-cli.rst","index.rst","intro.rst","livemedia-creator.rst","lorax.rst","lorax-composer.rst","modules.rst","product-images.rst","pylorax.rst","pylorax.api.rst"],objects:{"":{pylorax:[8,0,0,"-"]},"pylorax.ArchData":{bcj_arch:[8,2,1,""],lib64_arches:[8,2,1,""]},"pylorax.Lorax":{configure:[8,3,1,""],init_file_logging:[8,3,1,""],init_stream_logging:[8,3,1,""],run:[8,3,1,""],templatedir:[8,2,1,""]},"pylorax.api":{cmdline:[9,0,0,"-"],compose:[9,0,0,"-"],config:[9,0,0,"-"],crossdomain:[9,0,0,"-"],projects:[9,0,0,"-"],queue:[9,0,0,"-"],recipes:[9,0,0,"-"],server:[9,0,0,"-"],v0:[9,0,0,"-"],workspace:[9,0,0,"-"]},"pylorax.api.cmdline":{lorax_composer_parser:[9,4,1,""]},"pylorax.api.compose":{add_customizations:[9,4,1,""],bootloader_append:[9,4,1,""],compose_args:[9,4,1,""],compose_types:[9,4,1,""],customize_ks_template:[9,4,1,""],firewall_cmd:[9,4,1,""],get_default_services:[9,4,1,""],get_extra_pkgs:[9,4,1,""],get_firewall_settings:[9,4,1,""],get_kernel_append:[9,4,1,""],get_keyboard_layout:[9,4,1,""],get_languages:[9,4,1,""],get_services:[9,4,1,""],get_timezone_settings:[9,4,1,""],keyboard_cmd:[9,4,1,""],lang_cmd:[9,4,1,""],move_compose_results:[9,4,1,""],repo_to_ks:[9,4,1,""],services_cmd:[9,4,1,""],start_build:[9,4,1,""],test_templates:[9,4,1,""],timezone_cmd:[9,4,1,""],write_ks_group:[9,4,1,""],write_ks_root:[9,4,1,""],write_ks_user:[9,4,1,""]},"pylorax.api.config":{ComposerConfig:[9,1,1,""],configure:[9,4,1,""],make_dnf_dirs:[9,4,1,""],make_queue_dirs:[9,4,1,""]},"pylorax.api.config.ComposerConfig":{get_default:[9,3,1,""]},"pylorax.api.crossdomain":{crossdomain:[9,4,1,""]},"pylorax.api.projects":{ProjectsError:[9,5,1,""],api_changelog:[9,4,1,""],api_time:[9,4,1,""],delete_repo_source:[9,4,1,""],dep_evra:[9,4,1,""],dep_nevra:[9,4,1,""],dnf_repo_to_file_repo:[9,4,1,""],estimate_size:[9,4,1,""],get_repo_sources:[9,4,1,""],get_source_ids:[9,4,1,""],modules_info:[9,4,1,""],modules_list:[9,4,1,""],pkg_to_build:[9,4,1,""],pkg_to_dep:[9,4,1,""],pkg_to_project:[9,4,1,""],pkg_to_project_info:[9,4,1,""],proj_to_module:[9,4,1,""],projects_depsolve:[9,4,1,""],projects_depsolve_with_size:[9,4,1,""],projects_info:[9,4,1,""],projects_list:[9,4,1,""],repo_to_source:[9,4,1,""],source_to_repo:[9,4,1,""]},"pylorax.api.queue":{build_status:[9,4,1,""],check_queues:[9,4,1,""],compose_detail:[9,4,1,""],get_compose_type:[9,4,1,""],get_image_name:[9,4,1,""],make_compose:[9,4,1,""],monitor:[9,4,1,""],queue_status:[9,4,1,""],start_queue_monitor:[9,4,1,""],uuid_cancel:[9,4,1,""],uuid_delete:[9,4,1,""],uuid_image:[9,4,1,""],uuid_info:[9,4,1,""],uuid_log:[9,4,1,""],uuid_status:[9,4,1,""],uuid_tar:[9,4,1,""]},"pylorax.api.recipes":{CommitDetails:[9,1,1,""],CommitTimeValError:[9,5,1,""],NewRecipeGit:[9,4,1,""],Recipe:[9,1,1,""],RecipeError:[9,5,1,""],RecipeFileError:[9,5,1,""],RecipeGit:[9,1,1,""],RecipeGroup:[9,1,1,""],RecipeModule:[9,1,1,""],RecipePackage:[9,1,1,""],check_list_case:[9,4,1,""],check_recipe_dict:[9,4,1,""],check_required_list:[9,4,1,""],commit_recipe:[9,4,1,""],commit_recipe_directory:[9,4,1,""],commit_recipe_file:[9,4,1,""],customizations_diff:[9,4,1,""],delete_file:[9,4,1,""],delete_recipe:[9,4,1,""],diff_lists:[9,4,1,""],find_commit_tag:[9,4,1,""],find_field_value:[9,4,1,""],find_name:[9,4,1,""],find_recipe_obj:[9,4,1,""],get_commit_details:[9,4,1,""],get_revision_from_tag:[9,4,1,""],gfile:[9,4,1,""],head_commit:[9,4,1,""],is_commit_tag:[9,4,1,""],is_parent_diff:[9,4,1,""],list_branch_files:[9,4,1,""],list_commit_files:[9,4,1,""],list_commits:[9,4,1,""],open_or_create_repo:[9,4,1,""],prepare_commit:[9,4,1,""],read_commit:[9,4,1,""],read_commit_spec:[9,4,1,""],read_recipe_and_id:[9,4,1,""],read_recipe_commit:[9,4,1,""],recipe_diff:[9,4,1,""],recipe_filename:[9,4,1,""],recipe_from_dict:[9,4,1,""],recipe_from_file:[9,4,1,""],recipe_from_toml:[9,4,1,""],repo_file_exists:[9,4,1,""],revert_file:[9,4,1,""],revert_recipe:[9,4,1,""],tag_file_commit:[9,4,1,""],tag_recipe_commit:[9,4,1,""],write_commit:[9,4,1,""]},"pylorax.api.recipes.Recipe":{bump_version:[9,3,1,""],filename:[9,2,1,""],freeze:[9,3,1,""],group_names:[9,2,1,""],module_names:[9,2,1,""],module_nver:[9,2,1,""],package_names:[9,2,1,""],package_nver:[9,2,1,""],toml:[9,3,1,""]},"pylorax.api.server":{GitLock:[9,1,1,""]},"pylorax.api.server.GitLock":{dir:[9,2,1,""],lock:[9,2,1,""],repo:[9,2,1,""]},"pylorax.api.v0":{blueprint_exists:[9,4,1,""],take_limits:[9,4,1,""],v0_api:[9,4,1,""]},"pylorax.api.workspace":{workspace_delete:[9,4,1,""],workspace_dir:[9,4,1,""],workspace_read:[9,4,1,""],workspace_write:[9,4,1,""]},"pylorax.base":{BaseLoraxClass:[8,1,1,""],DataHolder:[8,1,1,""]},"pylorax.base.BaseLoraxClass":{pcritical:[8,3,1,""],pdebug:[8,3,1,""],perror:[8,3,1,""],pinfo:[8,3,1,""],pwarning:[8,3,1,""]},"pylorax.base.DataHolder":{copy:[8,3,1,""]},"pylorax.buildstamp":{BuildStamp:[8,1,1,""]},"pylorax.buildstamp.BuildStamp":{write:[8,3,1,""]},"pylorax.cmdline":{lmc_parser:[8,4,1,""],lorax_parser:[8,4,1,""]},"pylorax.creator":{FakeDNF:[8,1,1,""],calculate_disk_size:[8,4,1,""],check_kickstart:[8,4,1,""],create_pxe_config:[8,4,1,""],find_ostree_root:[8,4,1,""],get_arch:[8,4,1,""],is_image_mounted:[8,4,1,""],make_appliance:[8,4,1,""],make_image:[8,4,1,""],make_live_images:[8,4,1,""],make_livecd:[8,4,1,""],make_runtime:[8,4,1,""],make_squashfs:[8,4,1,""],mount_boot_part_over_root:[8,4,1,""],rebuild_initrds_for_live:[8,4,1,""],run_creator:[8,4,1,""],squashfs_args:[8,4,1,""]},"pylorax.creator.FakeDNF":{reset:[8,3,1,""]},"pylorax.decorators":{singleton:[8,4,1,""]},"pylorax.discinfo":{DiscInfo:[8,1,1,""]},"pylorax.discinfo.DiscInfo":{write:[8,3,1,""]},"pylorax.dnfhelper":{LoraxDownloadCallback:[8,1,1,""],LoraxRpmCallback:[8,1,1,""]},"pylorax.dnfhelper.LoraxDownloadCallback":{end:[8,3,1,""],progress:[8,3,1,""],start:[8,3,1,""]},"pylorax.dnfhelper.LoraxRpmCallback":{error:[8,3,1,""],progress:[8,3,1,""]},"pylorax.executils":{ExecProduct:[8,1,1,""],augmentEnv:[8,4,1,""],execReadlines:[8,4,1,""],execWithCapture:[8,4,1,""],execWithRedirect:[8,4,1,""],runcmd:[8,4,1,""],runcmd_output:[8,4,1,""],setenv:[8,4,1,""],startProgram:[8,4,1,""]},"pylorax.imgutils":{DMDev:[8,1,1,""],LoopDev:[8,1,1,""],Mount:[8,1,1,""],PartitionMount:[8,1,1,""],compress:[8,4,1,""],copytree:[8,4,1,""],default_image_name:[8,4,1,""],dm_attach:[8,4,1,""],dm_detach:[8,4,1,""],do_grafts:[8,4,1,""],estimate_size:[8,4,1,""],get_loop_name:[8,4,1,""],loop_attach:[8,4,1,""],loop_detach:[8,4,1,""],loop_waitfor:[8,4,1,""],mkbtrfsimg:[8,4,1,""],mkcpio:[8,4,1,""],mkdosimg:[8,4,1,""],mkext4img:[8,4,1,""],mkfsimage:[8,4,1,""],mkfsimage_from_disk:[8,4,1,""],mkhfsimg:[8,4,1,""],mkqcow2:[8,4,1,""],mkqemu_img:[8,4,1,""],mkrootfsimg:[8,4,1,""],mksparse:[8,4,1,""],mksquashfs:[8,4,1,""],mktar:[8,4,1,""],mount:[8,4,1,""],round_to_blocks:[8,4,1,""],umount:[8,4,1,""]},"pylorax.installer":{InstallError:[8,5,1,""],QEMUInstall:[8,1,1,""],anaconda_cleanup:[8,4,1,""],append_initrd:[8,4,1,""],create_vagrant_metadata:[8,4,1,""],find_free_port:[8,4,1,""],novirt_cancel_check:[8,4,1,""],novirt_install:[8,4,1,""],update_vagrant_metadata:[8,4,1,""],virt_install:[8,4,1,""]},"pylorax.ltmpl":{LiveTemplateRunner:[8,1,1,""],LoraxTemplate:[8,1,1,""],LoraxTemplateRunner:[8,1,1,""],TemplateRunner:[8,1,1,""],brace_expand:[8,4,1,""],rexists:[8,4,1,""],rglob:[8,4,1,""],split_and_expand:[8,4,1,""]},"pylorax.ltmpl.LiveTemplateRunner":{installpkg:[8,3,1,""]},"pylorax.ltmpl.LoraxTemplate":{parse:[8,3,1,""]},"pylorax.ltmpl.LoraxTemplateRunner":{append:[8,3,1,""],chmod:[8,3,1,""],copy:[8,3,1,""],createaddrsize:[8,3,1,""],hardlink:[8,3,1,""],install:[8,3,1,""],installimg:[8,3,1,""],installinitrd:[8,3,1,""],installkernel:[8,3,1,""],installpkg:[8,3,1,""],installupgradeinitrd:[8,3,1,""],log:[8,3,1,""],mkdir:[8,3,1,""],move:[8,3,1,""],remove:[8,3,1,""],removefrom:[8,3,1,""],removekmod:[8,3,1,""],removepkg:[8,3,1,""],replace:[8,3,1,""],run_pkg_transaction:[8,3,1,""],runcmd:[8,3,1,""],symlink:[8,3,1,""],systemctl:[8,3,1,""],treeinfo:[8,3,1,""]},"pylorax.ltmpl.TemplateRunner":{run:[8,3,1,""]},"pylorax.monitor":{LogMonitor:[8,1,1,""],LogRequestHandler:[8,1,1,""],LogServer:[8,1,1,""]},"pylorax.monitor.LogMonitor":{shutdown:[8,3,1,""]},"pylorax.monitor.LogRequestHandler":{finish:[8,3,1,""],handle:[8,3,1,""],iserror:[8,3,1,""],setup:[8,3,1,""]},"pylorax.monitor.LogServer":{log_check:[8,3,1,""],timeout:[8,2,1,""]},"pylorax.mount":{IsoMountpoint:[8,1,1,""]},"pylorax.mount.IsoMountpoint":{get_iso_label:[8,3,1,""],umount:[8,3,1,""]},"pylorax.sysutils":{chmod_:[8,4,1,""],chown_:[8,4,1,""],joinpaths:[8,4,1,""],linktree:[8,4,1,""],remove:[8,4,1,""],replace:[8,4,1,""],touch:[8,4,1,""]},"pylorax.treebuilder":{RuntimeBuilder:[8,1,1,""],TreeBuilder:[8,1,1,""],findkernels:[8,4,1,""],generate_module_info:[8,4,1,""],string_lower:[8,4,1,""],udev_escape:[8,4,1,""]},"pylorax.treebuilder.RuntimeBuilder":{cleanup:[8,3,1,""],create_runtime:[8,3,1,""],finished:[8,3,1,""],generate_module_data:[8,3,1,""],install:[8,3,1,""],postinstall:[8,3,1,""],verify:[8,3,1,""],writepkglists:[8,3,1,""],writepkgsizes:[8,3,1,""]},"pylorax.treebuilder.TreeBuilder":{build:[8,3,1,""],copy_dracut_hooks:[8,3,1,""],dracut_hooks_path:[8,2,1,""],implantisomd5:[8,3,1,""],kernels:[8,2,1,""],rebuild_initrds:[8,3,1,""]},"pylorax.treeinfo":{TreeInfo:[8,1,1,""]},"pylorax.treeinfo.TreeInfo":{add_section:[8,3,1,""],write:[8,3,1,""]},pylorax:{ArchData:[8,1,1,""],Lorax:[8,1,1,""],api:[9,0,0,"-"],base:[8,0,0,"-"],buildstamp:[8,0,0,"-"],cmdline:[8,0,0,"-"],creator:[8,0,0,"-"],decorators:[8,0,0,"-"],discinfo:[8,0,0,"-"],dnfhelper:[8,0,0,"-"],executils:[8,0,0,"-"],find_templates:[8,4,1,""],get_buildarch:[8,4,1,""],imgutils:[8,0,0,"-"],installer:[8,0,0,"-"],log_selinux_state:[8,4,1,""],ltmpl:[8,0,0,"-"],monitor:[8,0,0,"-"],mount:[8,0,0,"-"],output:[8,0,0,"-"],setup_logging:[8,4,1,""],sysutils:[8,0,0,"-"],treebuilder:[8,0,0,"-"],treeinfo:[8,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","method","Python method"],"4":["py","function","Python function"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:method","4":"py:function","5":"py:exception"},terms:{"01t08":9,"03374adbf080fe34f5c6c29f2e49cc2b86958bf2":9,"03397f8d":9,"06e8":9,"08t00":9,"0ad":9,"0e08ecbb708675bfabc82952599a1712a843779d":9,"0instal":9,"10t23":9,"11t00":9,"11t01":9,"13z":9,"1mbyte":9,"23t00":9,"28z":9,"29b492f26ed35d80800b536623bafc51e2f0eff2":9,"2b4174b3614b":9,"2ping":9,"30z":9,"3700mib":8,"3726a1093fd0":9,"397f":9,"3e11eb87a63d289662cba4b1804a0947a6843379":9,"3rn8evie2t50lmvybyihtgvrhcaecmeck31l":5,"41ef9c3e4b73":9,"44c0":9,"45502a6d":9,"45e380f39894":9,"47z":9,"48a5":9,"4a23":9,"4af9":9,"4b70":9,"4b8a":9,"4c68":9,"4c9f":9,"4cdb":9,"523b":9,"52z":9,"56z":9,"61b799739ce8":9,"6d292bd0":9,"7078e521a54b12eae31c3fd028680da7a0815a4d":9,"70b84195":9,"745712b2":9,"7f16":9,"870f":9,"8c8435ef":9,"8d7d":9,"96db":9,"99anaconda":8,"9bf1":9,"9c81":9,"byte":9,"case":[5,9],"catch":[3,8],"char":8,"class":[7,8,9],"default":[0,3,4,5,8,9],"final":[0,2,3,4,5,7,8,9],"function":[5,8,9],"import":[3,8],"int":[8,9],"new":[0,2,3,4,5,8],"null":[3,9],"public":[3,5],"return":[0,5,8,9],"short":5,"switch":3,"true":[3,4,5,8,9],"try":[3,8,9],"var":[3,4,5,8],"while":[5,7,8,9],ADDING:8,Adding:8,And:[3,5],But:[3,5],For:[3,5,8],Its:[2,4],NOT:9,One:[3,5],RTS:9,The:[0,2,3,5,7,8,9],There:[3,5,8,9],These:[5,7,9],Use:[3,4,8,9],Used:[3,8,9],Uses:9,Using:9,Will:8,Yes:8,_io:8,_map:5,a215:9,a2ef832e6b1a:9,a697ca405cdf:9,aarch64:[4,7,8],abbrevi:3,abl:[4,5],abort:3,about:[0,3,9],abov:3,absolut:8,accept:5,access:[3,5,9],accomplish:3,account:[5,8],acff:9,acl:[8,9],action:8,activ:[3,5],actual:[8,9],ad52:9,add2636e7459:9,add:[0,3,4,7,8,9],add_arch_templ:[4,8],add_arch_template_var:[4,8],add_arg:8,add_custom:9,add_sect:8,add_templ:[4,8],add_template_var:[4,8],added:[3,5,8,9],adding:[5,8],addit:[3,4,5,8,9],addon:9,addr:8,addrsiz:8,admin:5,administr:5,ae1bf7e3:9,af92:9,afford:3,after:[3,4,8,9],against:3,alia:9,alibaba:[0,9],align:3,all:[0,2,3,4,5,7,8,9],allbut:[4,8],alloc:3,allow:[3,4,5],almost:2,along:[4,9],alreadi:[5,8,9],also:[0,3,4,5,8,9],alwai:[3,5,9],amazon:3,america:5,ami:[0,5],amount:5,anaconda:[0,2,4,5,7,8,9],anaconda_arg:[3,9],anaconda_cleanup:8,anaconfigurationthread:9,ancient:9,ani:[0,3,5,8,9],anoth:[3,4],anyth:[7,9],anywher:8,api:[0,5,6,8],api_changelog:9,api_tim:9,apiv:0,app:3,app_fil:3,app_nam:3,app_templ:3,append:[3,4,5,8,9],append_initrd:8,appli:[0,8,9],applianc:8,applic:[5,9],appropri:[3,8],arbitrari:[4,5],arch:[2,3,4,8,9],archdata:8,architectur:[2,3,4,8],archiv:[3,5,7,8,9],aren:[4,9],arg:[0,3,4,8,9],argpars:8,argument:[8,9],argumentpars:[8,9],argv:8,arm:[3,8],armhfp:8,armplatform:[3,9],around:3,artifact:[3,9],assembl:9,associ:8,assum:8,atla:9,attach:8,attach_to_al:9,attempt:[2,8,9],attr:9,attribut:[3,9],audit:9,augmentenv:8,authent:9,author:[0,3,4,5,9],authorized_kei:5,automat:[5,8],automatic_opt:9,avahi:9,avail:[0,3,5,9],awar:5,b36e:9,back:[0,8],backup:[8,9],bare:[3,9],base:[3,4,5,6,9],basearch:8,baseimag:5,baseloraxclass:8,basenam:8,baserequesthandl:8,basesystem:9,baseurl:[5,9],bash:[2,3,5,9],basic:[0,4],bcj_arch:8,bcl:[0,3,4,5],bd31:9,bdc:5,bec7:9,becaus:[3,4,5,9],becom:[3,5],been:[3,8,9],befor:[1,3,4,5,8,9],behind:[5,8],being:[3,4,5,9],below:[3,4,9],best:[3,4,5,9],better:8,between:[0,5,8,9],big:8,bin:[3,5,8],binari:[3,8],binary_output:8,bind:3,bind_mount_opt:3,bio:3,bit:5,blob:9,block:[4,5,8,9],block_siz:9,blocksiz:8,blog:5,blueprint:8,blueprint_exist:9,blueprint_nam:8,bodi:9,bool:[8,9],boot:[0,2,4,5,7,8,9],boot_uefi:8,bootabl:[3,4],bootdir:8,bootload:[3,5,9],bootloader_append:9,bootproto:3,both:[3,5,9],boundri:9,box:3,brace:8,brace_expand:8,branch:[3,5,9],brian:[0,3,4,5],brianlan:9,browser:5,bug:[3,4,5],bugurl:[4,8],bugzilla:3,build:[2,3,4,5,7,8,9],build_config_ref:9,build_env_ref:9,build_id:9,build_statu:9,build_tim:9,buildarch:[4,8],builder:[3,9],buildinstal:2,buildsi:3,buildstamp:6,built:[4,8,9],builtin:8,bump:[5,9],bump_vers:9,bunch:8,bundl:3,bzip2:[3,8],c30b7d80:9,cach:[3,4,5],cachedir:4,calcul:8,calculate_disk_s:8,call:[2,3,8,9],callback:8,calledprocesserror:8,caller:9,can:[0,3,4,5,7,8,9],cancel:[0,3,8],cancel_func:8,cannot:[3,4,5,9],captur:8,care:[8,9],cat:3,categor:5,caught:[3,9],caus:8,cdboot:5,cdlabel:8,cee5f4c20fc33ea4d54bfecf56f4ad41ad15f4f3:9,central:2,certif:[4,5,9],cfg:[8,9],chang:[0,3,4,5,8],changelog:[0,9],charact:[5,8],check:[5,8,9],check_gpg:[5,9],check_kickstart:8,check_list_cas:9,check_queu:9,check_recipe_dict:9,check_required_list:9,check_ssl:[5,9],checksum:3,checksum_typ:3,child:8,chmod:[4,8],chmod_:8,cho2:5,choos:3,chosen:[3,8,9],chown_:8,chronyd:5,chroot:[3,4,7,8],chroot_setup_cmd:3,cisco:9,clean:[2,3,5,9],cleanup:[3,8,9],clear:[2,5,9],clearpart:3,cli:[1,5,9],client:[3,9],client_address:8,clone:[5,9],close:8,cloud:[3,5],cls:8,cmd:[5,8],cmdline:6,cmdlist:8,cockpit:5,code:[4,5,8,9],collect:9,com:[0,3,4,5,9],combin:3,come:9,comma:[8,9],command:[0,2,3,4,5,7,8,9],commandlin:[0,5,8],commit:[0,5,8],commit_id:9,commit_recip:9,commit_recipe_directori:9,commit_recipe_fil:9,commitdetail:9,committimevalerror:9,common:[3,4],commonli:5,commun:5,comoposit:9,comparison:9,compat:5,complet:[2,5,8,9],compon:3,compos:[1,6,8],compose_arg:[5,9],compose_detail:9,compose_statu:8,compose_typ:[5,8],composerconfig:9,composit:9,compress:[3,7,8,9],compress_arg:[3,9],compressarg:8,compressopt:8,comput:8,conf:[2,4,5,8,9],conf_fil:[8,9],config:[3,4,5,6,8],config_opt:3,configfil:4,configpars:9,configur:[2,3,4,5,8,9],conflict:[4,5],consist:[0,2],consol:5,construct:[5,8],constructor:9,contain:[2,4,5,7,8,9],content:[1,4,5,6,7],context:8,continu:8,control:[2,5,8],convent:3,convert:[3,5,8,9],copi:[0,2,3,4,5,7,8,9],copy_dracut_hook:8,copyin:3,copytre:8,core:3,correct:[2,3,5,8,9],correctli:[3,5,8,9],correspond:8,could:[3,5],count:9,coupl:3,cpio:8,cpu:8,crash:8,creat:[0,2,4,5,7,8,9],create_pxe_config:8,create_runtim:8,create_vagrant_metadata:8,createaddrs:8,creation:[2,7,8,9],creator:[1,5,6,9],cross:9,crossdomain:[6,8],current:[0,2,3,5,8,9],custom:[2,3,7,9],customizations_diff:9,customize_ks_templ:9,d6bd:9,data:[2,3,8,9],datahold:[8,9],dbo:[8,9],debug:[5,8],decod:8,decor:6,dee:9,default_image_nam:8,defin:[3,5,9],delai:8,delet:[0,3,4,5,8],delete_fil:9,delete_recip:9,delete_repo_sourc:9,denial:[3,5],dep:9,dep_evra:9,dep_nevra:9,depend:[0,3,4,7,9],deploy:[5,8,9],depmod:8,depsolv:[0,5,8],describ:[3,5],descript:[0,3,5,8,9],desir:9,desktop:3,dest:8,destfil:8,destin:[4,5,8,9],detach:8,detail:[0,5,9],detect:[3,8],dev:[3,4,8],devel:3,develop:[3,5,9],devic:[3,4,8],devicemapp:8,dhcp:[3,5],dialog:3,dict:[8,9],dictionari:9,didn:3,died:3,diff:[0,8],diff_list:9,differ:[0,3,5,8,9],difficult:9,dir:[3,4,8,9],direcori:8,direct:9,directli:[3,5,9],directori:[0,3,4,5,7,8,9],dirinstall_path:8,disabl:[4,5,8,9],disablerepo:4,discinfo:[4,6],disk:[0,8],disk_imag:3,disk_img:8,disk_info:3,disk_siz:8,diskimag:8,displai:[0,3,5],distribut:[4,5],dm_attach:8,dm_detach:8,dmdev:8,dmsetup:8,dnf:[4,5,8,9],dnf_conf:9,dnf_obj:8,dnf_repo_to_file_repo:9,dnfbase:[6,8],dnfhelper:6,dnflock:9,do_graft:8,doc:[3,5],docker:3,document:[3,4,5],doe:[3,4,5,8,9],doesn:[3,5,8,9],doing:[3,5,9],domacboot:8,domain:5,don:[3,8,9],done:[0,8,9],doupgrad:8,download:4,downloadprogress:8,dracut:8,dracut_arg:[3,4],dracut_default:8,dracut_hook:8,dracut_hooks_path:8,drawback:3,drive:4,driven:2,driver:[2,8],drop:[5,7],dst:8,due:3,dump:9,dyy8gj:9,e083921a7ed1cf2eec91ad12b9ad1e70ef3470b:9,e695affd:9,e6fa6db4:9,each:[0,3,4,5,8,9],easi:8,easier:3,eastern:5,ec2:3,edit:[5,9],edk2:3,effect:5,efi:[3,5],either:[3,5,8,9],el7:9,els:8,emit:8,empti:[4,5,8,9],en_u:5,enabl:[3,4,5,8,9],enablerepo:4,encod:8,encount:[3,9],encrypt:5,end:[0,3,4,5,8,9],endfor:8,endif:4,enforc:[3,5,9],enhanc:3,enough:8,ensur:[8,9],enter:9,entri:[3,5,8,9],env_add:8,env_prun:8,environ:[3,4,5,8],epoch:9,equival:8,err:8,error:[3,5,8,9],escap:8,especi:5,estim:9,estimate_s:[8,9],etc:[3,4,5,8,9],even:[3,4,9],everi:9,everyth:[3,4,8],exact:[5,9],exactli:[5,9],examin:3,exampl:[0,3,7,8,9],except:[3,4,5,8,9],exclud:8,excludepkg:[4,8],execproduct:8,execreadlin:8,execut:[2,5,8],executil:6,execwithcaptur:8,execwithredirect:8,exist:[0,2,3,4,5,8,9],exit:[0,3,4,5,8],expand:8,expans:8,expect:[3,5,8,9],expected_kei:9,explicitli:5,explor:0,exract:9,ext4:[0,4,5,8,9],extend:5,extens:[0,4],extern:8,extra:[3,5,9],extra_boot_arg:[3,8],extract:[8,9],f15:3,f16:3,f629b7a948f5:9,fail:[0,5,8],failur:[8,9],fairli:4,fakednf:8,fals:[0,3,4,5,8,9],far:3,fatal:[3,8],fatalerror:8,fe925c35e795:9,featur:3,fedora:[1,3,4,8,9],fedoraproject:[3,4,9],feedback:3,few:[3,4],field:[5,9],figur:2,fila:9,file:[0,2,4,5,7,8,9],fileglob:8,filenam:[0,8,9],filesystem:[0,5,7,8,9],fill:9,filter:8,filter_stderr:8,find:[2,3,8,9],find_commit_tag:9,find_field_valu:9,find_free_port:8,find_nam:9,find_ostree_root:8,find_recipe_obj:9,find_templ:8,findkernel:8,fine:5,finish:[0,4,5,8],firewal:9,firewall_cmd:9,firewalld:5,firmwar:3,first:[2,3,5,8,9],fit:3,fix:8,flag:8,flask:9,flatten:3,flexibl:2,fmt:8,fname:8,fobj:8,follow:[3,8,9],foo:9,forc:[4,5,8],form:[4,9],format:[0,3,5,8],found:[3,5,8,9],free:[4,8],freez:[0,8],from:[0,2,3,4,5,7,8,9],from_commit:8,frozen:0,fs_imag:3,fs_label:3,fsck:8,fsimag:[3,8],fstab:3,fstype:[3,8],ftp:5,ftruncat:8,full:[5,8,9],further:8,futur:5,game:9,gener:[2,3,4,8,9],generate_module_data:8,generate_module_info:8,get:[3,5,8,9],get_arch:8,get_buildarch:8,get_commit_detail:9,get_compose_typ:9,get_default:9,get_default_servic:9,get_extra_pkg:9,get_firewall_set:9,get_image_nam:9,get_iso_label:8,get_kernel_append:9,get_keyboard_layout:9,get_languag:9,get_loop_nam:8,get_repo_sourc:9,get_revision_from_tag:9,get_servic:9,get_source_id:9,get_timezone_set:9,gfile:9,ggit:9,gib:[3,4,8],gid:[5,9],git:[3,9],github:3,gitlock:9,gitrepo:9,given:[8,9],glanc:3,glob:[4,5,8,9],glusterf:9,gnome:3,gnu:9,goe:[2,4,8],going:3,good:[3,8],googl:[0,5],gpg:[5,9],gpgcheck:5,gpgkei:[5,9],gpgkey_url:[5,9],gplv3:9,graft:8,green:9,group:[0,3,8,9],group_nam:9,group_typ:9,grow:3,growpart:3,grub2:5,grub:[3,8],gui:5,gzip:[3,8],had:3,handl:[3,4,5,8],handler:8,happen:[3,4,8],hard:9,hardlink:8,has:[3,5,7,8,9],hash:[0,5,9],have:[3,4,5,8,9],haven:3,hawkei:9,hda:0,head:[5,9],head_commit:9,header:[5,9],help:[3,8],here:[2,3,4,5,7,9],higer:9,highbank:3,higher:4,histori:[5,9],home:[3,5],homepag:9,hook:8,host:[3,4,5,8,9],hostnam:[5,9],how:[2,8],howev:5,http:[0,3,4,5,8,9],httpd:5,hw_random:8,hwmon:8,i386:8,ia64:8,idea:[2,3],ideal:8,identifi:4,ids:9,ignor:8,imag:[1,2,4,8],image_nam:[3,5,9],image_s:9,image_size_align:3,image_typ:[3,8],images_dir:8,imap:5,img:[3,4,7,8],img_mount:8,img_siz:8,imgutil:6,immut:[5,9],implantisomd5:8,implement:[7,8],includ:[3,5,7,9],inclus:9,incom:8,increment:9,index:1,indic:8,info:[0,5,8],inform:[0,2,4,5,9],init:[3,5,8],init_file_log:8,init_stream_log:8,initi:8,initramf:[3,4,8,9],initrd:[3,4,8],initrd_address:8,initrd_path:8,inject:5,input:[3,8],inroot:8,insecur:3,insert:9,insid:[3,8],instal:[0,2,6,7,9],install_log:8,installclass:7,installerror:8,installimg:[7,8],installinitrd:8,installkernel:8,installpkg:[4,7,8,9],installroot:[4,8],installtre:8,installupgradeinitrd:8,instanc:[3,9],instead:[0,3,4,5,9],instroot:2,instruct:3,integ:9,interact:0,interfac:5,interfer:4,intermedi:0,intrd:8,introduct:1,invalid:9,ioerror:9,is_commit_tag:9,is_image_mount:8,is_parent_diff:9,iserror:8,isfin:[4,8],isn:[3,8,9],iso:[0,2,8,9],iso_nam:3,iso_path:8,isoinfo:8,isolabel:8,isolinux:8,isomountpoint:8,issu:5,item:[8,9],iter:[8,9],its:[3,8,9],itself:5,jboss:9,job:9,job_creat:9,job_finish:9,job_start:9,joinpath:8,json:[0,3,5,8],just:[7,8,9],kbyte:8,kdir:8,keep:[0,3,8,9],keepglob:8,kei:[5,8,9],kernel:[3,4,8,9],kernel_append:9,kernel_arg:[3,8],keyboard:[5,9],keyboard_cmd:9,keymap:5,kickstart:[5,8,9],kickstartpars:8,kill:[3,8],knowledg:2,kpartx:[3,8],ks_path:8,ks_templat:9,ksflatten:3,kubernet:9,kvm:[0,3],kwarg:[8,9],label:[3,8],lambda:8,lane:[0,3,4,5],lang:9,lang_cmd:9,languag:[5,9],larg:[5,9],last:[0,8,9],later:[4,8],latest:3,launch:5,layout:9,lazi:8,lead:8,least:[3,8],leav:[5,8,9],left:[5,8],leftov:[3,8],less:9,level:[3,4,5,8,9],lib64_arch:8,lib:[5,8,9],librari:2,libus:9,libvirt:3,licens:9,light:4,like:[0,3,4,5,7,8,9],limit:[3,5,8],line:[2,5,8,9],link:8,linktre:8,linux:[3,4,8],list:[0,2,3,4,5,8],list_branch_fil:9,list_commit:9,list_commit_fil:9,listen:[0,5,8],live:[0,2,5,8,9],live_image_nam:8,live_rootfs_s:3,livecd:8,livemedia:[1,5,8,9],liveo:[4,8],livesi:3,livetemplaterunn:8,lmc:[3,8],lmc_parser:8,load:8,local:[0,3,8,9],localectl:5,localhost:8,locat:[3,4],lock:[5,9],log:[0,3,4,8],log_check:8,log_error:8,log_output:8,log_path:8,log_selinux_st:8,logdir:8,logfil:[0,3,4,5,8,9],logger:8,logic:4,logmonitor:8,lognam:8,logrequesthandl:8,logserv:8,longer:[5,9],look:[2,3,5,7,9],loop:[3,4,8],loop_attach:8,loop_detach:8,loop_dev:8,loop_waitfor:8,loopdev:8,loopx:8,lorax:[0,3,7,8,9],lorax_composer_pars:9,lorax_pars:8,lorax_templ:3,loraxdir:8,loraxdownloadcallback:8,loraxrpmcallback:8,loraxtempl:8,loraxtemplaterunn:[4,8],lose:3,losetup:8,lost:9,low:8,lowercas:8,lowest:8,lpar:8,lst:9,ltmpl:[4,6],lvm2:8,lzma:[3,8],mac:[3,4],macboot:[3,4],made:[5,8],mai:[3,4,5,8,9],mail:3,maintain:2,make:[3,4,5,8,9],make_:5,make_appli:8,make_compos:9,make_disk:5,make_dnf_dir:9,make_imag:8,make_live_imag:8,make_livecd:8,make_queue_dir:9,make_runtim:8,make_squashf:8,make_tar_disk:8,makestamp:2,maketreeinfo:2,mako:[2,3,4,8],manag:0,mandatori:[5,9],mani:9,manual:9,mask:8,master:9,match:[3,5,8,9],max_ag:9,maximum:9,maxretri:8,mbr:3,meant:[8,9],mechan:5,media:[3,8],megabyt:3,member:[0,3],memlimit:8,memori:[3,8],memtest86:3,mention:8,messag:[5,8,9],metadata:[0,3,4,5,8],metalink:[5,9],method:[3,5,8,9],mib:[3,8],mime:9,mind:[3,9],minim:[3,5,8],minimum:[3,9],minut:3,mirror:[3,9],mirrorlist:[4,5,9],mirrormanag:3,miss:[8,9],mix:2,mkbtrfsimg:8,mkcpio:8,mkdir:[3,4,8],mkdosimg:8,mkext4img:8,mkf:8,mkfsarg:8,mkfsimag:8,mkfsimage_from_disk:8,mkhfsimg:8,mkisof:4,mknod:3,mkqcow2:8,mkqemu_img:8,mkrootfsimg:8,mkspars:8,mksquashf:8,mktar:8,mnt:[5,8],mock:[0,5],mockfil:5,moddir:8,mode:[0,3,4,8,9],modeless:8,modifi:[3,8],modul:[0,1,2,4,6],module_nam:8,module_nv:9,modules_info:9,modules_list:9,monitor:[3,6,9],more:[2,3,5,8],most:[0,3,5,9],mount:[3,5,6],mount_boot_part_over_root:8,mount_dir:8,mount_ok:8,mountarg:8,mountpoint:[3,8],move:[4,5,8,9],move_compose_result:[5,9],msg:8,much:8,multi:3,multipl:[3,4,5,8,9],must:[3,4,5,7,8,9],mvebu:3,myconfig:8,name:8,need:[0,3,4,5,8,9],neither:9,network:[3,5,8],nevra:9,new_item:9,new_recip:9,newer:3,newest:[0,9],newli:8,newlin:8,newrecipegit:9,newrun:8,next:8,noarch:[5,9],node:[3,4],nomacboot:[3,4],non:[5,8,9],none:[3,5,8,9],nop:8,normal:[0,3,4,7],north:5,nosmt:5,note:[3,4,8,9],noth:[8,9],noupgrad:4,noverifi:4,noverifyssl:4,novirt:3,novirt_cancel_check:8,novirt_instal:[5,8,9],now:[3,4,7,8,9],nspawn:[3,4],ntp:5,ntpserver:[5,9],number:[0,3,4,5,8,9],numer:5,nvr:4,object:[8,9],observ:3,occas:8,oci_config:3,oci_runtim:3,octalmod:8,off:5,offset:8,oid:9,old:[3,4,8,9],old_item:9,old_recip:9,old_vers:9,older:3,omap:3,omit:5,onc:[0,3,4,5],one:[0,3,4,5,7,8,9],ones:[4,5,8,9],onli:[3,5,8,9],onto:4,open:[5,9],open_or_create_repo:9,openh264:9,openstack:[0,5],oper:[2,3,5,9],opt:[5,8,9],option:[2,3,4,5,8,9],order:[2,4,5,9],org:[3,4,5,9],origin:[3,5,9],ostre:[3,8],other:[2,3,4,5,8,9],otherwis:[5,8,9],ouput:9,out:[0,2,5,8,9],outfil:8,output:[0,3,4,6],outputdir:[4,8],outroot:8,outsid:8,over:[5,7],overhead:8,overrid:[3,4,5,8,9],overridden:5,overwrit:[5,9],overwritten:8,ovmf:3,ovmf_path:[3,8],own:[3,4,5,9],owner:5,ownership:[5,9],pacag:8,packag:[0,2,3,4,6,7],package_nam:9,package_nv:9,packagedir:8,page:1,param:[8,9],paramat:7,paramet:[8,9],parent:9,pars:[8,9],parser:8,part:[3,7,8,9],particular:8,partit:[0,3,8],partitin:3,partitionmount:8,pass:[0,3,4,5,7,8,9],passwd:3,password:[3,5,9],pat:8,patch:[5,9],path:[0,3,4,5,8,9],pathnam:8,pattern:8,payload:8,pcritic:8,pdebug:8,per:[8,9],permiss:5,perror:8,phys_root:8,physic:8,pick:[0,8],pid:3,pinfo:8,ping:9,pivot:8,pkg:[8,9],pkg_to_build:9,pkg_to_dep:9,pkg_to_project:9,pkg_to_project_info:9,pkgglob:8,pkglistdir:8,pkgname:7,pkgsizefil:8,pki:9,place:[3,4,7,8,9],plain:[5,9],plan:5,platform:[3,9],play0ad:9,pleas:8,plugin_conf:3,podman:3,point:[2,3,5,8,9],pool:5,popen:[8,9],popul:9,port:[3,4,5,8,9],possibl:[3,5,8,9],post:[3,5,8],postfix:5,postinstal:8,postun:8,powerpc:8,ppc64:8,ppc64le:[7,8],ppc:[7,8],pre:[5,8],precaut:0,preexec_fn:8,prefix:[3,5,8,9],prepar:9,prepare_commit:9,prepend:9,present:[2,3,9],preserv:8,pretti:[5,8],preun:8,prevent:9,previou:[5,8,9],previous:[2,3],primari:[3,5],primarili:5,print:0,privileg:5,probabl:4,problem:[2,8,9],proc:8,procedur:8,process:[2,3,4,5,7,8,9],produc:[2,3,5,9],product:[1,4,8],program:[0,3,4,5,8,9],progress:8,proj:9,proj_to_modul:9,project:[0,3,5,6,8],project_info:9,project_nam:8,projects_depsolv:9,projects_depsolve_with_s:9,projects_info:9,projects_list:9,projectserror:9,pronounc:9,properti:9,protocol:5,provid:[2,3,4,8,9],proxi:[3,4,5,9],pub:[3,4],pubkei:3,pull:[2,3,4],pungi:2,purpos:[3,5],push:0,put:[5,7,8,9],pwarn:8,pxe:8,pxeboot:4,pyanaconda:7,pykickstart:[8,9],pylorax:[1,2,4,5,7],pyo:8,python:[2,4,8,9],pythonpath:3,qcow2:[0,3,8],qemu:[0,8],qemu_arg:3,qemuinstal:8,queue:[5,6,8],queue_statu:9,quot:8,rais:[8,9],raise_err:8,ram:[3,8],random:[3,8],rang:8,rare:8,raw:[0,3,9],rawhid:[3,4],rdo:3,react:5,read:[2,3,8,9],read_commit:9,read_commit_spec:9,read_recipe_and_id:9,read_recipe_commit:9,readi:[8,9],readm:9,real:[3,5,8],realli:[3,4,8],reason:[3,8],reboot:5,rebuild:[3,4,8],rebuild_initrd:8,rebuild_initrds_for_l:8,recent:[0,9],recip:[6,8],recipe_dict:9,recipe_diff:9,recipe_filenam:9,recipe_from_dict:9,recipe_from_fil:9,recipe_from_toml:9,recipe_kei:9,recipe_nam:9,recipe_path:9,recipe_str:9,recipeerror:9,recipefileerror:9,recipegit:9,recipegroup:9,recipemodul:9,recipepackag:9,recommend:[3,5],recurs:8,redhat:[0,3,4,5],redirect:8,reduc:5,ref:[5,9],refer:[5,9],referenc:5,refus:3,regex:8,rel:8,relat:[5,9],releas:[0,2,3,4,5,8,9],releasev:[3,5,8],relev:9,reli:2,reliabl:3,remain:[4,5],remaind:9,rememb:5,remov:[2,3,4,5,8,9],remove_temp:8,removefrom:[4,8],removekmod:[4,8],removepkg:[4,8],renam:[3,8],repl:8,replac:[2,3,4,5,7,8,9],repo:[2,3,4,9],repo_file_exist:9,repo_to_k:9,repo_to_sourc:9,repodict:9,report:[3,4,5,9],repositori:[3,4,5,9],represent:9,reproduc:9,reqpart:[3,8],request:[5,8,9],requir:[0,3,5,8,9],rerun:9,rescu:3,reset:8,reset_handl:8,reset_lang:8,resolv:8,resort:8,respons:[0,8],rest:[5,8],restart:[5,9],restor:9,result:[0,3,4,5,8],result_dir:3,resultdir:3,results_dir:[8,9],retain:5,reticul:8,retriev:[5,9],retrysleep:8,retun:9,returncod:8,revert:[0,9],revert_fil:9,revert_recip:9,revis:9,revisor:2,revpars:9,rexist:8,rglob:8,rhel7:[1,3,9],rhel:[3,5],rng:3,root:[0,2,3,4,5,8,9],root_dir:9,rootdir:8,rootf:[3,4,8],rootfs_imag:8,rootfs_siz:4,rootm:3,rootpw:[3,9],roughli:8,round:[8,9],round_to_block:8,rout:[5,8],rpm:[2,5,8,9],rpmname:[5,9],rpmreleas:[5,9],rpmversion:[5,9],rtype:9,run:[0,3,5,7,8,9],run_creat:8,run_pkg_transact:[4,8],runcmd:[4,8],runcmd_output:8,rundir:8,runner:8,runtim:[3,7,8],runtimebuild:[7,8],runtimeerror:[8,9],rxxx:9,s390x:8,safe:[5,8],safeconfigpars:9,samba:9,same:[3,4,5,8,9],sampl:8,satisfi:9,save:[0,4,5,8,9],sbin:[3,8],scene:5,scm:5,script:[2,3,8,9],scriptlet:8,search:[1,8,9],second:9,secondari:5,section:[3,5,8,9],secur:0,see:[3,8,9],seem:8,select:[0,3,4,5,8,9],self:[5,8,9],selinux:[3,5,8],semver:[5,9],send:0,separ:[8,9],sequenc:8,server:[0,5,6,8],servic:[4,8,9],services_cmd:9,set:[2,3,4,5,8,9],setenforc:4,setenv:8,setup:[3,4,5,8,9],setup_log:8,sever:[3,7,9],sha256:3,shallow:8,share:[3,4,5,7,8,9],share_dir:9,sharedir:[4,5,8],shell:5,ship:4,shlex:8,shortnam:8,should:[3,4,5,8,9],show:[0,3,4,5],shutdown:[3,8],sig:9,sig_dfl:8,sig_ign:8,sign:[5,9],signal:8,signific:5,similar:[4,5],simpl:[4,5],simpli:5,sinc:[3,5,9],singl:[3,9],singleton:8,site:3,situat:5,size:[0,3,4,8],skip:[3,8,9],slightli:3,slow:3,small:8,smp:3,socket:[0,5],socketserv:8,softwar:9,solut:3,solv:9,some:[2,3,4,5,8,9],someplac:5,someth:[2,3,5,8,9],sometim:3,sort:[4,9],sound:[4,8],sourc:[0,4,8],source_glob:9,source_nam:9,source_path:9,source_ref:9,source_to_repo:9,space:[4,5,9],spars:[3,8],speak:[2,4],spec:9,special:[4,9],specif:[3,4,5,7,8,9],specifi:[3,5,8,9],speed:3,spin:3,spline:8,split:8,split_and_expand:8,squashf:[3,8],squashfs_arg:[3,8],src:[3,8],srcdir:8,srcglob:8,srv:5,ssh:[3,5,9],sshd:[3,5],sshkei:9,ssl:4,stage2:8,stage:[2,3],standard:[8,9],start:[0,3,4,5,8,9],start_build:9,start_queue_monitor:9,startprogram:8,startup:5,state:[0,3,5,8,9],statement:8,statu:[5,8],status_filt:9,stderr:8,stdin:8,stdout:[8,9],step:[2,3],stick:5,still:[3,5,8],stop:[3,5],storag:[0,3,5,8,9],store:[3,4,5,8,9],str:[8,9],strang:3,stream:9,strictli:4,string:[5,8,9],string_low:8,stuck:3,style:8,sub:8,subclass:9,subdirectori:9,submit:9,submodul:6,submount:8,subpackag:6,subprocess:8,subset:9,substitut:[3,4],succe:9,success:[8,9],sudo:[3,5],suffix:8,suit:[0,5],suitabl:[8,9],summari:[5,9],support:[0,2,3,4,7,9],sure:[3,5,8,9],swap:3,symlink:[4,8,9],sys:8,sys_root_dir:8,sysimag:8,syslinux:3,sysroot:8,system:[0,3,4,5,8,9],system_sourc:9,systemctl:[4,5,8],systemd:[3,4,5,8],sysutil:6,tag:[0,4,5,8],tag_file_commit:9,tag_recipe_commit:9,take:[3,5,7,8,9],take_limit:9,tar:[0,5,9],tar_disk_nam:3,tar_img:8,tarbal:8,tarfil:[3,8],target:[3,4,8],tcp:[5,8],tcpserver:8,tegra:3,tell:4,telnet:5,telnetd:5,templat:[2,3,5,7,8,9],template_fil:8,templatedir:8,templatefil:8,templaterunn:8,temporari:[0,2,3,4,5,8,9],termin:8,test:[0,3,5,9],test_config:9,test_mod:9,test_templ:9,testmod:0,text:[4,5,9],textiowrapp:8,than:[3,5,8,9],thei:[0,3,4,5,9],thelogg:8,them:[2,4,5,8,9],therefor:5,thi:[0,3,4,5,7,8,9],thing:[2,3,8,9],those:[2,7,9],though:[2,9],thread:[3,5,8,9],three:5,thu:8,ti_don:8,ti_tot:8,time:[3,4,5,7,8,9],timedatectl:5,timeout:[3,8],timestamp:[8,9],timezon:9,timezone_cmd:9,titl:[3,8,9],tmp:[3,4,5,8,9],tmpl:[7,8,9],to_commit:8,token:8,told:4,toml:[0,5,8],toml_dict:9,tomlerror:9,tool:[0,2,3,4],top:[3,4,5,7,8,9],total:[3,9],total_drpm:8,total_fil:8,total_s:8,touch:8,traceback:8,track:[0,9],trail:9,transactionprogress:8,transmogrifi:8,trash:3,treat:[5,8],tree:[2,3,4,7,8,9],treebuild:[6,7,9],treeinfo:[4,6],tri:[3,8,9],truckin:8,ts_done:8,ts_total:8,tty1:3,tui:3,tupl:[8,9],turn:2,two:9,type:[0,3,8],typic:8,udev_escap:8,udp:5,uefi:4,uid:[5,9],umask:8,umount:[3,5,8],uncompress:9,undelet:9,under:[3,4,5,8],understand:5,undo:[0,8],unicodedecodeerror:8,uniqu:9,unit:[5,8],unix:[5,9],unknown:8,unless:9,unmaintain:2,unmount:[3,8],unneed:[2,4,5,8,9],unpack:2,unpartit:8,until:[5,8],untouch:8,unus:3,upd:2,updat:[1,3,4,5,8,9],update_vagrant_metadata:8,upgrad:8,upload:[3,5],upstream_vc:9,url:[3,4,5,9],usabl:3,usag:[0,3,4,5,8],usbutil:8,use:[0,3,4,5,8,9],used:[0,2,3,4,5,8,9],useful:[3,8],user:[0,3,8,9],user_dracut_arg:8,useradd:5,uses:[3,4,5,8,9],using:[0,3,4,5,7,8,9],usr:[3,4,5,7,8,9],usual:[3,5],utc:[5,9],utf:[5,8],util:3,uuid:[0,5,8],uuid_cancel:9,uuid_delet:9,uuid_dir:9,uuid_imag:9,uuid_info:9,uuid_log:9,uuid_statu:9,uuid_tar:9,v0_api:9,vagrant:8,vagrant_metadata:3,vagrantfil:3,valid:[5,9],valu:[3,5,8,9],valueerror:9,valuetok:8,variabl:[3,4,8],variant:[4,8],variou:[8,9],vcpu:[3,8],verbatim:3,veri:3,verifi:[0,4,8],version:[0,2,3,4,5,8,9],vhd:0,via:[3,4,5],video:8,view:0,virt:[8,9],virt_instal:8,virtio:8,virtio_consol:8,virtio_host:8,virtio_port:8,virtual:[3,8],vmdk:0,vmlinuz:[3,8],vnc:[3,8],volid:[3,4,8],volum:[3,4],wai:[3,5,9],wait:[0,8,9],want:[3,5,9],warfar:9,warn:[8,9],wasn:3,watch:3,web:[3,5],websit:3,weight:4,welcom:3,welder:5,weldr:[0,5,9],well:[3,4,5,9],were:[8,9],what:[2,3,4,5,8,9],whatev:9,wheel:[3,5],when:[3,4,5,8,9],whenev:8,where:[0,3,4,5,8,9],whether:[8,9],which:[0,2,3,4,5,7,8,9],whitespac:8,who:3,whole:8,widest:5,widget:5,wildcard:5,winnt:8,with_cor:9,with_rng:3,without:[3,4,5,9],word:8,work:[8,9],work_dir:8,workdir:[4,8],workflow:2,workspac:[0,6,8],workspace_delet:9,workspace_dir:9,workspace_read:9,workspace_writ:9,would:[3,5,7,8],wrapper:9,write:[2,8,9],write_commit:9,write_ks_group:9,write_ks_root:9,write_ks_us:9,writepkglist:8,writepkgs:8,written:[2,3,5,8],wrong:8,wrote:9,wwood:8,www:9,x86:[4,7,8,9],x86_64:[3,4,8,9],xattr:8,xfce:3,xfsprog:8,xml:3,xxxx:3,xxxxx:3,yield:9,you:[0,3,4,5,7,8,9],your:[3,4,5,7,9],yourdomain:3,yum:[2,3,5,9],yumbas:9,yumlock:9,zero:[8,9],zerombr:3},titles:["composer-cli","Welcome to Lorax\u2019s documentation!","Introduction to Lorax","livemedia-creator","Lorax","lorax-composer","pylorax","Product and Updates Images","pylorax package","pylorax.api package"],titleterms:{"import":5,"new":9,Adding:[5,9],The:4,Using:3,add:5,ami:3,anaconda:3,api:9,applianc:3,argument:[0,3,4,5],atom:3,base:8,befor:2,blueprint:[0,5,9],blueprint_nam:9,boot:3,branch:1,build:0,buildstamp:8,cancel:9,chang:9,cleanup:4,cli:0,cmdline:[0,3,4,5,8,9],commit:9,compos:[0,5,9],compose_statu:9,compose_typ:9,config:9,contain:3,content:[8,9],creat:3,creation:[3,4],creator:[3,8],crossdomain:9,custom:[4,5],debug:3,decor:8,delet:9,depsolv:9,diff:9,discinfo:8,disk:[3,5],dnfbase:9,dnfhelper:8,document:1,download:0,dracut:[3,4],dvd:5,edit:0,exampl:5,executil:8,fail:9,file:3,filesystem:[3,4],finish:9,firewal:5,format:9,freez:9,from_commit:9,git:5,group:5,hack:3,how:[3,4,5],imag:[0,3,5,7,9],imgutil:8,indic:1,info:9,initi:3,insid:4,instal:[3,4,5,8],introduct:2,iso:[3,4,5],json:9,kbyte:9,kernel:5,kickstart:3,limit:9,list:9,live:3,livemedia:3,local:5,log:[5,9],lorax:[1,2,4,5],ltmpl:8,metadata:9,mock:[3,4],modul:[5,8,9],module_nam:9,monitor:[0,8],mount:8,name:[0,3,4,5,9],note:5,oci:3,offset:9,open:3,openstack:3,other:1,output:[5,8,9],packag:[5,8,9],partit:5,posit:[0,4,5],post:9,postinstal:4,problem:3,product:7,project:9,project_nam:9,pxe:3,pylorax:[6,8,9],qemu:3,queue:9,quickstart:[3,4,5],recip:9,repo:5,requir:4,respons:9,result:9,rout:9,run:4,runtim:4,secur:5,server:9,servic:5,size:9,sourc:[5,9],squashf:4,sshkei:5,statu:[0,9],submodul:[8,9],subpackag:8,support:5,sysutil:8,tabl:1,tag:9,tar:3,templat:4,thing:5,timezon:5,tmpl:4,to_commit:9,toml:9,treebuild:8,treeinfo:8,type:[5,9],uefi:3,undo:9,updat:7,user:5,uuid:9,vagrant:3,virt:3,welcom:1,work:[3,4,5],workspac:9}})
\ No newline at end of file
+Search.setIndex({docnames:["composer-cli","index","intro","livemedia-creator","lorax","lorax-composer","modules","product-images","pylorax","pylorax.api"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["composer-cli.rst","index.rst","intro.rst","livemedia-creator.rst","lorax.rst","lorax-composer.rst","modules.rst","product-images.rst","pylorax.rst","pylorax.api.rst"],objects:{"":{pylorax:[8,0,0,"-"]},"pylorax.ArchData":{bcj_arch:[8,2,1,""],lib64_arches:[8,2,1,""]},"pylorax.Lorax":{configure:[8,3,1,""],init_file_logging:[8,3,1,""],init_stream_logging:[8,3,1,""],run:[8,3,1,""],templatedir:[8,3,1,""]},"pylorax.api":{cmdline:[9,0,0,"-"],compose:[9,0,0,"-"],config:[9,0,0,"-"],crossdomain:[9,0,0,"-"],projects:[9,0,0,"-"],queue:[9,0,0,"-"],recipes:[9,0,0,"-"],server:[9,0,0,"-"],v0:[9,0,0,"-"],workspace:[9,0,0,"-"]},"pylorax.api.cmdline":{lorax_composer_parser:[9,4,1,""]},"pylorax.api.compose":{add_customizations:[9,4,1,""],bootloader_append:[9,4,1,""],compose_args:[9,4,1,""],compose_types:[9,4,1,""],customize_ks_template:[9,4,1,""],firewall_cmd:[9,4,1,""],get_default_services:[9,4,1,""],get_extra_pkgs:[9,4,1,""],get_firewall_settings:[9,4,1,""],get_kernel_append:[9,4,1,""],get_keyboard_layout:[9,4,1,""],get_languages:[9,4,1,""],get_services:[9,4,1,""],get_timezone_settings:[9,4,1,""],keyboard_cmd:[9,4,1,""],lang_cmd:[9,4,1,""],move_compose_results:[9,4,1,""],repo_to_ks:[9,4,1,""],services_cmd:[9,4,1,""],start_build:[9,4,1,""],test_templates:[9,4,1,""],timezone_cmd:[9,4,1,""],write_ks_group:[9,4,1,""],write_ks_root:[9,4,1,""],write_ks_user:[9,4,1,""]},"pylorax.api.config":{ComposerConfig:[9,1,1,""],configure:[9,4,1,""],make_dnf_dirs:[9,4,1,""],make_queue_dirs:[9,4,1,""]},"pylorax.api.config.ComposerConfig":{get_default:[9,3,1,""]},"pylorax.api.crossdomain":{crossdomain:[9,4,1,""]},"pylorax.api.projects":{ProjectsError:[9,5,1,""],api_changelog:[9,4,1,""],api_time:[9,4,1,""],delete_repo_source:[9,4,1,""],dep_evra:[9,4,1,""],dep_nevra:[9,4,1,""],dnf_repo_to_file_repo:[9,4,1,""],estimate_size:[9,4,1,""],get_repo_sources:[9,4,1,""],get_source_ids:[9,4,1,""],modules_info:[9,4,1,""],modules_list:[9,4,1,""],pkg_to_build:[9,4,1,""],pkg_to_dep:[9,4,1,""],pkg_to_project:[9,4,1,""],pkg_to_project_info:[9,4,1,""],proj_to_module:[9,4,1,""],projects_depsolve:[9,4,1,""],projects_depsolve_with_size:[9,4,1,""],projects_info:[9,4,1,""],projects_list:[9,4,1,""],repo_to_source:[9,4,1,""],source_to_repo:[9,4,1,""]},"pylorax.api.queue":{build_status:[9,4,1,""],check_queues:[9,4,1,""],compose_detail:[9,4,1,""],get_compose_type:[9,4,1,""],get_image_name:[9,4,1,""],make_compose:[9,4,1,""],monitor:[9,4,1,""],queue_status:[9,4,1,""],start_queue_monitor:[9,4,1,""],uuid_cancel:[9,4,1,""],uuid_delete:[9,4,1,""],uuid_image:[9,4,1,""],uuid_info:[9,4,1,""],uuid_log:[9,4,1,""],uuid_status:[9,4,1,""],uuid_tar:[9,4,1,""]},"pylorax.api.recipes":{CommitDetails:[9,1,1,""],CommitTimeValError:[9,5,1,""],NewRecipeGit:[9,4,1,""],Recipe:[9,1,1,""],RecipeError:[9,5,1,""],RecipeFileError:[9,5,1,""],RecipeGit:[9,1,1,""],RecipeGroup:[9,1,1,""],RecipeModule:[9,1,1,""],RecipePackage:[9,1,1,""],check_list_case:[9,4,1,""],check_recipe_dict:[9,4,1,""],check_required_list:[9,4,1,""],commit_recipe:[9,4,1,""],commit_recipe_directory:[9,4,1,""],commit_recipe_file:[9,4,1,""],customizations_diff:[9,4,1,""],delete_file:[9,4,1,""],delete_recipe:[9,4,1,""],diff_lists:[9,4,1,""],find_commit_tag:[9,4,1,""],find_field_value:[9,4,1,""],find_name:[9,4,1,""],find_recipe_obj:[9,4,1,""],get_commit_details:[9,4,1,""],get_revision_from_tag:[9,4,1,""],gfile:[9,4,1,""],head_commit:[9,4,1,""],is_commit_tag:[9,4,1,""],is_parent_diff:[9,4,1,""],list_branch_files:[9,4,1,""],list_commit_files:[9,4,1,""],list_commits:[9,4,1,""],open_or_create_repo:[9,4,1,""],prepare_commit:[9,4,1,""],read_commit:[9,4,1,""],read_commit_spec:[9,4,1,""],read_recipe_and_id:[9,4,1,""],read_recipe_commit:[9,4,1,""],recipe_diff:[9,4,1,""],recipe_filename:[9,4,1,""],recipe_from_dict:[9,4,1,""],recipe_from_file:[9,4,1,""],recipe_from_toml:[9,4,1,""],repo_file_exists:[9,4,1,""],revert_file:[9,4,1,""],revert_recipe:[9,4,1,""],tag_file_commit:[9,4,1,""],tag_recipe_commit:[9,4,1,""],write_commit:[9,4,1,""]},"pylorax.api.recipes.Recipe":{bump_version:[9,3,1,""],filename:[9,3,1,""],freeze:[9,3,1,""],group_names:[9,3,1,""],module_names:[9,3,1,""],module_nver:[9,3,1,""],package_names:[9,3,1,""],package_nver:[9,3,1,""],toml:[9,3,1,""]},"pylorax.api.server":{GitLock:[9,1,1,""]},"pylorax.api.server.GitLock":{dir:[9,3,1,""],lock:[9,3,1,""],repo:[9,3,1,""]},"pylorax.api.v0":{blueprint_exists:[9,4,1,""],take_limits:[9,4,1,""],v0_api:[9,4,1,""]},"pylorax.api.workspace":{workspace_delete:[9,4,1,""],workspace_dir:[9,4,1,""],workspace_read:[9,4,1,""],workspace_write:[9,4,1,""]},"pylorax.base":{BaseLoraxClass:[8,1,1,""],DataHolder:[8,1,1,""]},"pylorax.base.BaseLoraxClass":{pcritical:[8,3,1,""],pdebug:[8,3,1,""],perror:[8,3,1,""],pinfo:[8,3,1,""],pwarning:[8,3,1,""]},"pylorax.base.DataHolder":{copy:[8,3,1,""]},"pylorax.buildstamp":{BuildStamp:[8,1,1,""]},"pylorax.buildstamp.BuildStamp":{write:[8,3,1,""]},"pylorax.cmdline":{lmc_parser:[8,4,1,""],lorax_parser:[8,4,1,""]},"pylorax.creator":{FakeDNF:[8,1,1,""],calculate_disk_size:[8,4,1,""],check_kickstart:[8,4,1,""],create_pxe_config:[8,4,1,""],find_ostree_root:[8,4,1,""],get_arch:[8,4,1,""],is_image_mounted:[8,4,1,""],make_appliance:[8,4,1,""],make_image:[8,4,1,""],make_live_images:[8,4,1,""],make_livecd:[8,4,1,""],make_runtime:[8,4,1,""],make_squashfs:[8,4,1,""],mount_boot_part_over_root:[8,4,1,""],rebuild_initrds_for_live:[8,4,1,""],run_creator:[8,4,1,""],squashfs_args:[8,4,1,""]},"pylorax.creator.FakeDNF":{reset:[8,3,1,""]},"pylorax.decorators":{singleton:[8,4,1,""]},"pylorax.discinfo":{DiscInfo:[8,1,1,""]},"pylorax.discinfo.DiscInfo":{write:[8,3,1,""]},"pylorax.dnfbase":{get_dnf_base_object:[8,4,1,""]},"pylorax.dnfhelper":{LoraxDownloadCallback:[8,1,1,""],LoraxRpmCallback:[8,1,1,""]},"pylorax.dnfhelper.LoraxDownloadCallback":{end:[8,3,1,""],progress:[8,3,1,""],start:[8,3,1,""]},"pylorax.dnfhelper.LoraxRpmCallback":{error:[8,3,1,""],progress:[8,3,1,""]},"pylorax.executils":{ExecProduct:[8,1,1,""],augmentEnv:[8,4,1,""],execReadlines:[8,4,1,""],execWithCapture:[8,4,1,""],execWithRedirect:[8,4,1,""],runcmd:[8,4,1,""],runcmd_output:[8,4,1,""],setenv:[8,4,1,""],startProgram:[8,4,1,""]},"pylorax.imgutils":{DMDev:[8,1,1,""],LoopDev:[8,1,1,""],Mount:[8,1,1,""],PartitionMount:[8,1,1,""],compress:[8,4,1,""],copytree:[8,4,1,""],default_image_name:[8,4,1,""],dm_attach:[8,4,1,""],dm_detach:[8,4,1,""],do_grafts:[8,4,1,""],estimate_size:[8,4,1,""],get_loop_name:[8,4,1,""],loop_attach:[8,4,1,""],loop_detach:[8,4,1,""],loop_waitfor:[8,4,1,""],mkbtrfsimg:[8,4,1,""],mkcpio:[8,4,1,""],mkdosimg:[8,4,1,""],mkext4img:[8,4,1,""],mkfsimage:[8,4,1,""],mkfsimage_from_disk:[8,4,1,""],mkhfsimg:[8,4,1,""],mkqcow2:[8,4,1,""],mkqemu_img:[8,4,1,""],mkrootfsimg:[8,4,1,""],mksparse:[8,4,1,""],mksquashfs:[8,4,1,""],mktar:[8,4,1,""],mount:[8,4,1,""],round_to_blocks:[8,4,1,""],umount:[8,4,1,""]},"pylorax.installer":{InstallError:[8,5,1,""],QEMUInstall:[8,1,1,""],anaconda_cleanup:[8,4,1,""],append_initrd:[8,4,1,""],create_vagrant_metadata:[8,4,1,""],find_free_port:[8,4,1,""],novirt_cancel_check:[8,4,1,""],novirt_install:[8,4,1,""],update_vagrant_metadata:[8,4,1,""],virt_install:[8,4,1,""]},"pylorax.ltmpl":{LiveTemplateRunner:[8,1,1,""],LoraxTemplate:[8,1,1,""],LoraxTemplateRunner:[8,1,1,""],TemplateRunner:[8,1,1,""],brace_expand:[8,4,1,""],rexists:[8,4,1,""],rglob:[8,4,1,""],split_and_expand:[8,4,1,""]},"pylorax.ltmpl.LiveTemplateRunner":{installpkg:[8,3,1,""]},"pylorax.ltmpl.LoraxTemplate":{parse:[8,3,1,""]},"pylorax.ltmpl.LoraxTemplateRunner":{append:[8,3,1,""],chmod:[8,3,1,""],copy:[8,3,1,""],createaddrsize:[8,3,1,""],hardlink:[8,3,1,""],install:[8,3,1,""],installimg:[8,3,1,""],installinitrd:[8,3,1,""],installkernel:[8,3,1,""],installpkg:[8,3,1,""],installupgradeinitrd:[8,3,1,""],log:[8,3,1,""],mkdir:[8,3,1,""],move:[8,3,1,""],remove:[8,3,1,""],removefrom:[8,3,1,""],removekmod:[8,3,1,""],removepkg:[8,3,1,""],replace:[8,3,1,""],run_pkg_transaction:[8,3,1,""],runcmd:[8,3,1,""],symlink:[8,3,1,""],systemctl:[8,3,1,""],treeinfo:[8,3,1,""]},"pylorax.ltmpl.TemplateRunner":{run:[8,3,1,""]},"pylorax.monitor":{LogMonitor:[8,1,1,""],LogRequestHandler:[8,1,1,""],LogServer:[8,1,1,""]},"pylorax.monitor.LogMonitor":{shutdown:[8,3,1,""]},"pylorax.monitor.LogRequestHandler":{finish:[8,3,1,""],handle:[8,3,1,""],iserror:[8,3,1,""],setup:[8,3,1,""]},"pylorax.monitor.LogServer":{log_check:[8,3,1,""],timeout:[8,2,1,""]},"pylorax.mount":{IsoMountpoint:[8,1,1,""]},"pylorax.mount.IsoMountpoint":{get_iso_label:[8,3,1,""],umount:[8,3,1,""]},"pylorax.sysutils":{chmod_:[8,4,1,""],chown_:[8,4,1,""],joinpaths:[8,4,1,""],linktree:[8,4,1,""],remove:[8,4,1,""],replace:[8,4,1,""],touch:[8,4,1,""]},"pylorax.treebuilder":{RuntimeBuilder:[8,1,1,""],TreeBuilder:[8,1,1,""],findkernels:[8,4,1,""],generate_module_info:[8,4,1,""],string_lower:[8,4,1,""],udev_escape:[8,4,1,""]},"pylorax.treebuilder.RuntimeBuilder":{cleanup:[8,3,1,""],create_runtime:[8,3,1,""],finished:[8,3,1,""],generate_module_data:[8,3,1,""],install:[8,3,1,""],postinstall:[8,3,1,""],verify:[8,3,1,""],writepkglists:[8,3,1,""],writepkgsizes:[8,3,1,""]},"pylorax.treebuilder.TreeBuilder":{build:[8,3,1,""],copy_dracut_hooks:[8,3,1,""],dracut_hooks_path:[8,3,1,""],implantisomd5:[8,3,1,""],kernels:[8,3,1,""],rebuild_initrds:[8,3,1,""]},"pylorax.treeinfo":{TreeInfo:[8,1,1,""]},"pylorax.treeinfo.TreeInfo":{add_section:[8,3,1,""],write:[8,3,1,""]},pylorax:{ArchData:[8,1,1,""],Lorax:[8,1,1,""],api:[9,0,0,"-"],base:[8,0,0,"-"],buildstamp:[8,0,0,"-"],cmdline:[8,0,0,"-"],creator:[8,0,0,"-"],decorators:[8,0,0,"-"],discinfo:[8,0,0,"-"],dnfbase:[8,0,0,"-"],dnfhelper:[8,0,0,"-"],executils:[8,0,0,"-"],find_templates:[8,4,1,""],get_buildarch:[8,4,1,""],imgutils:[8,0,0,"-"],installer:[8,0,0,"-"],log_selinux_state:[8,4,1,""],ltmpl:[8,0,0,"-"],monitor:[8,0,0,"-"],mount:[8,0,0,"-"],output:[8,0,0,"-"],setup_logging:[8,4,1,""],sysutils:[8,0,0,"-"],treebuilder:[8,0,0,"-"],treeinfo:[8,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","method","Python method"],"4":["py","function","Python function"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:method","4":"py:function","5":"py:exception"},terms:{"01t08":9,"03374adbf080fe34f5c6c29f2e49cc2b86958bf2":9,"03397f8d":9,"06e8":9,"08t00":9,"0ad":9,"0e08ecbb708675bfabc82952599a1712a843779d":9,"0instal":9,"10t23":9,"11t00":9,"11t01":9,"13z":9,"1mbyte":9,"23t00":9,"28z":9,"29b492f26ed35d80800b536623bafc51e2f0eff2":9,"2b4174b3614b":9,"2ping":9,"30z":9,"3700mib":8,"3726a1093fd0":9,"397f":9,"3e11eb87a63d289662cba4b1804a0947a6843379":9,"3rn8evie2t50lmvybyihtgvrhcaecmeck31l":5,"41ef9c3e4b73":9,"44c0":9,"45502a6d":9,"45e380f39894":9,"47z":9,"48a5":9,"4a23":9,"4af9":9,"4b70":9,"4b8a":9,"4c68":9,"4c9f":9,"4cdb":9,"523b":9,"52z":9,"56z":9,"61b799739ce8":9,"6d292bd0":9,"7078e521a54b12eae31c3fd028680da7a0815a4d":9,"70b84195":9,"745712b2":9,"7f16":9,"870f":9,"8c8435ef":9,"8d7d":9,"96db":9,"99anaconda":8,"9bf1":9,"9c81":9,"byte":9,"case":[5,9],"catch":[3,8],"char":8,"class":[7,8,9],"default":[3,4,5,8,9],"final":[0,2,3,4,5,7,8,9],"function":[5,8,9],"import":[3,8],"int":[8,9],"new":[0,2,3,4,5,8],"null":[3,9],"public":[3,5],"return":[0,5,8,9],"short":5,"switch":3,"true":[3,4,5,8,9],"try":[3,8,9],"var":[3,4,5,8],"while":[5,7,8,9],ADDING:8,Adding:8,And:[3,5],But:[3,5],For:[3,5,8],Its:[2,4],NOT:9,One:[3,5],RTS:9,The:[0,2,3,5,7,8,9],There:[3,5,8,9],These:[5,7,9],Use:[3,4,8,9],Used:[3,8,9],Uses:9,Using:[4,9],Will:8,Yes:8,_io:8,_map:5,a215:9,a2ef832e6b1a:9,a697ca405cdf:9,aarch64:[4,7,8],abbrevi:3,abl:[4,5],abort:3,about:[3,9],abov:3,absolut:8,accept:5,access:[3,5,9],accomplish:3,account:[5,8],acff:9,acl:[8,9],action:8,activ:[3,5],actual:[8,9],ad52:9,add2636e7459:9,add:[0,3,4,7,8,9],add_arch_templ:[4,8],add_arch_template_var:[4,8],add_arg:8,add_custom:9,add_sect:8,add_templ:[4,8],add_template_var:[4,8],added:[3,5,8,9],adding:[5,8],addit:[3,4,5,8,9],addon:9,addr:8,addrsiz:8,admin:5,administr:5,ae1bf7e3:9,af92:9,afford:3,after:[3,4,8,9],against:3,alia:9,alibaba:[0,9],align:3,all:[0,2,3,4,5,7,8,9],allbut:[4,8],alloc:3,allow:[3,4,5],almost:2,along:[4,9],alreadi:[5,8,9],also:[0,3,4,5,8,9],alwai:[3,5,9],amazon:3,america:5,ami:[0,5],amount:5,anaconda:[0,2,4,5,7,8,9],anaconda_arg:[3,9],anaconda_cleanup:8,anaconfigurationthread:9,ancient:9,ani:[3,4,5,8,9],anoth:[3,4],anyth:[7,9],anywher:8,api:[0,5,6,8],api_changelog:9,api_tim:9,app:3,app_fil:3,app_nam:3,app_templ:3,append:[3,4,5,8,9],append_initrd:8,appli:[0,8,9],applianc:8,applic:[5,9],appropri:[3,8],arbitrari:[4,5],arch:[2,3,4,8,9],archdata:8,architectur:[2,3,4,8],archiv:[3,5,7,8,9],aren:[4,9],arg:[3,4,8,9],argpars:8,argument:[8,9],argumentpars:[8,9],argv:8,arm:[3,8],armhfp:8,armplatform:[3,9],around:3,artifact:[3,9],assembl:9,associ:8,assum:8,atla:9,attach:8,attach_to_al:9,attempt:[2,8,9],attr:9,attribut:[3,9],audit:9,augmentenv:8,authent:9,author:[0,3,4,5,9],authorized_kei:5,automat:[4,5,8],automatic_opt:9,avahi:9,avail:[0,3,5,9],awar:5,b36e:9,back:[0,8],backup:[8,9],bare:[3,9],base:[3,4,5,6,9],basearch:8,baseimag:5,baseloraxclass:8,basenam:8,baserequesthandl:8,basesystem:9,baseurl:[5,9],bash:[2,3,5,9],basic:4,bcj_arch:8,bcl:[0,3,4,5],bd31:9,bdc:5,bec7:9,becaus:[3,4,5,9],becom:[3,5],been:[3,8,9],befor:[1,3,4,5,8,9],behind:[5,8],being:[3,4,5,9],below:[3,4,9],best:[3,4,5,9],better:8,between:[5,8,9],big:8,bin:[3,5,8],binari:[3,8],binary_output:8,bind:3,bind_mount_opt:3,bio:3,bit:5,blob:9,block:[4,5,8,9],block_siz:9,blocksiz:8,blog:5,blueprint:8,blueprint_exist:9,blueprint_nam:8,bodi:9,bool:[8,9],boot:[0,2,4,5,7,8,9],boot_uefi:8,bootabl:[3,4],bootdir:8,bootload:[3,5,9],bootloader_append:9,bootproto:3,both:[3,5,9],boundri:9,box:3,brace:8,brace_expand:8,branch:[3,5,9],brian:[0,3,4,5],brianlan:9,browser:5,bug:[3,4,5],bugurl:[4,8],bugzilla:3,build:[2,3,4,5,7,8,9],build_config_ref:9,build_env_ref:9,build_id:9,build_statu:9,build_tim:9,buildarch:[4,8],builder:[3,9],buildinstal:2,buildsi:3,buildstamp:6,built:[4,8,9],builtin:8,bump:[5,9],bump_vers:9,bunch:8,bundl:3,bzip2:[3,8],c30b7d80:9,cach:[3,4,5,8],cachedir:[4,8],calcul:8,calculate_disk_s:8,call:[2,3,8,9],callback:8,calledprocesserror:8,caller:9,can:[0,3,4,5,7,8,9],cancel:[0,3,8],cancel_func:8,cannot:[3,4,5,9],captur:8,care:[8,9],cat:3,categor:5,caught:[3,9],caus:[4,8],cdboot:5,cdlabel:8,cee5f4c20fc33ea4d54bfecf56f4ad41ad15f4f3:9,central:2,cert:8,certif:[4,5,9],cfg:[8,9],chang:[0,3,4,5,8],changelog:[0,9],charact:[5,8],check:[5,8,9],check_gpg:[5,9],check_kickstart:8,check_list_cas:9,check_queu:9,check_recipe_dict:9,check_required_list:9,check_ssl:[5,9],checksum:3,checksum_typ:3,child:8,chmod:[4,8],chmod_:8,cho2:5,choos:3,chosen:[3,8,9],chown_:8,chronyd:5,chroot:[3,4,7,8],chroot_setup_cmd:3,cisco:9,clean:[2,3,5,9],cleanup:[3,8,9],clear:[2,5,9],clearpart:3,cli:[1,5,9],client:[3,9],client_address:8,clone:[5,9],close:8,cloud:[3,5],cls:8,cmd:[5,8],cmdline:6,cmdlist:8,cockpit:5,code:[4,5,8,9],collect:9,com:[0,3,4,5,9],combin:3,come:9,comma:[8,9],command:[0,2,3,4,5,7,8,9],commandlin:[5,8],commit:[5,8],commit_id:9,commit_recip:9,commit_recipe_directori:9,commit_recipe_fil:9,commitdetail:9,committimevalerror:9,common:[3,4],commonli:5,commun:5,comoposit:9,comparison:9,compat:5,complet:[2,5,8,9],compon:3,compos:[1,6,8],compose_arg:[5,9],compose_detail:9,compose_statu:8,compose_typ:[5,8],composerconfig:9,composit:9,compress:[3,7,8,9],compress_arg:[3,9],compressarg:8,compressopt:8,comput:8,conf:[2,4,5,8,9],conf_fil:[8,9],config:[3,4,5,6,8],config_opt:3,configfil:4,configpars:9,configur:[2,3,4,5,8,9],conflict:[4,5],consist:[0,2],consol:5,construct:[5,8],constructor:9,contain:[2,4,5,7,8,9],content:[1,4,5,6,7],context:8,continu:8,control:[2,5,8],convent:3,convert:[3,5,8,9],copi:[0,2,3,4,5,7,8,9],copy_dracut_hook:8,copyin:3,copytre:8,core:3,correct:[2,3,5,8,9],correctli:[3,5,8,9],correspond:[4,8],could:[3,5],count:9,coupl:3,cpio:8,cpu:8,crash:8,creat:[2,4,5,7,8,9],create_pxe_config:8,create_runtim:8,create_vagrant_metadata:8,createaddrs:8,creation:[2,7,8,9],creator:[1,5,6,9],cross:9,crossdomain:[6,8],current:[0,2,3,5,8,9],custom:[2,3,7,9],customizations_diff:9,customize_ks_templ:9,d6bd:9,data:[2,3,8,9],datahold:[8,9],dbo:[8,9],debug:[5,8],decod:8,decor:6,dee:9,default_image_nam:8,defin:[3,5,9],delai:8,delet:[3,4,5,8],delete_fil:9,delete_recip:9,delete_repo_sourc:9,denial:[3,5],dep:9,dep_evra:9,dep_nevra:9,depend:[3,4,7,9],deploy:[5,8,9],depmod:8,depsolv:[5,8],describ:[3,5],descript:[0,3,5,8,9],desir:9,desktop:3,dest:8,destfil:8,destin:[4,5,8,9],detach:8,detail:[5,9],detect:[3,8],dev:[3,4,8],devel:3,develop:[3,5,9],devic:[3,4,8],devicemapp:8,dhcp:[3,5],dialog:3,dict:[8,9],dictionari:9,didn:3,died:3,diff:8,diff_list:9,differ:[3,5,8,9],difficult:9,dir:[3,4,8,9],direcori:8,direct:9,directli:[3,5,9],directori:[0,3,4,5,7,8,9],dirinstall_path:8,disabl:[4,5,8,9],disablerepo:[4,8],discinfo:[4,6],disk:[0,8],disk_imag:3,disk_img:8,disk_info:3,disk_siz:8,diskimag:8,displai:[0,3,5],distribut:[4,5],dm_attach:8,dm_detach:8,dmdev:8,dmsetup:8,dnf:[4,5,8,9],dnf_conf:9,dnf_obj:8,dnf_repo_to_file_repo:9,dnfbase:6,dnfhelper:6,dnflock:9,do_graft:8,doc:[3,5],docker:3,document:[3,4,5],doe:[3,4,5,8,9],doesn:[3,4,5,8,9],doing:[3,5,9],domacboot:8,domain:5,don:[3,8,9],done:[0,8,9],doupgrad:8,download:4,downloadprogress:8,dracut:8,dracut_arg:[3,4],dracut_default:8,dracut_hook:8,dracut_hooks_path:8,drawback:3,drive:4,driven:2,driver:[2,8],drop:[5,7],dst:8,due:3,dump:9,dyy8gj:9,e083921a7ed1cf2eec91ad12b9ad1e70ef3470b:9,e695affd:9,e6fa6db4:9,each:[3,4,5,8,9],easi:8,easier:3,eastern:5,ec2:3,edit:[5,9],edk2:3,effect:5,efi:[3,5],either:[3,5,8,9],el7:9,els:[4,8],emit:8,empti:[4,5,8,9],en_u:5,enabl:[3,4,5,8,9],enablerepo:[4,8],encod:8,encount:[3,9],encrypt:5,end:[0,3,4,5,8,9],endfor:8,endif:4,enforc:[3,5,9],enhanc:3,enough:8,ensur:[8,9],enter:9,entri:[3,5,8,9],env_add:8,env_prun:8,environ:[3,4,5,8],epoch:9,equival:8,err:8,error:[3,5,8,9],escap:8,especi:5,estim:9,estimate_s:[8,9],etc:[3,4,5,8,9],even:[3,4,9],everi:9,everyth:[3,4,8],exact:[5,9],exactli:[5,9],examin:3,exampl:[0,3,4,7,8,9],except:[3,4,5,8,9],exclud:8,excludepkg:[4,8],execproduct:8,execreadlin:8,execut:[2,5,8],executil:6,execwithcaptur:8,execwithredirect:8,exist:[2,3,4,5,8,9],exit:[3,4,5,8],expand:8,expans:8,expect:[3,4,5,8,9],expected_kei:9,explicitli:5,explor:0,exract:9,ext4:[0,4,5,8,9],extend:5,extens:[0,4],extern:8,extra:[3,5,9],extra_boot_arg:[3,8],extract:[8,9],f15:3,f16:3,f629b7a948f5:9,fail:[5,8],failur:[8,9],fairli:4,fakednf:8,fals:[3,4,5,8,9],far:3,fatal:[3,8],fatalerror:8,fe925c35e795:9,featur:3,fedora:[1,3,4,8,9],fedoraproject:[3,4,9],feedback:3,fetch:8,few:[3,4],field:[5,9],figur:2,fila:9,file:[0,2,4,5,7,8,9],fileglob:8,filenam:[8,9],filesystem:[0,5,7,8,9],fill:9,filter:8,filter_stderr:8,find:[2,3,8,9],find_commit_tag:9,find_field_valu:9,find_free_port:8,find_nam:9,find_ostree_root:8,find_recipe_obj:9,find_templ:8,findkernel:8,fine:5,finish:[0,4,5,8],firewal:9,firewall_cmd:9,firewalld:5,firmwar:3,first:[2,3,4,5,8,9],fit:3,fix:8,flag:8,flask:9,flatten:3,flexibl:2,fmt:8,fname:8,fobj:8,follow:[3,8,9],foo:9,forc:[4,5,8],form:[4,9],format:[3,5,8],found:[3,5,8,9],free:[4,8],freez:8,from:[0,2,3,4,5,7,8,9],from_commit:8,fs_imag:3,fs_label:3,fsck:8,fsimag:[3,8],fstab:3,fstype:[3,8],ftp:5,ftruncat:8,full:[5,8,9],further:8,futur:5,game:9,gener:[2,3,4,8,9],generate_module_data:8,generate_module_info:8,get:[3,5,8,9],get_arch:8,get_buildarch:8,get_commit_detail:9,get_compose_typ:9,get_default:9,get_default_servic:9,get_dnf_base_object:8,get_extra_pkg:9,get_firewall_set:9,get_image_nam:9,get_iso_label:8,get_kernel_append:9,get_keyboard_layout:9,get_languag:9,get_loop_nam:8,get_repo_sourc:9,get_revision_from_tag:9,get_servic:9,get_source_id:9,get_timezone_set:9,gfile:9,ggit:9,gib:[3,4,8],gid:[5,9],git:[3,9],github:3,gitlock:9,gitrepo:9,given:[8,9],glanc:3,glob:[4,5,8,9],glusterf:9,gnome:3,gnu:9,goe:[2,4,8],going:3,good:[3,8],googl:[0,5],gpg:[5,9],gpgcheck:5,gpgkei:[5,9],gpgkey_url:[5,9],gplv3:9,graft:8,green:9,group:[0,3,8,9],group_nam:9,group_typ:9,grow:3,growpart:3,grub2:5,grub:[3,8],gui:5,gzip:[3,8],had:3,handl:[3,4,5,8],handler:8,happen:[3,4,8],hard:9,hardlink:8,has:[3,5,7,8,9],hash:[5,9],have:[3,4,5,8,9],haven:3,hawkei:9,hda:0,head:[5,9],head_commit:9,header:[5,9],help:[3,4,8],here:[2,3,4,5,7,9],higer:9,highbank:3,higher:4,histori:[5,9],home:[3,5],homepag:9,hook:8,host:[3,4,5,8,9],hostnam:[5,9],how:[2,8],howev:5,http:[0,3,4,5,8,9],httpd:5,hw_random:8,hwmon:8,i386:8,ia64:8,idea:[2,3],ideal:8,identifi:4,ids:9,ignor:8,imag:[1,2,4,8],image_nam:[3,5,9],image_s:9,image_size_align:3,image_typ:[3,8],images_dir:8,imap:5,img:[3,4,7,8],img_mount:8,img_siz:8,imgutil:6,immut:[5,9],implantisomd5:8,implement:[7,8],includ:[3,4,5,7,9],inclus:9,incom:8,increment:9,index:1,indic:8,info:[5,8],inform:[2,4,5,9],init:[3,5,8],init_file_log:8,init_stream_log:8,initi:8,initramf:[3,4,8,9],initrd:[3,4,8],initrd_address:8,initrd_path:8,inject:5,input:[3,8],inroot:8,insecur:3,insert:9,insid:[3,8],instal:[0,2,6,7,9],install_log:8,installclass:7,installerror:8,installimg:[7,8],installinitrd:8,installkernel:8,installpkg:[4,7,8,9],installroot:[4,8],installtre:8,installupgradeinitrd:8,instanc:[3,9],instead:[3,4,5,9],instroot:2,instruct:3,integ:9,interact:0,interfac:5,interfer:4,intrd:8,introduct:1,invalid:9,ioerror:9,is_commit_tag:9,is_image_mount:8,is_parent_diff:9,iserror:8,isfin:[4,8],isn:[3,8,9],iso:[0,2,8,9],iso_nam:3,iso_path:8,isoinfo:8,isolabel:8,isolinux:8,isomountpoint:8,issu:5,item:[8,9],iter:[8,9],its:[3,8,9],itself:5,jboss:9,job:9,job_creat:9,job_finish:9,job_start:9,joinpath:8,json:[3,5,8],just:[7,8,9],kbyte:8,kdir:8,keep:[0,3,8,9],keepglob:8,kei:[5,8,9],kernel:[3,4,8,9],kernel_append:9,kernel_arg:[3,8],keyboard:[5,9],keyboard_cmd:9,keymap:5,kickstart:[5,8,9],kickstartpars:8,kill:[3,8],knowledg:2,kpartx:[3,8],ks_path:8,ks_templat:9,ksflatten:3,kubernet:9,kvm:[0,3],kwarg:[8,9],label:[3,8],lambda:8,lane:[0,3,4,5],lang:9,lang_cmd:9,languag:[5,9],larg:[5,9],last:[8,9],later:[4,8],latest:3,launch:5,layout:9,lazi:8,lead:8,least:[3,8],leav:[4,5,8,9],left:[5,8],leftov:[3,8],less:9,level:[3,4,5,8,9],lib64_arch:8,lib:[5,8,9],librari:2,libus:9,libvirt:3,licens:9,light:4,like:[0,3,4,5,7,8,9],limit:[3,5,8],line:[2,5,8,9],link:8,linktre:8,linux:[3,4,8],list:[0,2,3,4,5,8],list_branch_fil:9,list_commit:9,list_commit_fil:9,listen:[5,8],live:[0,2,5,8,9],live_image_nam:8,live_rootfs_s:3,livecd:8,livemedia:[1,5,8,9],liveo:[4,8],livesi:3,livetemplaterunn:8,lmc:[3,8],lmc_parser:8,load:8,local:[0,3,8,9],localectl:5,localhost:8,locat:[3,4],lock:[5,9],log:[0,3,4,8],log_check:8,log_error:8,log_output:8,log_path:8,log_selinux_st:8,logdir:8,logfil:[3,4,5,8,9],logger:8,logic:4,logmonitor:8,lognam:8,logo:4,logrequesthandl:8,logserv:8,longer:[5,9],look:[2,3,5,7,9],loop:[3,4,8],loop_attach:8,loop_detach:8,loop_dev:8,loop_waitfor:8,loopdev:8,loopx:8,lorax:[0,3,7,8,9],lorax_composer_pars:9,lorax_pars:8,lorax_templ:3,loraxdir:8,loraxdownloadcallback:8,loraxrpmcallback:8,loraxtempl:8,loraxtemplaterunn:[4,8],lose:3,losetup:8,lost:9,low:8,lowercas:8,lowest:8,lpar:8,lst:9,ltmpl:[4,6],lvm2:8,lzma:[3,8],mac:[3,4],macboot:[3,4],made:[5,8],mai:[3,4,5,8,9],mail:3,maintain:2,make:[3,4,5,8,9],make_:5,make_appli:8,make_compos:9,make_disk:5,make_dnf_dir:9,make_imag:8,make_live_imag:8,make_livecd:8,make_queue_dir:9,make_runtim:8,make_squashf:8,make_tar_disk:8,makestamp:2,maketreeinfo:2,mako:[2,3,4,8],manag:0,mandatori:[5,9],mani:9,manual:9,mask:8,master:9,match:[3,5,8,9],max_ag:9,maximum:9,maxretri:8,mbr:3,meant:[8,9],mechan:5,media:[3,8],megabyt:3,member:[0,3],memlimit:8,memori:[3,8],memtest86:3,mention:8,messag:[5,8,9],metadata:[3,4,5,8],metalink:[5,9],method:[3,5,8,9],mib:[3,8],mime:9,mind:[3,9],minim:[3,5,8],minimum:[3,9],minut:3,mirror:[3,8,9],mirrorlist:[4,5,8,9],mirrormanag:3,miss:[8,9],mix:2,mkbtrfsimg:8,mkcpio:8,mkdir:[3,4,8],mkdosimg:8,mkext4img:8,mkf:8,mkfsarg:8,mkfsimag:8,mkfsimage_from_disk:8,mkhfsimg:8,mkisof:4,mknod:3,mkqcow2:8,mkqemu_img:8,mkrootfsimg:8,mkspars:8,mksquashf:8,mktar:8,mnt:[5,8],mock:5,mockfil:5,moddir:8,mode:[3,4,8,9],modeless:8,modifi:[3,8],modul:[0,1,2,4,6],module_nam:8,module_nv:9,modules_info:9,modules_list:9,monitor:[3,6,9],more:[2,3,5,8],most:[3,5,9],mount:[3,5,6],mount_boot_part_over_root:8,mount_dir:8,mount_ok:8,mountarg:8,mountpoint:[3,8],move:[4,5,8,9],move_compose_result:[5,9],msg:8,much:8,multi:3,multipl:[3,4,5,8,9],must:[3,4,5,7,8,9],mvebu:3,myconfig:8,name:[0,8],need:[0,3,4,5,8,9],neither:9,network:[3,5,8],nevra:9,new_item:9,new_recip:9,newer:3,newest:9,newli:8,newlin:8,newrecipegit:9,newrun:8,next:8,noarch:[5,9],node:[3,4],nomacboot:[3,4],non:[5,8,9],none:[3,5,8,9],nop:8,normal:[3,4,7],north:5,nosmt:5,note:[3,4,8,9],noth:[8,9],noupgrad:4,noverifi:4,noverifyssl:[4,8],novirt:3,novirt_cancel_check:8,novirt_instal:[5,8,9],now:[3,4,7,8,9],nspawn:[3,4],ntp:5,ntpserver:[5,9],number:[3,4,5,8,9],numer:5,nvr:4,object:[8,9],observ:3,occas:8,oci_config:3,oci_runtim:3,octalmod:8,off:5,offset:8,oid:9,old:[3,4,8,9],old_item:9,old_recip:9,old_vers:9,older:3,omap:3,omit:5,onc:[0,3,4,5],one:[0,3,4,5,7,8,9],ones:[4,5,8,9],onli:[3,5,8,9],onto:4,open:[5,9],open_or_create_repo:9,openh264:9,openstack:[0,5],oper:[2,3,5,9],opt:[5,8,9],option:[2,3,4,5,8,9],order:[2,4,5,9],org:[3,4,5,9],origin:[3,5,9],ostre:[3,8],other:[2,3,4,5,8,9],otherwis:[4,5,8,9],ouput:9,out:[0,2,5,8,9],outfil:8,output:[3,4,6],outputdir:[4,8],outroot:8,outsid:8,over:[5,7],overhead:8,overrid:[3,4,5,8,9],overridden:5,overwrit:[5,9],overwritten:8,ovmf:3,ovmf_path:[3,8],own:[3,4,5,9],owner:5,ownership:[5,9],pacag:8,packag:[0,2,3,4,6,7],package_nam:9,package_nv:9,packagedir:8,page:1,param:[8,9],paramat:7,paramet:[8,9],parent:9,pars:[8,9],parser:8,part:[3,4,7,8,9],particular:8,partit:[0,3,8],partitin:3,partitionmount:8,pass:[3,4,5,7,8,9],passwd:3,password:[3,5,9],pat:8,patch:[5,9],path:[3,4,5,8,9],pathnam:8,pattern:8,payload:8,pcritic:8,pdebug:8,per:[8,9],permiss:5,perror:8,phys_root:8,physic:8,pick:[0,8],pid:3,pinfo:8,ping:9,pivot:8,pkg:[8,9],pkg_to_build:9,pkg_to_dep:9,pkg_to_project:9,pkg_to_project_info:9,pkgglob:8,pkglistdir:8,pkgname:7,pkgsizefil:8,pki:9,place:[3,4,7,8,9],plain:[5,9],plan:5,platform:[3,9],play0ad:9,pleas:8,plugin_conf:3,podman:3,point:[2,3,5,8,9],pool:5,popen:[8,9],popul:9,port:[3,4,5,8,9],possibl:[3,5,8,9],post:[3,5,8],postfix:5,postinstal:8,postun:8,powerpc:8,ppc64:8,ppc64le:[7,8],ppc:[7,8],pre:[5,8],precaut:0,preexec_fn:8,prefix:[3,5,8,9],prepar:9,prepare_commit:9,prepend:9,present:[2,3,9],preserv:8,pretti:[5,8],preun:8,prevent:[4,9],previou:[5,8,9],previous:[2,3],primari:[3,5],primarili:5,print:0,privileg:5,probabl:4,problem:[2,8,9],proc:8,procedur:8,process:[2,3,4,5,7,8,9],produc:[2,3,5,9],product:[1,4,8],program:[3,4,5,8,9],progress:8,proj:9,proj_to_modul:9,project:[3,5,6,8],project_info:9,project_nam:8,projects_depsolv:9,projects_depsolve_with_s:9,projects_info:9,projects_list:9,projectserror:9,pronounc:9,properti:[8,9],protocol:5,provid:[2,3,4,8,9],proxi:[3,4,5,8,9],pub:[3,4],pubkei:3,pull:[2,3,4],pungi:2,purpos:[3,5],push:0,put:[5,7,8,9],pwarn:8,pxe:8,pxeboot:4,pyanaconda:7,pykickstart:[8,9],pylorax:[1,2,4,5,7],pyo:8,python:[2,4,8,9],pythonpath:3,qcow2:[0,3,8],qemu:[0,8],qemu_arg:3,qemuinstal:8,queue:[5,6,8],queue_statu:9,quot:8,rais:[8,9],raise_err:8,ram:[3,8],random:[3,8],rang:8,rare:8,raw:[3,9],rawhid:[3,4],rdo:3,react:5,read:[2,3,8,9],read_commit:9,read_commit_spec:9,read_recipe_and_id:9,read_recipe_commit:9,readi:[8,9],readm:9,real:[3,5,8],realli:[3,4,8],reason:[3,8],reboot:5,rebuild:[3,4,8],rebuild_initrd:8,rebuild_initrds_for_l:8,recent:9,recip:[6,8],recipe_dict:9,recipe_diff:9,recipe_filenam:9,recipe_from_dict:9,recipe_from_fil:9,recipe_from_toml:9,recipe_kei:9,recipe_nam:9,recipe_path:9,recipe_str:9,recipeerror:9,recipefileerror:9,recipegit:9,recipegroup:9,recipemodul:9,recipepackag:9,recommend:[3,5],recurs:8,redhat:[0,3,4,5],redirect:8,reduc:5,ref:[5,9],refer:[5,9],referenc:5,refus:3,regex:8,rel:8,relat:[4,5,9],releas:[2,3,4,5,8,9],releasev:[3,5,8],relev:9,reli:2,reliabl:3,remain:[4,5],remaind:9,rememb:5,remov:[2,3,4,5,8,9],remove_temp:8,removefrom:[4,8],removekmod:[4,8],removepkg:[4,8],renam:[3,8],repl:8,replac:[2,3,4,5,7,8,9],repo:[2,3,4,8,9],repo_file_exist:9,repo_to_k:9,repo_to_sourc:9,repodict:9,report:[3,4,5,9],repositori:[3,4,5,8,9],represent:9,reproduc:9,reqpart:[3,8],request:[5,8,9],requir:[0,3,5,8,9],rerun:9,rescu:3,reset:8,reset_handl:8,reset_lang:8,resolv:8,resort:8,respons:8,rest:[5,8],restart:[5,9],restor:9,result:[3,4,5,8],result_dir:3,resultdir:3,results_dir:[8,9],retain:5,reticul:8,retriev:[5,9],retrysleep:8,retun:9,returncod:8,revert:9,revert_fil:9,revert_recip:9,revis:9,revisor:2,revpars:9,rexist:8,rglob:8,rhel7:[1,3,9],rhel:[3,5],rng:3,root:[0,2,3,4,5,8,9],root_dir:9,rootdir:8,rootf:[3,4,8],rootfs_imag:8,rootfs_siz:4,rootm:3,rootpw:[3,9],roughli:8,round:[8,9],round_to_block:8,rout:[5,8],rpm:[2,5,8,9],rpmname:[5,9],rpmreleas:[5,9],rpmversion:[5,9],rtype:9,run:[0,3,5,7,8,9],run_creat:8,run_pkg_transact:[4,8],runcmd:[4,8],runcmd_output:8,rundir:8,runner:8,runtim:[3,7,8],runtimebuild:[7,8],runtimeerror:[8,9],rxxx:9,s390x:8,safe:[5,8],safeconfigpars:9,samba:9,same:[3,4,5,8,9],sampl:8,satisfi:9,save:[0,4,5,8,9],sbin:[3,8],scene:5,scm:5,script:[2,3,8,9],scriptlet:8,search:[1,4,8,9],second:9,secondari:5,section:[3,5,8,9],secur:0,see:[3,4,8,9],seem:8,select:[3,4,5,8,9],self:[5,8,9],selinux:[3,5,8],semver:[5,9],send:0,separ:[8,9],sequenc:8,server:[0,5,6,8],servic:[4,8,9],services_cmd:9,set:[2,3,4,5,8,9],setenforc:4,setenv:8,setup:[3,4,5,8,9],setup_log:8,sever:[3,7,9],sha256:3,shallow:8,share:[3,4,5,7,8,9],share_dir:9,sharedir:[4,5,8],shell:5,ship:4,shlex:8,shortnam:8,should:[3,4,5,8,9],show:[0,3,4,5],shutdown:[3,8],sig:9,sig_dfl:8,sig_ign:8,sign:[5,8,9],signal:8,signific:5,similar:[4,5],simpl:[4,5],simpli:5,sinc:[3,5,9],singl:[3,9],singleton:8,site:3,situat:5,size:[3,4,8],skip:[3,4,8,9],skip_brand:8,slightli:3,slow:3,small:8,smp:3,socket:5,socketserv:8,softwar:9,solut:3,solv:9,some:[2,3,4,5,8,9],someplac:5,someth:[2,3,4,5,8,9],sometim:3,sort:[4,9],sound:[4,8],sourc:[4,8],source_glob:9,source_nam:9,source_path:9,source_ref:9,source_to_repo:9,space:[4,5,9],spars:[3,8],speak:[2,4],spec:9,special:[4,9],specif:[3,4,5,7,8,9],specifi:[3,5,8,9],speed:3,spin:3,spline:8,split:8,split_and_expand:8,squashf:[3,8],squashfs_arg:[3,8],src:[3,8],srcdir:8,srcglob:8,srv:5,ssh:[3,5,9],sshd:[3,5],sshkei:9,ssl:[4,8],sslverifi:8,stage2:8,stage:[2,3],standard:[8,9],start:[0,3,4,5,8,9],start_build:9,start_queue_monitor:9,startprogram:8,startup:5,state:[0,3,5,8,9],statement:8,statu:[5,8],status_filt:9,stderr:8,stdin:8,stdout:[8,9],step:[2,3],stick:5,still:[3,5,8],stop:[3,5],storag:[3,5,8,9],store:[3,4,5,8,9],str:[8,9],strang:3,stream:9,strictli:4,string:[5,8,9],string_low:8,stuck:3,style:8,sub:8,subclass:9,subdirectori:9,submit:9,submodul:6,submount:8,subpackag:6,subprocess:8,subset:9,substitut:[3,4],succe:9,success:[8,9],sudo:[3,5],suffix:8,suit:[0,5],suitabl:[8,9],summari:[5,9],support:[2,3,4,7,9],sure:[3,4,5,8,9],swap:3,symlink:[4,8,9],sys:8,sys_root_dir:8,sysimag:8,syslinux:3,sysroot:8,system:[0,3,4,5,8,9],system_sourc:9,systemctl:[4,5,8],systemd:[3,4,5,8],sysutil:6,tag:[4,5,8],tag_file_commit:9,tag_recipe_commit:9,take:[3,5,7,8,9],take_limit:9,tar:[0,5,9],tar_disk_nam:3,tar_img:8,tarbal:8,tarfil:[3,8],target:[3,4,8],tcp:[5,8],tcpserver:8,tegra:3,tell:4,telnet:5,telnetd:5,tempdir:8,templat:[2,3,5,7,8,9],template_fil:8,templatedir:8,templatefil:8,templaterunn:8,temporari:[2,3,4,5,8,9],termin:8,test:[0,3,5,9],test_config:9,test_mod:9,test_templ:9,text:[4,5,9],textiowrapp:8,than:[3,5,8,9],thei:[0,3,4,5,9],thelogg:8,them:[2,4,5,8,9],therefor:5,thi:[0,3,4,5,7,8,9],thing:[2,3,8,9],those:[2,7,9],though:[2,9],thread:[3,5,8,9],three:5,thu:8,ti_don:8,ti_tot:8,time:[3,4,5,7,8,9],timedatectl:5,timeout:[3,8],timestamp:[8,9],timezon:9,timezone_cmd:9,titl:[3,8,9],tmp:[3,4,5,8,9],tmpdir:8,tmpl:[7,8,9],to_commit:8,token:8,told:4,toml:[0,5,8],toml_dict:9,tomlerror:9,tool:[2,3,4],top:[3,4,5,7,8,9],total:[3,9],total_drpm:8,total_fil:8,total_s:8,touch:8,traceback:8,track:[0,9],trail:9,transactionprogress:8,transmogrifi:8,trash:3,treat:[5,8],tree:[2,3,4,7,8,9],treebuild:[6,7,9],treeinfo:[4,6],tri:[3,8,9],truckin:8,ts_done:8,ts_total:8,tty1:3,tui:3,tupl:[8,9],turn:2,two:9,type:[0,3,8],typic:8,udev_escap:8,udp:5,uefi:4,uid:[5,9],umask:8,umount:[3,5,8],uncompress:9,undelet:9,under:[3,4,5,8],understand:5,undo:8,unexpectedli:4,unicodedecodeerror:8,uniqu:9,unit:[5,8],unix:[5,9],unknown:8,unless:9,unmaintain:2,unmount:[3,8],unneed:[2,4,5,8,9],unpack:2,unpartit:8,until:[5,8],untouch:8,unus:3,upd:2,updat:[1,3,4,5,8,9],update_vagrant_metadata:8,upgrad:8,upload:[3,5],upstream_vc:9,url:[3,4,5,8,9],usabl:3,usag:[3,4,5,8],usbutil:8,use:[0,3,4,5,8,9],used:[0,2,3,4,5,8,9],useful:[3,8],user:[0,3,4,8,9],user_dracut_arg:8,useradd:5,uses:[3,4,5,8,9],using:[0,3,4,5,7,8,9],usr:[3,4,5,7,8,9],usual:[3,5],utc:[5,9],utf:[5,8],util:3,uuid:[0,5,8],uuid_cancel:9,uuid_delet:9,uuid_dir:9,uuid_imag:9,uuid_info:9,uuid_log:9,uuid_statu:9,uuid_tar:9,v0_api:9,vagrant:8,vagrant_metadata:3,vagrantfil:3,valid:[5,9],valu:[3,5,8,9],valueerror:9,valuetok:8,variabl:[3,4,8],variant:[4,8],variou:[8,9],vcpu:[3,8],verbatim:3,veri:3,verifi:[0,4,8],version:[2,3,4,5,8,9],vhd:0,via:[3,4,5],video:8,view:0,virt:[8,9],virt_instal:8,virtio:8,virtio_consol:8,virtio_host:8,virtio_port:8,virtual:[3,8],vmdk:0,vmlinuz:[3,8],vnc:[3,8],volid:[3,4,8],volum:[3,4],wai:[3,5,9],wait:[8,9],want:[3,5,9],warfar:9,warn:[8,9],wasn:3,watch:3,web:[3,5],websit:3,weight:4,welcom:3,welder:5,weldr:[0,5,9],well:[3,4,5,9],were:[8,9],what:[2,3,4,5,8,9],whatev:9,wheel:[3,5],when:[3,4,5,8,9],whenev:8,where:[0,3,4,5,8,9],whether:[8,9],which:[0,2,3,4,5,7,8,9],whitespac:8,who:3,whole:8,widest:5,widget:5,wildcard:5,winnt:8,with_cor:9,with_rng:3,without:[3,4,5,9],word:8,work:[8,9],work_dir:8,workdir:[4,8],workflow:2,workspac:[6,8],workspace_delet:9,workspace_dir:9,workspace_read:9,workspace_writ:9,would:[3,5,7,8],wrapper:9,write:[2,8,9],write_commit:9,write_ks_group:9,write_ks_root:9,write_ks_us:9,writepkglist:8,writepkgs:8,written:[2,3,5,8],wrong:8,wrote:9,wwood:8,www:9,x86:[4,7,8,9],x86_64:[3,4,8,9],xattr:8,xfce:3,xfsprog:8,xml:3,xxxx:3,xxxxx:3,yield:9,you:[0,3,4,5,7,8,9],your:[3,4,5,7,9],yourdomain:3,yum:[2,3,5,9],yumbas:9,yumlock:9,zero:[8,9],zerombr:3},titles:["composer-cli","Welcome to Lorax\u2019s documentation!","Introduction to Lorax","livemedia-creator","Lorax","lorax-composer","pylorax","Product and Updates Images","pylorax package","pylorax.api package"],titleterms:{"import":5,"new":9,Adding:[5,9],The:4,Using:3,add:5,ami:3,anaconda:3,api:9,applianc:3,argument:[0,3,4,5],atom:3,base:8,befor:2,blueprint:[0,5,9],blueprint_nam:9,boot:3,branch:1,brand:4,build:0,buildstamp:8,cancel:9,chang:9,cleanup:4,cli:0,cmdline:[0,3,4,5,8,9],commit:9,compos:[0,5,9],compose_statu:9,compose_typ:9,config:9,contain:3,content:[8,9],creat:3,creation:[3,4],creator:[3,8],crossdomain:9,custom:[4,5],debug:3,decor:8,delet:9,depsolv:9,diff:9,discinfo:8,disk:[3,5],dnfbase:[8,9],dnfhelper:8,document:1,download:0,dracut:[3,4],dvd:5,edit:0,exampl:5,executil:8,fail:9,file:3,filesystem:[3,4],finish:9,firewal:5,format:9,freez:9,from_commit:9,git:5,group:5,hack:3,how:[3,4,5],imag:[0,3,5,7,9],imgutil:8,indic:1,info:9,initi:3,insid:4,instal:[3,4,5,8],introduct:2,iso:[3,4,5],json:9,kbyte:9,kernel:5,kickstart:3,limit:9,list:9,live:3,livemedia:3,local:5,log:[5,9],lorax:[1,2,4,5],ltmpl:8,metadata:9,mock:[3,4],modul:[5,8,9],module_nam:9,monitor:[0,8],mount:8,name:[3,4,5,9],note:5,oci:3,offset:9,open:3,openstack:3,other:1,output:[5,8,9],packag:[5,8,9],partit:5,posit:[4,5],post:9,postinstal:4,problem:3,product:7,project:9,project_nam:9,pxe:3,pylorax:[6,8,9],qemu:3,queue:9,quickstart:[3,4,5],recip:9,repo:5,requir:4,respons:9,result:9,rout:9,run:4,runtim:4,secur:5,server:9,servic:5,size:9,sourc:[5,9],squashf:4,sshkei:5,statu:[0,9],submodul:[8,9],subpackag:8,support:5,sysutil:8,tabl:1,tag:9,tar:3,templat:4,thing:5,timezon:5,tmpl:4,to_commit:9,toml:9,treebuild:8,treeinfo:8,type:[5,9],uefi:3,undo:9,updat:7,user:5,uuid:9,vagrant:3,virt:3,welcom:1,work:[3,4,5],workspac:9}})
\ No newline at end of file