Untitled

 avatar
unknown
plain_text
a year ago
2.2 kB
2
Indexable
Refer this:
class EC2ClientLogCollection(__BaseLogCollection):
    def __init__(self, region, **kwargs):
        super().__init__(**kwargs)
        self.__ssm_client = get_ssm_client(region=region, rds_domain=None)

    def setup_ec2_pas_logs(self, instance_id):
        cmds = [f"sudo mkdir -p {EC2_CLIENT_LOGS_DIR_PATH}"]
        self.__ssm_client.run_cmd(instance_id=instance_id, cmds=cmds)

    def transfer_ec2_pas_logs_to_s3(self, instance_id, workflow_path):
        credentials = self.get_pas_credentials(PAS_ADMIN_OPS_ROLE)
        cmds = self.get_rds_s3_file_transfer_template(
            credentials["AccessKeyId"], credentials["SecretAccessKey"]
        )

        cmds.append(f"tar -zhcvf /tmp/{EC2_CLIENT_LOGS_TAR_NAME} {EC2_CLIENT_LOGS_DIR_PATH}")

        cmds.append(
            f"aws s3 cp /tmp/{EC2_CLIENT_LOGS_TAR_NAME} "
            + f"{get_pas_logs_s3_dir_for_ec2_client(workflow_path, instance_id)} "
        )
        self.__ssm_client.run_cmd(instance_id=instance_id, cmds=cmds)


And remove hard coding from this:
def collect_rpm_version_configs(self, instance_id, workflow_path):
        """
        Get RPM version info
        """
        credentials = self.get_pas_credentials(PAS_ADMIN_OPS_ROLE)
        cmds = self.get_rds_s3_file_transfer_template(
            credentials["AccessKeyId"], credentials["SecretAccessKey"]
        )
        cmds.append("export logfile=/rdsdbdata/tmp/pas_rpm_version/pas_rpm_version.log")
        cmds.append("sudo mkdir -p /rdsdbdata/tmp/pas_rpm_version/ || true")
        cmds.append("sudo chmod -R 777 /rdsdbdata/tmp/pas_rpm_version/")
        cmds.append(
            "sudo env -i /usr/bin/yum list installed | "
            "grep -i 'rds\|aws\|gdb\|glib\|kernel\|csd\|ams\|apg\|mysql\|psql\|postgres\|oscar' | "  # noqa: W605
            "sudo sed 's/^/pas_rpm_version: /' > /rdsdbdata/tmp/pas_rpm_version/pas_rpm_version.log"
        )
        cmds.append("echo END >> /rdsdbdata/tmp/pas_rpm_version/pas_rpm_version.log")

        cmds.append(
            "aws s3 cp ${logfile} "
            + f"{get_pas_logs_s3_dir_for_instance(workflow_path, instance_id[0].strip())} "
            + ">> $logfile 2>&1"
        )

        self.__ssm_client.run_cmd(instance_id[1], cmds)
Leave a Comment