Skip to content

Commit

Permalink
Make use of FSTask and FSUnimplementedTask in FS* tasks.
Browse files Browse the repository at this point in the history
Inherit from these classes wherever possible in filesystem task classes.

Get rid of all initializers in subclasses of FSTask.

Signed-off-by: mulhern <amulhern@redhat.com>
  • Loading branch information
mulkieran committed Jun 24, 2015
1 parent 9b5017c commit b50f796
Show file tree
Hide file tree
Showing 10 changed files with 35 additions and 154 deletions.
20 changes: 4 additions & 16 deletions blivet/tasks/fsck.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,13 @@
from .. import util

from . import availability
from . import fstask
from . import task

_UNKNOWN_RC_MSG = "Unknown return code: %d"

@add_metaclass(abc.ABCMeta)
class FSCK(task.BasicApplication):
class FSCK(task.BasicApplication, fstask.FSTask):
"""An abstract class that represents actions associated with
checking consistency of a filesystem.
"""
Expand All @@ -41,13 +42,6 @@ class FSCK(task.BasicApplication):
options = abc.abstractproperty(
doc="Options for invoking the application.")

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs

# IMPLEMENTATION methods

@abc.abstractmethod
Expand Down Expand Up @@ -147,11 +141,5 @@ class NTFSFSCK(FSCK):
def _errorMessage(self, rc):
return _UNKNOWN_RC_MSG % (rc,) if rc != 0 else None

class UnimplementedFSCK(task.UnimplementedTask):

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs
class UnimplementedFSCK(fstask.UnimplementedFSTask):
pass
20 changes: 4 additions & 16 deletions blivet/tasks/fsinfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,24 +27,18 @@
from .. import util

from . import availability
from . import fstask
from . import task

@add_metaclass(abc.ABCMeta)
class FSInfo(task.BasicApplication):
class FSInfo(task.BasicApplication, fstask.FSTask):
""" An abstract class that represents an information gathering app. """

description = "filesystem info"

options = abc.abstractproperty(
doc="Options for invoking the application.")

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs

@property
def _infoCommand(self):
""" Returns the command for reading filesystem information.
Expand Down Expand Up @@ -96,11 +90,5 @@ class XFSInfo(FSInfo):
ext = availability.XFSDB_APP
options = ["-c", "sb 0", "-c", "p dblocks", "-c", "p blocksize"]

class UnimplementedFSInfo(task.UnimplementedTask):

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs
class UnimplementedFSInfo(fstask.UnimplementedFSTask):
pass
20 changes: 4 additions & 16 deletions blivet/tasks/fsminsize.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,23 +28,17 @@
from ..size import Size

from . import availability
from . import fstask
from . import task

@add_metaclass(abc.ABCMeta)
class FSMinSize(task.BasicApplication):
class FSMinSize(task.BasicApplication, fstask.FSTask):
""" An abstract class that represents min size information extraction. """

description = "minimum filesystem size"

options = abc.abstractproperty(doc="Options for use with app.")

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs

def _resizeCommand(self):
return [str(self.ext)] + self.options + [self.fs.device]

Expand Down Expand Up @@ -177,11 +171,5 @@ def doTask(self):
raise FSError("Unable to discover minimum size of filesystem on %s" % self.fs.device)
return minSize

class UnimplementedFSMinSize(task.UnimplementedTask):

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs
class UnimplementedFSMinSize(fstask.UnimplementedFSTask):
pass
17 changes: 2 additions & 15 deletions blivet/tasks/fsmkfs.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,11 @@
from .. import util

from . import availability
from . import fstask
from . import task

@add_metaclass(abc.ABCMeta)
class FSMkfsTask(task.Task):
class FSMkfsTask(fstask.FSTask):

canLabel = abc.abstractproperty(doc="whether this task labels")

Expand All @@ -44,13 +45,6 @@ class FSMkfs(task.BasicApplication, FSMkfsTask):

args = abc.abstractproperty(doc="options for creating filesystem")

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs

# IMPLEMENTATION methods

@property
Expand Down Expand Up @@ -219,13 +213,6 @@ def args(self):

class UnimplementedFSMkfs(task.UnimplementedTask, FSMkfsTask):

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs

@property
def canLabel(self):
return False
6 changes: 2 additions & 4 deletions blivet/tasks/fsmount.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,10 @@
from ..formats import fslib

from . import availability
from . import fstask
from . import task

class FSMount(task.BasicApplication):
class FSMount(task.BasicApplication, fstask.FSTask):
"""An abstract class that represents filesystem mounting actions. """
description = "mount a filesystem"

Expand All @@ -39,9 +40,6 @@ class FSMount(task.BasicApplication):

ext = availability.MOUNT_APP

def __init__(self, an_fs):
self.fs = an_fs

# TASK methods

@property
Expand Down
20 changes: 4 additions & 16 deletions blivet/tasks/fsreadlabel.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@
from .. import util

from . import availability
from . import fstask
from . import task

@add_metaclass(abc.ABCMeta)
class FSReadLabel(task.BasicApplication):
class FSReadLabel(task.BasicApplication, fstask.FSTask):
""" An abstract class that represents reading a filesystem's label. """
description = "read filesystem label"

