in canary/producer-c/jobs/runner.groovy [58:151]
def runClient(isProducer, params) {
def consumerEnvs = [
'JAVA_HOME': "/opt/jdk-13.0.1",
'M2_HOME': "/opt/apache-maven-3.6.3"
].collect({k,v -> "${k}=${v}" })
// TODO: get the branch and version from orchestrator
if (params.FIRST_ITERATION) {
// TODO: Move to deletDir(). deleteDir() causes an exception right now
sh """
cd $WORKSPACE
rm -rf *
"""
}
def consumerStartUpDelay = 45
echo "NODE_NAME = ${env.NODE_NAME}"
checkout([
scm: [
$class: 'GitSCM',
branches: [[name: params.GIT_HASH]],
userRemoteConfigs: [[url: params.GIT_URL]]
]
])
RUNNING_NODES++
echo "Number of running nodes: ${RUNNING_NODES}"
if(isProducer) {
buildProducer()
}
else {
// This is to make sure that the consumer does not make RUNNING_NODES
// zero before producer build starts. Should handle this in a better
// way
sleep consumerStartUpDelay
buildConsumer(consumerEnvs)
}
RUNNING_NODES--
echo "Number of running nodes after build: ${RUNNING_NODES}"
waitUntil {
RUNNING_NODES == 0
}
echo "Done waiting in NODE_NAME = ${env.NODE_NAME}"
def scripts_dir = "$WORKSPACE/canary/producer-c"
def endpoint = "${scripts_dir}/iot-credential-provider.txt"
def core_cert_file = "${scripts_dir}/p${env.NODE_NAME}_certificate.pem"
def private_key_file = "${scripts_dir}/p${env.NODE_NAME}_private.key"
def role_alias = "p${env.NODE_NAME}_role_alias"
def thing_name = "p${env.NODE_NAME}_thing"
def envs = [
'JAVA_HOME': "/opt/jdk-13.0.1",
'M2_HOME': "/opt/apache-maven-3.6.3",
'AWS_KVS_LOG_LEVEL': params.AWS_KVS_LOG_LEVEL,
'CANARY_STREAM_NAME': "${env.JOB_NAME}",
'CANARY_LABEL': params.RUNNER_LABEL,
'CANARY_TYPE': params.CANARY_TYPE,
'FRAGMENT_SIZE_IN_BYTES' : params.FRAGMENT_SIZE_IN_BYTES,
'CANARY_DURATION_IN_SECONDS': params.CANARY_DURATION_IN_SECONDS,
'AWS_DEFAULT_REGION': params.AWS_DEFAULT_REGION,
'CANARY_RUN_SCENARIO': params.CANARY_RUN_SCENARIO,
'TRACK_TYPE': params.TRACK_TYPE,
'CANARY_USE_IOT_PROVIDER': params.USE_IOT,
'AWS_IOT_CORE_CREDENTIAL_ENDPOINT': "${endpoint}",
'AWS_IOT_CORE_CERT': "${core_cert_file}",
'AWS_IOT_CORE_PRIVATE_KEY': "${private_key_file}",
'AWS_IOT_CORE_ROLE_ALIAS': "${role_alias}",
'AWS_IOT_CORE_THING_NAME': "${thing_name}"
].collect({k,v -> "${k}=${v}" })
if(!isProducer) {
// Run consumer
withRunnerWrapper(envs) {
sh '''
cd $WORKSPACE/canary/consumer-java
java -classpath target/aws-kinesisvideo-producer-sdk-canary-consumer-1.0-SNAPSHOT.jar:$(cat tmp_jar) -Daws.accessKeyId=${AWS_ACCESS_KEY_ID} -Daws.secretKey=${AWS_SECRET_ACCESS_KEY} com.amazon.kinesis.video.canary.consumer.ProducerSdkCanaryConsumer
'''
}
}
else {
withRunnerWrapper(envs) {
sh """
echo "Running producer"
ls ./canary/producer-c
cd ./canary/producer-c/build &&
./kvsProducerSampleCloudwatch
"""
}
}
}