Skip to main content

License

pipeline status

SOLIDserverRest

This 'SOLIDserverRest' allows to easily interact with SOLIDserver's REST API. It allows managing all IPAM objects through CRUD operations.

  • Free software: BSD2 License

This 'SOLIDserverRest' is compatible with SOLIDserver version 7 and ownward.

Install

Install 'SOLIDserverRest' using pip in your virtualenv:

	pip install SOLIDserverRest

Usage

Using the SOLIDserverRest advanced object (recommended)

With basic authentication

All commands and object manipulation are going through a SOLIDserver main object, handling the connection to the manager and pushing API calls. The creation of a SOLIDserver object is done like that:

from SOLIDserverRest import *
from SOLIDserverRest import adv as sdsadv

SDS_HOST = "192.168.254.254"
SDS_LOGIN = "foo"
SDS_PWD = "bar"

sds = sdsadv.SDS(ip_address=SDS_HOST,
                 user=SDS_LOGIN,
                 pwd=SDS_PWD)
try:
    sds.connect()
except SDSError as e:
    logging.error(e)
    exit(1)

print(sds)

With token authentication (SDS release >= 8.4.0)

from SOLIDserverRest import *
from SOLIDserverRest import adv as sdsadv

SDS_HOST = "192.168.254.254"
SDS_TOKEN_ID = "8628f88cbd40df99903d6f385caa0462"
SDS_TOKEN_SEC = "ca8ec3c0f07b380c4723349230901d40a84ba4b4987c12863b66b0b5297ad922"

sds = sdsadv.SDS(ip_address=SDS_HOST)
sds.set_token_creds(keyid=SDS_TOKEN_ID,
                    keysecret=SDS_TOKEN_SEC)
try:
    sds.connect(method="token")
except SDSError as e:
    logging.error(e)
    exit(1)

print(sds)

More examples in the example directory.

Using the SOLIDserverRest object (basic mapping)

The raw API is mapped using the SOLIDserverRest object which handle the connection, prepare the formating and handle some errors. It can be usefull twhen the advanced library is not yet implementing an object that you require in your code.

1. Declare endpoint API point

Set the API endpoint you want to talk with through API. Could use an IP address (v4 or v6) or a host name

  • host = IP address of the SOLIDserver server
con = SOLIDserverRest("fqdn_host.org")

2. Specify connection method

You can use native connection mode using SOLIDserver default method which provide authentication through headers in the requests with information encoded in base64

  • user = user who want to use
  • password = password of the user
	con.use_native_sds(user="apiuser", password="apipwd")

You can also use the basic authentication method for connecting the SOLIDserver.

  • user = user who want to use
  • password = password of the user
	con.use_basicauth_sds(user="apiuser", password="apipwd")

3. Set TLS security

SSL certificate chain is validated by default, to disable it, use the set_ssl_verify method

        con.set_ssl_verify(False)  # True by default
	rest_answer = con.query("method", "parameters")

Otherwise, you have to provide the certificate file:

    con = SOLIDserverRest(SERVER)

If the certificate file is not valide, an exception SDSInitError is raised.

4. Request to SOLIDserver API

You need parameters:

  • method = choose your method in the list below
  • parameters = Python dictionary with parameters you want to use
	rest_answer = con.query("method", "parameters")

5. Analyze answer

  • rest_answer => object name
  • rest_answer.status_code => current http answer code set in the object
  • rest_answer.content => Answer core from SOLIDserver API set in the object

Example:

	print(rest_answer)
	print(rest_answer.status_code)
	print(rest_answer.content)

Methods that could be used

Methods are organized to match the ontology used in SOLIDServer, you will find:

  • Sites - address spaces
  • Subnets (v4 and v6)
  • Pools (v4 and v6)
  • Addresses (v4 and v6)
  • Aliases (v4 and v6)
  • DNS servers, views, zones, RR, acl, key
  • application manager
  • DHCP server, scope, shared net, range, static, group, options
  • device manager
  • VLAN manager
  • Network Object Manager

More information about supported methods in the specific document

Tests

Last set of tests run on 29/Sep/2025 using:

  • SOLIDserver release 8.3.2
  • python libs:
    • requests 2.32.5
    • urllib3 2.5.0
    • idna 3.10
    • PySocks 1.7.1
    • chardet 5.2.0
    • pyOpenSSL 25.3.0
    • packaging 24.2
    • macaddress 2.0.2

