Skip to content

Commit

Permalink
Rename restore view to recreate for clarity (#308)
Browse files Browse the repository at this point in the history
We are not restoring the original object but create a new one with the
same data.
  • Loading branch information
kofrezo committed Apr 4, 2023
1 parent 48ef586 commit 00e4de0
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 17 deletions.
2 changes: 1 addition & 1 deletion serveradmin/serverdb/templates/serverdb/changes.html
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ <h3>
<ul>
{% for change in commit.change_set.get_queryset %}
{% if change.change_type == 'delete' %}
<li><a href="{% url 'serverdb_restore' change.id %}">Recreate {{ change.hostname }}</a></li>
<li><a href="{% url 'serverdb_recreate' change.id %}">Recreate {{ change.hostname }}</a></li>
{% endif %}
{% endfor %}
</ul>
Expand Down
4 changes: 2 additions & 2 deletions serveradmin/serverdb/templates/serverdb/history.html
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,10 @@ <h3>History for {{ name }}</h3>
<td>{{ change.commit.app|default:"Servershell" }}</td>
<td>{{ change.commit.user }}</td>
<td>
<form method="post" action="{% url 'serverdb_restore' change.commit.id %}">
<form method="post" action="{% url 'serverdb_recreate' change.commit.id %}">
{% csrf_token %}
<input type="hidden" name="object_id" value="{{ change.server_id }}" />
<input class="btn btn-sm btn-danger" type="submit" value="Restore this server" />
<input class="btn btn-sm btn-danger" type="submit" value="Re-create this server" />
</form>
</td>
<td>-</td>
Expand Down
22 changes: 11 additions & 11 deletions serveradmin/serverdb/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,51 +13,51 @@ def setUp(self) -> None:
self.client.login(username='hannah.acker', password='hannah.acker')

def test_change_id_does_not_exist(self):
response = self.client.get('/serverdb/restore/-1')
response = self.client.get('/serverdb/recreate/-1')
self.assertEqual(404, response.status_code)

def test_restore_succeeds(self):
def test_recreate_succeeds(self):
vm = Query().new_object('vm')
vm['hostname'] = 'test-serverdb-restore'
vm['hostname'] = 'test-serverdb-recreate'
vm['intern_ip'] = IPAddress('10.0.0.1')
vm.commit(user=User.objects.first())

vm = Query({'hostname': 'test-serverdb-restore'})
vm = Query({'hostname': 'test-serverdb-recreate'})
object_id = vm.get()['object_id']
vm.delete()
vm.commit(user=User.objects.first())

change_id = Change.objects.filter(
object_id=object_id, change_type=Change.Type.DELETE).first().id
response = self.client.get(
f'/serverdb/restore/{change_id}', follow=True)
f'/serverdb/recreate/{change_id}', follow=True)

# restore view should have created the object again and redirect us
# recreate view should have created the object again and redirect us
# to the history of it.
self.assertEqual(200, response.status_code)
self.assertEqual('serverdb/history.html', response.template_name)
self.assertEqual(302, response.redirect_chain[0][1])

def test_restore_fails_if_hostname_exists(self):
def test_recreate_fails_if_hostname_exists(self):
vm = Query().new_object('vm')
vm['hostname'] = 'test-serverdb-restore'
vm['hostname'] = 'test-serverdb-recreate'
vm['intern_ip'] = IPAddress('10.0.0.1')
vm.commit(user=User.objects.first())

vm = Query({'hostname': 'test-serverdb-restore'})
vm = Query({'hostname': 'test-serverdb-recreate'})
object_id = vm.get()['object_id']
vm.delete()
vm.commit(user=User.objects.first())

vm = Query().new_object('vm')
vm['hostname'] = 'test-serverdb-restore'
vm['hostname'] = 'test-serverdb-recreate'
vm['intern_ip'] = IPAddress('10.0.0.2')
vm.commit(user=User.objects.first())

change_id = Change.objects.filter(
object_id=object_id, change_type=Change.Type.DELETE).first().id
response = self.client.get(
f'/serverdb/restore/{change_id}', follow=True)
f'/serverdb/recreate/{change_id}', follow=True)

# Restore should have failed as there is already an object with that
# hostname (again) and redirect us to changes view and display an
Expand Down
4 changes: 2 additions & 2 deletions serveradmin/serverdb/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@

from django.urls import path

from serveradmin.serverdb.views import changes, restore, history
from serveradmin.serverdb.views import changes, recreate, history

urlpatterns = [
path('changes', changes, name='serverdb_changes'),
path('restore/<int:change_id>', restore, name='serverdb_restore'),
path('recreate/<int:change_id>', recreate, name='serverdb_recreate'),
path('history', history, name='serverdb_history'),
]
2 changes: 1 addition & 1 deletion serveradmin/serverdb/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ def history(request):


@login_required
def restore(request, change_id):
def recreate(request, change_id):
change = get_object_or_404(Change, pk=change_id)
server_object = change.change_json

Expand Down

0 comments on commit 00e4de0

Please sign in to comment.