On 06/07/2012 05:14 PM, ShaoHe Feng wrote:
Hi all,

as we all know the current params.py was not completely by the
generateSD.py, there are parts that have to be updated manually.

now I have post a primarypatch to improve it.
http://gerrit.ovirt.org/#/c/4880/

it can generate some codes, but still two parts codes can not be generated.

they aretwo dictionaries: _rootClassMap and _elementToClassMap.

However, for I do get any clue to know these two dictionaries  from the
params.py.

The reason for these dictionaries is that "generateDS.py" generates classes for the complex types inside the API .xsd, but it doesn't generate anything for the tags that can appear as root tags in the XML documents used by the API. The map helps the parser find the classes that correspond to each of those tags.

It might be possible to generate this map from the list of classes using a rule like this:

  CamelCaseName -> camel_case_names

But there are exceptions like these:

  VLAN -> vlan
  IPs  -> ips
  IscsiDetails -> iscsi

You could write code that takes into account the exceptions and generates the map. But I think it is not worth, and error prone. I would rather take that chunk of code out of params.py and move it to an external file or to a constant, like you do for other chunks of code in paramsconf.py.

there are some questions:
1.
And the __all__ list  which include all the classes of _rootClassMap and
_elementToClassMap.
And there some classes  both in _rootClassMap and _elementToClassMap.

The "__all__" list is just a python mechanism to control the symbols that are imported when you do something like "from whatever import *". In this case "generateDS.py" is making sure that all the generated classes are imported, which is not really relevant for us.

2.
And  some of class in _rootClassMap inherit GeneratedsSuper class, some
inherit BaseResource class, and two classes inherit Link class.
And it is the same with _elementToClassMap.

so what is the difference between _rootClassMap and _elementToClassMap.
What rule to generate these two dictionaries.

I can't find any difference between those two dictionaries, they serve exactly the same purpose. Maybe Michael had a future use in mind.

3.
And also, how to generate the keys in _rootClassMap and
_elementToClassMap.Any rule to generate them?

there are some items in these two dictionaries

                        "access_control_list"           :
AccessControlList,   #  "_" among the word in key
                        "api"                                    : API,
                        "body"                                 : Body,
                         "iscsi"                                 :
IscsiDetails,             # key "iscsi" is one part of value "IscsiDetails"
                        "storage_domain"                : StorageDomain,
                        "topology"                           : CpuTopology,
                        "creation_status"                  : Status, #
key has a more word  "creation"  than the value.
                        "parent"                                : TagParent



--
Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain
Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.
_______________________________________________
Engine-devel mailing list
Engine-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-devel

Reply via email to