Move the installation of the VSphere client out of the `api/common/aws.sh` `installClient()` function into a dedicated `installClientVSphere()` function in `api/common/vsphere.sh`. Rename the `installClient()` in `api/common/aws.sh` to `installAWSClient()`. Introduce `installClient()` in both, `api/aws.sh` and `api/aws.s3.sh`, which calls `installAWSClient()`. Call `installClientVSphere()` conditionally when testing VMDK image type in `api/aws.s3.sh` and `api/generic.s3.sh`.
26 lines
881 B
Bash
26 lines
881 B
Bash
#!/usr/bin/bash
|
|
source /usr/libexec/tests/osbuild-composer/shared_lib.sh
|
|
|
|
function installAWSClient() {
|
|
if ! hash aws; then
|
|
echo "Using 'awscli' from a container"
|
|
sudo "${CONTAINER_RUNTIME}" pull "${CONTAINER_IMAGE_CLOUD_TOOLS}"
|
|
|
|
AWS_CMD="sudo ${CONTAINER_RUNTIME} run --rm \
|
|
-e AWS_ACCESS_KEY_ID=${V2_AWS_ACCESS_KEY_ID} \
|
|
-e AWS_SECRET_ACCESS_KEY=${V2_AWS_SECRET_ACCESS_KEY} \
|
|
-v ${WORKDIR}:${WORKDIR}:Z \
|
|
${CONTAINER_IMAGE_CLOUD_TOOLS} aws --region $AWS_REGION --output json --color on"
|
|
else
|
|
echo "Using pre-installed 'aws' from the system"
|
|
AWS_CMD="aws --region $AWS_REGION --output json --color on"
|
|
fi
|
|
$AWS_CMD --version
|
|
}
|
|
|
|
# Log into AWS
|
|
# AWS does not need explicit login, but define this function for the sake of
|
|
# consistency to allow calling scripts to not care about cloud differences
|
|
function cloud_login() {
|
|
true
|
|
}
|