Skip to content
Snippets Groups Projects
Commit b62c3424 authored by Juraj Paluba's avatar Juraj Paluba
Browse files

Merge branch '24-add-allocation-id-when-saving-variables' into 'master'

Add allocation id when saving variables

See merge request muni-kypo-crp/backend-python/kypo-ansible-runner!25
parents b47b1890 bbc31b3c
Branches
Tags 23.04 v1.3.7
No related merge requests found
......@@ -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
......
......@@ -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__':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment