def teardown(self): """ Tearing down the environment """ assert delete_pv(self.pv_name) assert not verify_pv_exist(self.pv_name) utils.delete_file(TEMP_YAML_FILE)
def destroy_cluster(self, log_level="DEBUG"): """ Destroy OCP cluster specific to AWS IPI Args: log_level (str): log level openshift-installer (default: DEBUG) """ logger.info("Destroying the cluster") destroy_cmd = ( f"{self.installer} destroy cluster " f"--dir {self.cluster_path} " f"--log-level {log_level}" ) try: # Retrieve cluster name and AWS region from metadata metadata_file = os.path.join(self.cluster_path, "metadata.json") with open(metadata_file) as f: metadata = json.loads(f.read()) cluster_name = metadata.get("clusterName") # Execute destroy cluster using OpenShift installer logger.info(f"Destroying cluster defined in {self.cluster_path}") run_cmd(destroy_cmd) # Find and delete volumes volume_pattern = f"{cluster_name}*" logger.debug(f"Finding volumes with pattern: {volume_pattern}") volumes = self.aws.get_volumes_by_name_pattern(volume_pattern) logger.debug(f"Found volumes: \n {volumes}") for volume in volumes: self.aws.detach_and_delete_volume(volume) # Remove installer utils.delete_file(self.installer) except Exception: logger.error(traceback.format_exc())
def delete_temp_yaml_file(self): utils.delete_file(self.temp_yaml.name)
def deploy(self, log_cli_level="DEBUG"): """ Exact deployment will happen here Args: log_cli_level (str): openshift installer's log level (default: "DEBUG") """ logger.info("Deploying OCP cluster") logger.info( f"Openshift-installer will be using loglevel:{log_cli_level}") # Invoke UPI on AWS install script cidir = os.getcwd() logger.info("Changing CWD") try: os.chdir(self.upi_script_path) except OSError: logger.exception( f"Failed to change CWD to {self.upi_script_path} ") logger.info(f"CWD changed to {self.upi_script_path}") with open(f"./{constants.UPI_INSTALL_SCRIPT}", "r") as fd: buf = fd.read() ocp_version = get_ocp_version() if Version.coerce(ocp_version) >= Version.coerce("4.3"): data = buf.replace("openshift-qe-upi", "ocs-qe-upi") else: data = buf.replace("openshift-qe-upi-1", "ocs-qe-upi") with open(f"./{constants.UPI_INSTALL_SCRIPT}", "w") as fd: fd.write(data) logger.info("Executing UPI install script") proc = Popen( [ os.path.join(self.upi_script_path, constants.UPI_INSTALL_SCRIPT) ], stdout=PIPE, stderr=PIPE, encoding="utf-8", ) stdout, stderr = proc.communicate() # Change dir back to ocs-ci dir os.chdir(cidir) if proc.returncode: logger.error(stderr) if constants.GATHER_BOOTSTRAP_PATTERN in stderr: try: gather_bootstrap() except Exception as ex: logger.error(ex) raise exceptions.CommandFailed("upi install script failed") logger.info(stdout) self.test_cluster() # Delete openshift-misc repository logger.info("Removing openshift-misc directory located at %s", self.upi_repo_path) shutil.rmtree(self.upi_repo_path) # Delete openshift-install copied to cluster_dir (see WORKAROUND at # the end of deploy_prereq method of this class) delete_file( os.path.abspath( os.path.join(self.cluster_path, "../openshift-install")))