diff --git a/charms/keystone-k8s/osci.yaml b/charms/keystone-k8s/osci.yaml new file mode 100644 index 00000000..8277769f --- /dev/null +++ b/charms/keystone-k8s/osci.yaml @@ -0,0 +1,12 @@ +- project: + templates: + - charm-unit-jobs-py38 + - charm-unit-jobs-py310 + - charm-publish-jobs + vars: + needs_charm_build: true + charm_build_name: keystone-k8s + build_type: charmcraft + publish_charm: true + charmcraft_channel: 2.0/stable + publish_channel: latest/edge diff --git a/charms/keystone-k8s/rename.sh b/charms/keystone-k8s/rename.sh new file mode 100755 index 00000000..d0c35c97 --- /dev/null +++ b/charms/keystone-k8s/rename.sh @@ -0,0 +1,13 @@ +#!/bin/bash +charm=$(grep "charm_build_name" osci.yaml | awk '{print $2}') +echo "renaming ${charm}_*.charm to ${charm}.charm" +echo -n "pwd: " +pwd +ls -al +echo "Removing bad downloaded charm maybe?" +if [[ -e "${charm}.charm" ]]; +then + rm "${charm}.charm" +fi +echo "Renaming charm here." +mv ${charm}_*.charm ${charm}.charm diff --git a/charms/keystone-k8s/tests/unit/test_keystone_charm.py b/charms/keystone-k8s/tests/unit/test_keystone_charm.py index 5effbfc4..e62f1428 100644 --- a/charms/keystone-k8s/tests/unit/test_keystone_charm.py +++ b/charms/keystone-k8s/tests/unit/test_keystone_charm.py @@ -114,6 +114,23 @@ class TestKeystoneOperatorCharm(test_utils.CharmTestCase): self.harness = test_utils.get_harness( _KeystoneXenaOperatorCharm, container_calls=self.container_calls) + + # clean up events that were dynamically defined, + # otherwise we get issues because they'll be redefined, + # which is not allowed. + from charms.data_platform_libs.v0.database_requires import ( + DatabaseEvents + ) + for attr in ( + "database_database_created", + "database_endpoints_changed", + "database_read_only_endpoints_changed", + ): + try: + delattr(DatabaseEvents, attr) + except AttributeError: + pass + self.addCleanup(self.harness.cleanup) self.harness.begin() diff --git a/charms/keystone-k8s/tox.ini b/charms/keystone-k8s/tox.ini index de6c5d5b..ca8b7454 100644 --- a/charms/keystone-k8s/tox.ini +++ b/charms/keystone-k8s/tox.ini @@ -29,6 +29,7 @@ allowlist_externals = git charmcraft fetch-libs.sh + rename.sh deps = -r{toxinidir}/test-requirements.txt @@ -37,6 +38,7 @@ basepython = python3 deps = commands = charmcraft -v pack + {toxinidir}/rename.sh [testenv:fetch] basepython = python3