Getting Started with Packaging API
Prerequisites
- Python 3 (version 3.6 and above)
-
quali_utils.3.3.0.tar.gz
Note: quali_utils.3.3.0 is supported by CloudShell 2022.1 and above. For previous versions, see earlier versions of CloudShell Help.
Installation
- Make sure you have a compatible Python version installed on your machine.
- To download the Python Package Editor that applies to your installed CloudShell version, visit the Python Package Editor Download Page.
-
Do one of the following:
Windows installation:- Run the pip tool to install the package.
Linux installation:You can install Packaging API on Linux environments that have .NET 5 SDK.
Installation instructions for various Linux environments:- Ubuntu: Microsoft-us/dotnet/core/install/linux-ubuntu
- Alpine: https://docs.microsoft.com/en-us/dotnet/core/install/linux-alpine
- Centos: https://docs.microsoft.com/en-us/dotnet/core/install/linux-centos
- Debian: https://docs.microsoft.com/en-us/dotnet/core/install/linux-debian
- Fedora: https://docs.microsoft.com/en-us/dotnet/core/install/linux-fedora
- OpenSUSE: https://docs.microsoft.com/en-us/dotnet/core/install/linux-opensuse
- Red Hat Enterprise Linux: https://docs.microsoft.com/en-us/dotnet/core/install/linux-rhel
- SLES: https://docs.microsoft.com/en-us/dotnet/core/install/linux-sles
Please note that the required version in “dotnet-sdk-5.0” is not as in the documentation listed as “dotnet-sdk-6.0”
Example: Installing Packaging API on Ubuntu 18.04:-
Set up Python 3, pip 3:
sudo apt update sudo apt install python3 sudo apt-get -y install python3-pip pip3 install --upgrade pip
-
Set up .NET 5 support:
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get update sudo apt-get install -y apt-transport-https sudo apt-get update sudo apt-get install -y dotnet-sdk-5.0
-
Install quali_utils 3.3.0:
- Copy file quali_utils-3.3.0.tar.gz to /tmp folder.
-
Run command:
pip3 install /tmp/quali_utils-3.3.0.tar.gz
-
Validate the installation:
- Copy files package_editor_linux.py and TestPackage.zip to /tmp
-
Run python command:
python3 package_editor_linux.py
Output:
- Run the
dir
command and see if CreatedPackage2.zip was created. - Make sure the package TestPackage.zip now includes 2 new global inputs in topology.
Code Sample
The following code sample provides an example of how to create new blueprints using the API. This example demonstrates how to perform the following flow:
This example uses the “requests” python module.
from quali_utils.quali_packaging import PackageEditor import requests
#Create a new package in the local file system
p = PackageEditor()
p.create("c:\\myfolder\\mypack.zip")
#Load the package and prepare for edit
p.load("c:\\myfolder\\mypack.zip")
#Edit the package: f.e add new family
p.add_family("Ball", "", ["Game", "3D Shape", "MoreStuff"], False, False, False, False, True)
#Import the package into CloudShell
# 1 – authenticate
r = requests.put('http://localhost:9000/Api/Auth/Login', {"username": "admin", "password": "admin", "domain": "Global"})
authcode = "Basic " + response._content[1:-1]
#2 – Open the package before import
fileobj = open("c:\\p.zip", 'rb')
#3 – Send to CloudShell by calling Import Package REST API
r = requests.post('http://localhost:9000/API/Package/ImportPackage',
headers={"Authorization": authcode},
files={"file": fileobj})
print r._content
print r.ok