mirror of
https://github.com/krkn-chaos/krkn.git
synced 2026-04-15 06:57:28 +00:00
* relocated shared libraries from `kraken` to `krkn` folder Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * AbstractScenarioPlugin and ScenarioPluginFactory Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * application_outage porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * arcaflow_scenarios porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * managedcluster_scenarios porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * network_chaos porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * node_actions porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * plugin_scenarios porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * pvc_scenarios porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * service_disruption porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * service_hijacking porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * cluster_shut_down_scenarios porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * syn_flood porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * time_scenarios porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * zone_outages porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * ScenarioPluginFactory tests Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * unit tests update Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * pod_scenarios and post actions deprecated Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> scenarios post_actions Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * funtests and config update Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * run_krkn.py update Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * utils porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * API Documentation Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * container_scenarios porting Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> fix Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * funtest fix Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * document gif update Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * Documentation + tests update Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * removed example plugin Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * global renaming Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> test fix Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> test fix Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * config.yaml typos Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> typos Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * removed `plugin_scenarios` from NativScenarioPlugin class Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * pod_network_scenarios type added Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * documentation update Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> * krkn-lib update Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> typo Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com> --------- Signed-off-by: Tullio Sebastiani <tsebasti@redhat.com>
122 lines
4.5 KiB
Python
122 lines
4.5 KiB
Python
import unittest
|
|
import os
|
|
import logging
|
|
from arcaflow_plugin_sdk import plugin
|
|
|
|
from krkn.scenario_plugins.native.node_scenarios import vmware_plugin
|
|
from krkn.scenario_plugins.native.node_scenarios.kubernetes_functions import Actions
|
|
|
|
|
|
class NodeScenariosTest(unittest.TestCase):
|
|
def setUp(self):
|
|
vsphere_env_vars = ["VSPHERE_IP", "VSPHERE_USERNAME", "VSPHERE_PASSWORD"]
|
|
self.credentials_present = all(
|
|
env_var in os.environ for env_var in vsphere_env_vars
|
|
)
|
|
|
|
def test_serialization(self):
|
|
plugin.test_object_serialization(
|
|
vmware_plugin.NodeScenarioConfig(name="test", skip_openshift_checks=True),
|
|
self.fail,
|
|
)
|
|
plugin.test_object_serialization(
|
|
vmware_plugin.NodeScenarioSuccessOutput(nodes={}, action=Actions.START),
|
|
self.fail,
|
|
)
|
|
plugin.test_object_serialization(
|
|
vmware_plugin.NodeScenarioErrorOutput(
|
|
error="Hello World", action=Actions.START
|
|
),
|
|
self.fail,
|
|
)
|
|
|
|
def test_node_start(self):
|
|
if not self.credentials_present:
|
|
self.skipTest(
|
|
"Check if the environmental variables 'VSPHERE_IP', "
|
|
"'VSPHERE_USERNAME', 'VSPHERE_PASSWORD' are set"
|
|
)
|
|
vsphere = vmware_plugin.vSphere(verify=False)
|
|
vm_id, vm_name = vsphere.create_default_vm()
|
|
if vm_id is None:
|
|
self.fail("Could not create test VM")
|
|
|
|
output_id, output_data = vmware_plugin.node_start(
|
|
vmware_plugin.NodeScenarioConfig(
|
|
name=vm_name, skip_openshift_checks=True, verify_session=False
|
|
)
|
|
)
|
|
if output_id == "error":
|
|
logging.error(output_data.error)
|
|
self.fail("The VMware VM did not start because an error occurred")
|
|
vsphere.release_instances(vm_name)
|
|
|
|
def test_node_stop(self):
|
|
if not self.credentials_present:
|
|
self.skipTest(
|
|
"Check if the environmental variables 'VSPHERE_IP', "
|
|
"'VSPHERE_USERNAME', 'VSPHERE_PASSWORD' are set"
|
|
)
|
|
vsphere = vmware_plugin.vSphere(verify=False)
|
|
vm_id, vm_name = vsphere.create_default_vm()
|
|
if vm_id is None:
|
|
self.fail("Could not create test VM")
|
|
vsphere.start_instances(vm_name)
|
|
|
|
output_id, output_data = vmware_plugin.node_stop(
|
|
vmware_plugin.NodeScenarioConfig(
|
|
name=vm_name, skip_openshift_checks=True, verify_session=False
|
|
)
|
|
)
|
|
if output_id == "error":
|
|
logging.error(output_data.error)
|
|
self.fail("The VMware VM did not stop because an error occurred")
|
|
vsphere.release_instances(vm_name)
|
|
|
|
def test_node_reboot(self):
|
|
if not self.credentials_present:
|
|
self.skipTest(
|
|
"Check if the environmental variables 'VSPHERE_IP', "
|
|
"'VSPHERE_USERNAME', 'VSPHERE_PASSWORD' are set"
|
|
)
|
|
vsphere = vmware_plugin.vSphere(verify=False)
|
|
vm_id, vm_name = vsphere.create_default_vm()
|
|
if vm_id is None:
|
|
self.fail("Could not create test VM")
|
|
vsphere.start_instances(vm_name)
|
|
|
|
output_id, output_data = vmware_plugin.node_reboot(
|
|
vmware_plugin.NodeScenarioConfig(
|
|
name=vm_name, skip_openshift_checks=True, verify_session=False
|
|
)
|
|
)
|
|
if output_id == "error":
|
|
logging.error(output_data.error)
|
|
self.fail("The VMware VM did not reboot because an error occurred")
|
|
vsphere.release_instances(vm_name)
|
|
|
|
def test_node_terminate(self):
|
|
if not self.credentials_present:
|
|
self.skipTest(
|
|
"Check if the environmental variables 'VSPHERE_IP', "
|
|
"'VSPHERE_USERNAME', 'VSPHERE_PASSWORD' are set"
|
|
)
|
|
vsphere = vmware_plugin.vSphere(verify=False)
|
|
vm_id, vm_name = vsphere.create_default_vm()
|
|
if vm_id is None:
|
|
self.fail("Could not create test VM")
|
|
vsphere.start_instances(vm_name)
|
|
|
|
output_id, output_data = vmware_plugin.node_terminate(
|
|
vmware_plugin.NodeScenarioConfig(
|
|
name=vm_name, skip_openshift_checks=True, verify_session=False
|
|
)
|
|
)
|
|
if output_id == "error":
|
|
logging.error(output_data.error)
|
|
self.fail("The VMware VM did not reboot because an error occurred")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|