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
No related branches found
No related tags found
No related merge requests found
...@@ -65,7 +65,7 @@ echo {} > "$ANSWERS_FILE" ...@@ -65,7 +65,7 @@ echo {} > "$ANSWERS_FILE"
VARIABLES_FILE='variables.yml' VARIABLES_FILE='variables.yml'
if [ -f $VARIABLES_FILE ]; then 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 fi
if $USER_CLEANUP; then if $USER_CLEANUP; then
python3.8 "$PREPARE_ANSWERS_PY" "$INVENTORY_FILE" "$ANSWERS_FILE" "$ANSWERS_STORAGE_API" --cleanup python3.8 "$PREPARE_ANSWERS_PY" "$INVENTORY_FILE" "$ANSWERS_FILE" "$ANSWERS_STORAGE_API" --cleanup
......
...@@ -2,6 +2,7 @@ import yaml ...@@ -2,6 +2,7 @@ import yaml
import json import json
import requests import requests
import argparse import argparse
import sys
from generator.var_generator import generate from generator.var_generator import generate
from generator.var_parser import parser_var_file from generator.var_parser import parser_var_file
...@@ -35,9 +36,10 @@ def generate_answers(inventory_variables): ...@@ -35,9 +36,10 @@ def generate_answers(inventory_variables):
return generate(variable_list, seed) 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 = { post_data = {
'sandbox_ref_id': sandbox_id, 'sandbox_ref_id': sandbox_id,
'allocation_unit_id': allocation_id,
'sandbox_answers': [] 'sandbox_answers': []
} }
...@@ -50,12 +52,12 @@ def get_post_data_json(sandbox_id, generated_answers): ...@@ -50,12 +52,12 @@ def get_post_data_json(sandbox_id, generated_answers):
return json.dumps(post_data, indent=4) return json.dumps(post_data, indent=4)
def delete_answers(answers_storage_api, sandbox_id): def delete_answers(answers_storage_api, allocation_id):
requests.delete(answers_storage_api + 'sandboxes/' + str(sandbox_id)).raise_for_status() requests.delete(answers_storage_api + 'sandboxes/' + str(allocation_id)).raise_for_status()
def post_answers(answers_storage_api, 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, generated_answers) post_data_json = get_post_data_json(sandbox_id, allocation_id, generated_answers)
post_response = requests.post(answers_storage_api + 'sandboxes', post_response = requests.post(answers_storage_api + 'sandboxes',
data=post_data_json, headers=HEADERS) data=post_data_json, headers=HEADERS)
post_response.raise_for_status() post_response.raise_for_status()
...@@ -71,6 +73,7 @@ def main(): ...@@ -71,6 +73,7 @@ def main():
args = parser.parse_args() args = parser.parse_args()
inventory_variables = load_inventory_variables(args.inventory_path) inventory_variables = load_inventory_variables(args.inventory_path)
sandbox_id = inventory_variables['kypo_global_sandbox_id'] 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_file_path = args.answers_file_path
answers_storage_api = args.answers_storage_api answers_storage_api = args.answers_storage_api
...@@ -80,18 +83,20 @@ def main(): ...@@ -80,18 +83,20 @@ def main():
try: try:
if args.cleanup: if args.cleanup:
delete_answers(answers_storage_api, sandbox_id) delete_answers(answers_storage_api, allocation_id)
print(_success_msg.format('DELETE')) print(_success_msg.format('DELETE'))
return return
generated_answers = generate_answers(inventory_variables) generated_answers = generate_answers(inventory_variables)
create_answers_file(generated_answers, answers_file_path) 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')) print(_success_msg.format('POST'))
except ConnectionError: except ConnectionError:
print('\n[Warning]: Service answers-storage is unavailable.\n') print('\n[Warning]: Service answers-storage is unavailable.\n')
sys.exit(1)
except HTTPError as exc: except HTTPError as exc:
print(_request_error_msg.format('DELETE' if args.cleanup else 'POST', exc.response)) print(_request_error_msg.format('DELETE' if args.cleanup else 'POST', exc.response))
sys.exit(1)
if __name__ == '__main__': if __name__ == '__main__':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment