Skip to content

ILpinto/openshift-python-wrapper

Repository files navigation

openshift-python-wrapper

A python wrapper for https://github.com/openshift/openshift-restclient-python.

With support for RedHat Container Virtualization. (Openshift Virtualization) https://www.openshift.com/learn/topics/virtualization/

Installation

From source:

git clone https://github.com/RedHatQE/openshift-python-wrapper.git
cd openshift-python-wrapper
python setup.py install --user

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

About

A python wrapper for https://github.com/openshift/openshift-restclient-python. With support for RedHat Container Virtualization.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.0%
  • Other 1.0%