nutanix / calm-dsl

Keep Calm and DSL On!
https://nutanix.github.io/calm-dsl/
Apache License 2.0
32 stars 51 forks source link

Code style: black

Build

Latest release version: 3.8.1, Latest-release-tag: v3.8.1

Latest Release Notes: read here

Nutanix Cloud Manager (NCM) Self Service (formerly Calm) DSL

About NCM Self Service DSL

NCM Self-Service DSL refers to the Domain-Specific Language (DSL) used in NCM Self-Service (formerly Calm), an application management platform. DSL is a specialized Python based programming language that allows users to define and automate tasks and application workflows within their infrastructure as code (IaC). It also has support for executing CLI commands empowering users to interact with and utilize Self-Service features and functionality in a convenient, efficient, and automated manner.

Why Python3 as NCM Self Service DSL?

Language design is black art, and building upon a well-established language is design-wise a big win. The language has also solved many issues like scoping, modules, if-else, inheritance, etc. Well established languages have great tooling support: IDEs, syntax checkers, third-party modules, coding practices, better readability, editing, syntax highlighting, code completion, versioning, collaboration, etc. They see much more community improvements as well. Python specifically comes with a very good REPL (read–eval–print-loop). Having an interactive prompt to play around and slowly build objects is an order-of-magnitude improvement in developer productivity. Python is very easy language to learn and use; and most of the ITOps/DevOps community already use Python for scripting.

Getting Started and Documentation

Complete documentation is available on Nutanix Dev Community Website

Video Links

Blogs

Demos

Contributing to Self-Service DSL

This repository only contains Self-Service DSL command line interface and the python model for different Self-Service enitities. To know more about compiling DSL and contributing suggested changes, refer to the contribution guide.

Reporting Issues

To raise and track any improvement or a bug, create an open issue in DSL github repository, issue section.

License

Apache-2.0 license