Quote keypair name in keypair panel
Key pair name has multiple spaces and cannot be deleted under keypair panel. This patch is quote keypair name. Change-Id: I7f70032b315579c11059cf71d9c29083b5738854 Closes-Bug: #1824959
This commit is contained in:
parent
080373033e
commit
c81af496cf
|
@ -16,6 +16,7 @@ from django import urls
|
|||
from django.utils.translation import string_concat
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import ungettext_lazy
|
||||
from six.moves.urllib import parse
|
||||
|
||||
from horizon import tables
|
||||
|
||||
|
@ -46,7 +47,7 @@ class DeleteKeyPairs(tables.DeleteAction):
|
|||
)
|
||||
|
||||
def delete(self, request, obj_id):
|
||||
api.nova.keypair_delete(request, obj_id)
|
||||
api.nova.keypair_delete(request, parse.unquote(obj_id))
|
||||
|
||||
|
||||
class QuotaKeypairMixin(object):
|
||||
|
@ -122,7 +123,7 @@ class KeyPairsTable(tables.DataTable):
|
|||
fingerprint = tables.Column("fingerprint", verbose_name=_("Fingerprint"))
|
||||
|
||||
def get_object_id(self, keypair):
|
||||
return keypair.name
|
||||
return parse.quote(keypair.name)
|
||||
|
||||
class Meta(object):
|
||||
name = "keypairs"
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
from django.urls import reverse
|
||||
import mock
|
||||
import six
|
||||
from six.moves.urllib import parse
|
||||
|
||||
from openstack_dashboard import api
|
||||
from openstack_dashboard.dashboards.project.key_pairs.forms \
|
||||
|
@ -58,7 +59,8 @@ class KeyPairTests(test.TestCase):
|
|||
self.mock_keypair_list.return_value = self.keypairs.list()
|
||||
self.mock_keypair_delete.return_value = None
|
||||
|
||||
formData = {'action': 'keypairs__delete__%s' % keypair.name}
|
||||
keypair_name = parse.quote(keypair.name)
|
||||
formData = {'action': 'keypairs__delete__%s' % keypair_name}
|
||||
res = self.client.post(INDEX_URL, formData)
|
||||
self.assertRedirectsNoFollow(res, INDEX_URL)
|
||||
|
||||
|
@ -74,7 +76,8 @@ class KeyPairTests(test.TestCase):
|
|||
self.mock_keypair_list.return_value = self.keypairs.list()
|
||||
self.mock_keypair_delete.side_effect = self.exceptions.nova
|
||||
|
||||
formData = {'action': 'keypairs__delete__%s' % keypair.name}
|
||||
keypair_name = parse.quote(keypair.name)
|
||||
formData = {'action': 'keypairs__delete__%s' % keypair_name}
|
||||
res = self.client.post(INDEX_URL, formData)
|
||||
self.assertRedirectsNoFollow(res, INDEX_URL)
|
||||
|
||||
|
|
Loading…
Reference in New Issue