
On 03/23/2016 05:50 PM, Ramon Medeiros wrote:
On 03/23/2016 05:06 PM, Aline Manera wrote:
On 03/23/2016 11:10 AM, Ramon Medeiros wrote:
On 03/23/2016 10:44 AM, Paulo Ricardo Paz Vital wrote:
First of all, what's the reason to have this method instead of use TemplateModel.lookup(name) ? lookup uses the session object, which is not available at templates.
Sorry! Why the objectstore is not available at templates? It should be available for the whole application.
how i can get it? I tried to pass the object store by parameter via LibvirtTemplate, but not successful
The real problem here is that you are mixing the model with vmtemplate The model is responsible to store and deal with vmtemplate data. VMTemplate only gets the data, do some merges with default values and provide functions to export the guest XML.
Signed-off-by: Ramon Medeiros <ramonn at linux.vnet.ibm.com> --- utils.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+)
diff --git a/utils.py b/utils.py index f43f26e..0a3d02d 100644 --- a/utils.py +++ b/utils.py @@ -35,6 +35,36 @@ from wok.xmlutils.utils import xpath_get_text MAX_REDIRECTION_ALLOWED = 5
+def get_template_by_name(name): + + conn = sqlite3.connect(config.get_object_store(), timeout=10) + cursor = conn.cursor() + + # if * is passed: select all fields + sql = "SELECT json from objects where type=='template' and id=='%s'" % name + if name == "*": + sql = "SELECT json from objects where type == 'template'" I don't like the idea to pass as argument a '*' mark. My suggestion is set the method signature to get_template_by_name(name=all) and
On 03/22/2016 04:20 PM, Ramon Medeiros wrote: them, do something like:
sql = "SELECT json from objects where type == 'template'" if name != 'all': sql += " and id=='%s'" % name
In addition, I think that search by all templates is not coherent with the method name :-P we can change the *
+ + # execute and fetch results + cursor.execute(sql) + content = cursor.fetchall() + + # no record: return nothing + if len(content) == 0: + return {} + + # sqllite returns a tuple of strings + # iterate over it and return a list of dictonaries + if len(content[0]) == 1: + return eval(content[0][0]) + + result = [] + for dictonary in content[0]: + result.append(eval(dictonary)) + + return result + + def _uri_to_name(collection, uri): expr = '/plugins/kimchi/%s/(.*?)$' % collection m = re.match(expr, uri)
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel