Skip to content

Commit 4aacf5a

Browse files
tapakundGerrit Code Review
authored and
Gerrit Code Review
committed
Merge "setup.py: Add support for binary photon-iso-builder upon installation."
2 parents 1928151 + bee6f5b commit 4aacf5a

File tree

3 files changed

+17
-21
lines changed

3 files changed

+17
-21
lines changed

photon_installer/generate_initrd.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ EOF
4141
rpmdb_init_cmd="rpm --root ${INITRD} --initdb --dbpath /var/lib/rpm"
4242
echo "${rpmdb_init_cmd}"
4343
if [ "$(rpm -E %{_db_backend})" != "sqlite" ]; then
44-
rpmdb_init_cmd="docker run --ulimit nofile=1024:1024 --rm -v ${INITRD}:${INITRD} photon:$PHOTON_RELEASE_VER /bin/bash -c \"tdnf install -y rpm && ${rpmdb_init_cmd}\""
44+
rpmdb_init_cmd="docker run --privileged --ulimit nofile=1024:1024 --rm -v ${INITRD}:${INITRD} photon:$PHOTON_RELEASE_VER /bin/bash -c \"tdnf install -y rpm && ${rpmdb_init_cmd}\""
4545
fi
4646

4747
if ! eval "${rpmdb_init_cmd}"; then
@@ -58,7 +58,7 @@ TDNF_CMD="tdnf install -qy \
5858

5959
echo $TDNF_CMD
6060

61-
$TDNF_CMD || docker run --ulimit nofile=1024:1024 --rm -v $RPMS_PATH:$RPMS_PATH -v $WORKINGDIR:$WORKINGDIR photon:$PHOTON_RELEASE_VER /bin/bash -c "$TDNF_CMD"
61+
$TDNF_CMD || docker run --privileged --ulimit nofile=1024:1024 --rm -v $RPMS_PATH:$RPMS_PATH -v $WORKINGDIR:$WORKINGDIR photon:$PHOTON_RELEASE_VER /bin/bash -c "$TDNF_CMD"
6262

6363
#mkdir -p $WORKINGDIR/isolinux
6464
#cp -r ${INITRD}/usr/share/photon-isolinux/* $WORKINGDIR/isolinux/

photon_installer/isoBuilder.py

+13-18
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ def downloadPkgs(self):
135135
# Using --alldeps option to include all dependencies even though package might be installed on system.
136136
tdnf_download_cmd = (f"tdnf --releasever {self.photon_release_version} --alldeps --downloadonly -y "
137137
f"--downloaddir={self.working_dir}/RPMS install {pkg_list}")
138-
download_cmd = (f"docker run --rm {additionalRepo} -v {self.rpms_path}:{self.rpms_path} "
138+
download_cmd = (f"docker run --privileged --rm {additionalRepo} -v {self.rpms_path}:{self.rpms_path} "
139139
f"-v {self.working_dir}:{self.working_dir} photon:{self.photon_release_version} "
140140
f"/bin/bash -c \"tdnf clean all && tdnf update tdnf -y && {tdnf_download_cmd}\"")
141141
self.logger.info("Starting to download packages...")
@@ -204,7 +204,7 @@ def createIsolinux(self):
204204
self.logger.debug(tdnf_install_cmd)
205205
# When using tdnf --installroot or rpm --root on chroot folder without /proc mounted, we must limit number of open files
206206
# to avoid librpm hang scanning all possible FDs.
207-
self.runCmd((f'docker run --ulimit nofile=1024:1024 --rm -v {self.working_dir}:{self.working_dir}'
207+
self.runCmd((f'docker run --privileged --ulimit nofile=1024:1024 --rm -v {self.working_dir}:{self.working_dir}'
208208
f' photon:{self.photon_release_version} /bin/bash -c "{tdnf_install_cmd}"'))
209209

210210
self.logger.debug("Succesfully installed photon-iso-config syslinux...")
@@ -263,25 +263,17 @@ def build(self):
263263
build_iso_cmd += "popd"
264264
self.runCmd(build_iso_cmd)
265265

266-
267-
if __name__ == '__main__':
266+
def main():
268267
usage = "Usage: %prog [options]"
269268
parser = ArgumentParser(usage)
270269
parser.add_argument("-l", "--log-level", dest="log_level", default="info")
271-
parser.add_argument("-f", "--function", dest="function",
272-
default="build-iso", help="Building Options", choices=['build-iso', 'build-initrd'])
273-
parser.add_argument("-v", "--photon-release-version",
274-
dest="photon_release_version", required=True)
275-
parser.add_argument("-c", "--custom-initrd-pkgs", dest="custom_initrd_pkgs", default=None,
276-
help="optional parameter to provide cutom initrd pkg list file.")
277-
parser.add_argument('-r', '--additional_repos', nargs='*', default=None,
278-
help='<Optional> Pass repo file as input to download rpms from external repo')
279-
parser.add_argument("-p", "--custom-packages-json",
280-
dest="custom_packages_json", default="")
281-
parser.add_argument("-k", "--kickstart-path",
282-
dest="kickstart_path", default=f'{os.path.dirname(__file__)}/sample_ks.cfg')
283-
parser.add_argument("-b", "--boot-cmdline-param",
284-
dest="boot_cmdline_param", default="")
270+
parser.add_argument("-f", "--function", dest="function", default="build-iso", help="Building Options", choices=["build-iso", "build-initrd"])
271+
parser.add_argument("-v", "--photon-release-version", dest="photon_release_version", required=True)
272+
parser.add_argument("-c", "--custom-initrd-pkgs", dest="custom_initrd_pkgs", default=None, help="optional parameter to provide cutom initrd pkg list file.")
273+
parser.add_argument("-r", "--additional_repos", action="append", default=None, help="<Optional> Pass repo file as input to download rpms from external repo")
274+
parser.add_argument("-p", "--custom-packages-json", dest="custom_packages_json", default="")
275+
parser.add_argument("-k", "--kickstart-path", dest="kickstart_path", default=f"{os.path.dirname(__file__)}/sample_ks.cfg")
276+
parser.add_argument("-b", "--boot-cmdline-param", dest="boot_cmdline_param", default="")
285277

286278
options = parser.parse_args()
287279

@@ -304,3 +296,6 @@ def build(self):
304296
raise Exception(f"{options.function} not supported...")
305297

306298
isoBuilder.cleanUp()
299+
300+
if __name__ == '__main__':
301+
main()

setup.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
zip_safe=False,
2222
entry_points={
2323
'console_scripts': [
24-
'photon-installer = photon_installer.main:main'
24+
'photon-installer = photon_installer.main:main',
25+
'photon-iso-builder = photon_installer.isoBuilder:main'
2526
]
2627
},
2728
version='2.0+'+get_installer_version(),

0 commit comments

Comments
 (0)