from autotest_lib.server import utils
class InstallableObject(object):
"""
This class represents a software package that can be installed on
a Host.
Implementation details:
This is an abstract class, leaf subclasses must implement the methods
listed here. You must not instantiate this class but should
instantiate one of those leaf subclasses.
"""
source_material= None
def __init__(self):
super(InstallableObject, self).__init__()
def get(self, location):
"""
Get the source material required to install the object.
Through the utils.get() function, the argument passed will be
saved in a temporary location on the LocalHost. That location
is saved in the source_material attribute.
Args:
location: the path to the source material. This path
may be of any type that the utils.get()
function will accept.
"""
self.source_material= utils.get(location)
def install(self, host):
pass