diff options
Diffstat (limited to 'python-solidserverrest.spec')
| -rw-r--r-- | python-solidserverrest.spec | 484 |
1 files changed, 484 insertions, 0 deletions
diff --git a/python-solidserverrest.spec b/python-solidserverrest.spec new file mode 100644 index 0000000..f6cbcdd --- /dev/null +++ b/python-solidserverrest.spec @@ -0,0 +1,484 @@ +%global _empty_manifest_terminate_build 0 +Name: python-SOLIDserverRest +Version: 2.3.9 +Release: 1 +Summary: The SOLIDserverRest is a library to drive EfficientIP API +License: BSD 2 +URL: https://gitlab.com/efficientip/solidserverrest +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/68/80/f1f1b4a77b60b89dc5805647c3297f3e17409c67aa07e5d8cb8a601d8a96/SOLIDserverRest-2.3.9.tar.gz +BuildArch: noarch + +Requires: python3-requests +Requires: python3-PySocks +Requires: python3-urllib3 +Requires: python3-idna +Requires: python3-chardet +Requires: python3-pyopenssl +Requires: python3-packaging + +%description +[](https://opensource.org/licenses/BSD-2-Clause) + +[](https://gitlab.com/efficientip/solidserverrest/commits/master) +[](https://codecov.io/gl/efficientip/solidserverrest) + +# SOLIDserverRest + +This 'SOLIDserverRest' allows to easily interact with [SOLIDserver](https://www.efficientip.com/products/solidserver/)'s REST API. +It allows managing all IPAM objects through CRUD operations. + +* ***Free software***: BSD2 License + +This 'SOLIDserverRest' is compatible with [SOLIDserver](https://www.efficientip.com/products/solidserver/) version 7 and ownward. + +# Install +Install 'SOLIDserverRest' using pip in your virtualenv: + +``` + pip install SOLIDserverRest +``` + +# Usage + +## Using the SOLIDserverRest advanced object (recommended) + +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(method="native") +except SDSError as e: + logging.error(e) + exit(1) + +print(adv) + +``` + +More examples in the example directory. + +## Using the SOLIDserverRest object + +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 + +```python + 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 + +```python + 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 + +```python + con.set_ssl_verify(False) # True by default + rest_answer = con.query("method", "parameters") +``` + +Otherwise, you have to provide the certificate file: +```python + 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 + +```python + 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: +```python + 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 +* device manager +* VLAN manager + +More information about supported methods in the [specific document](docs/METHODS.md) + + + + +%package -n python3-SOLIDserverRest +Summary: The SOLIDserverRest is a library to drive EfficientIP API +Provides: python-SOLIDserverRest +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-SOLIDserverRest +[](https://opensource.org/licenses/BSD-2-Clause) + +[](https://gitlab.com/efficientip/solidserverrest/commits/master) +[](https://codecov.io/gl/efficientip/solidserverrest) + +# SOLIDserverRest + +This 'SOLIDserverRest' allows to easily interact with [SOLIDserver](https://www.efficientip.com/products/solidserver/)'s REST API. +It allows managing all IPAM objects through CRUD operations. + +* ***Free software***: BSD2 License + +This 'SOLIDserverRest' is compatible with [SOLIDserver](https://www.efficientip.com/products/solidserver/) version 7 and ownward. + +# Install +Install 'SOLIDserverRest' using pip in your virtualenv: + +``` + pip install SOLIDserverRest +``` + +# Usage + +## Using the SOLIDserverRest advanced object (recommended) + +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(method="native") +except SDSError as e: + logging.error(e) + exit(1) + +print(adv) + +``` + +More examples in the example directory. + +## Using the SOLIDserverRest object + +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 + +```python + 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 + +```python + 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 + +```python + con.set_ssl_verify(False) # True by default + rest_answer = con.query("method", "parameters") +``` + +Otherwise, you have to provide the certificate file: +```python + 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 + +```python + 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: +```python + 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 +* device manager +* VLAN manager + +More information about supported methods in the [specific document](docs/METHODS.md) + + + + +%package help +Summary: Development documents and examples for SOLIDserverRest +Provides: python3-SOLIDserverRest-doc +%description help +[](https://opensource.org/licenses/BSD-2-Clause) + +[](https://gitlab.com/efficientip/solidserverrest/commits/master) +[](https://codecov.io/gl/efficientip/solidserverrest) + +# SOLIDserverRest + +This 'SOLIDserverRest' allows to easily interact with [SOLIDserver](https://www.efficientip.com/products/solidserver/)'s REST API. +It allows managing all IPAM objects through CRUD operations. + +* ***Free software***: BSD2 License + +This 'SOLIDserverRest' is compatible with [SOLIDserver](https://www.efficientip.com/products/solidserver/) version 7 and ownward. + +# Install +Install 'SOLIDserverRest' using pip in your virtualenv: + +``` + pip install SOLIDserverRest +``` + +# Usage + +## Using the SOLIDserverRest advanced object (recommended) + +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(method="native") +except SDSError as e: + logging.error(e) + exit(1) + +print(adv) + +``` + +More examples in the example directory. + +## Using the SOLIDserverRest object + +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 + +```python + 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 + +```python + 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 + +```python + con.set_ssl_verify(False) # True by default + rest_answer = con.query("method", "parameters") +``` + +Otherwise, you have to provide the certificate file: +```python + 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 + +```python + 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: +```python + 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 +* device manager +* VLAN manager + +More information about supported methods in the [specific document](docs/METHODS.md) + + + + +%prep +%autosetup -n SOLIDserverRest-2.3.9 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-SOLIDserverRest -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 2.3.9-1 +- Package Spec generated |
