github.com/SUSE/skuba@v1.4.17/ci/infra/testrunner/platforms/vmware.py (about)

     1  import os
     2  
     3  from timeout_decorator import timeout
     4  
     5  from platforms.terraform import Terraform
     6  from utils import Format
     7  
     8  
     9  class VMware(Terraform):
    10      def __init__(self, conf):
    11          super().__init__(conf, 'vmware')
    12          if not os.path.isfile(conf.vmware.env_file):
    13              msg = (f'Your VMware env file path "{conf.vmware.env_file}" does not exist.\n\t    '
    14                     'Check the VMware env file path in your configured yaml file.')
    15              raise ValueError(Format.alert(msg))
    16          self.platform_new_vars = {}
    17  
    18      def _env_setup_cmd(self):
    19          return f"source {self.conf.vmware.env_file}"
    20  
    21      @timeout(600)
    22      def _cleanup_platform(self):
    23          variables = [f"stack_name={self.conf.terraform.stack_name}"]
    24  
    25          self.destroy(variables)
    26  
    27      def _get_platform_logs(self):
    28          # Get logs from the VMware LB
    29          node_ip = self.get_lb_ipaddr()
    30          logs = {
    31              "files": ["/var/run/cloud-init/status.json",
    32                        "/var/log/cloud-init-output.log",
    33                        "/var/log/cloud-init.log"],
    34              "dirs": [],
    35              "services": ["haproxy"]
    36          }
    37  
    38          node_log_dir = self._create_node_log_dir(node_ip, "load_balancer", self.conf.platform.log_dir)
    39          logging_error = self.utils.collect_remote_logs(node_ip, logs, node_log_dir)
    40  
    41          return logging_error
    42  
    43      def get_lb_ipaddr(self):
    44          self._load_tfstate()
    45          if self.state["version"] == 3:
    46              return self.state["modules"][0]["outputs"]["ip_load_balancer"]["value"]["{}-lb-0".format(self.stack_name())]
    47          elif self.state["version"] == 4:
    48              return self.state["outputs"]["ip_load_balancer"]["value"]["{}-lb-0".format(self.stack_name())]