diff --git a/entrypoint.sh b/entrypoint.sh index 3b713703affbac05d6d4761387f238afd32acbb5..84b7e88927c4aa41a0099f71835c35b6619b1838 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -65,7 +65,7 @@ echo {} > "$ANSWERS_FILE" VARIABLES_FILE='variables.yml' if [ -f $VARIABLES_FILE ]; then - python3.8 "$PREPARE_ANSWERS_PY" "$INVENTORY_FILE" "$ANSWERS_FILE" "$ANSWERS_STORAGE_API" + python3.8 "$PREPARE_ANSWERS_PY" "$INVENTORY_FILE" "$ANSWERS_FILE" "$ANSWERS_STORAGE_API" || exit 1 fi if $USER_CLEANUP; then python3.8 "$PREPARE_ANSWERS_PY" "$INVENTORY_FILE" "$ANSWERS_FILE" "$ANSWERS_STORAGE_API" --cleanup diff --git a/manage_answers.py b/manage_answers.py index 4150e4fed24cdf84d289d3312ef7f7e5db517da3..36655fa283ac8ff535c26df11a1b0c99e2e7df71 100644 --- a/manage_answers.py +++ b/manage_answers.py @@ -2,6 +2,7 @@ import yaml import json import requests import argparse +import sys from generator.var_generator import generate from generator.var_parser import parser_var_file @@ -35,9 +36,10 @@ def generate_answers(inventory_variables): return generate(variable_list, seed) -def get_post_data_json(sandbox_id, generated_answers): +def get_post_data_json(sandbox_id, allocation_id, generated_answers): post_data = { 'sandbox_ref_id': sandbox_id, + 'allocation_unit_id': allocation_id, 'sandbox_answers': [] } @@ -50,12 +52,12 @@ def get_post_data_json(sandbox_id, generated_answers): return json.dumps(post_data, indent=4) -def delete_answers(answers_storage_api, sandbox_id): - requests.delete(answers_storage_api + 'sandboxes/' + str(sandbox_id)).raise_for_status() +def delete_answers(answers_storage_api, allocation_id): + requests.delete(answers_storage_api + 'sandboxes/' + str(allocation_id)).raise_for_status() -def post_answers(answers_storage_api, sandbox_id, generated_answers): - post_data_json = get_post_data_json(sandbox_id, generated_answers) +def post_answers(answers_storage_api, sandbox_id, allocation_id, generated_answers): + post_data_json = get_post_data_json(sandbox_id, allocation_id, generated_answers) post_response = requests.post(answers_storage_api + 'sandboxes', data=post_data_json, headers=HEADERS) post_response.raise_for_status() @@ -71,6 +73,7 @@ def main(): args = parser.parse_args() inventory_variables = load_inventory_variables(args.inventory_path) sandbox_id = inventory_variables['kypo_global_sandbox_id'] + allocation_id = inventory_variables['kypo_global_sandbox_allocation_unit_id'] answers_file_path = args.answers_file_path answers_storage_api = args.answers_storage_api @@ -80,18 +83,20 @@ def main(): try: if args.cleanup: - delete_answers(answers_storage_api, sandbox_id) + delete_answers(answers_storage_api, allocation_id) print(_success_msg.format('DELETE')) return generated_answers = generate_answers(inventory_variables) create_answers_file(generated_answers, answers_file_path) - post_answers(answers_storage_api, sandbox_id, generated_answers) + post_answers(answers_storage_api, sandbox_id, allocation_id, generated_answers) print(_success_msg.format('POST')) except ConnectionError: print('\n[Warning]: Service answers-storage is unavailable.\n') + sys.exit(1) except HTTPError as exc: print(_request_error_msg.format('DELETE' if args.cleanup else 'POST', exc.response)) + sys.exit(1) if __name__ == '__main__':