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
