Michael Pasternak has uploaded a new change for review.

Change subject: sdk: use cached argument/s rather than demanding them in methods
......................................................................

sdk: use cached argument/s rather than demanding them in methods

Filter header value cached during proxy .ctr initiation and then
reused instead of asking for it in different methods

Change-Id: I45d2b7899035b64cfda0abce5a68287fd323ac1a
Signed-off-by: Michael Pasternak <[email protected]>
---
M src/codegen/doc/documentation.py
M src/codegen/imp/imprt.py
M src/codegen/utils/headerutils.py
M src/ovirtsdk/infrastructure/brokers.py
4 files changed, 51 insertions(+), 60 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine-sdk refs/changes/95/7495/1

diff --git a/src/codegen/doc/documentation.py b/src/codegen/doc/documentation.py
index 0a6c503..4fbb67e 100644
--- a/src/codegen/doc/documentation.py
+++ b/src/codegen/doc/documentation.py
@@ -21,7 +21,7 @@
     OVERLOAD_TEMPLATE = 'Overload'
 
     @staticmethod
-    def document(link, custom_params={}, mapper={}):
+    def document(link, custom_params={}, mapper={}, HEADERS_EXCLUDE = 
['Content-Type', 'Filter']):
         '''
         @param body: request body
         @param custom_params: custom params to add {param:required=true|false}
@@ -51,8 +51,6 @@
 
         custom_mand_param_doc_template = "@param %s\n"
         custom_opt_param_doc_template = "[@param %s]\n"
-
-        HEADERS_EXCLUDE = ['Content-Type']
 
         doc_str += doc_str_in
         doc_str += type_doc if type_doc.find('@type None:') == -1 else ''
@@ -94,14 +92,15 @@
         if hasattr(link, 'request') and hasattr(link.request, 'headers') and \
            link.request.headers:
             for header_parameter in link.request.headers.header:
+                header_name = header_parameter.name.lower().replace('-', '_')
                 if header_parameter.name not in HEADERS_EXCLUDE:
                     if header_parameter.required:
                         doc_str += Documentation.DOC_OFFSET + 
mand_param_doc_template % \
-                                                              
(header_parameter.name.lower().replace('-', '_'),
+                                                              (header_name,
                                                                
header_parameter.value)
                     else:
                         doc_str += Documentation.DOC_OFFSET + 
opt_param_doc_template % \
-                                                              
(header_parameter.name.lower().replace('-', '_'),
+                                                              (header_name,
                                                                
header_parameter.value)
 
         doc_str += (('\n' + return_doc) if doc_str != offset + "'''\n"
diff --git a/src/codegen/imp/imprt.py b/src/codegen/imp/imprt.py
index 1a8a93d..56809b0 100644
--- a/src/codegen/imp/imprt.py
+++ b/src/codegen/imp/imprt.py
@@ -52,6 +52,7 @@
 "from ovirtsdk.utils.parsehelper import ParseHelper\n" + \
 "from ovirtsdk.utils.searchhelper import SearchHelper\n" + \
 "from ovirtsdk.infrastructure.common import Base\n" + \
+"from ovirtsdk.infrastructure import contextmanager\n" + \
 "from ovirtsdk.infrastructure.errors import RequestError\n\n\n"
 
 class Import(object):
diff --git a/src/codegen/utils/headerutils.py b/src/codegen/utils/headerutils.py
index 63beafb..3375e32 100644
--- a/src/codegen/utils/headerutils.py
+++ b/src/codegen/utils/headerutils.py
@@ -19,18 +19,22 @@
 class HeaderUtils(object):
 
     @staticmethod
-    def generate_method_params(link, HEADERS_EXCLUDE=['Content-Type']):
+    def generate_method_params(link, HEADERS_EXCLUDE=['Content-Type'], 
CACHED_HEADERS={'filter':'contextmanager.get(\'filter\')'}):
         params_str = ''
         headers_str = ''
         if hasattr(link, 'request') and hasattr(link.request, 'headers') and \
            link.request.headers:
             for header_parameter in link.request.headers.header:
                 if header_parameter.name not in HEADERS_EXCLUDE:
