Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: built-in bridge system test compatibility #2911

Merged
merged 2 commits into from
Jul 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions tests/RobotFramework/libraries/ThinEdgeIO/ThinEdgeIO.py
Original file line number Diff line number Diff line change
Expand Up @@ -879,6 +879,20 @@ def configure_ssh(self, user: str = "root", device: str = None) -> str:
)
return str(key)

@keyword("Get Bridge Service Name")
def get_bridge_service_name(self, cloud: str) -> str:
"""Get the name of the bridge service.

The service name will depend if the built-in bridge
has been activated or not (on the device).
"""
output = self.execute_command("tedge config get mqtt.bridge.built_in", strip=True, ignore_exit_code=True)
if output == "true":
return f"tedge-mapper-bridge-{cloud}"

# Legacy mosquitto bridge
return f"mosquitto-{cloud}-bridge"


def to_date(value: relativetime_) -> datetime:
if isinstance(value, datetime):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ Test if all c8y services are up
c8y-firmware-plugin

Test bridge service status up
External Identity Should Exist ${DEVICE_SN}:device:main:service:mosquitto-c8y-bridge show_info=False
${SERVICE_NAME}= Get Bridge Service Name cloud=c8y
External Identity Should Exist ${DEVICE_SN}:device:main:service:${SERVICE_NAME} show_info=False
Cumulocity.Managed Object Should Have Fragment Values status\=up timeout=${TIMEOUT}

Test mosquitto bridge service status mapping
Expand Down
32 changes: 32 additions & 0 deletions tests/images/debian-systemd/files/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ FLAGS
--connect/--no-connect Connect the mapper. Provide the type of mapper via '--mapper <name>'. Default True
--mapper <name> Name of the mapper to use when connecting (if user has specified the --connect option).
Defaults to 'c8y'. Currently only c8y works.
--bridge-type <mosquitto|builtin> Which bridge type to use. mosquitto or builtin

DEVICE FLAGS
--device-id <name> Use a specific device-id. A prefix will be added to the device id
Expand Down Expand Up @@ -116,6 +117,7 @@ INSTALL_METHOD="${INSTALL_METHOD:-}"
INSTALL_SOURCEDIR=${INSTALL_SOURCEDIR:-.}
MAX_CONNECT_ATTEMPTS=${MAX_CONNECT_ATTEMPTS:-2}
TEDGE_MAPPER=${TEDGE_MAPPER:-c8y}
BRIDGE_TYPE=${BRIDGE_TYPE:-mosquitto}
ARCH=${ARCH:-}
USE_RANDOM_ID=${USE_RANDOM_ID:-0}
SHOULD_PROMPT=${SHOULD_PROMPT:-1}
Expand Down Expand Up @@ -302,6 +304,12 @@ do
TEDGE_MAPPER="$2"
shift
;;

# Which bridge type to use. mosquitto or builtin
--bridge-type)
BRIDGE_TYPE="$2"
shift
;;

# Cumulocity settings
--c8y-user)
Expand Down Expand Up @@ -896,6 +904,30 @@ connect_mappers() {
# retry connection attempts
sudo tedge disconnect "$TEDGE_MAPPER" || true

# Only set the bridge type setting if it is supported (as it is a relatively new setting)
if tedge config get mqtt.bridge.built_in >/dev/null 2>&1; then
current_built_in_value=$(tedge config get mqtt.bridge.built_in)
desired_built_in_value=

case "$BRIDGE_TYPE" in
builtin|built_in)
desired_built_in_value=true
;;
mosquitto)
desired_built_in_value=false
;;
*)
echo "FAIL: Invalid bridge-type setting. got=$BRIDGE_TYPE, expected one of [builtin, mosquitto]"
exit 1
;;
esac

if [ -n "$desired_built_in_value" ] && [ "$current_built_in_value" != "$desired_built_in_value" ]; then
echo "Setting mqtt.bridge.built_in to $desired_built_in_value"
sudo tedge config set mqtt.bridge.built_in "$desired_built_in_value"
fi
fi

CONNECT_ATTEMPT=0
while true; do
CONNECT_ATTEMPT=$((CONNECT_ATTEMPT + 1))
Expand Down