Untitled
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