shellfoundry
============
**Create, Innovate and Automate with ShellFoundry**
|Chat| |BuildStatus| |CoverageStatus| |PyVersion| |PyPI| |DependencyStatus|
Command line utility for CloudShell shells developers. The utility helps
to create a new shell based on a template, build an installable shell
package and install a shell into your CloudShell.
Installation
============
.. code:: bash
$ pip install shellfoundry
Usage
=====
ShellFoundry streamlines the whole process of shell development from choosing a template, via code generation and
installation.
1. Choose a TOSCA template
.. code:: bash
$ shellfoundry list
2. Create a shell
.. code:: bash
$ shellfoundry new <shell> –-template <template>
$ cd <shell>
3. Define data model in shell-definition.yml
4. Generate data model
.. code:: bash
$ shellfoundry generate
5. Implement logic in driver.py using classes from data\_model.py
6. Install the shell package into Cloudshell
.. code:: bash
$ shellfoundry install
Additional Links
================
- For more commands and detailed usage please refer to `Documentation`_
- Opening issues and feature requests: `Issue Tracker`_
- Forum for questions and discussions: `Gitter.im`_
License
=======
`Apache License 2.0`_
.. _Documentation: docs/readme.md
.. _Issue Tracker: https://github.com/QualiSystems/shellfoundry/issues
.. _Gitter.im: https://gitter.im/QualiSystems/shellfoundry
.. _Apache License 2.0: https://github.com/QualiSystems/shellfoundry/blob/master/LICENSE
.. |Chat| image:: https://badges.gitter.im/QualiSystems/shellfoundry.svg
:target: https://gitter.im/QualiSystems/shellfoundry?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
.. |BuildStatus| image:: https://travis-ci.org/QualiSystems/shellfoundry.svg?branch=develop
:target: https://travis-ci.org/QualiSystems/shellfoundry
.. |CoverageStatus| image:: https://coveralls.io/repos/github/QualiSystems/shellfoundry/badge.svg?branch=develop
:target: https://coveralls.io/github/QualiSystems/shellfoundry?branch=develop
.. |PyVersion| image:: https://img.shields.io/pypi/pyversions/shellfoundry.svg?maxAge=2592000
:target: https://pypi.python.org/pypi/shellfoundry
.. |PyPI| image:: https://img.shields.io/pypi/v/shellfoundry.svg?maxAge=2592000
:target: https://pypi.python.org/pypi/shellfoundry
.. |DependencyStatus| image:: https://dependencyci.com/github/QualiSystems/shellfoundry/badge
:target: https://dependencyci.com/github/QualiSystems/shellfoundry
=======
History
=======
1.2.25 (2024-07-30)
-------------------
* Added support for the latest cloudshell-rest-api
* Added possibility to pack shell without src folder
1.2.22 (2022-09-05)
-------------------
* Set default Python version for new Shells to "3"
1.2.21 (2022-03-31)
-------------------
* Fixed issue with list command in offline mode
* Fixed GH issue "Uninformative error message when configured domain is incorrect #254"
* Fixed GH issue "'Error' word repeats twice #251"
1.2.20 (2021-08-19)
-------------------
* Fixed password decryption error
1.2.19 (2021-07-27)
-------------------
* Fixed encoding issue
1.2.18 (2021-04-14)
-------------------
* Fixed encoding issue
1.2.17 (2020-02-12)
-------------------
* Fixed error with click and cookiecutter versions incompatibility
* Fixed multiple traceback issues
1.2.16 (2020-01-02)
-------------------
* Fixed error with click and cookiecutter versions incompatibility
* Fixed multiple traceback issues
1.2.13 (2019-10-18)
-------------------
* Fixed password modification error
1.2.11 (2019-08-14)
-------------------
* Added Python 3 support
1.2.10 (2019-04-22)
-------------------
* Added setuptools to requirements
* Changed setuptools import according to the latest version
1.2.9 (2019-03-27)
------------------
* Added possibility to download dependencies from local CS repository during 'shellfoundry dist' command
1.2.8 (2019-03-05)
------------------
* Fixed issue with wrong setuptools import
1.2.7 (2019-02-12)
------------------
* Fixed issue in "generate" command after renaming root folder
1.2.6 (2019-01-30)
------------------
* Added "get_templates" command
* Added "delete" command
* Removed driver zip-file after pack command
* Added generating shell documentation based on the template
1.2.5 (2018-10-04)
------------------
* Set strict python version
1.2.4 (2018-09-26)
------------------
* Removed unnecessary cloudshell-automation-api dependency from requirements
* Set static version for package click in requirements. click==6.7
1.2.2 (2018-08-16)
------------------
* Fixed bug in verification template and standards compatibility
1.2.1 (2018-08-13)
------------------
* Added dynamical determination of minimal CloudShell version from templates
1.2.0 (2018-07-26)
------------------
* Extended the "new" command behaviour for offline mode
* Added verification is template and standard version are compatible
1.1.9 (2018-05-03)
------------------
* Added offline mode functionality
1.1.8 (2018-04-23)
------------------
* Fixed typo in pack command behaviour
* Added new online template for Cloud Provider
1.1.7 (2018-04-03)
------------------
* Shellfoundry will now pack deployment options if exists
* Modified unpack method logic in extended command
1.1.6 (2018-03-27)
------------------
* Added limitation installing a gen2 shell(regular/service) into a non global domain
1.1.5 (2018-03-01)
------------------
* Added new online template for Traffic Generator Controller Service
1.1.4 (2018-02-21)
------------------
* Added new online template for Traffic Generator Chassis 2 Generation
1.1.2 (2018-01-09)
------------------
* Fixed extend command logic (unzip driver archive)
1.1.1 (2017-11-14)
------------------
* Added new online templates
* Added specific error message to Layer 1 Shells pack and install commands
1.1.0 (2017-10-30)
------------------
* Added author field to shellfoundry configuration
* Added extend command behavior
* Added verification when upgrading an official shell to unofficial
1.0.4 (2017-08-28)
------------------
* Fixed some inconsistencies between update and add shell specifically around the shell name
1.0.3 (2017-06-28)
------------------
* list command aborts if there is a new major version on pypi
* old shellfoundry versions are NOT supported anymore.
Please use `pip install shellfoundry -U` in order to upgrade to the newest version
1.0.2 (2017-06-27)
------------------
* new command aborts if there is a new major version on pypi
1.0.1 (2017-06-26)
------------------
* new command now conforms to CloudShell naming rules
1.0.0 (2017-06-19)
------------------
* Please upgrade to this version as from now on, older versions will be obsolete
* list command will now show templates that are installable on your cloudshell
* new command will now create the latest version of the template that match the standards installed on your cloudshell
* When invoking new or list commands, there will be a notification in the case of a new shellfoundry version
0.2.7 (2017-05-16)
------------------
* Shellfoundry will now pack categories.xml if exists
0.2.6 (2017-03-14)
------------------
* Fixed some minor bugs
0.2.2 (2017-01-22)
------------------
* gen2/resource is the now the default template for new command instead of gen1/resource
0.2.0 (2017-01-17)
------------------
* List command filtering parameters have changed (legacy => gen1, tosca => gen2)
* Added another filtering parameter --layer1
* Minimum CloudShell version column appears on list command output table
* gen2 is now the default view for list command
0.1.3 (2016-12-27)
------------------
* shellfoundry config will now echo all default configuration if not override by user
0.1.2 (2016-12-26)
------------------
* Config command will now encrypt password field
0.1.0 (2016-12-14)
------------------
* Show command was added to view all available versions of a template
* A new option was added to the 'new' command. Please welcome --version. It enables template versioning on shellfoundry.
0.0.44 (2016-12-12)
-------------------
* Fixed a bug in config command which caused shellfoundry to crash when config file was missing
0.0.43 (2016-12-11)
-------------------
* List command is now able to filter results based on shell type (--tosca, --legacy, --all)
0.0.41 (2016-12-08)
-------------------
* Config command was added to allow setting configuration once for all shells in addition to local configuration
0.0.39 (2016-10-09)
-------------------
* Pack Shell icon if specified in shell-definition.yml file under metadata\template_icon for TOSCA based shells
0.0.38 (2016-09-28)
-------------------
* Update reference to cloudshell-rest-api 7.2.0.7 to use PUT method in update shell
0.0.35 (2016-09-15)
-------------------
* TOSCA support was added to pack and install commands
* Generate command was added that generates driver data model in Python
0.0.32 (2016-08-10)
-------------------
* Pack command downloads dependencies into dist directory
* Dependency for git was removed
* Local shell templates are supported
* Proxy support was added for access to github
0.0.31 (2016-08-04)
-------------------
* git prerequisite was removed. shellfoundry works without git being preinstalled
0.0.28 (2016-07-07)
-------------------
* Installation of package into CloudShell was fixed
0.0.26 (2016-06-23)
-------------------
* Images copied to the DataModel folder (Issue #21)
0.0.17 (2016-05-25)
-------------------
* Proper error message when install command fails in logging in into CloudShell
0.0.1 (2016-05-02)
------------------
* First release on PyPI.
Raw data
{
"_id": null,
"home_page": "https://github.com/QualiSystems/shellfoundry",
"name": "shellfoundry",
"maintainer": null,
"docs_url": null,
"requires_python": ">=2.7",
"maintainer_email": null,
"keywords": "shellfoundry sandbox cloud virtualization vcenter cmp cloudshell quali command-line cli",
"author": "Quali",
"author_email": "info@quali.com",
"download_url": "https://files.pythonhosted.org/packages/f3/22/25c6ba6f407ef27d837f6b674a16f42456e2369f5b434b3627814d017798/shellfoundry-1.2.27.tar.gz",
"platform": null,
"description": "\ufeffshellfoundry\n============\n\n**Create, Innovate and Automate with ShellFoundry**\n\n|Chat| |BuildStatus| |CoverageStatus| |PyVersion| |PyPI| |DependencyStatus|\n\nCommand line utility for CloudShell shells developers. The utility helps\nto create a new shell based on a template, build an installable shell\npackage and install a shell into your CloudShell.\n\nInstallation\n============\n\n.. code:: bash\n\n $ pip install shellfoundry\n\nUsage\n=====\n\nShellFoundry streamlines the whole process of shell development from choosing a template, via code generation and\ninstallation.\n\n1. Choose a TOSCA template\n\n.. code:: bash\n\n $ shellfoundry list\n\n2. Create a shell\n\n.. code:: bash\n\n $ shellfoundry new <shell> \u2013-template <template>\n $ cd <shell>\n\n3. Define data model in shell-definition.yml\n4. Generate data model\n\n.. code:: bash\n\n $ shellfoundry generate\n\n5. Implement logic in driver.py using classes from data\\_model.py\n6. Install the shell package into Cloudshell\n\n.. code:: bash\n\n $ shellfoundry install\n\nAdditional Links\n================\n\n- For more commands and detailed usage please refer to `Documentation`_\n\n- Opening issues and feature requests: `Issue Tracker`_\n\n- Forum for questions and discussions: `Gitter.im`_\n\nLicense\n=======\n\n`Apache License 2.0`_\n\n.. _Documentation: docs/readme.md\n.. _Issue Tracker: https://github.com/QualiSystems/shellfoundry/issues\n.. _Gitter.im: https://gitter.im/QualiSystems/shellfoundry\n.. _Apache License 2.0: https://github.com/QualiSystems/shellfoundry/blob/master/LICENSE\n\n.. |Chat| image:: https://badges.gitter.im/QualiSystems/shellfoundry.svg\n :target: https://gitter.im/QualiSystems/shellfoundry?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n.. |BuildStatus| image:: https://travis-ci.org/QualiSystems/shellfoundry.svg?branch=develop\n :target: https://travis-ci.org/QualiSystems/shellfoundry\n.. |CoverageStatus| image:: https://coveralls.io/repos/github/QualiSystems/shellfoundry/badge.svg?branch=develop\n :target: https://coveralls.io/github/QualiSystems/shellfoundry?branch=develop\n.. |PyVersion| image:: https://img.shields.io/pypi/pyversions/shellfoundry.svg?maxAge=2592000\n :target: https://pypi.python.org/pypi/shellfoundry\n.. |PyPI| image:: https://img.shields.io/pypi/v/shellfoundry.svg?maxAge=2592000\n :target: https://pypi.python.org/pypi/shellfoundry\n.. |DependencyStatus| image:: https://dependencyci.com/github/QualiSystems/shellfoundry/badge\n :target: https://dependencyci.com/github/QualiSystems/shellfoundry\n\n\n\n\n\n\n\n\n=======\nHistory\n=======\n1.2.25 (2024-07-30)\n-------------------\n\n* Added support for the latest cloudshell-rest-api\n* Added possibility to pack shell without src folder\n\n1.2.22 (2022-09-05)\n-------------------\n\n* Set default Python version for new Shells to \"3\"\n\n1.2.21 (2022-03-31)\n-------------------\n\n* Fixed issue with list command in offline mode\n* Fixed GH issue \"Uninformative error message when configured domain is incorrect #254\"\n* Fixed GH issue \"'Error' word repeats twice #251\"\n\n1.2.20 (2021-08-19)\n-------------------\n\n* Fixed password decryption error\n\n1.2.19 (2021-07-27)\n-------------------\n\n* Fixed encoding issue\n\n1.2.18 (2021-04-14)\n-------------------\n\n* Fixed encoding issue\n\n1.2.17 (2020-02-12)\n-------------------\n\n* Fixed error with click and cookiecutter versions incompatibility\n* Fixed multiple traceback issues\n\n1.2.16 (2020-01-02)\n-------------------\n\n* Fixed error with click and cookiecutter versions incompatibility\n* Fixed multiple traceback issues\n\n\n1.2.13 (2019-10-18)\n-------------------\n\n* Fixed password modification error\n\n1.2.11 (2019-08-14)\n-------------------\n\n* Added Python 3 support\n\n1.2.10 (2019-04-22)\n-------------------\n\n* Added setuptools to requirements\n* Changed setuptools import according to the latest version\n\n1.2.9 (2019-03-27)\n------------------\n\n* Added possibility to download dependencies from local CS repository during 'shellfoundry dist' command\n\n1.2.8 (2019-03-05)\n------------------\n\n* Fixed issue with wrong setuptools import\n\n1.2.7 (2019-02-12)\n------------------\n\n* Fixed issue in \"generate\" command after renaming root folder\n\n1.2.6 (2019-01-30)\n------------------\n\n* Added \"get_templates\" command\n* Added \"delete\" command\n* Removed driver zip-file after pack command\n* Added generating shell documentation based on the template\n\n1.2.5 (2018-10-04)\n------------------\n\n* Set strict python version\n\n1.2.4 (2018-09-26)\n------------------\n\n* Removed unnecessary cloudshell-automation-api dependency from requirements\n* Set static version for package click in requirements. click==6.7\n\n1.2.2 (2018-08-16)\n------------------\n\n* Fixed bug in verification template and standards compatibility\n\n1.2.1 (2018-08-13)\n------------------\n\n* Added dynamical determination of minimal CloudShell version from templates\n\n1.2.0 (2018-07-26)\n------------------\n\n* Extended the \"new\" command behaviour for offline mode\n* Added verification is template and standard version are compatible\n\n1.1.9 (2018-05-03)\n------------------\n\n* Added offline mode functionality\n\n1.1.8 (2018-04-23)\n------------------\n\n* Fixed typo in pack command behaviour\n* Added new online template for Cloud Provider\n\n1.1.7 (2018-04-03)\n------------------\n\n* Shellfoundry will now pack deployment options if exists\n* Modified unpack method logic in extended command\n\n1.1.6 (2018-03-27)\n------------------\n\n* Added limitation installing a gen2 shell(regular/service) into a non global domain\n\n1.1.5 (2018-03-01)\n------------------\n\n* Added new online template for Traffic Generator Controller Service\n\n1.1.4 (2018-02-21)\n------------------\n\n* Added new online template for Traffic Generator Chassis 2 Generation\n\n1.1.2 (2018-01-09)\n------------------\n\n* Fixed extend command logic (unzip driver archive)\n\n1.1.1 (2017-11-14)\n------------------\n\n* Added new online templates\n* Added specific error message to Layer 1 Shells pack and install commands\n\n1.1.0 (2017-10-30)\n------------------\n\n* Added author field to shellfoundry configuration\n* Added extend command behavior\n* Added verification when upgrading an official shell to unofficial\n\n1.0.4 (2017-08-28)\n------------------\n\n* Fixed some inconsistencies between update and add shell specifically around the shell name\n\n1.0.3 (2017-06-28)\n------------------\n\n* list command aborts if there is a new major version on pypi\n* old shellfoundry versions are NOT supported anymore.\n Please use `pip install shellfoundry -U` in order to upgrade to the newest version\n\n1.0.2 (2017-06-27)\n------------------\n\n* new command aborts if there is a new major version on pypi\n\n1.0.1 (2017-06-26)\n------------------\n\n* new command now conforms to CloudShell naming rules\n\n1.0.0 (2017-06-19)\n------------------\n\n* Please upgrade to this version as from now on, older versions will be obsolete\n* list command will now show templates that are installable on your cloudshell\n* new command will now create the latest version of the template that match the standards installed on your cloudshell\n* When invoking new or list commands, there will be a notification in the case of a new shellfoundry version\n\n0.2.7 (2017-05-16)\n------------------\n\n* Shellfoundry will now pack categories.xml if exists\n\n0.2.6 (2017-03-14)\n------------------\n\n* Fixed some minor bugs\n\n0.2.2 (2017-01-22)\n------------------\n\n* gen2/resource is the now the default template for new command instead of gen1/resource\n\n0.2.0 (2017-01-17)\n------------------\n\n* List command filtering parameters have changed (legacy => gen1, tosca => gen2)\n* Added another filtering parameter --layer1\n* Minimum CloudShell version column appears on list command output table\n* gen2 is now the default view for list command\n\n0.1.3 (2016-12-27)\n------------------\n\n* shellfoundry config will now echo all default configuration if not override by user\n\n0.1.2 (2016-12-26)\n------------------\n\n* Config command will now encrypt password field\n\n0.1.0 (2016-12-14)\n------------------\n\n* Show command was added to view all available versions of a template\n* A new option was added to the 'new' command. Please welcome --version. It enables template versioning on shellfoundry.\n\n0.0.44 (2016-12-12)\n-------------------\n\n* Fixed a bug in config command which caused shellfoundry to crash when config file was missing\n\n0.0.43 (2016-12-11)\n-------------------\n\n* List command is now able to filter results based on shell type (--tosca, --legacy, --all)\n\n0.0.41 (2016-12-08)\n-------------------\n\n* Config command was added to allow setting configuration once for all shells in addition to local configuration\n\n0.0.39 (2016-10-09)\n-------------------\n\n* Pack Shell icon if specified in shell-definition.yml file under metadata\\template_icon for TOSCA based shells\n\n0.0.38 (2016-09-28)\n-------------------\n\n* Update reference to cloudshell-rest-api 7.2.0.7 to use PUT method in update shell\n\n0.0.35 (2016-09-15)\n-------------------\n\n* TOSCA support was added to pack and install commands\n* Generate command was added that generates driver data model in Python\n\n0.0.32 (2016-08-10)\n-------------------\n\n* Pack command downloads dependencies into dist directory\n* Dependency for git was removed\n* Local shell templates are supported\n* Proxy support was added for access to github\n\n0.0.31 (2016-08-04)\n-------------------\n\n* git prerequisite was removed. shellfoundry works without git being preinstalled\n\n0.0.28 (2016-07-07)\n-------------------\n\n* Installation of package into CloudShell was fixed\n\n\n0.0.26 (2016-06-23)\n-------------------\n\n* Images copied to the DataModel folder (Issue #21)\n\n0.0.17 (2016-05-25)\n-------------------\n\n* Proper error message when install command fails in logging in into CloudShell\n\n0.0.1 (2016-05-02)\n------------------\n\n* First release on PyPI.\n",
"bugtrack_url": null,
"license": "Apache Software License 2.0",
"summary": "shellfoundry - Quali tool for creating, building and installing CloudShell shells",
"version": "1.2.27",
"project_urls": {
"Homepage": "https://github.com/QualiSystems/shellfoundry"
},
"split_keywords": [
"shellfoundry",
"sandbox",
"cloud",
"virtualization",
"vcenter",
"cmp",
"cloudshell",
"quali",
"command-line",
"cli"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "32b2fbfb8644a57823a716dc59fd3bfd811d92a32490742f360444e2880a0cb8",
"md5": "8f788ab086e0a0d2cc2a614baa50aff1",
"sha256": "c7e374031a29f20aa364a7ccc62dd90a6aeb6d791f756e4abd477a8aaa28863c"
},
"downloads": -1,
"filename": "shellfoundry-1.2.27-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8f788ab086e0a0d2cc2a614baa50aff1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=2.7",
"size": 65740,
"upload_time": "2024-10-04T20:39:54",
"upload_time_iso_8601": "2024-10-04T20:39:54.952657Z",
"url": "https://files.pythonhosted.org/packages/32/b2/fbfb8644a57823a716dc59fd3bfd811d92a32490742f360444e2880a0cb8/shellfoundry-1.2.27-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f32225c6ba6f407ef27d837f6b674a16f42456e2369f5b434b3627814d017798",
"md5": "785b4c543b3951f95740e3bc6e07e08c",
"sha256": "a3e41f117e6bae35cb815074f94d1dab6d78d76090e1eaa6283712ede57769f0"
},
"downloads": -1,
"filename": "shellfoundry-1.2.27.tar.gz",
"has_sig": false,
"md5_digest": "785b4c543b3951f95740e3bc6e07e08c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7",
"size": 49466,
"upload_time": "2024-10-04T20:39:56",
"upload_time_iso_8601": "2024-10-04T20:39:56.820054Z",
"url": "https://files.pythonhosted.org/packages/f3/22/25c6ba6f407ef27d837f6b674a16f42456e2369f5b434b3627814d017798/shellfoundry-1.2.27.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-04 20:39:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "QualiSystems",
"github_project": "shellfoundry",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "requests",
"specs": []
},
{
"name": "cookiecutter",
"specs": [
[
"~=",
"1.7.2"
]
]
},
{
"name": "click",
"specs": [
[
"~=",
"7.1.2"
]
]
},
{
"name": "pyyaml",
"specs": []
},
{
"name": "terminaltables",
"specs": []
},
{
"name": "cloudshell-rest-api",
"specs": [
[
"~=",
"9.0.0"
]
]
},
{
"name": "colorama",
"specs": []
},
{
"name": "giturlparse.py",
"specs": []
},
{
"name": "ruamel.yaml",
"specs": []
},
{
"name": "cryptography",
"specs": []
},
{
"name": "setuptools",
"specs": []
}
],
"test_requirements": [
{
"name": "nose",
"specs": []
},
{
"name": "coverage",
"specs": []
},
{
"name": "mock",
"specs": []
},
{
"name": "pyfakefs",
"specs": [
[
"~=",
"3.7.0"
]
]
},
{
"name": "httpretty",
"specs": [
[
"~=",
"0.9.7"
]
]
},
{
"name": "freezegun",
"specs": []
},
{
"name": "pytest",
"specs": []
},
{
"name": "pytest-cov",
"specs": []
}
],
"tox": true,
"lcname": "shellfoundry"
}