Skip to main content

kuksa.val python clients and SDK

Project description

Kuksa VISS Client

kuksa.val Logo

kuksa.val is a part of the opensource project eclipse kuksa. More about kuksa.val can be found under the root README.md.

Installation

pip install kuksa-viss-client

Test client

kuksa_viss_client is a command-line test client. After you have installed the kuksa-viss-client package via pip you can run the test client directly by executing

$ kuksa_viss_client

try kuksa_viss_client out

The jwt tokens for testing can either be found under kuksa_certificates/jwt or you can also use following command inside kuksa_viss_client to find the via pip installed certificate directory.

Test Client> printTokenDir

Refer help for further information

VSS Client> help -v

Documented commands (use 'help -v' for verbose/'help <topic>' for details):

Communication Set-up Commands
================================================================================
authorize           Authorize the client to interact with the server
connect             
disconnect          Disconnect from the VSS Server
getServerAddress    Gets the IP Address for the VSS Server
setServerAddress    Sets the IP Address for the VSS Server

Info Commands
================================================================================
info                Show summary info of the client
printTokenDir       Show token directory
version             Show version of the client

Kuksa Interaction Commands
================================================================================
getMetaData         Get MetaData of the path
getValue            Get the value of a path
setValue            Set the value of a path
updateMetaData      Update MetaData of a given path
updateVISSTree      Update VISS Tree Entry

Using the testclient, it is also possible to update and extend the VSS data structure. More details can be found here.

Docker

You can build a docker image of the testclient using the Dockerfile. Not the most effcient way to pack a small python script, but it is easy to get started. The Dockerfile needs to be executed on the parent directory (so it include the needed certificates and pip package configuration).

To run the builded image:

docker run --rm -it --net=host <image-id-from docker-build>

--rm ensures we do not keep the docker continer lying aroind after closing the vss-testclient and --net=host makes sure you can reach locally running kuksa.val-server or kuksa-val docker with port forwarding on the host using the default 127.0.0.1 address.

Python SDK

If you would like to develop your own kuksa.val client, you can use the python sdk to interact with the kuksa.val server in a very easy way.

Usage

import the sdk

>>> import kuksa_viss_client
>>> kuksa_viss_client.__version__
'<your version, e.g. 0.1.7>'

Setup a thread to connect with the kuksa.val server. The following properties for the connection can be configured:

  • ip default: "127.0.0.1"
  • port default: 8090
  • insecure default: False
  • cacertificate default: "../kuksa_certificates/CA.pem"
  • certificate default: "../kuksa_certificates/Client.pem"
  • key default: "../kuksa_certificates/Client.key"
>>> config = {} 
>>> client = kuksa_viss_client.KuksaClientThread(config)
>>> 
>>> # Start the client thread to connect with configured server
>>> client.start()
>>>
>>> # Close the connection and stop the client thread
>>> client.stop()

You have the following methods to interact with the kuksa.val server:

# Do authorization by passing a jwt token or a token file
def authorize(self, token, timeout = 2)

# Update VISS Tree Entry 
def updateVISSTree(self, jsonStr, timeout = 5)

# Update Meta Data of a given path
def updateMetaData(self, path, jsonStr, timeout = 5)

# Get Meta Data of a given path
def getMetaData(self, path, timeout = 1)

# Set value to a given path
def setValue(self, path, value, timeout = 1)

# Get value to a given path
def getValue(self, path, timeout = 5)

# Subscribe value changes of to a given path.
# The given callback function will be called then, if the given path is updated:
#   updateMessage = await webSocket.recv()
#   callback(updateMessage)
def subscribe(self, path, callback, timeout = 5)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kuksa_viss_client-0.1.8.post77.tar.gz (2.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kuksa_viss_client-0.1.8.post77-py3-none-any.whl (2.5 MB view details)

Uploaded Python 3

File details

Details for the file kuksa_viss_client-0.1.8.post77.tar.gz.

File metadata

  • Download URL: kuksa_viss_client-0.1.8.post77.tar.gz
  • Upload date:
  • Size: 2.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for kuksa_viss_client-0.1.8.post77.tar.gz
Algorithm Hash digest
SHA256 8a3f1eef6bba8c3e09628e04a237221c5df9df9ca22fedc398ac5b33e07d6dd3
MD5 7437ca5b237429c29ed9e1fa3ce16181
BLAKE2b-256 55555997ba382710f06d3b3334523be30e6ac6119a8b3c3dd7a1e555cc635f54

See more details on using hashes here.

File details

Details for the file kuksa_viss_client-0.1.8.post77-py3-none-any.whl.

File metadata

  • Download URL: kuksa_viss_client-0.1.8.post77-py3-none-any.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for kuksa_viss_client-0.1.8.post77-py3-none-any.whl
Algorithm Hash digest
SHA256 a6657a974439dbfa1069e2cc237e9fff05aad0748b371b0372d89fa571f4d7f2
MD5 655297bc84706816bf6ab0a854dbc4ee
BLAKE2b-256 bf46009a8b6e74dae1b25cbbbf4ca0382d727b19de01734f8df932f2aa627ea2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page