[PATCH 2/4] Add a DiskFile class for testing partitioning code as a non-root user.
Anne Mulhern
amulhern at redhat.com
Fri Jul 25 12:08:38 UTC 2014
----- Original Message -----
> From: "Vratislav Podzimek" <vpodzime at redhat.com>
> To: "anaconda patch review" <anaconda-patches at lists.fedorahosted.org>
> Sent: Friday, July 25, 2014 2:13:47 AM
> Subject: Re: [PATCH 2/4] Add a DiskFile class for testing partitioning code as a non-root user.
>
> On Thu, 2014-07-24 at 10:42 -0400, Anne Mulhern wrote:
> >
> >
> >
> > ----- Original Message -----
> > > From: "David Lehman" <dlehman at redhat.com>
> > > To: anaconda-patches at lists.fedorahosted.org
> > > Sent: Wednesday, July 23, 2014 5:04:26 PM
> > > Subject: [PATCH 2/4] Add a DiskFile class for testing partitioning code
> > > as a non-root user.
> > >
> > > There seems to be some special treatment from parted (first free sector
> > > is reported as 32) but the main purpose is to test partitioning code
> > > without committing the changes to disk. It may be perfectly viable to
> > > commit to these devices, but I haven't tried it yet. My intention is to
> > > write unit tests for things like partition allocation -- which require
> > > parted Device and Disk instances -- without requiring root access.
> > > ---
> > > blivet/devices.py | 29 +++++++++++++++++++++++++++++
> > > 1 file changed, 29 insertions(+)
> > >
> > > diff --git a/blivet/devices.py b/blivet/devices.py
> > > index 1028817..dfdea44 100644
> > > --- a/blivet/devices.py
> > > +++ b/blivet/devices.py
> > > @@ -1234,6 +1234,35 @@ class DiskDevice(StorageDevice):
> > >
> > > StorageDevice._preDestroy(self)
> > >
> > > +class DiskFile(DiskDevice):
> > > + """ This is a file that we will pretend is a disk. """
> > > + _devDir = ""
> > > +
> > > + def __init__(self, name, fmt=None,
> > > + size=None, major=None, minor=None, sysfsPath='',
> > > + parents=None, serial=None, vendor="", model="", bus="",
> > > + exists=True):
> > > + _name = os.path.basename(name)
> > > + self._devDir = os.path.dirname(name)
> > > +
> > > + super(DiskFile, self).__init__(_name, fmt=fmt, size=size,
> > > + major=major, minor=minor,
> > > sysfsPath=sysfsPath,
> > > + parents=parents, serial=serial,
> > > vendor=vendor,
> > > + model=model, bus=bus, exists=exists)
> > > +
> > > + #
> > > + # Regular files do not have sysfs entries.
> > > + #
> > > + @property
> > > + def sysfsPath(self):
> > > + return ""
> > > +
> > > + @sysfsPath.setter
> > > + def sysfsPath(self, value):
> > > + pass
> > > +
> > > + def updateSysfsPath(self):
> > > + pass
> > >
> > > class PartitionDevice(StorageDevice):
> > > """ A disk partition.
> > > --
> > > 1.9.3
> > >
> > > _______________________________________________
> > > anaconda-patches mailing list
> > > anaconda-patches at lists.fedorahosted.org
> > > https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches
> > >
> >
> > It would be helpful to document that the class
> > is not intended to represent a real device. Maybe
> > it should find its home somewhere in testing subdirectory instead of blivet
> > subdirectory, as more appropriate to its intended use.
> I don't agree with moving the class. We should provide this class to
> users of Blivet for their tests. A bit clearer documentation would, of
> course, be useful.
>
> --
> Vratislav Podzimek
>
> Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic
>
> _______________________________________________
> anaconda-patches mailing list
> anaconda-patches at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches
>
That's a good point. Leaving it where it is and documenting it
as provided solely for testing purposes seems like the best solution.
- mulhern
More information about the anaconda-patches
mailing list