Michael Pasternak has uploaded a new change for review. Change subject: codegen: implement generic URI processing ......................................................................
codegen: implement generic URI processing Change-Id: I36d3914a0b8f639d0d6a32d1cc3ef18e6fb63541 Signed-off-by: Michael Pasternak <[email protected]> --- M src/codegen/rsdl/rsdlcodegen.py M src/ovirtsdk/infrastructure/brokers.py 2 files changed, 53 insertions(+), 18 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine-sdk refs/changes/62/12162/1 diff --git a/src/codegen/rsdl/rsdlcodegen.py b/src/codegen/rsdl/rsdlcodegen.py index 2760c71..a92bea6 100644 --- a/src/codegen/rsdl/rsdlcodegen.py +++ b/src/codegen/rsdl/rsdlcodegen.py @@ -244,7 +244,7 @@ else: self.__extendSubResource(root_coll, sub_coll, url, rel, http_method, body_type, link, response_type, collectionsHolder) - elif(ln is 3): + elif(ln >= 3): if (i is 1): root_coll = ParseHelper.getXmlWrapperType(k) if (i is 2): @@ -261,20 +261,21 @@ if (i is 3 and v is None and not self.__isCollection(link)): self.__createAction(root_coll, sub_coll, k, url, rel, http_method, body_type, link, response_type, collectionsHolder) - elif(i is 3): + elif(i >= 3): sub_root_coll = StringUtils.toSingular(root_coll, RsdlCodegen.COLLECTION_TO_ENTITY_EXCEPTIONS) + self.__toResourceType(sub_coll) sub_res_coll = self.__toResourceType(resources.keys()[2]) if (v is None and self.__isCollection(link)): self.__extendSubCollection(sub_root_coll, sub_res_coll, url, rel, http_method, body_type, link, response_type, collectionsHolder) - elif(self.__isAction(link)): - self.__createAction(sub_root_coll, None, sub_coll, url, rel, http_method, - body_type, link, response_type, collectionsHolder) + elif(self.__isAction(link) and i == ln): + self.__createAction(sub_root_coll, sub_res_coll, k, url, rel, http_method, + body_type, link, response_type, collectionsHolder, force_sub_resource=True) else: self.__extendSubResource(sub_root_coll, sub_res_coll, url, rel, http_method, body_type, link, response_type, collectionsHolder) - elif(ln > 3): - print 'WARNING: unsupported deep(' + str(len(resources)) + "): url: " + url + + root_coll = StringUtils.toSingular(sub_root_coll) + sub_coll = sub_res_coll def __extendCollection(self, collection, url, rel, http_method, body_type, link, response_type, collectionsHolder): @@ -338,7 +339,7 @@ def __createAction(self, root_coll, sub_coll, action_name, url, rel, http_method, body_type, link, response_type, collectionsHolder, - collection_action=False): + collection_action=False, force_sub_resource=False): ''' Creates action @@ -358,23 +359,29 @@ sub_resource = sub_coll[:len(sub_coll) - 1] if sub_coll is not None and not collection_action else None if sub_coll is None else sub_coll action_name = self.__adaptActionName(action_name, sub_resource if sub_resource is not None else resource) - if (sub_coll is None or sub_coll == ''): + if (sub_coll is None or sub_coll == '') and not force_sub_resource: if (not collectionsHolder.has_key(resource)): self.__extendCollection(root_coll, url, rel, http_method, body_type, link, response_type, collectionsHolder) action_body = Resource.action(url, body_type, link, action_name, resource, http_method, {}) collectionsHolder[resource]['body'] += action_body else: - nested_collection = root_coll[:len(root_coll) - 1] + sub_coll - nested_resource = nested_collection[:len(nested_collection) - 1] if not collection_action else nested_collection + if not force_sub_resource: + nested_collection = root_coll[:len(root_coll) - 1] + sub_coll + nested_resource = nested_collection[:len(nested_collection) - 1] if not collection_action else nested_collection - if (not collectionsHolder.has_key(nested_collection)): - self.__extendSubCollection(root_coll, sub_coll, url, rel, http_method, body_type, link, response_type, collectionsHolder) + if (not collectionsHolder.has_key(nested_collection)and not force_sub_resource): + self.__extendSubCollection(root_coll, sub_coll, url, rel, http_method, body_type, link, response_type, collectionsHolder) - if (not collectionsHolder.has_key(nested_resource)): - self.__extendSubResource(root_coll, sub_coll, url, rel, http_method, body_type, link, response_type, collectionsHolder) + if (not collectionsHolder.has_key(nested_resource) and not force_sub_resource): + self.__extendSubResource(root_coll, sub_coll, url, rel, http_method, body_type, link, response_type, collectionsHolder) - action_body = SubResource.action(url, link, action_name, resource, body_type, sub_resource, http_method, {}, collection_action) - collectionsHolder[nested_resource]['body'] += action_body + action_body = SubResource.action(url, link, action_name, resource, body_type, sub_resource, http_method, {}, collection_action) + + collectionsHolder[nested_resource]['body'] += action_body + else: + action_body = SubResource.action(url, link, action_name, resource, body_type, sub_resource, http_method, {}, collection_action) + + collectionsHolder[resource]['body'] += action_body # rename /preserved/ names def __adaptActionName(self, action_name, resource): diff --git a/src/ovirtsdk/infrastructure/brokers.py b/src/ovirtsdk/infrastructure/brokers.py index 069fd59..18afbf8 100644 --- a/src/ovirtsdk/infrastructure/brokers.py +++ b/src/ovirtsdk/infrastructure/brokers.py @@ -20,7 +20,7 @@ ############ GENERATED CODE ############ ######################################## -'''Generated at: 2013-02-15 15:17:52.316703''' +'''Generated at: 2013-02-18 15:46:57.594940''' from ovirtsdk.xml import params @@ -405,6 +405,34 @@ headers={'Content-type':None} ) + def replace(self, action=params.Action(), correlation_id=None): + ''' + @type Action: + + @param action.brick.server_id: string + @param action.brick.brick_dir: string + [@param action.force: boolean] + [@param correlation_id: any string] + + @return Action: + ''' + + url = '/api/clusters/{cluster:id}/glustervolumes/{glustervolume:id}/bricks/{brick:id}/replace' + + result = self.__getProxy().request( + method='POST', + url=UrlHelper.replace( + url, + {'{cluster:id}' : self.parentclass.parentclass.get_id(), + '{glustervolume:id}': self.parentclass.get_id(), + '{brick:id}': self.get_id()} + ), + body=ParseHelper.toXml(action), + headers={"Correlation-Id":correlation_id} + ) + + return result + class ClusterGlusterVolumeBricks(Base): def __init__(self, clusterglustervolume , context): -- To view, visit http://gerrit.ovirt.org/12162 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I36d3914a0b8f639d0d6a32d1cc3ef18e6fb63541 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
