From 53795ff651a4fcb847ac2d63648e2299c884560b Mon Sep 17 00:00:00 2001 From: Jan-Simon Möller Date: Mon, 3 Oct 2016 17:03:21 +0200 Subject: Add /opt/AGL/lava-agl, its dependencies and json file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I65e5c48f91d0c4df084cfa3e66d43ae48e52bb9d Signed-off-by: Jan-Simon Möller --- packer/provision/agl_dependencies.sh | 170 +++++++++++++++++++++++++++++- packer/provision/agl_mirror.sh | 8 +- packer/templates/basebuild-local-kvm.json | 5 + packer/templates/basebuild.json | 5 + packer/vars/.gitignore | 1 + packer/vars/lava-env.json.example | 5 + 6 files changed, 191 insertions(+), 3 deletions(-) create mode 100644 packer/vars/lava-env.json.example (limited to 'packer') diff --git a/packer/provision/agl_dependencies.sh b/packer/provision/agl_dependencies.sh index 05ad05b2..ed5cc254 100644 --- a/packer/provision/agl_dependencies.sh +++ b/packer/provision/agl_dependencies.sh @@ -1,14 +1,23 @@ #!/bin/bash +# vim: sw=2 ts=2 sts=2 et : set -x +cat /etc/apt/sources.list + +# Make sure that we aren't using the vexxhost mirrors as they have issues +echo "---> Removing Vexxhost Ubuntu mirrors" +sed -i 's/ubuntu.mirror.vexxhost.com/us.archive.ubuntu.com/g' /etc/apt/sources.list + +cat /etc/apt/sources.list + DEBIAN_FRONTEND=noninteractive apt-get update && apt-get -y -u dist-upgrade DEBIAN_FRONTEND=noninteractive apt-get update && \ apt-get -y install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat \ libsdl1.2-dev xterm make xsltproc docbook-utils fop dblatex xmlto autoconf automake \ libtool libglib2.0-dev libarchive-dev python-git git python python-minimal repo mc \ - tree rsync + tree rsync python-yaml python-requests curl # we have a build blocker wrt useradd - I assume it is caused by /bin/sh being dash # systemd: Performing useradd with @@ -21,3 +30,162 @@ cat <> /etc/hosts 199.19.213.77 download-new.automotivelinux.org EOFHOSTS + + +# clone lava-boot to /opt/AGL/ +mkdir -p /opt/AGL/ +cd /opt/AGL/ +git clone http://git.linaro.org/people/riku.voipio/lava-boot.git +cd lava-boot +sed -i '16iimport ssl' lava-boot +sed -i '17issl._create_default_https_context = ssl._create_unverified_context' lava-boot + + +mkdir -p /opt/AGL/lava-agl/ +cat <> /opt/AGL/lava-agl/boardready.py +#!/usr/bin/python +import xmlrpclib +import ssl +import sys +import time + +# bug, ssl chain cannot be verified (letsencrypt) +# to be fixed +ssl._create_default_https_context = ssl._create_unverified_context + +username = "$LAVAUSER" +token = "$LAVATOKEN" +myhostname = "$LAVAHOST" + +print "Starting ..." +sys.stdout.flush() +arg = None +if len(sys.argv) > 1: + arg = sys.argv[1] + +if arg == None: + print("No argument, need lava jobnumber as argument.") + sys.stdout.flush() + sys.exit(1) + +server = xmlrpclib.ServerProxy("https://%s:%s@%s/RPC2" % (username, token, myhostname)) +#print(arg) +#sys.stdout.flush() + +# Poll loop +while True: + try: + x = server.scheduler.job_status(arg)['job_status'] + except: + print("Error, quitting.") + sys.stdout.flush() + sys.exit(1) + break + if 'Cancelled' in x: + sys.exit(1) + break + if 'Submitted' in x: + print("Job submitted - pending") + sys.stdout.flush() + time.sleep(20) + continue + if 'Running' in x: + print("Job Running now.") + print("Remote boot takes around 5 minutes to complete (download+boot) - waiting ...") + sys.stdout.flush() + time.sleep(300) + y = server.scheduler.job_status(arg)['job_status'] + if 'Running' in y: + break + else: + continue + break + break +# end +EOFBR + +cat < /opt/AGL/lava-agl/.lava.yaml +server: ${LAVAHOST} +user: ${LAVAUSER} +token: ${LAVATOKEN} +https: true +EOFLAVAYAML + +cat < /opt/AGL/lava-agl/porter_nbd_upload.yaml +actions: + - command: deploy_linaro_kernel + parameters: + kernel: 'http://localhost/porter/upload/uImage+dtb' + nbdroot: 'http://localhost/porter/upload/agl-demo-platform-porter.ext4' + ramdisk: 'http://localhost/porter/upload/initramfs-netboot-image-porter.ext4.gz.u-boot' + login_prompt: 'porter login:' + username: 'root' + - command: boot_linaro_image + parameters: + test_image_prompt: 'root@porter:~#' + - command: lava_command_run + parameters: + commands: + - "while test ! -f /jta.done ; do echo \"Waiting for JTA to finish ... \" ; sleep 20 ; done" + timeout: 22100 +device_type: 'renesas-porter' +logging_level: INFO +job_name: '\${JOB_NAME}' +timeout: 22600 + +EOFPORTERUPLOADYAML + +cat < /opt/AGL/lava-agl/porter_nbd_snapshot.yaml +actions: + - command: deploy_linaro_kernel + parameters: + kernel: 'https://download.automotivelinux.org/AGL/snapshots/master/latest/porter-nogfx/deploy/images/porter/uImage+dtb' + nbdroot: 'https://download.automotivelinux.org/AGL/snapshots/master/latest/porter-nogfx/deploy/images/porter/core-image-minimal-porter.ext4' + ramdisk: 'https://download.automotivelinux.org/AGL/snapshots/master/latest/porter-nogfx/deploy/images/porter/initramfs-netboot-image-porter.ext4.gz.u-boot' + login_prompt: 'porter login:' + username: 'root' + - command: boot_linaro_image + parameters: + test_image_prompt: 'root@porter:~#' + - command: lava_command_run + parameters: + commands: + - "while test ! -f /jta.done ; do echo \"Waiting for JTA to finish ... \" ; sleep 20 ; done" + timeout: 22100 +device_type: 'renesas-porter' +logging_level: INFO +job_name: '\${JOB_NAME}' +timeout: 22600 +EOFPORTERSNAPYAML + +cat < /opt/AGL/lava-agl/upload4lava.sh +#!/bin/bash +#set -x + +if test x"" != x"\$1"; then +Y=\$(echo "\$1" | sed -e "s#\.\.##g" -e "s#/##g") +curl -T "\$Y" https://porter.automotivelinux.org/porter/upload/jta/\$Y --insecure +else +echo "Help: \$0 file" +fi + +EOFUPLOAD + +cat < /opt/AGL/lava-agl/deploy.sh +#!/bin/bash +#set -x +set -e +PORTERYAML="porter_nbd_snapshot.yaml" + +if test x"" != x"\$1" ; then + PORTERYAML="\$1" +fi +if test -f /opt/AGL/lava-agl/\${PORTERYAML}; then + /opt/AGL/lava-agl/boardready.py \$(/opt/AGL/lava-boot/lava-boot -j /opt/AGL/lava-agl/\${PORTERYAML} -a -q | sed -e "s#.*job/##g") +else + echo "\${PORTERYAML} not found." + exit 1 +fi +EOFDEPLOY + +chmod a+x /opt/AGL/lava-agl/* diff --git a/packer/provision/agl_mirror.sh b/packer/provision/agl_mirror.sh index 08a36844..a76245dc 100644 --- a/packer/provision/agl_mirror.sh +++ b/packer/provision/agl_mirror.sh @@ -13,7 +13,11 @@ cd mkdir -p /opt/AGL/sstate-mirror cd /opt/AGL/sstate-mirror wget --mirror -np -nH --convert-links "https://download-new.automotivelinux.org/sstate-mirror/" -A siginfo -A tgz --cut-dirs=1 -ls -ls * cd +#mirror downloads into /opt/AGL/premirror +#mkdir -p /opt/AGL/premirror +#cd /opt/AGL/premirror +#wget --mirror -r -l1 -np -nH --convert-links "https://download-new.automotivelinux.org/AGL/mirror/" -R 'done' -R 'O=A,O=D' --cut-dirs=2 +#cd + diff --git a/packer/templates/basebuild-local-kvm.json b/packer/templates/basebuild-local-kvm.json index af13744f..36c77f42 100644 --- a/packer/templates/basebuild-local-kvm.json +++ b/packer/templates/basebuild-local-kvm.json @@ -77,6 +77,11 @@ "provision/agl_dependencies.sh", "provision/system_reseal.sh" ], + "environment_vars": [ + "LAVAHOST={{user `lavahost`}}", + "LAVAUSER={{user `lavauser`}}", + "LAVATOKEN={{user `lavatoken`}}" + ], "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else echo 'ubuntu' | {{ .Vars }} sudo -S -E sh '{{ .Path }}'; fi" } ] diff --git a/packer/templates/basebuild.json b/packer/templates/basebuild.json index b757f6af..8e60b5f9 100644 --- a/packer/templates/basebuild.json +++ b/packer/templates/basebuild.json @@ -41,6 +41,11 @@ }, { "type": "shell", + "environment_vars": [ + "LAVAHOST={{user `lavahost`}}", + "LAVAUSER={{user `lavauser`}}", + "LAVATOKEN={{user `lavatoken`}}" + ], "scripts": [ "provision/baseline.sh", "provision/basebuild.sh", diff --git a/packer/vars/.gitignore b/packer/vars/.gitignore index af920284..da3d7e08 100644 --- a/packer/vars/.gitignore +++ b/packer/vars/.gitignore @@ -1,2 +1,3 @@ # exclude private cloud-env settings cloud-env.json +lava-env.json diff --git a/packer/vars/lava-env.json.example b/packer/vars/lava-env.json.example new file mode 100644 index 00000000..abe935c2 --- /dev/null +++ b/packer/vars/lava-env.json.example @@ -0,0 +1,5 @@ +{ + "lavahost": "porter.automotivelinux.org", + "lavauser": "replace_with_lava_user", + "lavatoken": "replace_with_lava_token" +} -- cgit 1.2.3-korg