-                    if header_parameter.required:
-                        params_str += 
header_parameter.name.lower().replace('-', '_') + ', '
+                    header_name = header_parameter.name.lower().replace('-', 
'_')
+                    if header_name not in CACHED_HEADERS.keys():
+                        if header_parameter.required:
+                            params_str += header_name  + ', '
+                        else:
+                            params_str += header_name + '=None, '
+                        headers_str += ', "' + header_parameter.name + '":' + 
header_parameter.name.lower().replace('-', '_')
                     else:
-                        params_str += 
header_parameter.name.lower().replace('-', '_') + '=None, '
-                    headers_str += ', "' + header_parameter.name + '":' + 
header_parameter.name.lower().replace('-', '_')
+                        headers_str += ', "' + header_parameter.name + '":' + 
CACHED_HEADERS[header_name]
             headers_str = headers_str[2:] if headers_str != '' else headers_str
         return params_str[:len(params_str) - 2] if params_str != '' else 
params_str, '{' + headers_str + '}'
 
diff --git a/src/ovirtsdk/infrastructure/brokers.py 
b/src/ovirtsdk/infrastructure/brokers.py
index 4ce578d..0bd34f0 100644
--- a/src/ovirtsdk/infrastructure/brokers.py
+++ b/src/ovirtsdk/infrastructure/brokers.py
@@ -20,7 +20,7 @@
 ########################################
 
 '''
-Generated at: 2012-08-27 11:32:04.178111
+Generated at: 2012-08-27 13:20:10.463361
 
 @author: [email protected]
 '''
@@ -31,6 +31,7 @@
 from ovirtsdk.utils.parsehelper import ParseHelper
 from ovirtsdk.utils.searchhelper import SearchHelper
 from ovirtsdk.infrastructure.common import Base
+from ovirtsdk.infrastructure import contextmanager
 from ovirtsdk.infrastructure.errors import RequestError
 
 
@@ -736,11 +737,10 @@
                                       headers={"Expect":expect, 
"Correlation-Id":correlation_id})
         return Cluster(result)
 
-    def get(self, name='name', filter=None, **kwargs):
+    def get(self, name='name', **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param name: string (string the name of the entity)]
-        [@param filter: true|false]
 
         @return Clusters:
         '''
@@ -750,23 +750,22 @@
         if kwargs and kwargs.has_key('id') and kwargs['id'] <> None:
             try :
                 return Cluster(self._getProxy().get(url=UrlHelper.append(url, 
kwargs['id']),
-                                                              
headers={"Filter":filter}))
+                                                              
headers={"Filter":contextmanager.get('filter')}))
             except RequestError, err:
                 if err.status and err.status == 404:
                     return None
                 raise err
         else:
             result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search':'name='+name}),
-                                          
headers={"Filter":filter}).get_cluster()
+                                          
headers={"Filter":contextmanager.get('filter')}).get_cluster()
             return Cluster(FilterHelper.getItem(FilterHelper.filter(result, 
kwargs)))
 
-    def list(self, query=None, case_sensitive=True, max=None, filter=None, 
**kwargs):
+    def list(self, query=None, case_sensitive=True, max=None, **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param query: string (oVirt engine search dialect query)]
         [@param case_sensitive: boolean (true|false)]
         [@param max: int (max results)]
-        [@param filter: true|false]
 
         @return Clusters:
         '''
@@ -774,7 +773,7 @@
         url='/api/clusters'
 
         result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search:query':query,'case_sensitive:matrix':case_sensitive,'max:matrix':max}),
-                                      headers={"Filter":filter}).get_cluster()
+                                      
headers={"Filter":contextmanager.get('filter')}).get_cluster()
         return ParseHelper.toCollection(Cluster,
                                         FilterHelper.filter(result, kwargs))
 
