Esempio n. 1
0
 def __init__(self, request):
     self.request = request
     self.db = self.request.db
     self.mgr = MachineManager(self.db)
     self.recipes = PartmanRecipeManager(self.db)
     self.raid_recipes = PartmanRaidRecipeManager(self.db)
     self.rmgr = dict(recipe=self.recipes, raid_recipe=self.raid_recipes)
Esempio n. 2
0
 def __init__(self, request):
     self.request = request
     self.db = self.request.db
     self.mgr = MachineManager(self.db)
     self.recipes = PartmanRecipeManager(self.db)
     self.raid_recipes = PartmanRaidRecipeManager(self.db)
     self.rmgr = dict(recipe=self.recipes, raid_recipe=self.raid_recipes)
Esempio n. 3
0
class BaseMachineResource(object):
    def __init__(self, request):
        self.request = request
        self.db = self.request.db
        self.mgr = MachineManager(self.db)
        self.recipes = PartmanRecipeManager(self.db)
        self.raid_recipes = PartmanRaidRecipeManager(self.db)
        self.rmgr = dict(recipe=self.recipes, raid_recipe=self.raid_recipes)
        

    def collection_get(self):
        return dict(data=self.mgr.list_machines())

    def get(self):
        uuid = self.request.matchdict['uuid']
        machine = self.mgr.get_by_uuid(uuid)
        return machine.serialize()

    def has_pxeconfig(self, machine, filename=None):
        if filename is None:
            filename = pxeconfig_filename(machine.uuid)
        return os.path.isfile(filename)


    def _set_machine_install(self, machine, install=True):
        settings = self.request.registry.settings
        filename = pxeconfig_filename(machine.uuid)
        if install:
            make_pxeconfig(machine, settings)
            # FIXME: this makes sure that the key in the database
            # that the machine will be preseeded with is accepted
            # by the salt-master.
            self.mgr.accept_machine(machine, force=True)
            if not self.has_pxeconfig(machine, filename=filename):
                raise RuntimeError, "%s doesn't exist." % filename
        else:
            remove_pxeconfig(machine.uuid)
            if self.has_pxeconfig(machine, filename=filename):
                raise RuntimeError, "%s still exists." % filename
Esempio n. 4
0
class BaseMachineResource(object):
    def __init__(self, request):
        self.request = request
        self.db = self.request.db
        self.mgr = MachineManager(self.db)
        self.recipes = PartmanRecipeManager(self.db)
        self.raid_recipes = PartmanRaidRecipeManager(self.db)
        self.rmgr = dict(recipe=self.recipes, raid_recipe=self.raid_recipes)

    def collection_get(self):
        return dict(data=self.mgr.list_machines())

    def get(self):
        uuid = self.request.matchdict['uuid']
        machine = self.mgr.get_by_uuid(uuid)
        return machine.serialize()

    def has_pxeconfig(self, machine, filename=None):
        if filename is None:
            filename = pxeconfig_filename(machine.uuid)
        return os.path.isfile(filename)

    def _set_machine_install(self, machine, install=True):
        settings = self.request.registry.settings
        filename = pxeconfig_filename(machine.uuid)
        if install:
            make_pxeconfig(machine, settings)
            # FIXME: this makes sure that the key in the database
            # that the machine will be preseeded with is accepted
            # by the salt-master.
            self.mgr.accept_machine(machine, force=True)
            if not self.has_pxeconfig(machine, filename=filename):
                raise RuntimeError, "%s doesn't exist." % filename
        else:
            remove_pxeconfig(machine.uuid)
            if self.has_pxeconfig(machine, filename=filename):
                raise RuntimeError, "%s still exists." % filename