direct_parser._optionals.title = "Options"
- # Direct builds require a archive URL
+ # Direct builds require an archive URL
direct_parser.add_argument("--download_url", required=True,
help="URL to tar/zip build archive to package")
# Karaf 3 distros use distribution-karaf-, Karaf 4 uses karaf-
build.update({"distro_name_prefix": lib.get_distro_name_prefix(
- build['version_major'])})
+ build['version_major'], build['download_url'])})
# Update build definition with Java version required by ODL version
build.update({"java_version": lib.get_java_version(
raise ValueError("Unknown package type: {}".format(pkg_type))
-def get_distro_name_prefix(version_major):
- """Return Karaf 3 or 4-style distro name prefix based on ODL major version
+def get_distro_name_prefix(version_major, download_url=""):
+ """Return distro name prefix based on ODL major version or distro URL.
- :arg str major_version: OpenDaylight major version umber
- :return str distro_name_style: Karaf 3 or 4-style distro name prefix
+ :arg str version_major: OpenDaylight major version number
+ :arg str download_url: URL to ODL distribution
+ :return str distro_prefix: MR, Karaf 3 or 4-style distro name prefix
"""
+ mrel_prefix = "opendaylight"
+ k3_prefix = "distribution-karaf"
+ k4_prefix = "karaf"
+ mrel_url_base = "https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/opendaylight/"
+ k3_url_base = "https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/distribution-karaf/"
+ k4_url_base = "https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/karaf/"
+
+ if mrel_url_base in download_url:
+ return mrel_prefix
+ elif k3_url_base in download_url:
+ return k3_prefix
+ elif k4_url_base in download_url:
+ return k4_prefix
+
if int(version_major) < 7:
# ODL versions before Nitrogen use Karaf 3, distribution-karaf- names
- return "distribution-karaf"
+ return k3_prefix
else:
# ODL versions Nitrogen and after use Karaf 4, karaf- names
- return "karaf"
+ return k4_prefix
def cache_distro(build):
class TestGetDistroNamePrefix(unittest.TestCase):
- """Test logic to get Karaf 3/4 distro name prefix per ODL major version."""
+ """Test logic to get Karaf 3/4 or Managed Release Common distro prefixes."""
- k3_distro_prefix = "distribution-karaf"
+ mrel_distro_prefix = "opendaylight"
k4_distro_prefix = "karaf"
+ k3_distro_prefix = "distribution-karaf"
+ mrel_distro_url = "https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/opendaylight/0.9.0/opendaylight-0.9.0.tar.gz"
+ k4_distro_url = "https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/karaf/0.8.3/karaf-0.8.3.tar.gz"
+ k3_distro_url = "https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/distribution-karaf/0.6.4-Carbon/distribution-karaf-0.6.4-Carbon.tar.gz"
def test_oxygen(self):
"""Test Oxygen major version gives Karaf 4 prefix."""
distro_prefix = lib.get_distro_name_prefix(9)
self.assertEqual(distro_prefix, self.k4_distro_prefix)
+ def test_managed_release_fluorine(self):
+ """Test Managed Release URL gives MR distro prefix."""
+ distro_prefix = lib.get_distro_name_prefix(9, self.mrel_distro_url)
+ self.assertEqual(distro_prefix, self.mrel_distro_prefix)
+
+ def test_k4_norm_release_oxygen(self):
+ """Test normal K4 URL gives distro prefix based on Karaf version."""
+ distro_prefix = lib.get_distro_name_prefix(9, self.k4_distro_url)
+ self.assertEqual(distro_prefix, self.k4_distro_prefix)
+
+ def test_k3_norm_release_carbon(self):
+ """Test normal K3 URL gives distro prefix based on Karaf version."""
+ distro_prefix = lib.get_distro_name_prefix(6, self.k3_distro_url)
+ self.assertEqual(distro_prefix, self.k3_distro_prefix)
+
class TestGetSysdCommit(unittest.TestCase):