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)
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