LGTM, Thanks.
On Mon, May 20, 2013 at 5:11 PM, Bernardo Dal Seno <[email protected]>wrote: > The field is filled with the value provided on the command line. > > Signed-off-by: Bernardo Dal Seno <[email protected]> > --- > lib/cmdlib/instance_storage.py | 6 ++++-- > lib/objects.py | 13 +++++++++---- > src/Ganeti/Objects.hs | 2 ++ > test/hs/Test/Ganeti/Objects.hs | 5 +++-- > 4 files changed, 18 insertions(+), 8 deletions(-) > > diff --git a/lib/cmdlib/instance_storage.py > b/lib/cmdlib/instance_storage.py > index 6669404..d1b3cca 100644 > --- a/lib/cmdlib/instance_storage.py > +++ b/lib/cmdlib/instance_storage.py > @@ -510,7 +510,8 @@ def GenerateDiskTemplate( > logical_id=logical_id_fn(idx, disk_index, > disk), > iv_name="disk/%d" % disk_index, > mode=disk[constants.IDISK_MODE], > - params=params) > + params=params, > + spindles=disk.get(constants.IDISK_SPINDLES)) > disk_dev.name = disk.get(constants.IDISK_NAME, None) > disk_dev.uuid = lu.cfg.GenerateUniqueID(lu.proc.GetECId()) > disks.append(disk_dev) > @@ -821,7 +822,8 @@ class LUInstanceRecreateDisks(LogicalUnit): > disk.logical_id = new_id > if changes: > disk.Update(size=changes.get(constants.IDISK_SIZE, None), > - mode=changes.get(constants.IDISK_MODE, None)) > + mode=changes.get(constants.IDISK_MODE, None), > + spindles=changes.get(constants.IDISK_SPINDLES, None)) > > # change primary node, if needed > if self.op.nodes: > diff --git a/lib/objects.py b/lib/objects.py > index 8d809c4..c67ac9f 100644 > --- a/lib/objects.py > +++ b/lib/objects.py > @@ -512,8 +512,9 @@ class NIC(ConfigObject): > > class Disk(ConfigObject): > """Config object representing a block device.""" > - __slots__ = ["name", "dev_type", "logical_id", "physical_id", > - "children", "iv_name", "size", "mode", "params"] + _UUID > + __slots__ = (["name", "dev_type", "logical_id", "physical_id", > + "children", "iv_name", "size", "mode", "params", > "spindles"] + > + _UUID) > > def CreateOnSecondary(self): > """Test if this device needs to be created on a secondary node.""" > @@ -674,8 +675,8 @@ class Disk(ConfigObject): > raise errors.ProgrammerError("Disk.RecordGrow called for > unsupported" > " disk type %s" % self.dev_type) > > - def Update(self, size=None, mode=None): > - """Apply changes to size and mode. > + def Update(self, size=None, mode=None, spindles=None): > + """Apply changes to size, spindles and mode. > > """ > if self.dev_type == constants.LD_DRBD8: > @@ -688,6 +689,8 @@ class Disk(ConfigObject): > self.size = size > if mode is not None: > self.mode = mode > + if spindles is not None: > + self.spindles = spindles > > def UnsetSize(self): > """Sets recursively the size to zero for the disk and its children. > @@ -804,6 +807,8 @@ class Disk(ConfigObject): > val += ", not visible" > else: > val += ", visible as /dev/%s" % self.iv_name > + if self.spindles is not None: > + val += ", spindles=%s" % self.spindles > if isinstance(self.size, int): > val += ", size=%dm)>" % self.size > else: > diff --git a/src/Ganeti/Objects.hs b/src/Ganeti/Objects.hs > index 1550309..382205d 100644 > --- a/src/Ganeti/Objects.hs > +++ b/src/Ganeti/Objects.hs > @@ -426,6 +426,7 @@ data Disk = Disk > , diskSize :: Int > , diskMode :: DiskMode > , diskName :: Maybe String > + , diskSpindles :: Maybe Int > , diskUuid :: String > } deriving (Show, Eq) > > @@ -438,6 +439,7 @@ $(buildObjectSerialisation "Disk" $ > , simpleField "size" [t| Int |] > , defaultField [| DiskRdWr |] $ simpleField "mode" [t| DiskMode |] > , optionalField $ simpleField "name" [t| String |] > + , optionalField $ simpleField "spindles" [t| Int |] > ] > ++ uuidFields) > > diff --git a/test/hs/Test/Ganeti/Objects.hs > b/test/hs/Test/Ganeti/Objects.hs > index 1cb33e1..bb849ed 100644 > --- a/test/hs/Test/Ganeti/Objects.hs > +++ b/test/hs/Test/Ganeti/Objects.hs > @@ -93,7 +93,7 @@ instance Arbitrary DiskLogicalId where > instance Arbitrary Disk where > arbitrary = Disk <$> arbitrary <*> pure [] <*> arbitrary > <*> arbitrary <*> arbitrary <*> arbitrary > - <*> arbitrary > + <*> arbitrary <*> arbitrary > > -- FIXME: we should generate proper values, >=0, etc., but this is > -- hard for partial ones, where all must be wrapped in a 'Maybe' > @@ -179,8 +179,9 @@ genDiskWithChildren num_children = do > size <- arbitrary > mode <- arbitrary > name <- genMaybe genName > + spindles <- arbitrary > uuid <- genName > - let disk = Disk logicalid children ivname size mode name uuid > + let disk = Disk logicalid children ivname size mode name spindles uuid > return disk > > genDisk :: Gen Disk > -- > 1.8.2.1 > > -- Thomas Thrainer | Software Engineer | [email protected] | Google Germany GmbH Dienerstr. 12 80331 München Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Graham Law, Katherine Stephens
