[Kimchi-devel] [PATCH 1/2] Issue #243: start/stop/display a VM whose name with "?"
Hongliang Wang
hlwang at linux.vnet.ibm.com
Mon Feb 24 06:42:37 UTC 2014
On 02/24/2014 10:58 AM, shaohef at linux.vnet.ibm.com wrote:
> From: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
Tested-by: Hongliang Wang <hlwang at linux.vnet.ibm.com>
>
> create a VM with name ubuntu?guest4
> start/stop/display this VM
>
> Kimchi will throw a exception:
> "Unexpected query string parameters: guest4"
>
> That's because the URL is not quoted when internal_redirect.
>
> Also unquote the ident before dispatch the resource.
>
> issue:
> https://github.com/kimchi-project/kimchi/issues/243
>
> Signed-off-by: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
> Signed-off-by: Hongliang Wang <hlwang at linux.vnet.ibm.com>
> ---
> src/kimchi/control/base.py | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/src/kimchi/control/base.py b/src/kimchi/control/base.py
> index 048dd34..50f8c43 100644
> --- a/src/kimchi/control/base.py
> +++ b/src/kimchi/control/base.py
> @@ -54,7 +54,6 @@ class Resource(object):
> """
> def __init__(self, model, ident=None):
> self.model = model
> - ident = ident if ident is None else urllib2.unquote(ident)
> self.ident = ident
> self.model_args = (ident,)
> self.update_params = []
> @@ -76,7 +75,8 @@ class Resource(object):
> fn = getattr(self.model, model_fn(self, action_name))
> ident = fn(*model_args)
> self._redirect(ident)
> - uri_params = tuple(self.model_args)
> + uri_params = tuple([urllib2.quote(arg.encode('utf-8'), safe="")
> + for arg in self.model_args])
> raise internal_redirect(self.uri_fmt % uri_params)
> except MissingParameter, e:
> raise cherrypy.HTTPError(400, e.message)
> @@ -238,6 +238,7 @@ class Collection(object):
> def _cp_dispatch(self, vpath):
> if vpath:
> ident = vpath.pop(0)
> + ident = urllib2.unquote(ident)
> # incoming text, from URL, is not unicode, need decode
> args = self.resource_args + [ident.decode("utf-8")]
> return self.resource(self.model, *args)
More information about the Kimchi-devel
mailing list