| # export REMOTE_JENKINS='172.19.112.216' |
| export REMOTE_JENKINS='sre-ci.scc.mirantis.net' |
| |
| if [ ! -n "$LAB_CONTEXT_NAME" ]; then |
| echo 'LAB_CONTEXT_NAME is not set! |
| This name will be used: |
| - to find the template file tcp_tests/templates/cookied-model-generator/salt_${LAB_CONTEXT_NAME}.yaml |
| - to set the salt model cluster name |
| - to make DOMAIN_NAME=${LAB_CONTEXT_NAME}.local |
| '; |
| exit 1 |
| fi |
| |
| |
| if [ -n "$TCP_QA_REVIEW" ]; then |
| git fetch https://gerrit.mcp.mirantis.com/mcp/tcp-qa $TCP_QA_REVIEW && git checkout FETCH_HEAD |
| fi |
| |
| . ${VENV_PATH}/bin/activate |
| |
| if [ "$ERASE_EXISTING_ENVIRONMENT" = "true" ]; then |
| dos.py erase $ENV_NAME || true |
| fi |
| |
| cd tcp_tests |
| |
| sed -i 's/%LOGIN%/rHm22xBV9K/' templates/${LAB_CONTEXT_NAME}/salt-context-cookiecutter* |
| sed -i 's/%PASS%/az9Gq7Wq4jRic29YWP/' templates/${LAB_CONTEXT_NAME}/salt-context-cookiecutter* |
| |
| rm -f ./*.tar.gz |
| |
| #MODEL_FILENAME=model_${CLUSTER_NAME}_${BUILD_NUMBER}.tar.gz |
| MODEL_FILENAME=model_${ENV_NAME}.tar.gz |
| if [[ -f $MODEL_FILENAME ]]; then |
| rm $MODEL_FILENAME |
| fi |
| |
| #################### |
| # Generate the model |
| git config user.name "tester" |
| git config user.email "tester@example.com" |
| |
| py.test --junit-xml=deploy_generate_model.xml -k ${TEST_GROUP} |
| |
| |
| ######################################################## |
| # Upload the generated model to the repository on cz8133 |
| |
| # Create a directory where the created model will be unpacked |
| rm -rf ./model |
| mkdir -p ./model |
| |
| eval $(ssh-agent) |
| ssh-add ${COOKIECUTTER_TEMPLATES_REPOSITORY_KEY_PATH} |
| |
| # Create remote repository |
| ssh jenkins@${REMOTE_JENKINS} " |
| if [[ ! -d /home/jenkins/salt-models/${LAB_CONTEXT_NAME}.git ]]; then |
| mkdir -p /home/jenkins/salt-models/${LAB_CONTEXT_NAME}.git; |
| cd /home/jenkins/salt-models/${LAB_CONTEXT_NAME}.git; |
| git init --bare; |
| cp hooks/post-update.sample hooks/post-update; |
| fi" |
| |
| cd ./model |
| |
| # Prepare the repository in the ./model |
| git init |
| git remote add integration ssh://jenkins@${REMOTE_JENKINS}/home/jenkins/salt-models/${LAB_CONTEXT_NAME}.git |
| git pull integration ${REPOSITORY_SUITE} || true |
| git checkout -b ${REPOSITORY_SUITE} |
| git rm -rf . || true # remove previous content from the working dir |
| |
| # unpack new model into ./model dir |
| tar -xzf ../${MODEL_FILENAME} -C ./ |
| # Add reclass-system submodule |
| git submodule add https://gerrit.mcp.mirantis.com/salt-models/reclass-system classes/system/ |
| cd classes/system |
| git checkout ${SALT_MODELS_SYSTEM_COMMIT} |
| cd ../.. |
| |
| # The directory "classes/service" is created at bootstrap time |
| # and cannot be commited to the repository automatically. |
| # It is not needed in the repo because contains only symlinks. |
| cat << EOF > ./.gitignore |
| classes/service |
| EOF |
| |
| # create a commit with new model (if any change exists) |
| git add -A |
| git commit -m "${LAB_CONTEXT_NAME}@${REPOSITORY_SUITE} generated at $(date +%Y-%m-%d/%H-%M) |
| |
| REPOSITORY_SUITE=${REPOSITORY_SUITE} |
| SALT_MODELS_SYSTEM_COMMIT=${SALT_MODELS_SYSTEM_COMMIT} |
| COOKIECUTTER_TEMPLATE_COMMIT=${COOKIECUTTER_TEMPLATE_COMMIT} |
| " |
| |
| # Push new commit to the ${REMOTE_JENKINS} repository |
| git push integration ${REPOSITORY_SUITE} |
| |
| echo "######################################################################################################################" |
| echo "#" |
| echo "# Clone the model into the tests: git clone http://${REMOTE_JENKINS}:8098/${LAB_CONTEXT_NAME}.git -b ${REPOSITORY_SUITE}" |
| echo "#" |
| echo "######################################################################################################################" |
| |