Skip to content

Commit

Permalink
CCT-1051: tests for register with activation keys with environments
Browse files Browse the repository at this point in the history
fix: reverted a change in test.sh to run post-activation-keys.sh again
fix: the right activation keys in README.md
  • Loading branch information
jstavel committed Dec 31, 2024
1 parent 76d9858 commit 31b2cc1
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 2 deletions.
69 changes: 69 additions & 0 deletions integration-tests/test_register_with_activation_keys.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
from conftest import RHSMPrivateBus
from constants import RHSM, RHSM_REGISTER_SERVER, RHSM_REGISTER
from dasbus.typing import get_variant, Str
from funcy import first, partial

import json
import re
import logging

logger = logging.getLogger(__name__)
locale = "en_US.UTF-8"

"""
It is important to run tests as root. Since RegisterServer is a system dbus service.
And it provides a unix socket connection.
"""


def test_register_with_activation_keys_and_environments(external_candlepin, subman, test_config):
"""
https://www.candlepinproject.org/docs/subscription-manager/dbus_objects.html#methods-6
"""
candlepin_config = partial(test_config.get, "candlepin")

assert not subman.is_registered
proxy = RHSM.get_proxy(RHSM_REGISTER_SERVER)
act_keynames = candlepin_config("activation_keys")
with RHSMPrivateBus(proxy) as private_bus:
private_proxy = private_bus.get_proxy(RHSM.service_name, RHSM_REGISTER.object_path)
response = json.loads(
private_proxy.RegisterWithActivationKeys(
candlepin_config("org"),
act_keynames,
{"environments": get_variant(Str, first(candlepin_config("environment", "ids")))},
{},
locale,
)
)

assert (
"activationKeys" in response
), "DBus method returns what activation keys were used to register a system"

logger.debug(response["activationKeys"])
assert sorted([ii["activationKeyName"] for ii in response["activationKeys"]]) == sorted(act_keynames)

subman_response = subman.run("identity")
"""
(env) [root@kvm-08-guest21 integration-tests]# subscription-manager identity
system identity: 5c00d2c6-5bea-4b6d-8662-8680e38f0dab
name: kvm-08-guest21.lab.eng.rdu2.dc.redhat.com
org name: Donald Duck
org ID: donaldduck
environment name: env-name-01
"""

def read_pair(line):
result = re.search(r"^([^:]+):(.*)", line.strip())
if result:
pair = [g.strip() for g in result.groups()]
return pair
return []

pairs = dict([read_pair(line) for line in subman_response.stdout.splitlines()])
logger.debug(pairs)
assert pairs["environment name"] == first(candlepin_config("environment", "names"))

assert subman.is_registered
4 changes: 2 additions & 2 deletions systemtest/tests/integration/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,17 @@ candlepin.prefix = "/candlepin"
candlepin.username = "duey"
candlepin.password = "password"
candlepin.org = "donaldduck"
candlepin.activation_keys = ["act-key-01","act-key-02"]
candlepin.activation_keys = ["default_key","awesome_os_pool"]
candlepin.environment.names = ["env-name-01","env-name-02"]
candlepin.environment.ids = ["env-id-01","env-id-02"]
EOF


# run local candlepin for testing purpose
./integration-tests/scripts/post-activation-keys.sh
./integration-tests/scripts/run-local-candlepin.sh

# create testing data in local candlepin
./integration-tests/scripts/post-activation-keys.sh
./integration-tests/scripts/post-environments.sh

# There is a problem with SELinux in current version of selinux-roles (for rhsm.service)
Expand Down

0 comments on commit 31b2cc1

Please sign in to comment.