Skip to main content

Python library for using the RCDevs API (Manager and SOAP APIs)

Project description

PyPI - Python Version Read the Docs (version)

pyrcdevs

Manager API

Example (requesting Server_Status method)

import ssl
import asyncio
from pyrcdevs import WebADMManager

webadm_manager_api = WebADMManager(
    "my_webadm_host_or_ip", 
    "UserDomain\\api_username", 
    "api_password", 
    verify_mode=ssl.CERT_REQUIRED, 
    ca_file="/path/to/ca_file.crt"
)
server_status_response = asyncio.run(webadm_manager_api.server_status(servers=True, websrvs=True, webapps=True))

Output is:

{'version': '2.3.24', 'servers': {'ldap': True, 'sql': True, 'session': True, 'pki': True, 'mail': True}, 'webapps': {'HelpDesk': {'version': '1.1.5', 'status': 'Invalid'}, 'OpenID': {'version': '1.6.7', 'status': 'Invalid'}, 'PwReset': {'version': '1.3.4', 'status': 'Ok'}, 'SelfDesk': {'version': '1.4.7', 'status': 'Ok'}, 'SelfReg': {'version': '1.4.4', 'status': 'Ok'}}, 'websrvs': {'OpenOTP': {'version': '2.2.22', 'status': 'Ok', 'license': 'Ok'}, 'SMSHub': {'version': '1.3.1', 'status': 'Ok'}, 'SpanKey': {'version': '2.1.5', 'status': 'Ok', 'license': 'Ok'}}, 'status': False}

TLS client authentication

TLS client authentication may be required if your WebADM server has the manager_auth setting configured to PKI in /opt/webadm/conf/webadm.conf file.

In this case, you can set the p12_file and p12_password options when instantiating the WebADM object:

import ssl
import asyncio
from pyrcdevs import WebADMManager

webadm_manager_api = WebADMManager(
    "my_webadm_host_or_ip",
    "UserDomain\\api_username",
    "api_password",
    verify_mode=ssl.CERT_REQUIRED, 
    ca_file="/path/to/ca_file.crt",
    p12_file_path = "/path/to/p12_file.p12",
    p12_password = "p12_PasSW0rd"
)
server_status_response = asyncio.run(webadm_manager_api.server_status())

SOAP API

Example (requesting openotpNormalLogin method)

import ssl
import asyncio
from pyrcdevs import OpenOTPSoap

openotp_soap_api = OpenOTPSoap(
    "my_webadm_host_or_ip", 
    verify_mode=ssl.CERT_REQUIRED, 
    ca_file="/path/to/ca_file.crt"
)
response = asyncio.run(openotp_soap_api.normal_login("testuser1", ldap_password="password", otp_password="123456"))

Output is:

{'code': '1', 'error': None, 'message': 'Authentication success', 'data': None, 'concat': '0'}

Authentication

Authentication may be required if your SOAP endpoint has the Require Certificate / API Key setting configured to Yes in its settings. This setting is located in WebADM under Applications->Configure page of corresponding web service.

Client certificate

For client certiticate authentication, you can set the p12_file and p12_password options when instantiating the OpenOTPSoap object:

import ssl
import asyncio
from pyrcdevs import OpenOTPSoap

openotp_soap_api = OpenOTPSoap(
    "my_webadm_host_or_ip",
    verify_mode=ssl.CERT_REQUIRED, 
    ca_file="/path/to/ca_file.crt",
    p12_file_path = "/path/to/p12_file.p12",
    p12_password = "p12_PasSW0rd"
)
response = asyncio.run(openotp_soap_api.normal_login("testuser1", ldap_password="password", otp_password="123456"))

API key

For API key authentication, you can set the api_key parameter when instantiating the OpenOTPSoap object:

import ssl
import asyncio
from pyrcdevs import OpenOTPSoap

openotp_soap_api = OpenOTPSoap(
    "my_webadm_host_or_ip", 
    verify_mode=ssl.CERT_REQUIRED, 
    ca_file="/path/to/ca_file.crt",
    api_key="5860687476061196336_d788fd99ea4868f35c3b5e21ada3920b9501bb2c",
)
response = asyncio.run(openotp_soap_api.normal_login("testuser1", ldap_password="password", otp_password="123456"))

More information can be found here: Manager APIs

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

pyrcdevs-2.0.2.tar.gz (39.6 kB view details)

Uploaded Source

Built Distribution

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

pyrcdevs-2.0.2-py3-none-any.whl (47.1 kB view details)

Uploaded Python 3

File details

Details for the file pyrcdevs-2.0.2.tar.gz.

File metadata

  • Download URL: pyrcdevs-2.0.2.tar.gz
  • Upload date:
  • Size: 39.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.3 Linux/6.14.0-15-generic

File hashes

Hashes for pyrcdevs-2.0.2.tar.gz
Algorithm Hash digest
SHA256 146e9ca8ff5f5b60aa2fdae23851c35d117ee6508914fa6f392c8c8e05192a2f
MD5 e0e4f2e29f1d04e13a164707eedce2f4
BLAKE2b-256 2e9ae19b80d7c9e85dc3b1d9239131f78bd5418c666785f0c8b64b7103ba5aed

See more details on using hashes here.

File details

Details for the file pyrcdevs-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: pyrcdevs-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 47.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.3 Linux/6.14.0-15-generic

File hashes

Hashes for pyrcdevs-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2afef499a0e414b3f5b20b827a8dbeb79ac6c9c58c704452396083c273328a86
MD5 4e28528969d7db0a8021d0d663931ffe
BLAKE2b-256 12d34484e37686fc8a02c82cd376e68c5be31654f0e3fb0dbf7ccec7fb5c927b

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