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

Merge branch...

Merge branch '15-update-prepare_answers-py-to-delete-records-from-answers-storage-service' into 'master'

Resolve "Update 'prepare_answers.py' to delete records from answers-storage service"

Closes #15

See merge request muni-kypo-crp/backend-python/kypo-ansible-runner!17
parents a0fee302 6371d107
No related branches found
No related tags found
No related merge requests found
...@@ -15,7 +15,7 @@ RUN rm -rf /var/cache/apt/ ...@@ -15,7 +15,7 @@ RUN rm -rf /var/cache/apt/
RUN mkdir -p /root/.ssh RUN mkdir -p /root/.ssh
COPY ./entrypoint.sh /app/ COPY ./entrypoint.sh /app/
COPY prepare_answers.py /app/ COPY manage_answers.py /app/
WORKDIR /app WORKDIR /app
......
...@@ -59,7 +59,7 @@ ANSWERS_FILE=$(realpath 'answers.json') ...@@ -59,7 +59,7 @@ ANSWERS_FILE=$(realpath 'answers.json')
echo {} > "$ANSWERS_FILE" echo {} > "$ANSWERS_FILE"
VARIABLES_FILE='variables.yml' VARIABLES_FILE='variables.yml'
PREPARE_ANSWERS_PY='../prepare_answers.py' PREPARE_ANSWERS_PY='../manage_answers.py'
if [ -f $VARIABLES_FILE ]; then if [ -f $VARIABLES_FILE ]; then
python3.8 "$PREPARE_ANSWERS_PY" "$INVENTORY_FILE" "$ANSWERS_FILE" python3.8 "$PREPARE_ANSWERS_PY" "$INVENTORY_FILE" "$ANSWERS_FILE"
fi fi
......
...@@ -36,8 +36,7 @@ def generate_answers(inventory_variables): ...@@ -36,8 +36,7 @@ def generate_answers(inventory_variables):
return generate(variable_list, seed) return generate(variable_list, seed)
def get_post_data_json(inventory_variables, generated_answers): def get_post_data_json(sandbox_id, generated_answers):
sandbox_id = inventory_variables['kypo_global_sandbox_allocation_unit_id']
post_data = { post_data = {
'sandbox_ref_id': sandbox_id, 'sandbox_ref_id': sandbox_id,
'sandbox_answers': [] 'sandbox_answers': []
...@@ -52,13 +51,30 @@ def get_post_data_json(inventory_variables, generated_answers): ...@@ -52,13 +51,30 @@ def get_post_data_json(inventory_variables, generated_answers):
return json.dumps(post_data, indent=4) return json.dumps(post_data, indent=4)
def send_post_request(inventory_variables, generated_answers): def get_answers(sandbox_id):
post_data_json = get_post_data_json(inventory_variables, generated_answers) return requests.get(KYPO_ANSWERS_STORAGE_API_URL + '/sandboxes/' + str(sandbox_id) + '/answers')
post_response = requests.post(KYPO_ANSWERS_STORAGE_API_URL + '/sandboxes', data=post_data_json,
headers=HEADERS)
def delete_answers(sandbox_id):
return requests.delete(KYPO_ANSWERS_STORAGE_API_URL + '/sandboxes/' + str(sandbox_id))
def post_answers(sandbox_id, generated_answers):
post_data_json = get_post_data_json(sandbox_id, generated_answers)
post_response = requests.post(KYPO_ANSWERS_STORAGE_API_URL + '/sandboxes',
data=post_data_json, headers=HEADERS)
post_response.raise_for_status() post_response.raise_for_status()
def manage_answers(inventory_variables, generated_answers):
sandbox_id = inventory_variables['kypo_global_sandbox_allocation_unit_id']
if get_answers(sandbox_id).status_code == 404:
post_answers(sandbox_id, generated_answers)
else:
delete_response = delete_answers(sandbox_id)
delete_response.raise_for_status()
def main(): def main():
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('inventory_path') parser.add_argument('inventory_path')
...@@ -70,7 +86,7 @@ def main(): ...@@ -70,7 +86,7 @@ def main():
generated_answers = generate_answers(inventory_variables) generated_answers = generate_answers(inventory_variables)
create_answers_file(generated_answers, args.answers_path) create_answers_file(generated_answers, args.answers_path)
try: try:
send_post_request(inventory_variables, generated_answers) manage_answers(inventory_variables, generated_answers)
print('\n[OK]: Answers are generated successfully and uploaded to answers-storage' print('\n[OK]: Answers are generated successfully and uploaded to answers-storage'
' container.\n') ' container.\n')
except ConnectionError: except ConnectionError:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment