GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing vws-python.github.io — Running a server in containers - vws-python-mock Running a server in containers¶You can run a Mock VWS instance using Docker or Apple’s container CLI. Both use the same published images. This allows you to run tests against a mock VWS instance regardless of the language or tooling you are using. Running the mock¶There are three containers required. One container mocks the VWS services, one container mocks the VWQ services and one container provides a shared target manager backend. Each of these containers run their services on port 5000. The VWS and VWQ containers must point to the target manager container using the Creating containers with Docker¶Docker users can run the commands below directly. For a deployment using Apple’s CLI directly, follow Creating containers with Apple container. $ docker network create -d bridge vws-bridge-network $ docker run \ --detach \ --publish 5005:5000 \ --name vuforia-target-manager-mock \ --network vws-bridge-network \ ghcr.io/vws-python/vuforia-target-manager-mock $ docker run \ --detach \ --publish 5006:5000 \ -e TARGET_MANAGER_BASE_URL=http://vuforia-target-manager-mock:5000 \ -e VWS_BASE_URL=http://127.0.0.1:5006 \ --network vws-bridge-network \ ghcr.io/vws-python/vuforia-vws-mock $ docker run \ --detach \ --publish 5007:5000 \ -e TARGET_MANAGER_BASE_URL=http://vuforia-target-manager-mock:5000 \ --network vws-bridge-network \ ghcr.io/vws-python/vuforia-vwq-mock The VWS container uses Creating containers with Apple container¶This setup requires a Mac with Apple silicon and macOS 26 or later, Apple’s $ brew install container jq $ container system start --disable-kernel-install $ container system kernel set --recommended Allow Local Network access for Create a network and start the target manager first. Read its IP address on that network for the VWS and VWQ services to use: $ container network create vws-bridge-network $ container run \ --detach \ --publish 127.0.0.1:5005:5000 \ --name vuforia-target-manager-mock \ --network vws-bridge-network \ ghcr.io/vws-python/vuforia-target-manager-mock $ TARGET_MANAGER_IP="$(container inspect vuforia-target-manager-mock | jq -er '.[0].status.networks[0].ipv4Address | split("/")[0]')" $ export TARGET_MANAGER_BASE_URL="http://$TARGET_MANAGER_IP:5000" $ container run \ --detach \ --publish 127.0.0.1:5006:5000 \ --name vuforia-vws-mock \ --env "TARGET_MANAGER_BASE_URL=$TARGET_MANAGER_BASE_URL" \ --env VWS_BASE_URL=http://127.0.0.1:5006 \ --network vws-bridge-network \ ghcr.io/vws-python/vuforia-vws-mock $ container run \ --detach \ --publish 127.0.0.1:5007:5000 \ --name vuforia-vwq-mock \ --env "TARGET_MANAGER_BASE_URL=$TARGET_MANAGER_BASE_URL" \ --network vws-bridge-network \ ghcr.io/vws-python/vuforia-vwq-mock Using the target manager’s IP avoids requiring DNS configuration for container names on this network.
The IP lookup removes the subnet suffix returned by Run each readiness probe until it exits successfully: $ container exec vuforia-target-manager-mock python -m vws_mock_server.healthcheck $ container exec vuforia-vws-mock python -m vws_mock_server.healthcheck $ container exec vuforia-vwq-mock python -m vws_mock_server.healthcheck To stop and remove this deployment: $ container rm --force vuforia-vwq-mock vuforia-vws-mock vuforia-target-manager-mock $ container network rm vws-bridge-network Adding a database to the mock target manager¶When using Vuforia Web Services, it is necessary to create a database on the Target Manager. This is a web interface which does not have an HTTP API. To mimic this functionality, this mock provides a target manager container which has an HTTP API. To add a database, make a request to the following endpoint against the target manager container:
For example, with either deployment above, use $ curl --request POST \ --header "Content-Type: application/json" \ --data '{}' \ '127.0.0.1:5005/cloud_databases' { "database_id": "ca6e48ed25a340d998905ac59747a1f8", "database_name": "e515df24ba944f43b8f7969bc98af107", "server_access_key": "cb1759871a504875ab5f96d6db5ff79b", "server_secret_key": "9b8533d912ad4aa79cb61b6ee197ece2", "client_access_key": "2d61c1d17bb94694bee77c1f1f41e5d9", "client_secret_key": "b73f8170cf7d42728fa8ce66221ad147", "state_name": "WORKING", "database_type_name": "CLOUD_RECO", "targets": [], "request_quota": 100000, "reco_threshold": 1000, "current_month_recos": 0, "previous_month_recos": 0, "total_recos": 0, "target_quota": 1000, "requests_per_second_limit": null, "request_rate_limits": null } Deleting a database¶To delete a database use the following endpoint: Setting the recognition counts of a target¶The mock does not count recognitions, because the counts which the real Vuforia Web Services report lag behind its queries by longer than a test runs. To make the target summary report and the reco counts report show non-zero counts, set the counts with the following endpoint:
Configuration options¶Required configuration¶
Optional configuration¶VWS and Query containers¶
Target manager container¶
Query container¶
VWS container¶
Building images from source¶These commands build the images with $ export REPOSITORY_ROOT="$PWD" $ export DOCKERFILE="$REPOSITORY_ROOT/server/Dockerfile" $ export TARGET_MANAGER_TAG=ghcr.io/vws-python/vuforia-target-manager-mock:latest $ export VWS_TAG=ghcr.io/vws-python/vuforia-vws-mock:latest $ export VWQ_TAG=ghcr.io/vws-python/vuforia-vwq-mock:latest $ docker buildx build "$REPOSITORY_ROOT" --file "$DOCKERFILE" --target target-manager --tag "$TARGET_MANAGER_TAG" $ docker buildx build "$REPOSITORY_ROOT" --file "$DOCKERFILE" --target vws --tag "$VWS_TAG" $ docker buildx build "$REPOSITORY_ROOT" --file "$DOCKERFILE" --target vwq --tag "$VWQ_TAG" To build the same $ container build "$REPOSITORY_ROOT" --file "$DOCKERFILE" --target target-manager --tag "$TARGET_MANAGER_TAG" $ container build "$REPOSITORY_ROOT" --file "$DOCKERFILE" --target vws --tag "$VWS_TAG" $ container build "$REPOSITORY_ROOT" --file "$DOCKERFILE" --target vwq --tag "$VWQ_TAG" |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |