summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-spectre-api.spec361
-rw-r--r--sources1
3 files changed, 363 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..cafb72c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/spectre-api-0.5.4.tar.gz
diff --git a/python-spectre-api.spec b/python-spectre-api.spec
new file mode 100644
index 0000000..c4cc769
--- /dev/null
+++ b/python-spectre-api.spec
@@ -0,0 +1,361 @@
+%global _empty_manifest_terminate_build 0
+Name: python-spectre-api
+Version: 0.5.4
+Release: 1
+Summary: Wrapper to use the Lumeta Spectre API
+License: MIT
+URL: https://pypi.org/project/spectre-api/
+Source0: https://mirrors.aliyun.com/pypi/web/packages/2a/84/0a7511b1e76a97c3bb98d59a0760c875260d20defcaaf95b2bc1e7148994/spectre-api-0.5.4.tar.gz
+BuildArch: noarch
+
+Requires: python3-requests
+
+%description
+# spectre-api-python
+
+## General
+This module is intended to make it a bit easier to work with
+The Lumeta Corporation's Spectre API.
+
+Lumeta and Spectre are both registered trademarks of the Lumeta Corporation
+
+Install this module by running `pip3 install spectre-api`
+
+### Introduction
+This Python module is intended to be a relatively light weight wrapper around the Spectre API.
+The idea is to abstract out some of the authentication and paging pieces to make it easier to
+focus on fine-tuning the actual underlying calls. Basically, you configure a server
+(currently using username/password or API Key authentication) and then have it perform API calls.
+For example:
+```python
+>>> import spectreapi
+>>> s = spectreapi.UsernameServer("cc", "username", "password")
+>>> r = s.get("zonedata/devices", params = { "filter.zone.id": 1} )
+>>> for d in r:
+... if d['ip'] is not None:
+... print(d['ip'])
+...
+10.2.1.1
+10.201.0.1
+10.201.0.7
+10.202.0.1
+10.202.0.2
+172.18.1.180
+>>>
+```
+Another, slightly cleaner way to do this would be to use the query methods
+```python
+>>> import spectreapi
+>>> z = spectreapi.UsernameServer('cc','username','password').get_zone_by_name('Zone1')
+>>> q=z.query().detail('Attributes')
+>>> for d in q.run():
+... if d['ip'] is not None:
+... print(d['ip'])
+...
+10.2.1.1
+10.201.0.1
+10.201.0.7
+10.202.0.1
+10.202.0.2
+172.18.1.180
+>>>
+```
+
+
+## Servers
+A **Server** is the base class that has most of the functionality
+needed to use the Spectre API. You'll instantiate a more specific
+**Server** based on which authentication method you're using.
+
+### UsernameServer
+`spectreapi.UsernameServer(<server>, <username>, <password>, [<page_size>,] [<verify>])`
+Where:
+
+`<server>` = The IP address or DNS name of the Spectre Command Center
+
+`<username>` = Username
+
+`<password>` = Password
+
+`<page_size>` = How many results should a GET request return at a time.
+
+`<verify>` = Should we verify the SSL certificate of the server (True or False, defaults to False). You'll want to leave this a False unless you've given your command center an actual SSL certificate.
+
+
+
+Behind the scenes, this makes an API call to `system/information` with basic authentication
+(over https) and then uses the resulting JSESSIONID cookie for the rest of the time.
+
+### APIKeyServer
+`spectreapi.APIKeyServer(<server>, <api_key>, [, <page_size>] [, <verify>])`
+Where:
+
+`<server>` = The IP address or DNS name of the Spectre Command Center
+
+`<api_key>` = API Key for API access. You get this via the GUI or by issuing the
+`user key new <username>` command at the command center CLI.
+
+`<page_size>` = How many results should a GET request return at a time.
+
+`<verify>` = Should we verify the SSL certificate of the server (True or False, defaults to False). You'll want to leave this a False unless you've given your command center an actual SSL certificate.
+
+
+
+## GET, POST, PUT, DELETE
+
+## Notes on using the underlying Spectre API
+
+
+
+
+
+%package -n python3-spectre-api
+Summary: Wrapper to use the Lumeta Spectre API
+Provides: python-spectre-api
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-spectre-api
+# spectre-api-python
+
+## General
+This module is intended to make it a bit easier to work with
+The Lumeta Corporation's Spectre API.
+
+Lumeta and Spectre are both registered trademarks of the Lumeta Corporation
+
+Install this module by running `pip3 install spectre-api`
+
+### Introduction
+This Python module is intended to be a relatively light weight wrapper around the Spectre API.
+The idea is to abstract out some of the authentication and paging pieces to make it easier to
+focus on fine-tuning the actual underlying calls. Basically, you configure a server
+(currently using username/password or API Key authentication) and then have it perform API calls.
+For example:
+```python
+>>> import spectreapi
+>>> s = spectreapi.UsernameServer("cc", "username", "password")
+>>> r = s.get("zonedata/devices", params = { "filter.zone.id": 1} )
+>>> for d in r:
+... if d['ip'] is not None:
+... print(d['ip'])
+...
+10.2.1.1
+10.201.0.1
+10.201.0.7
+10.202.0.1
+10.202.0.2
+172.18.1.180
+>>>
+```
+Another, slightly cleaner way to do this would be to use the query methods
+```python
+>>> import spectreapi
+>>> z = spectreapi.UsernameServer('cc','username','password').get_zone_by_name('Zone1')
+>>> q=z.query().detail('Attributes')
+>>> for d in q.run():
+... if d['ip'] is not None:
+... print(d['ip'])
+...
+10.2.1.1
+10.201.0.1
+10.201.0.7
+10.202.0.1
+10.202.0.2
+172.18.1.180
+>>>
+```
+
+
+## Servers
+A **Server** is the base class that has most of the functionality
+needed to use the Spectre API. You'll instantiate a more specific
+**Server** based on which authentication method you're using.
+
+### UsernameServer
+`spectreapi.UsernameServer(<server>, <username>, <password>, [<page_size>,] [<verify>])`
+Where:
+
+`<server>` = The IP address or DNS name of the Spectre Command Center
+
+`<username>` = Username
+
+`<password>` = Password
+
+`<page_size>` = How many results should a GET request return at a time.
+
+`<verify>` = Should we verify the SSL certificate of the server (True or False, defaults to False). You'll want to leave this a False unless you've given your command center an actual SSL certificate.
+
+
+
+Behind the scenes, this makes an API call to `system/information` with basic authentication
+(over https) and then uses the resulting JSESSIONID cookie for the rest of the time.
+
+### APIKeyServer
+`spectreapi.APIKeyServer(<server>, <api_key>, [, <page_size>] [, <verify>])`
+Where:
+
+`<server>` = The IP address or DNS name of the Spectre Command Center
+
+`<api_key>` = API Key for API access. You get this via the GUI or by issuing the
+`user key new <username>` command at the command center CLI.
+
+`<page_size>` = How many results should a GET request return at a time.
+
+`<verify>` = Should we verify the SSL certificate of the server (True or False, defaults to False). You'll want to leave this a False unless you've given your command center an actual SSL certificate.
+
+
+
+## GET, POST, PUT, DELETE
+
+## Notes on using the underlying Spectre API
+
+
+
+
+
+%package help
+Summary: Development documents and examples for spectre-api
+Provides: python3-spectre-api-doc
+%description help
+# spectre-api-python
+
+## General
+This module is intended to make it a bit easier to work with
+The Lumeta Corporation's Spectre API.
+
+Lumeta and Spectre are both registered trademarks of the Lumeta Corporation
+
+Install this module by running `pip3 install spectre-api`
+
+### Introduction
+This Python module is intended to be a relatively light weight wrapper around the Spectre API.
+The idea is to abstract out some of the authentication and paging pieces to make it easier to
+focus on fine-tuning the actual underlying calls. Basically, you configure a server
+(currently using username/password or API Key authentication) and then have it perform API calls.
+For example:
+```python
+>>> import spectreapi
+>>> s = spectreapi.UsernameServer("cc", "username", "password")
+>>> r = s.get("zonedata/devices", params = { "filter.zone.id": 1} )
+>>> for d in r:
+... if d['ip'] is not None:
+... print(d['ip'])
+...
+10.2.1.1
+10.201.0.1
+10.201.0.7
+10.202.0.1
+10.202.0.2
+172.18.1.180
+>>>
+```
+Another, slightly cleaner way to do this would be to use the query methods
+```python
+>>> import spectreapi
+>>> z = spectreapi.UsernameServer('cc','username','password').get_zone_by_name('Zone1')
+>>> q=z.query().detail('Attributes')
+>>> for d in q.run():
+... if d['ip'] is not None:
+... print(d['ip'])
+...
+10.2.1.1
+10.201.0.1
+10.201.0.7
+10.202.0.1
+10.202.0.2
+172.18.1.180
+>>>
+```
+
+
+## Servers
+A **Server** is the base class that has most of the functionality
+needed to use the Spectre API. You'll instantiate a more specific
+**Server** based on which authentication method you're using.
+
+### UsernameServer
+`spectreapi.UsernameServer(<server>, <username>, <password>, [<page_size>,] [<verify>])`
+Where:
+
+`<server>` = The IP address or DNS name of the Spectre Command Center
+
+`<username>` = Username
+
+`<password>` = Password
+
+`<page_size>` = How many results should a GET request return at a time.
+
+`<verify>` = Should we verify the SSL certificate of the server (True or False, defaults to False). You'll want to leave this a False unless you've given your command center an actual SSL certificate.
+
+
+
+Behind the scenes, this makes an API call to `system/information` with basic authentication
+(over https) and then uses the resulting JSESSIONID cookie for the rest of the time.
+
+### APIKeyServer
+`spectreapi.APIKeyServer(<server>, <api_key>, [, <page_size>] [, <verify>])`
+Where:
+
+`<server>` = The IP address or DNS name of the Spectre Command Center
+
+`<api_key>` = API Key for API access. You get this via the GUI or by issuing the
+`user key new <username>` command at the command center CLI.
+
+`<page_size>` = How many results should a GET request return at a time.
+
+`<verify>` = Should we verify the SSL certificate of the server (True or False, defaults to False). You'll want to leave this a False unless you've given your command center an actual SSL certificate.
+
+
+
+## GET, POST, PUT, DELETE
+
+## Notes on using the underlying Spectre API
+
+
+
+
+
+%prep
+%autosetup -n spectre-api-0.5.4
+
+%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-spectre-api -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.4-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..3c7fc26
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+d61a3cc645107d53f598db12c0d7b8b6 spectre-api-0.5.4.tar.gz