@@ -1181,11 +1180,10 @@
                                       headers={"Expect":expect, 
"Correlation-Id":correlation_id})
         return DataCenter(result)
 
-    def get(self, name='name', filter=None, **kwargs):
+    def get(self, name='name', **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param name: string (string the name of the entity)]
-        [@param filter: true|false]
 
         @return DataCenters:
         '''
@@ -1195,23 +1193,22 @@
         if kwargs and kwargs.has_key('id') and kwargs['id'] <> None:
             try :
                 return 
DataCenter(self._getProxy().get(url=UrlHelper.append(url, kwargs['id']),
-                                                              
headers={"Filter":filter}))
+                                                              
headers={"Filter":contextmanager.get('filter')}))
             except RequestError, err:
                 if err.status and err.status == 404:
                     return None
                 raise err
         else:
             result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search':'name='+name}),
-                                          
headers={"Filter":filter}).get_data_center()
+                                          
headers={"Filter":contextmanager.get('filter')}).get_data_center()
             return DataCenter(FilterHelper.getItem(FilterHelper.filter(result, 
kwargs)))
 
-    def list(self, query=None, case_sensitive=True, max=None, filter=None, 
**kwargs):
+    def list(self, query=None, case_sensitive=True, max=None, **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param query: string (oVirt engine search dialect query)]
         [@param case_sensitive: boolean (true|false)]
         [@param max: int (max results)]
-        [@param filter: true|false]
 
         @return DataCenters:
         '''
@@ -1219,7 +1216,7 @@
         url='/api/datacenters'
 
         result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search:query':query,'case_sensitive:matrix':case_sensitive,'max:matrix':max}),
-                                      
headers={"Filter":filter}).get_data_center()
+                                      
headers={"Filter":contextmanager.get('filter')}).get_data_center()
         return ParseHelper.toCollection(DataCenter,
                                         FilterHelper.filter(result, kwargs))
 
@@ -3000,11 +2997,10 @@
                                       headers={"Expect":expect, 
"Correlation-Id":correlation_id})
         return Host(result)
 
-    def get(self, name='name', filter=None, **kwargs):
+    def get(self, name='name', **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param name: string (string the name of the entity)]
-        [@param filter: true|false]
 
         @return Hosts:
         '''
@@ -3014,23 +3010,22 @@
         if kwargs and kwargs.has_key('id') and kwargs['id'] <> None:
             try :
                 return Host(self._getProxy().get(url=UrlHelper.append(url, 
kwargs['id']),
-                                                              
headers={"Filter":filter}))
+                                                              
headers={"Filter":contextmanager.get('filter')}))
             except RequestError, err:
                 if err.status and err.status == 404:
                     return None
                 raise err
         else:
             result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search':'name='+name}),
-                                          headers={"Filter":filter}).get_host()
+                                          
headers={"Filter":contextmanager.get('filter')}).get_host()
             return Host(FilterHelper.getItem(FilterHelper.filter(result, 
kwargs)))
 
-    def list(self, query=None, case_sensitive=True, max=None, filter=None, 
**kwargs):
+    def list(self, query=None, case_sensitive=True, max=None, **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param query: string (oVirt engine search dialect query)]
         [@param case_sensitive: boolean (true|false)]
         [@param max: int (max results)]
-        [@param filter: true|false]
 
         @return Hosts:
         '''
@@ -3038,7 +3033,7 @@
         url='/api/hosts'
 
         result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search:query':query,'case_sensitive:matrix':case_sensitive,'max:matrix':max}),
-                                      headers={"Filter":filter}).get_host()
+                                      
headers={"Filter":contextmanager.get('filter')}).get_host()
         return ParseHelper.toCollection(Host,
                                         FilterHelper.filter(result, kwargs))
 
@@ -3834,11 +3829,10 @@
                                       headers={"Expect":expect, 
"Correlation-Id":correlation_id})
         return StorageDomain(result)
 
