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