Expand All @@ -40,13 +41,6 @@ class FSReadLabel(task.BasicApplication):

args = abc.abstractproperty(doc="arguments for reading a label.")

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs

# IMPLEMENTATION methods

@property
Expand Down Expand Up @@ -123,11 +117,5 @@ class XFSReadLabel(FSReadLabel):
def args(self):
return ["-l", self.fs.device]

class UnimplementedFSReadLabel(task.UnimplementedTask):

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs
class UnimplementedFSReadLabel(fstask.UnimplementedFSTask):
pass
17 changes: 2 additions & 15 deletions blivet/tasks/fsresize.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@
from ..import util

from . import availability
from . import fstask
from . import task

@add_metaclass(abc.ABCMeta)
class FSResizeTask(task.Task):
class FSResizeTask(fstask.FSTask):
""" The abstract properties that any resize task must have. """

unit = abc.abstractproperty(doc="Resize unit.")
Expand All @@ -45,13 +46,6 @@ class FSResize(task.BasicApplication, FSResizeTask):

args = abc.abstractproperty(doc="Resize arguments.")

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs

# IMPLEMENTATION methods

@abc.abstractmethod
Expand Down Expand Up @@ -135,13 +129,6 @@ def args(self):

class UnimplementedFSResize(task.UnimplementedTask, FSResizeTask):

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs

@property
def unit(self):
raise NotImplementedError()
Expand Down
29 changes: 5 additions & 24 deletions blivet/tasks/fssize.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,26 +29,20 @@
from .. import util

from . import availability
from . import fstask
from . import task

_tags = ("count", "size")
_Tags = namedtuple("_Tags", _tags)

@add_metaclass(abc.ABCMeta)
class FSSize(task.Task):
class FSSize(fstask.FSTask):
""" An abstract class that represents size information extraction. """
description = "current filesystem size"

tags = abc.abstractproperty(
doc="Strings used for extracting components of size.")

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs

# TASK methods

@property
Expand Down Expand Up @@ -121,18 +115,11 @@ class ReiserFSSize(FSSize):
class XFSSize(FSSize):
tags = _Tags(size="blocksize =", count="dblocks =")

class TmpFSSize(task.BasicApplication):
class TmpFSSize(task.BasicApplication, fstask.FSTask):
description = "current filesystem size"

ext = availability.DF_APP

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs

@property
def _sizeCommand(self):
return [str(self.ext), self.fs.systemMountpoint, "--output=size"]
Expand All @@ -156,11 +143,5 @@ def doTask(self):
return Size("%s KiB" % lines[1])


class UnimplementedFSSize(task.UnimplementedTask):

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs
class UnimplementedFSSize(fstask.UnimplementedFSTask):
pass
20 changes: 4 additions & 16 deletions blivet/tasks/fssync.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,15 @@
from .. import util

from . import availability
from . import fstask
from . import task

@add_metaclass(abc.ABCMeta)
class FSSync(task.BasicApplication):
class FSSync(task.BasicApplication, fstask.FSTask):
""" An abstract class that represents syncing a filesystem. """

description = "filesystem syncing"

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs

@abc.abstractmethod
def doTask(self):
raise NotImplementedError()
Expand Down Expand Up @@ -79,11 +73,5 @@ def doTask(self, root="/"):
if error_msg:
raise FSError(error_msg)

class UnimplementedFSSync(task.UnimplementedTask):

def __init__(self, an_fs):
""" Initializer.
:param FS an_fs: a filesystem object
"""
self.fs = an_fs
class UnimplementedFSSync(fstask.UnimplementedFSTask):
pass
Loading

0 comments on commit b50f796

Please sign in to comment.