SQL30 - An ORM for SQLITE on ESX
Release Date: September 03, 2020
Persistence is an integral part of any real world software application. A widely used method of achieving (file based) persistence is through SQLITE database. Python natively provides support for interacting with SQLITE with the help of module "sqlite" (sqlite3 in python3). SQLAlchemy is a popular ORM used for interacting with sqlite database in Python. However, this and many other similar ORMs do not work on ESX Hypervisor as is. It is because these packages have dependency on other packages which are not supported / installable on ESX hypervisor further.
In this fling, we present SQL30, a ZERO weight ORM for SQLITE database written using only native python constructs. This python package has no dependency on any external python package and works as is on ESX version 6.5 and above.
SQL30 is useful as :
- It helps developers achieve persistence in Python applications even on platforms such as ESX which have limited / trailing support for Python.
- It improves productivity as developers can write (SQL based) database applications without having to learn SQL itself.
Python and sqlite
(Both are available as of now on ESX 6.5)
Python is still 3.5 version on ESX 6.5 , while widely used on now is Python 3.6. However, beauty of this fling submission is that it works with very limited support of Python as well.
SQL30 python package, sql30.egg, with applicable license can be downloaded from fling site under the file name sql30.zip. The package can also be built locally with the steps below or installed directly from pypi server ( https://pypi.org/project/sql30/ ). However, the license attached (in sql30.zip) would still be applicable to this fling.
$ virtualenv -p python3 . $ mkdir unpacked $ bin/pip install --target=./unpacked/ sql30 $ cd unpacked $ zip -r9 ../sql30.egg * $ cd - #
sql30.egg file generated by above steps can now be taken and used with any machine with python3 and sqlite3 (python module) available. An example of the same is shown below. Here sql30.egg is being taken to an ESX Hypervisor with a Python 3.5.6 version and shown to consume egg file.
[root@prom-0505695d9ce:~] PYTHONPATH=sql30.egg python Python 3.5.6 (default, Feb 2 2019, 01:09:51) [GCC 4.6.3] on linux Type "help", "copyright", "credits" or "license" for more information. No entry for terminal type "screen.xterm-256color"; using dumb terminal settings. >>> from sql30 import db >>> import os >>> os.system('uname -a') VMkernel prom-0505695d9ce.nsbucqesystem.test 6.5.0 #1 SMP Release build-13753126 May 19 2019 21:13:25 x86_64 x86_64 x86_64 ESXi 0 >>> class Dummy(db.Model): ... pass ... >>> dir(Dummy) ['DB_SCHEMA', 'VALIDATE_BEFORE_WRITE', '__class__', '__delattr__', '__dict_
No similar flings found. Check these out instead...
VAMI Update Repository Appliance (VURA)
The VAMI Update Repository Appliance ('VURA') is a tool to help you create a portable update repository for VAMI-enabled VMware virtual appliances. This allows you to transport the necessary bits for performing upgrades to locations without internet access. It can also help to generate update ISO images for appliances that do not have them available for download.
Horizon View Persona Management Share Validation Tool
The Horizon View Persona Management Share Validation Tool is a command-line utility that analyzes user profiles and CIFS shares used by Persona Management to ensure minimum security requirements are met. Persona depends on two CIFS shares to function: the central profile store and the redirected folder share.
Ultimate Test Appliance
Python Utility for VMware Cloud Foundation Management
Python Utility for VMware Cloud Foundation Management’ is a lightweight python-based command line VCF administration tool. It offers an interactive shell interface to interact with the VMware Cloud Foundation (SDDC Manager) public API.
Community NVMe Driver for ESXi
This Fling is a collection of ESXi Native Drivers which enables ESXi to recognize and consume various NVMe-based storage devices. These devices are not officially on the VMware HCL and have been developed to enable and support the VMware Community.