summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-12 02:23:32 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-12 02:23:32 +0000
commit6a06c3de9f2e53dc8f3a614b26a50f98a61ba2d7 (patch)
tree7b40987ca5bf0c041f6e20654e4f66637307f206
parentbf5f310265a7e68ee809dc1ba535382968841e8b (diff)
automatic import of python-adles
-rw-r--r--.gitignore1
-rw-r--r--python-adles.spec991
-rw-r--r--sources1
3 files changed, 993 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..1e6ddb1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/ADLES-1.4.0.tar.gz
diff --git a/python-adles.spec b/python-adles.spec
new file mode 100644
index 0000000..be90e63
--- /dev/null
+++ b/python-adles.spec
@@ -0,0 +1,991 @@
+%global _empty_manifest_terminate_build 0
+Name: python-ADLES
+Version: 1.4.0
+Release: 1
+Summary: Automated Deployment of Lab Environments System (ADLES)
+License: Apache 2.0
+URL: https://ghostofgoes.github.io/ADLES/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/dd/cb/8b763af04de84aceead651d2ed95d5018478e1c55935943f25ee4823018f/ADLES-1.4.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-pyyaml
+Requires: python3-colorlog
+Requires: python3-tqdm
+Requires: python3-humanfriendly
+Requires: python3-pyvmomi
+Requires: python3-apache-libcloud
+Requires: python3-docker
+
+%description
+
+[![Latest version on PyPI](https://badge.fury.io/py/ADLES.svg)](https://pypi.org/project/ADLES/)
+[![Travis CI build status](https://travis-ci.org/GhostofGoes/ADLES.svg?branch=master)](https://travis-ci.org/GhostofGoes/ADLES)
+[![Documentation](https://readthedocs.org/projects/adles/badge/)](http://adles.readthedocs.io/en/latest/)
+[![DOI Reference](https://zenodo.org/badge/68841026.svg)](https://zenodo.org/badge/latestdoi/68841026)
+
+
+# Overview
+Automated Deployment of Lab Environments System (ADLES)
+
+ADLES automates the deterministic creation of virtualized environments for use
+in Cybersecurity and Information Technology (IT) education.
+
+The system enables educators to easily build deterministic and portable
+environments for their courses, saving significant amounts of time and effort,
+and alleviates the requirement of possessing advanced IT knowledge.
+
+Complete documentation can be found at [ReadTheDocs](https://adles.readthedocs.io).
+
+[Publication describing the system.](https://doi.org/10.1016/j.cose.2017.12.007)
+
+# Getting started
+```bash
+# Install
+pip3 install adles
+
+# Usage
+adles -h
+
+# Specification syntax
+adles --print-spec exercise
+adles --print-spec infra
+
+# Examples
+adles --list-examples
+adles --print-example competition
+```
+
+# Usage
+Creating an environment using ADLES:
+* Read the exercise and infrastructure specifications and examples of them.
+* Write an infrastructure specification for your platform. (Currently, VMware vSphere is the only platform supported)
+* Write an exercise specification with the environment you want created.
+* Check its syntax, run the mastering phase, make your changes, and then run the deployment phase.
+
+```bash
+# Validate spec
+adles validate my-competition.yaml
+
+# Create Master images
+adles masters my-competition.yaml
+
+# Deploy the exercise
+adles deploy my-competition.yaml
+
+# Cleanup the environment
+adles cleanup my-competition.yaml
+```
+
+## Detailed usage
+```bash
+usage: adles [-h] [--version] [-v] [--syslog SERVER] [--no-color]
+ [--list-examples] [--print-spec NAME] [--print-example NAME]
+ [-i INFRA]
+ {validate,deploy,masters,package,cleanup} ...
+
+Examples:
+ adles --list-examples
+ adles --print-example competition | adles validate -
+ adles validate examples/pentest-tutorial.yaml
+ adles masters examples/experiment.yaml
+ adles -v deploy examples/experiment.yaml
+ adles cleanup -t masters --cleanup-nets examples/competition.yaml
+ adles validate -t infra examples/infra.yaml
+
+optional arguments:
+ -h, --help show this help message and exit
+ --version show program's version number and exit
+ -v, --verbose Emit debugging logs to terminal
+ --syslog SERVER Send logs to a Syslog server on port 514
+ --no-color Do not color terminal output
+ -i INFRA, --infra INFRA
+ Override the infrastructure specification to be used
+
+Print examples and specs:
+ --list-examples Prints the list of available example scenarios
+ --print-spec NAME Prints the named specification
+ --print-example NAME Prints the named example
+
+ADLES Subcommands:
+ {validate,deploy,masters,package,cleanup}
+ validate Validate the syntax of your specification
+ deploy Environment deployment phase of specification
+ masters Master creation phase of specification
+ package Create a package
+ cleanup Cleanup and remove existing environments
+```
+
+## vSphere Utility Scripts
+There are a number of utility scripts to make certain vSphere tasks bearable.
+
+```bash
+# Basic usage
+vsphere --help
+vsphere <script> --help
+vsphere <script --version
+
+# Running as a Python module
+python -m adles.vsphere --help
+```
+
+### Detailed usage
+```bash
+usage: vsphere [-h] {cleanup,clone,power,info,snapshot} ...
+
+Single-purpose CLI scripts for interacting with vSphere
+
+optional arguments:
+ -h, --help show this help message and exit
+
+vSphere scripts:
+ {cleanup,clone,power,info,snapshot}
+ cleanup Cleanup and Destroy Virtual Machines (VMs) and VM
+ Folders in a vSphere environment.
+ clone Clone multiple Virtual Machines in vSphere.
+ power Power operations for Virtual Machines in vSphere.
+ info Query information about a vSphere environment and
+ objects within it.
+ snapshot Perform Snapshot operations on Virtual Machines in a
+ vSphere environment.
+```
+
+# System requirements
+
+Python: 3.6+
+
+ADLES will run on any platform supported by Python. It has been tested on:
+
+* Windows 10 (Anniversary and Creators)
+* Ubuntu 14.04 and 16.04 (Including Bash on Ubuntu on Windows)
+* CentOS 7
+
+## Python packages
+See ``setup.py`` for specific versions
+* pyyaml
+* colorlog
+* humanfriendly
+* tqdm
+* pyvmomi (If you are using VMware vSphere)
+* setuptools (If you are installing manually or developing)
+
+## Platforms
+**VMware vSphere**
+* vCenter Server: 6.0+
+* ESXi: 6.0+
+
+# Reporting issues and getting help
+If there is a bug in ADLES or you run into issues getting it working, please open an [issue on GitHub](https://github.com/GhostofGoes/ADLES/issues). I'm happy to help, though it may take a few days to a week for me to respond. If it's time-sensitive (I know the feeling well), feel free to contact me directly (see below).
+
+If you have general questions, want help with using ADLES for your project or students, or just want to discuss the project, drop me a line via email (`adles/__about__.py`), Twitter (@GhostOfGoes), or on Discord (@KnownError). The [Python Discord server](https://discord.gg/python) is a good place
+to ask questions or discuss the project.
+
+# Contributing
+Contributors are more than welcome! See the [contribution guide](CONTRIBUTING.md) to get started, and checkout the [TODO list](TODO.md) and [GitHub issues](https://github.com/GhostofGoes/ADLES/issues) for a full list of tasks and bugs.
+
+## Contributors
+* Christopher Goes (@GhostOfGoes)
+* Daniel Conte de Leon (dcontedeleon)
+
+# Goals and TODO
+The overall goal of ADLES is to create a easy to use and rock-solid system that allows instructors
+and students teaching using virtual environments to automate their workloads.
+
+Long-term, I’d like to see the creation of a open-source repository, similar to
+Hashicorp’s Atlas and Docker’s Hub, where educators can share packages
+and contribute to improving cyber education globally.
+
+Full list of TODOs are in `documentation/TODO.md` and the GitHub issues.
+
+# License
+This project is licensed under the Apache License, Version 2.0. See
+LICENSE for the full license text, and NOTICES for attributions to
+external projects that this project uses code from.
+
+# Project History
+The system began as a proof of concept implementation of my Master's thesis research at the
+University of Idaho in Fall of 2016. It was originally designed to run on the RADICL lab.
+
+
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+
+## [1.4.0] - 2019-09-04
+
+**Notable changes**
+- New CLI command syntax, run `adles --help` for details or checkout the Usage section in the README
+- Consolidated the vSphere helper scripts (e.g. `vm-power`) into a single command, `vsphere` . For usage, run `vsphere --help`.
+- **ADLES now requires Python 3.6+**. It is included or easily installable on any modern Linux distribution, Windows, and OSX.
+
+### Added
+- The CLI can now be invoked a Python module (e.g. `python -m adles`, `python -m adles.vsphere`)
+- Added two new specification fields to all spec types: `spec-type` and `spec-version`
+- New argument: `--syslog`. Configures saving of log output to the specified Syslog server.
+- Added progress bars to the cloning, power, and snapshot vSphere helper commands
+- Support the `NO_COLOR` environment variable (per [no-color.org](https://no-color.org/))
+- New dependencies: [tqdm](https://github.com/tqdm/tqdm) and [humanfriendly](https://pypi.org/project/humanfriendly/)
+- Debian package (See the [GitHub releases page](https://github.com/GhostofGoes/ADLES/releases))
+
+### Changed
+- Failing to import an optional dependency will now log an error instead
+of raising an exception and terminating execution.
+- Logs will not longer emit to a syslog server by default.
+Syslog server will now only be used if the parameter is set.
+- Behind the scenes changes to commandline argument parsing that will
+make adding future functionality easier and enable usage of other
+third-party libraries that use `argparse`.
+- Lots of code cleanup and formatting
+- Bumped dependency versions
+- Various other minor changes, see the Git pull request diff for all the changes
+
+### Removed
+- Dropped support for Python < 3.6
+- Removed `Libvirt` and `HyperV` interfaces
+- Removed dependency: `netaddr`
+
+### Dev
+- Added Tox for test running and linting
+- Added `.editorconfig`
+- Added `.gitattributes`
+- Reorganized some documentation
+- Removed CodeClimate
+- Moved the remaining examples in the project root into `examples/`
+- Added unit tests to Travis CI
+
+## [1.3.6] - 2017-12-19
+### Fixed
+- Fixed issue with any of the commandline scripts where just entering
+ the script name (e.g "adles") on the commandline would error,
+ instead of printing help as a user would expect.
+- Fixed vm_snapshots script outputting to the wrong log file.
+
+### Changed
+- Under-the-hood improvements to how arguments are parsed
+and keyboard interrupts are handled.
+
+
+## [1.3.5] - 2017-12-13
+### Changed
+- Move package dependencies into setup.py from requirements.txt.
+
+
+## [1.3.4] - 2017-12-13
+### Added
+- Man page on Linux systems!
+
+
+## [1.3.3] - 2017-11-25
+### Added
+- The ability to relocate a VM to a new host and/or datastore to the VM class.
+- The ability to change the mode of a VM HDD to the VM class.
+
+### Changed
+- Cleaned up docstrings in vm.py.
+
+
+## [1.3.2] - 2017-11-25
+### Added
+- The ability to resize a HDD to the VM class.
+
+
+## [1.3.1] - 2017-11-24
+### Fixed
+- Fixed bug where interfaces (and their dependencies) would be imported,
+even if they were not being used. This caused the "pip install docker" error.
+
+### Changed
+- Minor improvements to logging.
+
+
+## [1.3.0] - 2017-07-02
+### Added
+- An interface for libvirt (LibvirtInterface).
+- LibcloudInterface that is inherited by LibvirtInterface and CloudInterface.
+- Libvirt to infrastructure-specification.
+- libvirt to optional-requirements.
+
+### Changed
+- Significant changes to class heirarachy. All interfaces now inherit from Interface and class its init method.
+There is a separate PlatformInterface that has most of the functionality Interface did, and this is what is now called from main().
+- Tweaked some boilerplate code in the interfaces.
+- Updated parser.
+- Formatting tweaks.
+- Moved apache-libcloud to requirements.
+
+
+## [1.2.0] - 2017-07-02
+Initial stab at cloud interface using Apache libcloud
+(quickly superseded by 1.3.0, so ignore this version).
+
+
+
+
+
+%package -n python3-ADLES
+Summary: Automated Deployment of Lab Environments System (ADLES)
+Provides: python-ADLES
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-ADLES
+
+[![Latest version on PyPI](https://badge.fury.io/py/ADLES.svg)](https://pypi.org/project/ADLES/)
+[![Travis CI build status](https://travis-ci.org/GhostofGoes/ADLES.svg?branch=master)](https://travis-ci.org/GhostofGoes/ADLES)
+[![Documentation](https://readthedocs.org/projects/adles/badge/)](http://adles.readthedocs.io/en/latest/)
+[![DOI Reference](https://zenodo.org/badge/68841026.svg)](https://zenodo.org/badge/latestdoi/68841026)
+
+
+# Overview
+Automated Deployment of Lab Environments System (ADLES)
+
+ADLES automates the deterministic creation of virtualized environments for use
+in Cybersecurity and Information Technology (IT) education.
+
+The system enables educators to easily build deterministic and portable
+environments for their courses, saving significant amounts of time and effort,
+and alleviates the requirement of possessing advanced IT knowledge.
+
+Complete documentation can be found at [ReadTheDocs](https://adles.readthedocs.io).
+
+[Publication describing the system.](https://doi.org/10.1016/j.cose.2017.12.007)
+
+# Getting started
+```bash
+# Install
+pip3 install adles
+
+# Usage
+adles -h
+
+# Specification syntax
+adles --print-spec exercise
+adles --print-spec infra
+
+# Examples
+adles --list-examples
+adles --print-example competition
+```
+
+# Usage
+Creating an environment using ADLES:
+* Read the exercise and infrastructure specifications and examples of them.
+* Write an infrastructure specification for your platform. (Currently, VMware vSphere is the only platform supported)
+* Write an exercise specification with the environment you want created.
+* Check its syntax, run the mastering phase, make your changes, and then run the deployment phase.
+
+```bash
+# Validate spec
+adles validate my-competition.yaml
+
+# Create Master images
+adles masters my-competition.yaml
+
+# Deploy the exercise
+adles deploy my-competition.yaml
+
+# Cleanup the environment
+adles cleanup my-competition.yaml
+```
+
+## Detailed usage
+```bash
+usage: adles [-h] [--version] [-v] [--syslog SERVER] [--no-color]
+ [--list-examples] [--print-spec NAME] [--print-example NAME]
+ [-i INFRA]
+ {validate,deploy,masters,package,cleanup} ...
+
+Examples:
+ adles --list-examples
+ adles --print-example competition | adles validate -
+ adles validate examples/pentest-tutorial.yaml
+ adles masters examples/experiment.yaml
+ adles -v deploy examples/experiment.yaml
+ adles cleanup -t masters --cleanup-nets examples/competition.yaml
+ adles validate -t infra examples/infra.yaml
+
+optional arguments:
+ -h, --help show this help message and exit
+ --version show program's version number and exit
+ -v, --verbose Emit debugging logs to terminal
+ --syslog SERVER Send logs to a Syslog server on port 514
+ --no-color Do not color terminal output
+ -i INFRA, --infra INFRA
+ Override the infrastructure specification to be used
+
+Print examples and specs:
+ --list-examples Prints the list of available example scenarios
+ --print-spec NAME Prints the named specification
+ --print-example NAME Prints the named example
+
+ADLES Subcommands:
+ {validate,deploy,masters,package,cleanup}
+ validate Validate the syntax of your specification
+ deploy Environment deployment phase of specification
+ masters Master creation phase of specification
+ package Create a package
+ cleanup Cleanup and remove existing environments
+```
+
+## vSphere Utility Scripts
+There are a number of utility scripts to make certain vSphere tasks bearable.
+
+```bash
+# Basic usage
+vsphere --help
+vsphere <script> --help
+vsphere <script --version
+
+# Running as a Python module
+python -m adles.vsphere --help
+```
+
+### Detailed usage
+```bash
+usage: vsphere [-h] {cleanup,clone,power,info,snapshot} ...
+
+Single-purpose CLI scripts for interacting with vSphere
+
+optional arguments:
+ -h, --help show this help message and exit
+
+vSphere scripts:
+ {cleanup,clone,power,info,snapshot}
+ cleanup Cleanup and Destroy Virtual Machines (VMs) and VM
+ Folders in a vSphere environment.
+ clone Clone multiple Virtual Machines in vSphere.
+ power Power operations for Virtual Machines in vSphere.
+ info Query information about a vSphere environment and
+ objects within it.
+ snapshot Perform Snapshot operations on Virtual Machines in a
+ vSphere environment.
+```
+
+# System requirements
+
+Python: 3.6+
+
+ADLES will run on any platform supported by Python. It has been tested on:
+
+* Windows 10 (Anniversary and Creators)
+* Ubuntu 14.04 and 16.04 (Including Bash on Ubuntu on Windows)
+* CentOS 7
+
+## Python packages
+See ``setup.py`` for specific versions
+* pyyaml
+* colorlog
+* humanfriendly
+* tqdm
+* pyvmomi (If you are using VMware vSphere)
+* setuptools (If you are installing manually or developing)
+
+## Platforms
+**VMware vSphere**
+* vCenter Server: 6.0+
+* ESXi: 6.0+
+
+# Reporting issues and getting help
+If there is a bug in ADLES or you run into issues getting it working, please open an [issue on GitHub](https://github.com/GhostofGoes/ADLES/issues). I'm happy to help, though it may take a few days to a week for me to respond. If it's time-sensitive (I know the feeling well), feel free to contact me directly (see below).
+
+If you have general questions, want help with using ADLES for your project or students, or just want to discuss the project, drop me a line via email (`adles/__about__.py`), Twitter (@GhostOfGoes), or on Discord (@KnownError). The [Python Discord server](https://discord.gg/python) is a good place
+to ask questions or discuss the project.
+
+# Contributing
+Contributors are more than welcome! See the [contribution guide](CONTRIBUTING.md) to get started, and checkout the [TODO list](TODO.md) and [GitHub issues](https://github.com/GhostofGoes/ADLES/issues) for a full list of tasks and bugs.
+
+## Contributors
+* Christopher Goes (@GhostOfGoes)
+* Daniel Conte de Leon (dcontedeleon)
+
+# Goals and TODO
+The overall goal of ADLES is to create a easy to use and rock-solid system that allows instructors
+and students teaching using virtual environments to automate their workloads.
+
+Long-term, I’d like to see the creation of a open-source repository, similar to
+Hashicorp’s Atlas and Docker’s Hub, where educators can share packages
+and contribute to improving cyber education globally.
+
+Full list of TODOs are in `documentation/TODO.md` and the GitHub issues.
+
+# License
+This project is licensed under the Apache License, Version 2.0. See
+LICENSE for the full license text, and NOTICES for attributions to
+external projects that this project uses code from.
+
+# Project History
+The system began as a proof of concept implementation of my Master's thesis research at the
+University of Idaho in Fall of 2016. It was originally designed to run on the RADICL lab.
+
+
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+
+## [1.4.0] - 2019-09-04
+
+**Notable changes**
+- New CLI command syntax, run `adles --help` for details or checkout the Usage section in the README
+- Consolidated the vSphere helper scripts (e.g. `vm-power`) into a single command, `vsphere` . For usage, run `vsphere --help`.
+- **ADLES now requires Python 3.6+**. It is included or easily installable on any modern Linux distribution, Windows, and OSX.
+
+### Added
+- The CLI can now be invoked a Python module (e.g. `python -m adles`, `python -m adles.vsphere`)
+- Added two new specification fields to all spec types: `spec-type` and `spec-version`
+- New argument: `--syslog`. Configures saving of log output to the specified Syslog server.
+- Added progress bars to the cloning, power, and snapshot vSphere helper commands
+- Support the `NO_COLOR` environment variable (per [no-color.org](https://no-color.org/))
+- New dependencies: [tqdm](https://github.com/tqdm/tqdm) and [humanfriendly](https://pypi.org/project/humanfriendly/)
+- Debian package (See the [GitHub releases page](https://github.com/GhostofGoes/ADLES/releases))
+
+### Changed
+- Failing to import an optional dependency will now log an error instead
+of raising an exception and terminating execution.
+- Logs will not longer emit to a syslog server by default.
+Syslog server will now only be used if the parameter is set.
+- Behind the scenes changes to commandline argument parsing that will
+make adding future functionality easier and enable usage of other
+third-party libraries that use `argparse`.
+- Lots of code cleanup and formatting
+- Bumped dependency versions
+- Various other minor changes, see the Git pull request diff for all the changes
+
+### Removed
+- Dropped support for Python < 3.6
+- Removed `Libvirt` and `HyperV` interfaces
+- Removed dependency: `netaddr`
+
+### Dev
+- Added Tox for test running and linting
+- Added `.editorconfig`
+- Added `.gitattributes`
+- Reorganized some documentation
+- Removed CodeClimate
+- Moved the remaining examples in the project root into `examples/`
+- Added unit tests to Travis CI
+
+## [1.3.6] - 2017-12-19
+### Fixed
+- Fixed issue with any of the commandline scripts where just entering
+ the script name (e.g "adles") on the commandline would error,
+ instead of printing help as a user would expect.
+- Fixed vm_snapshots script outputting to the wrong log file.
+
+### Changed
+- Under-the-hood improvements to how arguments are parsed
+and keyboard interrupts are handled.
+
+
+## [1.3.5] - 2017-12-13
+### Changed
+- Move package dependencies into setup.py from requirements.txt.
+
+
+## [1.3.4] - 2017-12-13
+### Added
+- Man page on Linux systems!
+
+
+## [1.3.3] - 2017-11-25
+### Added
+- The ability to relocate a VM to a new host and/or datastore to the VM class.
+- The ability to change the mode of a VM HDD to the VM class.
+
+### Changed
+- Cleaned up docstrings in vm.py.
+
+
+## [1.3.2] - 2017-11-25
+### Added
+- The ability to resize a HDD to the VM class.
+
+
+## [1.3.1] - 2017-11-24
+### Fixed
+- Fixed bug where interfaces (and their dependencies) would be imported,
+even if they were not being used. This caused the "pip install docker" error.
+
+### Changed
+- Minor improvements to logging.
+
+
+## [1.3.0] - 2017-07-02
+### Added
+- An interface for libvirt (LibvirtInterface).
+- LibcloudInterface that is inherited by LibvirtInterface and CloudInterface.
+- Libvirt to infrastructure-specification.
+- libvirt to optional-requirements.
+
+### Changed
+- Significant changes to class heirarachy. All interfaces now inherit from Interface and class its init method.
+There is a separate PlatformInterface that has most of the functionality Interface did, and this is what is now called from main().
+- Tweaked some boilerplate code in the interfaces.
+- Updated parser.
+- Formatting tweaks.
+- Moved apache-libcloud to requirements.
+
+
+## [1.2.0] - 2017-07-02
+Initial stab at cloud interface using Apache libcloud
+(quickly superseded by 1.3.0, so ignore this version).
+
+
+
+
+
+%package help
+Summary: Development documents and examples for ADLES
+Provides: python3-ADLES-doc
+%description help
+
+[![Latest version on PyPI](https://badge.fury.io/py/ADLES.svg)](https://pypi.org/project/ADLES/)
+[![Travis CI build status](https://travis-ci.org/GhostofGoes/ADLES.svg?branch=master)](https://travis-ci.org/GhostofGoes/ADLES)
+[![Documentation](https://readthedocs.org/projects/adles/badge/)](http://adles.readthedocs.io/en/latest/)
+[![DOI Reference](https://zenodo.org/badge/68841026.svg)](https://zenodo.org/badge/latestdoi/68841026)
+
+
+# Overview
+Automated Deployment of Lab Environments System (ADLES)
+
+ADLES automates the deterministic creation of virtualized environments for use
+in Cybersecurity and Information Technology (IT) education.
+
+The system enables educators to easily build deterministic and portable
+environments for their courses, saving significant amounts of time and effort,
+and alleviates the requirement of possessing advanced IT knowledge.
+
+Complete documentation can be found at [ReadTheDocs](https://adles.readthedocs.io).
+
+[Publication describing the system.](https://doi.org/10.1016/j.cose.2017.12.007)
+
+# Getting started
+```bash
+# Install
+pip3 install adles
+
+# Usage
+adles -h
+
+# Specification syntax
+adles --print-spec exercise
+adles --print-spec infra
+
+# Examples
+adles --list-examples
+adles --print-example competition
+```
+
+# Usage
+Creating an environment using ADLES:
+* Read the exercise and infrastructure specifications and examples of them.
+* Write an infrastructure specification for your platform. (Currently, VMware vSphere is the only platform supported)
+* Write an exercise specification with the environment you want created.
+* Check its syntax, run the mastering phase, make your changes, and then run the deployment phase.
+
+```bash
+# Validate spec
+adles validate my-competition.yaml
+
+# Create Master images
+adles masters my-competition.yaml
+
+# Deploy the exercise
+adles deploy my-competition.yaml
+
+# Cleanup the environment
+adles cleanup my-competition.yaml
+```
+
+## Detailed usage
+```bash
+usage: adles [-h] [--version] [-v] [--syslog SERVER] [--no-color]
+ [--list-examples] [--print-spec NAME] [--print-example NAME]
+ [-i INFRA]
+ {validate,deploy,masters,package,cleanup} ...
+
+Examples:
+ adles --list-examples
+ adles --print-example competition | adles validate -
+ adles validate examples/pentest-tutorial.yaml
+ adles masters examples/experiment.yaml
+ adles -v deploy examples/experiment.yaml
+ adles cleanup -t masters --cleanup-nets examples/competition.yaml
+ adles validate -t infra examples/infra.yaml
+
+optional arguments:
+ -h, --help show this help message and exit
+ --version show program's version number and exit
+ -v, --verbose Emit debugging logs to terminal
+ --syslog SERVER Send logs to a Syslog server on port 514
+ --no-color Do not color terminal output
+ -i INFRA, --infra INFRA
+ Override the infrastructure specification to be used
+
+Print examples and specs:
+ --list-examples Prints the list of available example scenarios
+ --print-spec NAME Prints the named specification
+ --print-example NAME Prints the named example
+
+ADLES Subcommands:
+ {validate,deploy,masters,package,cleanup}
+ validate Validate the syntax of your specification
+ deploy Environment deployment phase of specification
+ masters Master creation phase of specification
+ package Create a package
+ cleanup Cleanup and remove existing environments
+```
+
+## vSphere Utility Scripts
+There are a number of utility scripts to make certain vSphere tasks bearable.
+
+```bash
+# Basic usage
+vsphere --help
+vsphere <script> --help
+vsphere <script --version
+
+# Running as a Python module
+python -m adles.vsphere --help
+```
+
+### Detailed usage
+```bash
+usage: vsphere [-h] {cleanup,clone,power,info,snapshot} ...
+
+Single-purpose CLI scripts for interacting with vSphere
+
+optional arguments:
+ -h, --help show this help message and exit
+
+vSphere scripts:
+ {cleanup,clone,power,info,snapshot}
+ cleanup Cleanup and Destroy Virtual Machines (VMs) and VM
+ Folders in a vSphere environment.
+ clone Clone multiple Virtual Machines in vSphere.
+ power Power operations for Virtual Machines in vSphere.
+ info Query information about a vSphere environment and
+ objects within it.
+ snapshot Perform Snapshot operations on Virtual Machines in a
+ vSphere environment.
+```
+
+# System requirements
+
+Python: 3.6+
+
+ADLES will run on any platform supported by Python. It has been tested on:
+
+* Windows 10 (Anniversary and Creators)
+* Ubuntu 14.04 and 16.04 (Including Bash on Ubuntu on Windows)
+* CentOS 7
+
+## Python packages
+See ``setup.py`` for specific versions
+* pyyaml
+* colorlog
+* humanfriendly
+* tqdm
+* pyvmomi (If you are using VMware vSphere)
+* setuptools (If you are installing manually or developing)
+
+## Platforms
+**VMware vSphere**
+* vCenter Server: 6.0+
+* ESXi: 6.0+
+
+# Reporting issues and getting help
+If there is a bug in ADLES or you run into issues getting it working, please open an [issue on GitHub](https://github.com/GhostofGoes/ADLES/issues). I'm happy to help, though it may take a few days to a week for me to respond. If it's time-sensitive (I know the feeling well), feel free to contact me directly (see below).
+
+If you have general questions, want help with using ADLES for your project or students, or just want to discuss the project, drop me a line via email (`adles/__about__.py`), Twitter (@GhostOfGoes), or on Discord (@KnownError). The [Python Discord server](https://discord.gg/python) is a good place
+to ask questions or discuss the project.
+
+# Contributing
+Contributors are more than welcome! See the [contribution guide](CONTRIBUTING.md) to get started, and checkout the [TODO list](TODO.md) and [GitHub issues](https://github.com/GhostofGoes/ADLES/issues) for a full list of tasks and bugs.
+
+## Contributors
+* Christopher Goes (@GhostOfGoes)
+* Daniel Conte de Leon (dcontedeleon)
+
+# Goals and TODO
+The overall goal of ADLES is to create a easy to use and rock-solid system that allows instructors
+and students teaching using virtual environments to automate their workloads.
+
+Long-term, I’d like to see the creation of a open-source repository, similar to
+Hashicorp’s Atlas and Docker’s Hub, where educators can share packages
+and contribute to improving cyber education globally.
+
+Full list of TODOs are in `documentation/TODO.md` and the GitHub issues.
+
+# License
+This project is licensed under the Apache License, Version 2.0. See
+LICENSE for the full license text, and NOTICES for attributions to
+external projects that this project uses code from.
+
+# Project History
+The system began as a proof of concept implementation of my Master's thesis research at the
+University of Idaho in Fall of 2016. It was originally designed to run on the RADICL lab.
+
+
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+
+## [1.4.0] - 2019-09-04
+
+**Notable changes**
+- New CLI command syntax, run `adles --help` for details or checkout the Usage section in the README
+- Consolidated the vSphere helper scripts (e.g. `vm-power`) into a single command, `vsphere` . For usage, run `vsphere --help`.
+- **ADLES now requires Python 3.6+**. It is included or easily installable on any modern Linux distribution, Windows, and OSX.
+
+### Added
+- The CLI can now be invoked a Python module (e.g. `python -m adles`, `python -m adles.vsphere`)
+- Added two new specification fields to all spec types: `spec-type` and `spec-version`
+- New argument: `--syslog`. Configures saving of log output to the specified Syslog server.
+- Added progress bars to the cloning, power, and snapshot vSphere helper commands
+- Support the `NO_COLOR` environment variable (per [no-color.org](https://no-color.org/))
+- New dependencies: [tqdm](https://github.com/tqdm/tqdm) and [humanfriendly](https://pypi.org/project/humanfriendly/)
+- Debian package (See the [GitHub releases page](https://github.com/GhostofGoes/ADLES/releases))
+
+### Changed
+- Failing to import an optional dependency will now log an error instead
+of raising an exception and terminating execution.
+- Logs will not longer emit to a syslog server by default.
+Syslog server will now only be used if the parameter is set.
+- Behind the scenes changes to commandline argument parsing that will
+make adding future functionality easier and enable usage of other
+third-party libraries that use `argparse`.
+- Lots of code cleanup and formatting
+- Bumped dependency versions
+- Various other minor changes, see the Git pull request diff for all the changes
+
+### Removed
+- Dropped support for Python < 3.6
+- Removed `Libvirt` and `HyperV` interfaces
+- Removed dependency: `netaddr`
+
+### Dev
+- Added Tox for test running and linting
+- Added `.editorconfig`
+- Added `.gitattributes`
+- Reorganized some documentation
+- Removed CodeClimate
+- Moved the remaining examples in the project root into `examples/`
+- Added unit tests to Travis CI
+
+## [1.3.6] - 2017-12-19
+### Fixed
+- Fixed issue with any of the commandline scripts where just entering
+ the script name (e.g "adles") on the commandline would error,
+ instead of printing help as a user would expect.
+- Fixed vm_snapshots script outputting to the wrong log file.
+
+### Changed
+- Under-the-hood improvements to how arguments are parsed
+and keyboard interrupts are handled.
+
+
+## [1.3.5] - 2017-12-13
+### Changed
+- Move package dependencies into setup.py from requirements.txt.
+
+
+## [1.3.4] - 2017-12-13
+### Added
+- Man page on Linux systems!
+
+
+## [1.3.3] - 2017-11-25
+### Added
+- The ability to relocate a VM to a new host and/or datastore to the VM class.
+- The ability to change the mode of a VM HDD to the VM class.
+
+### Changed
+- Cleaned up docstrings in vm.py.
+
+
+## [1.3.2] - 2017-11-25
+### Added
+- The ability to resize a HDD to the VM class.
+
+
+## [1.3.1] - 2017-11-24
+### Fixed
+- Fixed bug where interfaces (and their dependencies) would be imported,
+even if they were not being used. This caused the "pip install docker" error.
+
+### Changed
+- Minor improvements to logging.
+
+
+## [1.3.0] - 2017-07-02
+### Added
+- An interface for libvirt (LibvirtInterface).
+- LibcloudInterface that is inherited by LibvirtInterface and CloudInterface.
+- Libvirt to infrastructure-specification.
+- libvirt to optional-requirements.
+
+### Changed
+- Significant changes to class heirarachy. All interfaces now inherit from Interface and class its init method.
+There is a separate PlatformInterface that has most of the functionality Interface did, and this is what is now called from main().
+- Tweaked some boilerplate code in the interfaces.
+- Updated parser.
+- Formatting tweaks.
+- Moved apache-libcloud to requirements.
+
+
+## [1.2.0] - 2017-07-02
+Initial stab at cloud interface using Apache libcloud
+(quickly superseded by 1.3.0, so ignore this version).
+
+
+
+
+
+%prep
+%autosetup -n ADLES-1.4.0
+
+%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-ADLES -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 1.4.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..3b9844a
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+a0adbdbbdb82cb26970355be3aeac99d ADLES-1.4.0.tar.gz