From a23f1794d00ed1d78e16859c800b66cb87555796 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Fri, 20 Sep 2013 10:47:36 -0400 Subject: guest stuff --- virtinst/xmlbuilder.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'virtinst/xmlbuilder.py') diff --git a/virtinst/xmlbuilder.py b/virtinst/xmlbuilder.py index 7eb9834a..50e1524f 100644 --- a/virtinst/xmlbuilder.py +++ b/virtinst/xmlbuilder.py @@ -293,8 +293,23 @@ class XMLChildProperty(property): for obj in self._get(xmlbuilder)[:]: xmlbuilder._remove_child(obj) - def append(self, xmlbuilder, obj): - self._get(xmlbuilder).append(obj) + def append(self, xmlbuilder, newobj): + # Keep the list ordered by the order of passed in child classes + objlist = self._get(xmlbuilder) + if len(self.child_classes) == 1: + objlist.append(newobj) + return + + idx = 0 + for idx in range(len(objlist)): + obj = objlist[idx] + if (obj.__class__ not in self.child_classes or + (self.child_classes.index(newobj.__class__) < + self.child_classes.index(obj.__class__))): + break + idx += 1 + + objlist.insert(idx, newobj) def remove(self, xmlbuilder, obj): self._get(xmlbuilder).remove(obj) def set(self, xmlbuilder, obj): -- cgit v1.2.1