LGTM Thanks,
Guido On Mon, Dec 16, 2013 at 5:50 PM, Klaus Aehlig <[email protected]> wrote: > > > commit 5b1ba1d9cd553a8c6e87594aad76983193cc8e76 > Merge: 89c63fb 7bc2c09 > Author: Klaus Aehlig <[email protected]> > Date: Mon Dec 16 17:23:19 2013 +0100 > > Merge branch 'stable-2.8' into stable-2.9 > > * stable-2.8 > Add support for blktap2 file-driver > Update opcodes test to include network tags > Make network tags searchable > Add network tag tests to QA > Fix RAPI network tag handling > Fix gnt-network list-tags > > Conflicts: > lib/cmdlib/tags.py > test/py/ganeti.hypervisor.hv_xen_unittest.py > Resolution: manually apply the changes from stable-2.8 to > the stable-2.9 code. > > diff --cc lib/cmdlib/tags.py > index 91b52fe,9f85f40..b480729 > --- a/lib/cmdlib/tags.py > +++ b/lib/cmdlib/tags.py > @@@ -134,13 -136,15 +139,17 @@@ class LUTagsSearch(NoHooksLU) > """Returns the tag list. > > """ > - cfg = self.cfg > - tgts = [("/cluster", cfg.GetClusterInfo())] > + tgts = [("/cluster", self.cfg.GetClusterInfo())] > - ilist = self.cfg.GetAllInstancesInfo().values() > - tgts.extend([("/instances/%s" % i.name, i) for i in ilist]) > - nlist = self.cfg.GetAllNodesInfo().values() > - tgts.extend([("/nodes/%s" % n.name, n) for n in nlist]) > - tgts.extend(("/nodegroup/%s" % n.name, n) > - for n in self.cfg.GetAllNodeGroupsInfo().values()) > + > - LUTagsSearch._ExtendTagTargets(tgts, "instances", > cfg.GetAllInstancesInfo()) > - LUTagsSearch._ExtendTagTargets(tgts, "nodes", cfg.GetAllNodesInfo()) > ++ LUTagsSearch._ExtendTagTargets(tgts, "instances", > ++ self.cfg.GetAllInstancesInfo()) > ++ LUTagsSearch._ExtendTagTargets(tgts, "nodes", > ++ self.cfg.GetAllNodesInfo()) > + LUTagsSearch._ExtendTagTargets(tgts, "nodegroup", > - cfg.GetAllNodeGroupsInfo()) > - LUTagsSearch._ExtendTagTargets(tgts, "network", > cfg.GetAllNetworksInfo()) > ++ self.cfg.GetAllNodeGroupsInfo()) > ++ LUTagsSearch._ExtendTagTargets(tgts, "network", > ++ self.cfg.GetAllNetworksInfo()) > + > results = [] > for path, target in tgts: > for tag in target.GetTags(): > diff --cc lib/constants.py > index e09f7b6,1453104..3c8e072 > --- a/lib/constants.py > +++ b/lib/constants.py > @@@ -609,8 -615,12 +609,9 @@@ RBD_CMD = "rbd > # file backend driver > FD_LOOP = "loop" > FD_BLKTAP = "blktap" > + FD_BLKTAP2 = "blktap2" > FD_DEFAULT = FD_LOOP > > -# the set of drbd-like disk types > -LDS_DRBD = compat.UniqueFrozenset([LD_DRBD8]) > - > # disk access mode > DISK_RDONLY = "ro" > DISK_RDWR = "rw" > diff --cc man/gnt-instance.rst > index 9189748,b652d5e..75914bb > --- a/man/gnt-instance.rst > +++ b/man/gnt-instance.rst > @@@ -37,10 -37,10 +37,10 @@@ AD > | [{-B|\--backend-parameters} *BEPARAMS*] > | [{-H|\--hypervisor-parameters} *HYPERVISOR* [: option=*value*... ]] > | [{-O|\--os-parameters} *param*=*value*... ] > - | [\--file-storage-dir *dir\_path*] [\--file-driver {loop \| blktap}] > + | [\--file-storage-dir *dir\_path*] [\--file-driver {loop \| blktap \| > blktap2}] > | {{-n|\--node} *node[:secondary-node]* \| {-I|\--iallocator} *name*} > | {{-o|\--os-type} *os-type*} > -| [\--submit] > +| [\--submit] [\--print-job-id] > | [\--ignore-ipolicy] > | {*instance*} > > diff --cc test/py/ganeti.hypervisor.hv_xen_unittest.py > index 0c88891,15e4391..b3d0e06 > --- a/test/py/ganeti.hypervisor.hv_xen_unittest.py > +++ b/test/py/ganeti.hypervisor.hv_xen_unittest.py > @@@ -302,16 -265,19 +302,19 @@@ class TestGetConfigFileDiskData(unittes > > def testFileDisks(self): > disks = [ > - (objects.Disk(dev_type=constants.LD_FILE, mode=constants.DISK_RDWR, > + (objects.Disk(dev_type=constants.DT_FILE, mode=constants.DISK_RDWR, > physical_id=[constants.FD_LOOP]), > "/tmp/diskFirst"), > - (objects.Disk(dev_type=constants.LD_FILE, mode=constants.DISK_RDONLY, > + (objects.Disk(dev_type=constants.DT_FILE, mode=constants.DISK_RDONLY, > physical_id=[constants.FD_BLKTAP]), > "/tmp/diskTwo"), > - (objects.Disk(dev_type=constants.LD_FILE, mode=constants.DISK_RDWR, > + (objects.Disk(dev_type=constants.DT_FILE, mode=constants.DISK_RDWR, > physical_id=[constants.FD_LOOP]), > "/tmp/diskThree"), > - (objects.Disk(dev_type=constants.LD_FILE, mode=constants.DISK_RDONLY, > ++ (objects.Disk(dev_type=constants.DT_FILE, mode=constants.DISK_RDONLY, > + physical_id=[constants.FD_BLKTAP2]), > + "/tmp/diskFour"), > - (objects.Disk(dev_type=constants.LD_FILE, mode=constants.DISK_RDWR, > + (objects.Disk(dev_type=constants.DT_FILE, mode=constants.DISK_RDWR, > physical_id=[constants.FD_BLKTAP]), > "/tmp/diskLast"), > ] > > -- > Klaus Aehlig > Google Germany GmbH, Dienerstr. 12, 80331 Muenchen > Registergericht und -nummer: Hamburg, HRB 86891 > Sitz der Gesellschaft: Hamburg > Geschaeftsfuehrer: Graham Law, Christine Elizabeth Flores -- Guido Trotter Ganeti Engineering Google Germany GmbH Dienerstr. 12, 80331, München Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Graham Law, Christine Elizabeth Flores Steuernummer: 48/725/00206 Umsatzsteueridentifikationsnummer: DE813741370
