def get(self, request): return render( request, 'promgen/status.html', { 'discovery_plugins': [entry for entry in plugins.discovery()], 'notifier_plugins': [entry for entry in plugins.notifications()], })
def get_context_data(self, **kwargs): context = super(Profile, self).get_context_data(**kwargs) context['discovery_plugins'] = [entry for entry in plugins.discovery()] context['notifier_plugins'] = [entry for entry in plugins.notifications()] context['notifiers'] = {'notifiers': models.Sender.objects.filter(obj=self.request.user)} context['subscriptions'] = models.Sender.objects.filter( sender='promgen.notification.user', value=self.request.user.username) return context
def refresh(self): target = set() current = set(host.name for host in self.host_set.all()) for entry in plugins.discovery(): if self.source == entry.name: target.update(entry.load()().fetch(self.name)) remove = current - target add = target - current if add: Audit.log('Adding {} to {}'.format(add, self), self) Host.objects.bulk_create( [Host(name=name, farm_id=self.id) for name in add]) if remove: Audit.log('Removing {} from {}'.format(add, self), self) Host.objects.filter(farm=self, name__in=remove).delete() return add, remove
def driver_set(cls): '''Return the list of drivers for Farm model''' for entry in plugins.discovery(): yield entry.name, entry.load()()
def driver(self): '''Return configured driver for Farm model instance''' for entry in plugins.discovery(): if entry.name == self.source: return entry.load()()
def fetch(cls, source): for entry in plugins.discovery(): if entry.name == source: for farm in entry.load()().farms(): yield farm
def choices(cls): for entry in plugins.discovery(): yield entry.name, entry.load()()
def driver(self): for entry in plugins.discovery(): if entry.name == self.source: return entry.load()()
def get_context_data(self, **kwargs): context = super(ProjectDetail, self).get_context_data(**kwargs) context['sources'] = [entry.name for entry in plugins.discovery()] context['global'] = models.Service.default() prefetch_related_objects([context['global']], 'rule_set') return context