Example #1
0
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)
Example #2
0
    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())
Example #3
0
 def delete_temp_yaml_file(self):
     utils.delete_file(self.temp_yaml.name)
Example #4
0
        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")))