Fixes downloading a keypair
This patch fixes the invalid error which user gets when downloading a keypair that wasn't saved from the keypair download link from the keypair download page. When user clicks the download link, i just sending that to a different url and then deleting the keypair and then again creating it with same name. Change-Id: I4f9166f112487a500d23f9cc98b98660be2ebe55 Closes-bug: #1182797
This commit is contained in:
@@ -100,6 +100,22 @@ class KeyPairViewTests(test.TestCase):
|
||||
|
||||
self.assertTrue(res.has_header('content-disposition'))
|
||||
|
||||
@test.create_stubs({api.nova: ("keypair_create", "keypair_delete")})
|
||||
def test_regenerate_keypair_get(self):
|
||||
keypair = self.keypairs.first()
|
||||
keypair.private_key = "secret"
|
||||
optional_param = "regenerate"
|
||||
api.nova.keypair_delete(IsA(http.HttpRequest), keypair.name)
|
||||
api.nova.keypair_create(IsA(http.HttpRequest),
|
||||
keypair.name).AndReturn(keypair)
|
||||
self.mox.ReplayAll()
|
||||
url = reverse('horizon:project:access_and_security:keypairs:generate',
|
||||
kwargs={'keypair_name': keypair.name,
|
||||
'optional': optional_param})
|
||||
res = self.client.get(url)
|
||||
|
||||
self.assertTrue(res.has_header('content-disposition'))
|
||||
|
||||
@test.create_stubs({api.nova: ("keypair_import",)})
|
||||
def test_import_keypair(self):
|
||||
key1_name = "new_key_pair"
|
||||
|
||||
@@ -30,4 +30,6 @@ urlpatterns = patterns('',
|
||||
name='download'),
|
||||
url(r'^(?P<keypair_name>[^/]+)/generate/$', views.GenerateView.as_view(),
|
||||
name='generate'),
|
||||
url(r'^(?P<keypair_name>[^/]+)/(?P<optional>[^/]+)/generate/$',
|
||||
views.GenerateView.as_view(), name='generate'),
|
||||
)
|
||||
|
||||
@@ -62,8 +62,11 @@ class DownloadView(TemplateView):
|
||||
|
||||
|
||||
class GenerateView(View):
|
||||
def get(self, request, keypair_name=None):
|
||||
def get(self, request, keypair_name=None, optional=None):
|
||||
try:
|
||||
if optional == "regenerate":
|
||||
api.nova.keypair_delete(request, keypair_name)
|
||||
|
||||
keypair = api.nova.keypair_create(request, keypair_name)
|
||||
except Exception:
|
||||
redirect = reverse('horizon:project:access_and_security:index')
|
||||
|
||||
Reference in New Issue
Block a user