| #!/bin/bash |
| |
| function usage() { |
| echo -e "usage: $0 [OPTIONS]" |
| echo -e " OPTIONS" |
| echo -e " -c <COMPONENT>: the component whose lxd image has to be generated. Allowed values: RO, VCA, SOUI, MON" |
| echo -e " -R <RELEASE>: push images to specific RELEASE folder" |
| } |
| |
| GEN_ALL="y" |
| GEN_RO="" |
| GEN_VCA="" |
| GEN_SOUI="" |
| GEN_MON="" |
| RELEASE="ReleaseTHREE" |
| |
| while getopts ":h" o; do |
| case "${o}" in |
| h) |
| usage |
| exit 0 |
| ;; |
| R) |
| RELEASE="${OPTARG}" |
| ;; |
| c) |
| [ "${OPTARG}" == "RO" ] && GEN_ALL="" && GEN_RO="y" && continue |
| [ "${OPTARG}" == "VCA" ] && GEN_ALL="" && GEN_VCA="y" && continue |
| [ "${OPTARG}" == "SOUI" ] && GEN_ALL="" && GEN_SOUI="y" && continue |
| [ "${OPTARG}" == "MON" ] && GEN_ALL="" && GEN_MON="y" && continue |
| echo -e "Invalid option: '--$OPTARG'\n" >&2 |
| usage && exit 1 |
| ;; |
| *) |
| usage && exit 1 |
| ;; |
| esac |
| done |
| |
| [ "$GEN_ALL" == "y" ] && GEN_RO="y" && GEN_VCA="y" && GEN_SOUI="y" && GEN_MON="y" |
| |
| echo "Stopping containers" |
| lxc stop RO |
| lxc stop VCA |
| lxc stop SO-ub |
| #lxc stop MON |
| |
| echo "Saving containers as images in local lxd server" |
| OSM_RO_IMAGE="osm-ro" |
| OSM_VCA_IMAGE="osm-vca" |
| OSM_SOUI_IMAGE="osm-soui" |
| OSM_MON_IMAGE="osm-mon" |
| |
| [ -n "$GEN_RO" ] && lxc publish --public RO --alias ${OSM_RO_IMAGE} |
| [ -n "$GEN_VCA" ] && lxc publish --public VCA --alias ${OSM_VCA_IMAGE} |
| [ -n "$GEN_SOUI" ] && lxc publish --public SO-ub --alias ${OSM_SOUI_IMAGE} |
| #[ -n "$GEN_MON" ] && lxc publish --public MON --alias ${OSM_MON_IMAGE} |
| #lxc image list |
| |
| #echo "Copying images to a remote lxd server" |
| #[ -n "$GEN_RO" ] && lxc image copy ${OSM_RO_IMAGE} remote: |
| #[ -n "$GEN_VCA" ] && lxc image copy ${OSM_VCA_IMAGE} remote: |
| #[ -n "$GEN_SOUI" ] && lxc image copy ${OSM_SOUI_IMAGE} remote: |
| #[ -n "$GEN_MON" ] && lxc image copy ${OSM_MON_IMAGE} remote: |
| |
| echo "Exporting images as targz" |
| TEMPDIR="$(mktemp -d -q --tmpdir "osmlxd.XXXXXX")" |
| trap 'rm -rf "$TEMPDIR"' EXIT |
| RELEASE_DIR="${TEMPDIR}/${RELEASE}" |
| |
| [ -n "$GEN_RO" ] && lxc image export ${OSM_RO_IMAGE} $RELEASE_DIR/${OSM_RO_IMAGE} |
| [ -n "$GEN_VCA" ] && lxc image export ${OSM_VCA_IMAGE} $RELEASE_DIR/${OSM_VCA_IMAGE} |
| [ -n "$GEN_SOUI" ] && lxc image export ${OSM_SOUI_IMAGE} $RELEASE_DIR/${OSM_SOUI_IMAGE} |
| #[ -n "$GEN_MON" ] && lxc image export ${OSM_MON_IMAGE} $RELEASE_DIR/${OSM_MON_IMAGE} |
| [ -n "$GEN_RO" ] && chmod +r $RELEASE_DIR/${OSM_RO_IMAGE} |
| [ -n "$GEN_VCA" ] && chmod +r $RELEASE_DIR/${OSM_VCA_IMAGE} |
| [ -n "$GEN_SOUI" ] && chmod +r $RELEASE_DIR/${OSM_SOUI_IMAGE} |
| #[ -n "$GEN_MON" ] && chmod +r $RELEASE_DIR/${OSM_MON_IMAGE} |
| |
| echo "Pushing images to ETSI FTP server" |
| RSYNC_USER_HOST=osmusers@osm-download.etsi.org |
| RSYNC_OPTIONS="--delete --password-file rsync.pass" |
| cd $TEMPDIR && rsync -avR $RSYNC_OPTIONS $RELEASE rsync://$RSYNC_USER_HOST/repos/osm/lxd |
| |
| |