-    def get(self, name='name', filter=None, **kwargs):
+    def get(self, name='name', **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param name: string (string the name of the entity)]
-        [@param filter: true|false]
 
         @return StorageDomains:
         '''
@@ -3848,23 +3842,22 @@
         if kwargs and kwargs.has_key('id') and kwargs['id'] <> None:
             try :
                 return 
StorageDomain(self._getProxy().get(url=UrlHelper.append(url, kwargs['id']),
-                                                              
headers={"Filter":filter}))
+                                                              
headers={"Filter":contextmanager.get('filter')}))
             except RequestError, err:
                 if err.status and err.status == 404:
                     return None
                 raise err
         else:
             result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search':'name='+name}),
-                                          
headers={"Filter":filter}).get_storage_domain()
+                                          
headers={"Filter":contextmanager.get('filter')}).get_storage_domain()
             return 
StorageDomain(FilterHelper.getItem(FilterHelper.filter(result, kwargs)))
 
-    def list(self, query=None, case_sensitive=True, max=None, filter=None, 
**kwargs):
+    def list(self, query=None, case_sensitive=True, max=None, **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param query: string (oVirt engine search dialect query)]
         [@param case_sensitive: boolean (true|false)]
         [@param max: int (max results)]
-        [@param filter: true|false]
 
         @return StorageDomains:
         '''
@@ -3872,7 +3865,7 @@
         url='/api/storagedomains'
 
         result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search:query':query,'case_sensitive:matrix':case_sensitive,'max:matrix':max}),
-                                      
headers={"Filter":filter}).get_storage_domain()
+                                      
headers={"Filter":contextmanager.get('filter')}).get_storage_domain()
         return ParseHelper.toCollection(StorageDomain,
                                         FilterHelper.filter(result, kwargs))
 
@@ -4499,11 +4492,10 @@
                                       headers={"Expect":expect, 
"Correlation-Id":correlation_id})
         return Template(result)
 
-    def get(self, name='name', filter=None, **kwargs):
+    def get(self, name='name', **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param name: string (string the name of the entity)]
-        [@param filter: true|false]
 
         @return Templates:
         '''
@@ -4513,23 +4505,22 @@
         if kwargs and kwargs.has_key('id') and kwargs['id'] <> None:
             try :
                 return Template(self._getProxy().get(url=UrlHelper.append(url, 
kwargs['id']),
-                                                              
headers={"Filter":filter}))
+                                                              
headers={"Filter":contextmanager.get('filter')}))
             except RequestError, err:
                 if err.status and err.status == 404:
                     return None
                 raise err
         else:
             result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search':'name='+name}),
-                                          
headers={"Filter":filter}).get_template()
+                                          
headers={"Filter":contextmanager.get('filter')}).get_template()
             return Template(FilterHelper.getItem(FilterHelper.filter(result, 
kwargs)))
 
-    def list(self, query=None, case_sensitive=True, max=None, filter=None, 
**kwargs):
+    def list(self, query=None, case_sensitive=True, max=None, **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param query: string (oVirt engine search dialect query)]
         [@param case_sensitive: boolean (true|false)]
         [@param max: int (max results)]
-        [@param filter: true|false]
 
         @return Templates:
         '''
@@ -4537,7 +4528,7 @@
         url='/api/templates'
 
         result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search:query':query,'case_sensitive:matrix':case_sensitive,'max:matrix':max}),
-                                      headers={"Filter":filter}).get_template()
+                                      
headers={"Filter":contextmanager.get('filter')}).get_template()
         return ParseHelper.toCollection(Template,
                                         FilterHelper.filter(result, kwargs))
 
@@ -6565,11 +6556,10 @@
                                       
headers={"Correlation-Id":correlation_id, "Expect":expect})
         return VM(result)
 
