def add_buildout(self, data, host, checksum): packages = [] for package_info in data.packages: package = Package.get_by_nameversion(package_info['name'], package_info['version']) if not package: equation = package_info.get('equation', None) version = Version.get_by_version(package_info['version']) or\ Version.add(package_info['version'], equation) requirements = self.get_requirements( package_info['requirements'], data.versionmap) package = Package.add(package_info['name'], version, requirements) packages.append(package) buildout = Buildout(data.name, host, checksum, started=data.started, finished=data.finished, packages=packages, config=data.config) DBSession.add(buildout) self.remove_old_buildouts(data.name) return buildout
def post(self): """Save settings.""" try: buildouts_to_keep = int(self.request.params['buildouts_to_keep']) settings = DBSession.query(Settings).first() if not settings: settings = Settings(buildouts_to_keep) else: if buildouts_to_keep != settings.buildouts_to_keep: settings.buildouts_to_keep = buildouts_to_keep DBSession.add(settings) return HTTPFound(location=self.request.route_url('settings')) except: pass