summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-17 04:04:13 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-17 04:04:13 +0000
commit6a92372634afbd6b7fae611db4be23ad3d6be052 (patch)
tree8a07bf13edac5e815ae404898884f74eb70700c9
parent7b1340d8ad9f82e5e521b4b4590132665094a858 (diff)
automatic import of python-skilletlib
-rw-r--r--.gitignore1
-rw-r--r--python-skilletlib.spec584
-rw-r--r--sources1
3 files changed, 586 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..c7b7d47 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/skilletlib-1.2.5.tar.gz
diff --git a/python-skilletlib.spec b/python-skilletlib.spec
new file mode 100644
index 0000000..209e833
--- /dev/null
+++ b/python-skilletlib.spec
@@ -0,0 +1,584 @@
+%global _empty_manifest_terminate_build 0
+Name: python-skilletlib
+Version: 1.2.5
+Release: 1
+Summary: Tools for working with PAN-OS Skillets in Python 3
+License: Apache 2.0
+URL: https://github.com/paloaltonetworks/skilletlib
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/70/1d/b862db3bba55169edfcd8cb4ca074c79b375f72604189cd3deb134bd1417/skilletlib-1.2.5.tar.gz
+BuildArch: noarch
+
+Requires: python3-oyaml
+Requires: python3-docker
+Requires: python3-pan-python
+Requires: python3-jinja2
+Requires: python3-pyyaml
+Requires: python3-xmldiff
+Requires: python3-xmltodict
+Requires: python3-requests-toolbelt
+Requires: python3-requests
+Requires: python3-jsonpath-ng
+Requires: python3-passlib
+Requires: python3-GitPython
+Requires: python3-jinja2-ansible-filters
+Requires: python3-jmespath
+
+%description
+# Skilletlib
+Base Classes and Utilities for working with Skillets in Python 3.7+. Skilletlib encapsulates all the logic necessary to
+execute a skillet in your app or tooling.
+
+See [here](https://live.paloaltonetworks.com/t5/Skillet-District/ct-p/Skillets) for information about Skillets and
+what skillets may be available.
+
+
+## About Skillets
+
+Skillets are designed to be sharable units of configuration or validation data. They are perfectly suited for
+'Compliance as Code' or 'Infrastructure as Code' type environments. All the 'knowledge' of doing a thing is encapsulated
+in the skillet. Skillets strive to be tooling agnostic. A subject matter expert should not have to define best
+practices in multiple domain specific languages. Ideally, this should be expressed once, and executed in a variety of
+tools. Skilletlib makes it easy to allow Skillets to be executed in your tooling of choice.
+
+Skillets are meant to be stored and shared via source control repositories along with the rest of your infrastructure.
+This allows complex NGFW configurations and use case specific compliance checks to be executed as part of your
+deployment pipeline.
+
+## Resources
+
+* [Information on building Skillets and working with the PAN-OS XML API](https://SkilletBuilder.readthedocs.io)
+
+* [Example Skillets](https://github.com/PaloAltoNetworks/skilletlib/tree/master/example_skillets)
+
+* [PAN-OS XML Quickstart](https://strata.pan.dev/docs/apis/xmlapi_qs)
+
+* [PAN-OS Exploring the API](https://docs.paloaltonetworks.com/pan-os/9-0/pan-os-panorama-api/get-started-with-the-pan-os-xml-api/explore-the-api.html)
+
+## Installation
+
+Skilletlib is distributed as a python shared library on [pypi.org](https://pypi.org/project/skilletlib/).
+
+```bash
+
+pip install skilletlib
+
+```
+
+
+## Example Loading a Skillet
+
+```python
+
+from skilletlib import SkilletLoader
+
+# init SkilletLoader Class
+sl = SkilletLoader()
+
+# Load the skillet found in the current directory
+skillet = sl.load_skillet_from_path('.')
+
+# Every skillet requires a context, which is a dict containing
+# any user-input or other variables to allow customization.
+context = dict()
+
+# In this example, our skillet needs a configuration.xml file to be loaded into a variable
+# called 'config'
+with open('config.xml', 'r') as config:
+ context['config'] = config.read()
+
+# execute the skillet and return the results
+out = skillet.execute(context)
+
+# Do something interesting with the results, like print it out :-)
+print(out)
+print('all done')
+
+```
+
+
+## Loading Skillets from a Git repository
+
+```python
+
+from skilletlib import SkilletLoader
+repo_url = 'https://github.com/nembery/Skillets'
+repo_branch = 'develop'
+directory = '/var/tmp/skillets'
+repo_name = 'example skillets'
+
+sl = SkilletLoader()
+skillets = sl.load_from_git(repo_url, repo_name, repo_branch, local_dir=directory)
+
+for s in skillets:
+ print(s.name)
+
+```
+
+## using Skilletlib to find recent changes in Set CLI Format
+
+```python
+
+import os
+
+# The Panos class is a wrapper around the XML API that provides some convience methods
+from skilletlib import Panos
+
+auth = {
+ 'hostname': os.environ.get('ip_address', ''),
+ 'api_username': os.environ.get('username', ''),
+ 'api_password': os.environ.get('password', ''),
+ 'debug': os.environ.get('debug', True),
+}
+device = Panos(**auth)
+
+# you can pass negative integers to the 'get_configuration' method to retrive the most to least recent
+# running configurations. This is very useful to finding the Set CLI or XML equivelent of GUI configuration
+# changes
+previous_config = device.get_configuration(config_source='-1')
+latest_config = device.get_configuration(config_source='running')
+
+# The 'generate_set_cli_from_configs' method returns the difference between two config files. In this case,
+# we'll use the running config and the most recent running config audit backup. This will give us all the
+# changes made via the most recent commit in Set CLI format
+cmds = device.generate_set_cli_from_configs(previous_config, latest_config)
+
+for cmd in cmds:
+ print(cmd)
+
+
+
+```
+
+## Other projects that use Skilletlib
+
+Here are a couple of examples of other projects that use skilletlib
+
+* [Panhandler](https://github.com/PaloAltoNetworks/panhandler/)
+ Panhandler is a tool to manage collections of Skillets and their respective git repositories
+* [SLI](https://gitlab.com/panw-gse/as/sli)
+ SLI is a CLI interface to Skilletlib. This tool allows rapid testing and prototyping of Skillets
+* [SkilletLoader](https://github.com/nembery/skilletLoader/)
+ SkilletLoader is a tool to load and test skillets in a CI/CD pipeline via Docker
+* [Ansible Skillets](https://github.com/PaloAltoNetworks/panw-gse.skillets)
+ Ansible roles and libraries for loading PAN-OS and related skillets via Ansible playbooks
+* [Demisto XSOAR Integration](https://github.com/nembery/content/tree/skilletlib/Packs/skilletlib)
+ Experimental in development Demisto XSOAR integration
+
+
+
+## Other utilities in Skilletlib
+
+Skilletlib also includes a collection of tools and methods called
+'[Panoply](https://www.merriam-webster.com/dictionary/panoply)' which eases working with emphemeral PAN-OS and
+Panorama devices, such as in a CI/CD Pipeline or development environment.
+
+## Support
+
+Community Supported
+
+The software and templates in the repo are released under an as-is, best effort,
+support policy. This software should be seen as community supported and Palo
+Alto Networks will contribute our expertise as and when possible. We do not
+provide technical support or help in using or troubleshooting the components of
+the project through our normal support options such as Palo Alto Networks
+support teams, or ASC (Authorized Support Centers) partners and backline support
+options. The underlying product used (the VM-Series firewall) by the scripts or
+templates are still supported, but the support is only for the product
+functionality and not for help in deploying or using the template or script
+itself. Unless explicitly tagged, all projects or work posted in our GitHub
+repository (at https://github.com/PaloAltoNetworks) or sites other than our
+official Downloads page on https://support.paloaltonetworks.com are provided
+under the best effort policy.
+
+
+
+%package -n python3-skilletlib
+Summary: Tools for working with PAN-OS Skillets in Python 3
+Provides: python-skilletlib
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-skilletlib
+# Skilletlib
+Base Classes and Utilities for working with Skillets in Python 3.7+. Skilletlib encapsulates all the logic necessary to
+execute a skillet in your app or tooling.
+
+See [here](https://live.paloaltonetworks.com/t5/Skillet-District/ct-p/Skillets) for information about Skillets and
+what skillets may be available.
+
+
+## About Skillets
+
+Skillets are designed to be sharable units of configuration or validation data. They are perfectly suited for
+'Compliance as Code' or 'Infrastructure as Code' type environments. All the 'knowledge' of doing a thing is encapsulated
+in the skillet. Skillets strive to be tooling agnostic. A subject matter expert should not have to define best
+practices in multiple domain specific languages. Ideally, this should be expressed once, and executed in a variety of
+tools. Skilletlib makes it easy to allow Skillets to be executed in your tooling of choice.
+
+Skillets are meant to be stored and shared via source control repositories along with the rest of your infrastructure.
+This allows complex NGFW configurations and use case specific compliance checks to be executed as part of your
+deployment pipeline.
+
+## Resources
+
+* [Information on building Skillets and working with the PAN-OS XML API](https://SkilletBuilder.readthedocs.io)
+
+* [Example Skillets](https://github.com/PaloAltoNetworks/skilletlib/tree/master/example_skillets)
+
+* [PAN-OS XML Quickstart](https://strata.pan.dev/docs/apis/xmlapi_qs)
+
+* [PAN-OS Exploring the API](https://docs.paloaltonetworks.com/pan-os/9-0/pan-os-panorama-api/get-started-with-the-pan-os-xml-api/explore-the-api.html)
+
+## Installation
+
+Skilletlib is distributed as a python shared library on [pypi.org](https://pypi.org/project/skilletlib/).
+
+```bash
+
+pip install skilletlib
+
+```
+
+
+## Example Loading a Skillet
+
+```python
+
+from skilletlib import SkilletLoader
+
+# init SkilletLoader Class
+sl = SkilletLoader()
+
+# Load the skillet found in the current directory
+skillet = sl.load_skillet_from_path('.')
+
+# Every skillet requires a context, which is a dict containing
+# any user-input or other variables to allow customization.
+context = dict()
+
+# In this example, our skillet needs a configuration.xml file to be loaded into a variable
+# called 'config'
+with open('config.xml', 'r') as config:
+ context['config'] = config.read()
+
+# execute the skillet and return the results
+out = skillet.execute(context)
+
+# Do something interesting with the results, like print it out :-)
+print(out)
+print('all done')
+
+```
+
+
+## Loading Skillets from a Git repository
+
+```python
+
+from skilletlib import SkilletLoader
+repo_url = 'https://github.com/nembery/Skillets'
+repo_branch = 'develop'
+directory = '/var/tmp/skillets'
+repo_name = 'example skillets'
+
+sl = SkilletLoader()
+skillets = sl.load_from_git(repo_url, repo_name, repo_branch, local_dir=directory)
+
+for s in skillets:
+ print(s.name)
+
+```
+
+## using Skilletlib to find recent changes in Set CLI Format
+
+```python
+
+import os
+
+# The Panos class is a wrapper around the XML API that provides some convience methods
+from skilletlib import Panos
+
+auth = {
+ 'hostname': os.environ.get('ip_address', ''),
+ 'api_username': os.environ.get('username', ''),
+ 'api_password': os.environ.get('password', ''),
+ 'debug': os.environ.get('debug', True),
+}
+device = Panos(**auth)
+
+# you can pass negative integers to the 'get_configuration' method to retrive the most to least recent
+# running configurations. This is very useful to finding the Set CLI or XML equivelent of GUI configuration
+# changes
+previous_config = device.get_configuration(config_source='-1')
+latest_config = device.get_configuration(config_source='running')
+
+# The 'generate_set_cli_from_configs' method returns the difference between two config files. In this case,
+# we'll use the running config and the most recent running config audit backup. This will give us all the
+# changes made via the most recent commit in Set CLI format
+cmds = device.generate_set_cli_from_configs(previous_config, latest_config)
+
+for cmd in cmds:
+ print(cmd)
+
+
+
+```
+
+## Other projects that use Skilletlib
+
+Here are a couple of examples of other projects that use skilletlib
+
+* [Panhandler](https://github.com/PaloAltoNetworks/panhandler/)
+ Panhandler is a tool to manage collections of Skillets and their respective git repositories
+* [SLI](https://gitlab.com/panw-gse/as/sli)
+ SLI is a CLI interface to Skilletlib. This tool allows rapid testing and prototyping of Skillets
+* [SkilletLoader](https://github.com/nembery/skilletLoader/)
+ SkilletLoader is a tool to load and test skillets in a CI/CD pipeline via Docker
+* [Ansible Skillets](https://github.com/PaloAltoNetworks/panw-gse.skillets)
+ Ansible roles and libraries for loading PAN-OS and related skillets via Ansible playbooks
+* [Demisto XSOAR Integration](https://github.com/nembery/content/tree/skilletlib/Packs/skilletlib)
+ Experimental in development Demisto XSOAR integration
+
+
+
+## Other utilities in Skilletlib
+
+Skilletlib also includes a collection of tools and methods called
+'[Panoply](https://www.merriam-webster.com/dictionary/panoply)' which eases working with emphemeral PAN-OS and
+Panorama devices, such as in a CI/CD Pipeline or development environment.
+
+## Support
+
+Community Supported
+
+The software and templates in the repo are released under an as-is, best effort,
+support policy. This software should be seen as community supported and Palo
+Alto Networks will contribute our expertise as and when possible. We do not
+provide technical support or help in using or troubleshooting the components of
+the project through our normal support options such as Palo Alto Networks
+support teams, or ASC (Authorized Support Centers) partners and backline support
+options. The underlying product used (the VM-Series firewall) by the scripts or
+templates are still supported, but the support is only for the product
+functionality and not for help in deploying or using the template or script
+itself. Unless explicitly tagged, all projects or work posted in our GitHub
+repository (at https://github.com/PaloAltoNetworks) or sites other than our
+official Downloads page on https://support.paloaltonetworks.com are provided
+under the best effort policy.
+
+
+
+%package help
+Summary: Development documents and examples for skilletlib
+Provides: python3-skilletlib-doc
+%description help
+# Skilletlib
+Base Classes and Utilities for working with Skillets in Python 3.7+. Skilletlib encapsulates all the logic necessary to
+execute a skillet in your app or tooling.
+
+See [here](https://live.paloaltonetworks.com/t5/Skillet-District/ct-p/Skillets) for information about Skillets and
+what skillets may be available.
+
+
+## About Skillets
+
+Skillets are designed to be sharable units of configuration or validation data. They are perfectly suited for
+'Compliance as Code' or 'Infrastructure as Code' type environments. All the 'knowledge' of doing a thing is encapsulated
+in the skillet. Skillets strive to be tooling agnostic. A subject matter expert should not have to define best
+practices in multiple domain specific languages. Ideally, this should be expressed once, and executed in a variety of
+tools. Skilletlib makes it easy to allow Skillets to be executed in your tooling of choice.
+
+Skillets are meant to be stored and shared via source control repositories along with the rest of your infrastructure.
+This allows complex NGFW configurations and use case specific compliance checks to be executed as part of your
+deployment pipeline.
+
+## Resources
+
+* [Information on building Skillets and working with the PAN-OS XML API](https://SkilletBuilder.readthedocs.io)
+
+* [Example Skillets](https://github.com/PaloAltoNetworks/skilletlib/tree/master/example_skillets)
+
+* [PAN-OS XML Quickstart](https://strata.pan.dev/docs/apis/xmlapi_qs)
+
+* [PAN-OS Exploring the API](https://docs.paloaltonetworks.com/pan-os/9-0/pan-os-panorama-api/get-started-with-the-pan-os-xml-api/explore-the-api.html)
+
+## Installation
+
+Skilletlib is distributed as a python shared library on [pypi.org](https://pypi.org/project/skilletlib/).
+
+```bash
+
+pip install skilletlib
+
+```
+
+
+## Example Loading a Skillet
+
+```python
+
+from skilletlib import SkilletLoader
+
+# init SkilletLoader Class
+sl = SkilletLoader()
+
+# Load the skillet found in the current directory
+skillet = sl.load_skillet_from_path('.')
+
+# Every skillet requires a context, which is a dict containing
+# any user-input or other variables to allow customization.
+context = dict()
+
+# In this example, our skillet needs a configuration.xml file to be loaded into a variable
+# called 'config'
+with open('config.xml', 'r') as config:
+ context['config'] = config.read()
+
+# execute the skillet and return the results
+out = skillet.execute(context)
+
+# Do something interesting with the results, like print it out :-)
+print(out)
+print('all done')
+
+```
+
+
+## Loading Skillets from a Git repository
+
+```python
+
+from skilletlib import SkilletLoader
+repo_url = 'https://github.com/nembery/Skillets'
+repo_branch = 'develop'
+directory = '/var/tmp/skillets'
+repo_name = 'example skillets'
+
+sl = SkilletLoader()
+skillets = sl.load_from_git(repo_url, repo_name, repo_branch, local_dir=directory)
+
+for s in skillets:
+ print(s.name)
+
+```
+
+## using Skilletlib to find recent changes in Set CLI Format
+
+```python
+
+import os
+
+# The Panos class is a wrapper around the XML API that provides some convience methods
+from skilletlib import Panos
+
+auth = {
+ 'hostname': os.environ.get('ip_address', ''),
+ 'api_username': os.environ.get('username', ''),
+ 'api_password': os.environ.get('password', ''),
+ 'debug': os.environ.get('debug', True),
+}
+device = Panos(**auth)
+
+# you can pass negative integers to the 'get_configuration' method to retrive the most to least recent
+# running configurations. This is very useful to finding the Set CLI or XML equivelent of GUI configuration
+# changes
+previous_config = device.get_configuration(config_source='-1')
+latest_config = device.get_configuration(config_source='running')
+
+# The 'generate_set_cli_from_configs' method returns the difference between two config files. In this case,
+# we'll use the running config and the most recent running config audit backup. This will give us all the
+# changes made via the most recent commit in Set CLI format
+cmds = device.generate_set_cli_from_configs(previous_config, latest_config)
+
+for cmd in cmds:
+ print(cmd)
+
+
+
+```
+
+## Other projects that use Skilletlib
+
+Here are a couple of examples of other projects that use skilletlib
+
+* [Panhandler](https://github.com/PaloAltoNetworks/panhandler/)
+ Panhandler is a tool to manage collections of Skillets and their respective git repositories
+* [SLI](https://gitlab.com/panw-gse/as/sli)
+ SLI is a CLI interface to Skilletlib. This tool allows rapid testing and prototyping of Skillets
+* [SkilletLoader](https://github.com/nembery/skilletLoader/)
+ SkilletLoader is a tool to load and test skillets in a CI/CD pipeline via Docker
+* [Ansible Skillets](https://github.com/PaloAltoNetworks/panw-gse.skillets)
+ Ansible roles and libraries for loading PAN-OS and related skillets via Ansible playbooks
+* [Demisto XSOAR Integration](https://github.com/nembery/content/tree/skilletlib/Packs/skilletlib)
+ Experimental in development Demisto XSOAR integration
+
+
+
+## Other utilities in Skilletlib
+
+Skilletlib also includes a collection of tools and methods called
+'[Panoply](https://www.merriam-webster.com/dictionary/panoply)' which eases working with emphemeral PAN-OS and
+Panorama devices, such as in a CI/CD Pipeline or development environment.
+
+## Support
+
+Community Supported
+
+The software and templates in the repo are released under an as-is, best effort,
+support policy. This software should be seen as community supported and Palo
+Alto Networks will contribute our expertise as and when possible. We do not
+provide technical support or help in using or troubleshooting the components of
+the project through our normal support options such as Palo Alto Networks
+support teams, or ASC (Authorized Support Centers) partners and backline support
+options. The underlying product used (the VM-Series firewall) by the scripts or
+templates are still supported, but the support is only for the product
+functionality and not for help in deploying or using the template or script
+itself. Unless explicitly tagged, all projects or work posted in our GitHub
+repository (at https://github.com/PaloAltoNetworks) or sites other than our
+official Downloads page on https://support.paloaltonetworks.com are provided
+under the best effort policy.
+
+
+
+%prep
+%autosetup -n skilletlib-1.2.5
+
+%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-skilletlib -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 17 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2.5-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..57dacbc
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+cf1a2ed53e45f1ca5ef91ca131d6cdaa skilletlib-1.2.5.tar.gz