| garciadeblas | cb43020 | 2017-11-17 15:33:02 +0100 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | function usage() { |
| 4 | echo -e "usage: $0 [OPTIONS]" |
| 5 | echo -e " OPTIONS" |
| 6 | echo -e " -c <COMPONENT>: the component whose lxd image has to be generated. Allowed values: RO, VCA, SOUI, MON" |
| 7 | echo -e " -R <RELEASE>: push images to specific RELEASE folder" |
| 8 | } |
| 9 | |
| 10 | GEN_ALL="y" |
| 11 | GEN_RO="" |
| 12 | GEN_VCA="" |
| 13 | GEN_SOUI="" |
| 14 | GEN_MON="" |
| 15 | RELEASE="ReleaseTHREE" |
| 16 | |
| 17 | while getopts ":h" o; do |
| 18 | case "${o}" in |
| 19 | h) |
| 20 | usage |
| 21 | exit 0 |
| 22 | ;; |
| 23 | R) |
| 24 | RELEASE="${OPTARG}" |
| 25 | ;; |
| 26 | c) |
| 27 | [ "${OPTARG}" == "RO" ] && GEN_ALL="" && GEN_RO="y" && continue |
| 28 | [ "${OPTARG}" == "VCA" ] && GEN_ALL="" && GEN_VCA="y" && continue |
| 29 | [ "${OPTARG}" == "SOUI" ] && GEN_ALL="" && GEN_SOUI="y" && continue |
| 30 | [ "${OPTARG}" == "MON" ] && GEN_ALL="" && GEN_MON="y" && continue |
| 31 | echo -e "Invalid option: '--$OPTARG'\n" >&2 |
| 32 | usage && exit 1 |
| 33 | ;; |
| 34 | *) |
| 35 | usage && exit 1 |
| 36 | ;; |
| 37 | esac |
| 38 | done |
| 39 | |
| 40 | [ "$GEN_ALL" == "y" ] && GEN_RO="y" && GEN_VCA="y" && GEN_SOUI="y" && GEN_MON="y" |
| 41 | |
| 42 | echo "Stopping containers" |
| 43 | lxc stop RO |
| 44 | lxc stop VCA |
| 45 | lxc stop SO-ub |
| 46 | #lxc stop MON |
| 47 | |
| 48 | echo "Saving containers as images in local lxd server" |
| 49 | OSM_RO_IMAGE="osm-ro" |
| 50 | OSM_VCA_IMAGE="osm-vca" |
| 51 | OSM_SOUI_IMAGE="osm-soui" |
| 52 | OSM_MON_IMAGE="osm-mon" |
| 53 | |
| 54 | [ -n "$GEN_RO" ] && lxc publish --public RO --alias ${OSM_RO_IMAGE} |
| 55 | [ -n "$GEN_VCA" ] && lxc publish --public VCA --alias ${OSM_VCA_IMAGE} |
| 56 | [ -n "$GEN_SOUI" ] && lxc publish --public SO-ub --alias ${OSM_SOUI_IMAGE} |
| 57 | #[ -n "$GEN_MON" ] && lxc publish --public MON --alias ${OSM_MON_IMAGE} |
| 58 | #lxc image list |
| 59 | |
| 60 | #echo "Copying images to a remote lxd server" |
| 61 | #[ -n "$GEN_RO" ] && lxc image copy ${OSM_RO_IMAGE} remote: |
| 62 | #[ -n "$GEN_VCA" ] && lxc image copy ${OSM_VCA_IMAGE} remote: |
| 63 | #[ -n "$GEN_SOUI" ] && lxc image copy ${OSM_SOUI_IMAGE} remote: |
| 64 | #[ -n "$GEN_MON" ] && lxc image copy ${OSM_MON_IMAGE} remote: |
| 65 | |
| 66 | echo "Exporting images as targz" |
| garciadeblas | 04df171 | 2017-12-21 15:32:32 +0100 | [diff] [blame] | 67 | mkdir -p "${RELEASE}" |
| 68 | #trap 'rm -rf "$RELEASE"' EXIT |
| garciadeblas | cb43020 | 2017-11-17 15:33:02 +0100 | [diff] [blame] | 69 | |
| garciadeblas | 8857f00 | 2018-03-19 14:42:49 +0100 | [diff] [blame] | 70 | [ -n "$GEN_RO" ] && lxc image export "${OSM_RO_IMAGE}" "${RELEASE}"/"${OSM_RO_IMAGE}" || echo "Failed to export RO" |
| 71 | [ -n "$GEN_VCA" ] && lxc image export "${OSM_VCA_IMAGE}" "${RELEASE}"/"${OSM_VCA_IMAGE}" || echo "Failed to export VCA" |
| 72 | [ -n "$GEN_SOUI" ] && lxc image export "${OSM_SOUI_IMAGE}" "${RELEASE}"/"${OSM_SOUI_IMAGE}" || echo "Failed to export SOUI" |
| 73 | #[ -n "$GEN_MON" ] && lxc image export "${OSM_MON_IMAGE}" "${RELEASE}"/"${OSM_MON_IMAGE}" || echo "Failed to export MON" |
| 74 | chmod 664 "${RELEASE}"/*.tar.gz |
| garciadeblas | cb43020 | 2017-11-17 15:33:02 +0100 | [diff] [blame] | 75 | |
| 76 | echo "Pushing images to ETSI FTP server" |
| 77 | RSYNC_USER_HOST=osmusers@osm-download.etsi.org |
| garciadeblas | 8857f00 | 2018-03-19 14:42:49 +0100 | [diff] [blame] | 78 | RSYNC_OPTIONS="--delete --progress --password-file rsync.pass" |
| garciadeblas | 04df171 | 2017-12-21 15:32:32 +0100 | [diff] [blame] | 79 | rsync -avR "$RSYNC_OPTIONS" "$RELEASE" rsync://$RSYNC_USER_HOST/repos/osm/lxd |
| garciadeblas | cb43020 | 2017-11-17 15:33:02 +0100 | [diff] [blame] | 80 | |
| 81 | |