-    def get(self, name='name', filter=None, **kwargs):
+    def get(self, name='name', **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param name: string (string the name of the entity)]
-        [@param filter: true|false]
 
         @return VMs:
         '''
@@ -6579,23 +6569,22 @@
         if kwargs and kwargs.has_key('id') and kwargs['id'] <> None:
             try :
                 return VM(self._getProxy().get(url=UrlHelper.append(url, 
kwargs['id']),
-                                                              
headers={"Filter":filter}))
+                                                              
headers={"Filter":contextmanager.get('filter')}))
             except RequestError, err:
                 if err.status and err.status == 404:
                     return None
                 raise err
         else:
             result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search':'name='+name}),
-                                          headers={"Filter":filter}).get_vm()
+                                          
headers={"Filter":contextmanager.get('filter')}).get_vm()
             return VM(FilterHelper.getItem(FilterHelper.filter(result, 
kwargs)))
 
-    def list(self, query=None, case_sensitive=True, max=None, filter=None, 
**kwargs):
+    def list(self, query=None, case_sensitive=True, max=None, **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param query: string (oVirt engine search dialect query)]
         [@param case_sensitive: boolean (true|false)]
         [@param max: int (max results)]
-        [@param filter: true|false]
 
         @return VMs:
         '''
@@ -6603,7 +6592,7 @@
         url='/api/vms'
 
         result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search:query':query,'case_sensitive:matrix':case_sensitive,'max:matrix':max}),
-                                      headers={"Filter":filter}).get_vm()
+                                      
headers={"Filter":contextmanager.get('filter')}).get_vm()
         return ParseHelper.toCollection(VM,
                                         FilterHelper.filter(result, kwargs))
 
@@ -6788,11 +6777,10 @@
                                       headers={"Expect":expect, 
"Correlation-Id":correlation_id})
         return VmPool(result)
 
-    def get(self, name='name', filter=None, **kwargs):
+    def get(self, name='name', **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param name: string (string the name of the entity)]
-        [@param filter: true|false]
 
         @return VmPools:
         '''
@@ -6802,23 +6790,22 @@
         if kwargs and kwargs.has_key('id') and kwargs['id'] <> None:
             try :
                 return VmPool(self._getProxy().get(url=UrlHelper.append(url, 
kwargs['id']),
-                                                              
headers={"Filter":filter}))
+                                                              
headers={"Filter":contextmanager.get('filter')}))
             except RequestError, err:
                 if err.status and err.status == 404:
                     return None
                 raise err
         else:
             result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search':'name='+name}),
-                                          
headers={"Filter":filter}).get_vmpool()
+                                          
headers={"Filter":contextmanager.get('filter')}).get_vmpool()
             return VmPool(FilterHelper.getItem(FilterHelper.filter(result, 
kwargs)))
 
-    def list(self, query=None, case_sensitive=True, max=None, filter=None, 
**kwargs):
+    def list(self, query=None, case_sensitive=True, max=None, **kwargs):
         '''
         [@param **kwargs: dict (property based filtering)]
         [@param query: string (oVirt engine search dialect query)]
         [@param case_sensitive: boolean (true|false)]
         [@param max: int (max results)]
-        [@param filter: true|false]
 
         @return VmPools:
         '''
@@ -6826,7 +6813,7 @@
         url='/api/vmpools'
 
         result = self._getProxy().get(url=SearchHelper.appendQuery(url, 
{'search:query':query,'case_sensitive:matrix':case_sensitive,'max:matrix':max}),
-                                      headers={"Filter":filter}).get_vmpool()
+                                      
headers={"Filter":contextmanager.get('filter')}).get_vmpool()
         return ParseHelper.toCollection(VmPool,
                                         FilterHelper.filter(result, kwargs))
 


--
To view, visit http://gerrit.ovirt.org/7495
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I45d2b7899035b64cfda0abce5a68287fd323ac1a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine-sdk
Gerrit-Branch: master
Gerrit-Owner: Michael Pasternak <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to