Wrapper around https://github.com/openshift/openshift-restclient-python
Project description
openshift-python-wrapper
Pypi: openshift-python-wrapper
A python wrapper for openshift-restclient-python with support for RedHat Container Virtualization. (Openshift Virtualization)
Installation
From source:
git clone https://github.com/RedHatQE/openshift-python-wrapper.git
cd openshift-python-wrapper
python setup.py install --user
From pypi:
pip install openshift-python-wrapper --user
Bump a version number
- Create a PR
- Update setup.cfg: Update version (for example: 1.5 -> 1.6) and download_url (for example: https://github.com/RedHatQE/openshift-python-wrapper/archive/refs/tags/v1.6.tar.gz)
- Merge the PR
- Bump the version via Github
- Create a PR for changelog
- Generate CHANGELOG.md how-to
- Merge the PR
changelog
Changelog is generated using github-changelog-generator
github_changelog_generator -u RedHatQE -p openshift-python-wrapper -t <TOKEN>
Examples
Client
client = DynamicClient(client=kubernetes.config.new_client_from_config())
The examples given below are relevant to all resources. For simplicity we will use the resource - Namespace.
Import
Import Namespace:
from resources.namespace import Namespace
Create
Create a Namespace:
ns = Namespace(name="namespace-example-1")
ns.create()
Will return True
if creation succeeded.
We can also use the with
statement which ensures automatic clean-up of the code executed:
with Namespace(name="namespace-example-2") as ns:
yield ns
teardown=False
- Disables clean-up after execution.
Wait
Wait for Namespace to be in status Active
:
ns.wait_for_status(status=Namespace.Status.ACTIVE, timeout=120)
Will raise a TimeoutExpiredError
if Namespace is not in the desired status.
Delete
Delete the Namespace
ns.delete()
Will return False
if not found.
Exists
Checks if Namespace exists on the server:
ns.exists
Will return None
if not found.
Get
Query to get Pods (resource) in the connected cluster with label of label_example=example
. Returns a generator
of the resource - pod
for pod in Pod.get(dyn_client=client, label_selector="label_example=example")):
pod.log()
We can also get the name of the Node that the pod
is running on:
pod.node.name
VM
Start:
with VirtualMachine(
name="vm-example",
namespace="namespace-example",
node_selector="worker-node-example",
) as vm:
vm.start()
Stop:
vm.stop()
Restart:
vm.restart()
Get VMI:
test_vmi = vm.vmi
After having a VMI, we can wait until VMI is in running state:
test_vmi.wait_until_running()
Will raise TimeoutExpiredError
if VMI failed to run.
Then, we can get the Pod that is in Running state and execute a command on it:
command_output = test_vmi.virt_launcher_pod.execute(command="command-example")
If no Pod was found, will raise ResourceNotFoundError
.
Code check
We use pre-commit for code check.
pre-commit install
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for openshift-python-wrapper-1.5.3.51.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96111109d6a0466c6db1002f4c46af92f816c5fe18be8d453087bc49f6c88b8c |
|
MD5 | a1500acd2e756ef03fa9263d72ed5b41 |
|
BLAKE2b-256 | ed147f4033b263c3f467372c70a26e803075c74349e955a23c4fb9091cb5929b |