coverage results

---------- coverage: platform win32, python 3.11.3-final-0 -----------
Name                                        Stmts   Miss  Cover
---------------------------------------------------------------
SOLIDserverRest\Exception.py                   24      4    83%
SOLIDserverRest\SOLIDserverRest.py            168     20    88%
SOLIDserverRest\__init__.py                     4      0   100%
SOLIDserverRest\adv\__init__.py                16      0   100%
SOLIDserverRest\adv\base.py                   116     19    84%
SOLIDserverRest\adv\class_params.py            97      4    96%
SOLIDserverRest\adv\device.py                  86     72    16%
SOLIDserverRest\adv\device_tools.py           127    113    11%
SOLIDserverRest\adv\devif.py                  121     99    18%
SOLIDserverRest\adv\dns.py                    149     65    56%
SOLIDserverRest\adv\dns_record.py             403    117    71%
SOLIDserverRest\adv\dns_view.py               104     37    64%
SOLIDserverRest\adv\dns_zone.py               143     19    87%
SOLIDserverRest\adv\ipaddress.py              151      5    97%
SOLIDserverRest\adv\network.py                228      8    96%
SOLIDserverRest\adv\nom_folder.py             118      9    92%
SOLIDserverRest\adv\nom_interface.py          317     47    85%
SOLIDserverRest\adv\nom_network_object.py     126     27    79%
SOLIDserverRest\adv\sds.py                    149     10    93%
SOLIDserverRest\adv\space.py                  147     50    66%
SOLIDserverRest\adv\validators.py              28      6    79%
SOLIDserverRest\mapper.py                      24      0   100%
---------------------------------------------------------------
TOTAL                                        2846    731    74%

Release files for SOLIDserverRest 2.13.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for SOLIDserverRest 2.13.1
File Size Uploaded
solidserverrest-2.13.1.tar.gz 51.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for SOLIDserverRest 2.13.1
File Interpreter ABI Platform
solidserverrest-2.13.1-py3-none-any.whl Python 3 none any Details

Total release size: 114.0 kB

Release files / solidserverrest-2.13.1.tar.gz

Download URL solidserverrest-2.13.1.tar.gz
Size 51.9 kB
Tags Source
SHA-256 checksum
How to use checksums
cdc1480712d04fd4cdef0721d497036eaac0f2b25238fd5fa113e25146dde9e2
BLAKE2b-256 checksum
How to use checksums
4b93fc4e2e1214c2e177c8461249333a8228ea00d6cf9759bd1326bad02e19ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release files / solidserverrest-2.13.1-py3-none-any.whl

Download URL solidserverrest-2.13.1-py3-none-any.whl
Size 62.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2ab14c836cfe1548eca00c9cba927b46a3de2191f07b39509af20e2fa00bdf30
BLAKE2b-256 checksum
How to use checksums
d6b0a005c73b80433a4140ba284549019bbb739dd0d7ad395a85b1087f6d05aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release history Release notifications | RSS feed

This release

2.13.1 This release

2 release files

2.13.0

2 release files

2.12.3

2 release files

2.12.2

2 release files

2.12.1

2 release files

2.11.1

2 release files

2.11.0

2 release files

2.10.1

2 release files

2.10.0

2 release files

2.9.7

2 release files

2.9.6

2 release files

2.9.5

2 release files

2.9.4

2 release files

2.9.3

2 release files

2.9.2

2 release files

2.9.1

2 release files

2.9.0

2 release files

2.8.6

2 release files

2.8.5

2 release files

2.8.4

2 release files

2.8.3

2 release files

2.8.2

2 release files

2.8.1

2 release files

2.8.0

2 release files

2.7.0

2 release files

2.6.0

2 release files

2.5.4

2 release files

2.5.3

2 release files

2.5.2

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.12

2 release files

2.3.11

2 release files

2.3.10

2 release files

2.3.9

2 release files

2.3.8

2 release files

2.3.7

2 release files

2.3.5

2 release files

2.3.4

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.10

2 release files

2.1.9

2 release files

2.1.8

2 release files

2.1.7

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.7.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page