Skip to content

Commit

Permalink
Remove ContainerCrate in favor of ObsPackage
Browse files Browse the repository at this point in the history
  • Loading branch information
dcermak committed Oct 10, 2024
1 parent 8bb9798 commit f686c1e
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 88 deletions.
46 changes: 0 additions & 46 deletions src/bci_build/containercrate.py

This file was deleted.

13 changes: 0 additions & 13 deletions src/bci_build/package/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import jinja2
from packaging import version

from bci_build.containercrate import ContainerCrate
from bci_build.constants import Arch
from bci_build.constants import BuildType
from bci_build.constants import ImageType
Expand Down Expand Up @@ -199,9 +198,6 @@ class BaseContainerImage(ObsPackageBase):
#: build flavors to produce for this container variant
build_flavor: str | None = None

#: create that this container is part of
crate: ContainerCrate = None

#: Add any replacements via `obs-service-replace_using_package_version
#: <https://github.com/openSUSE/obs-service-replace_using_package_version>`_
#: that are used in this image into this list.
Expand Down Expand Up @@ -1097,15 +1093,6 @@ async def write_file_to_dest(fname: str, contents: str | bytes) -> None:
False
), f"got an unexpected build_recipe_type: '{self.build_recipe_type}'"

if self.build_flavor:
dfile = "Dockerfile"
tasks.append(write_file_to_dest(dfile, self.crate.default_dockerfile()))
files.append(dfile)

mname = "_multibuild"
tasks.append(write_file_to_dest(mname, self.crate.multibuild(self)))
files.append(mname)

if with_service_file:
tasks.append(self._write_service_file(dest))

Expand Down
49 changes: 30 additions & 19 deletions src/bci_build/package/apache_tomcat.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import datetime

from bci_build.containercrate import ContainerCrate
from bci_build.os_version import CAN_BE_LATEST_OS_VERSION
from bci_build.os_version import OsVersion
from bci_build.package import DOCKERFILE_RUN
Expand All @@ -12,6 +11,7 @@
from bci_build.package import PackageType
from bci_build.package import Replacement
from bci_build.package import _build_tag_prefix
from bci_build.package.obs_package import ObsPackage
from bci_build.registry import publish_registry

# last version needs to be the newest
Expand Down Expand Up @@ -50,14 +50,11 @@ def _get_sac_supported_until(
)


TOMCAT_CONTAINERS = [
ApplicationStackContainer(
def _create_tomcat_container(
os_version: OsVersion, tomcat_ver: str, jre_version: int
) -> ApplicationStackContainer:
return ApplicationStackContainer(
name="apache-tomcat",
package_name=(
f"apache-tomcat-{tomcat_ver.partition('.')[0]}-image"
if os_version.is_tumbleweed
else f"sac-apache-tomcat-{tomcat_ver.partition('.')[0]}-image"
),
_publish_registry=publish_registry(os_version, app_collection=True),
pretty_name="Apache Tomcat",
custom_description=(
Expand Down Expand Up @@ -125,15 +122,29 @@ def _get_sac_supported_until(
entrypoint_user="tomcat",
logo_url="https://tomcat.apache.org/res/images/tomcat.png",
)
for tomcat_ver, os_version, jre_version in (
("10.1", OsVersion.TUMBLEWEED, 22),
("10.1", OsVersion.TUMBLEWEED, 21),
("10.1", OsVersion.TUMBLEWEED, 17),
("9", OsVersion.TUMBLEWEED, 17),
("10.1", OsVersion.SP6, 21),
("10.1", OsVersion.SP6, 17),
# (10.1, OsVersion.SP7, 21),
)
]

TOMCAT_CRATE = ContainerCrate(TOMCAT_CONTAINERS)

TOMCAT_CONTAINERS: list[ObsPackage | ApplicationStackContainer] = [
ObsPackage.from_bcis(
bcis=[
_create_tomcat_container(os_version, tomcat_ver, jre_version)
for tomcat_ver, os_version, jre_version in (
("10.1", OsVersion.TUMBLEWEED, 22),
("10.1", OsVersion.TUMBLEWEED, 21),
("10.1", OsVersion.TUMBLEWEED, 17),
)
],
package_name="apache-tomcat-10-image",
),
_create_tomcat_container(OsVersion.TUMBLEWEED, "9", 17),
ObsPackage.from_bcis(
package_name="sac-apache-tomcat-image",
bcis=[
_create_tomcat_container(os_version, tomcat_ver, jre_version)
for tomcat_ver, os_version, jre_version in (
("10.1", OsVersion.SP6, 21),
("10.1", OsVersion.SP6, 17),
)
],
),
]
24 changes: 14 additions & 10 deletions tests/test_crate.py → tests/test_obs_package.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from bci_build.containercrate import ContainerCrate
from bci_build.os_version import OsVersion
from bci_build.package import BuildType
from bci_build.package import DevelopmentContainer
from bci_build.package.obs_package import ObsPackage

_BASE_KWARGS = {
"name": "test",
Expand All @@ -14,16 +14,20 @@


def test_multibuild_with_multi_flavor_docker():
containers = [
DevelopmentContainer(
**_BASE_KWARGS,
build_recipe_type=BuildType.DOCKER,
build_flavor=flavor,
)
for flavor in ("flavor1", "flavor2")
]
pkg = ObsPackage(
package_name="test",
bcis=[
DevelopmentContainer(
**_BASE_KWARGS,
build_recipe_type=BuildType.DOCKER,
build_flavor=flavor,
)
for flavor in ("flavor1", "flavor2")
],
os_version=_BASE_KWARGS["os_version"],
)
assert (
ContainerCrate(containers).multibuild(containers[0])
pkg.multibuild
== """<multibuild>
<package>flavor1</package>
<package>flavor2</package>
Expand Down

0 comments on commit f686c1e

Please sign in to comment.