Skip to content

Commit

Permalink
Rename remote plugins to discovery plugins to match Prometheus naming
Browse files Browse the repository at this point in the history
  • Loading branch information
kfdm committed Apr 14, 2017
1 parent 2bb12f2 commit 198503a
Show file tree
Hide file tree
Showing 9 changed files with 43 additions and 31 deletions.
5 changes: 5 additions & 0 deletions docs/discovery_plugin.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Discovery Plugin
================

These are used to bridge a server manifest from an external tool into one that
Promgen can use
6 changes: 6 additions & 0 deletions promgen/discovery/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
class DiscoveryBase(object):
def fetch(self, farm):
raise NotImplemented()

def farms(self):
raise NotImplemented()
19 changes: 19 additions & 0 deletions promgen/discovery/default.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import logging

from django.shortcuts import get_object_or_404

from promgen import models
from promgen.discovery import DiscoveryBase

logger = logging.getLogger(__name__)


class DiscoveryPromgen(DiscoveryBase):
def fetch(self, farm_name):
farm = get_object_or_404(models.Farm, name=farm_name)
for host in models.Host.objects.filter(farm=farm):
yield host.name

def farms(self):
for farm in models.Farm.objects.filter(source=models.FARM_DEFAULT):
yield farm.name
8 changes: 4 additions & 4 deletions promgen/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,9 @@ def refresh(self):
keep = []
create = []

for entry in plugins.remotes():
for entry in plugins.discovery():
if self.source == entry.name:
for host in entry.load().fetch(self.name):
for host in entry.load()().fetch(self.name):
if host in remaining:
keep.append(host)
remaining.remove(host)
Expand All @@ -141,9 +141,9 @@ def refresh(self):

@classmethod
def fetch(cls, source):
for entry in plugins.remotes():
for entry in plugins.discovery():
if entry.name == source:
for farm in entry.load().farms():
for farm in entry.load()().farms():
yield farm

def __str__(self):
Expand Down
4 changes: 2 additions & 2 deletions promgen/plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
logger = logging.getLogger(__name__)


def remotes():
return working_set.iter_entry_points('promgen.server')
def discovery():
return working_set.iter_entry_points('promgen.discovery')


def senders():
Expand Down
18 changes: 0 additions & 18 deletions promgen/remote.py

This file was deleted.

6 changes: 3 additions & 3 deletions promgen/templates/promgen/status.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ <h1>Status</h1>

<table>
<tr>
<td>Remote Plugins</td>
<td>Discovery Plugins</td>
<td>
<ul>
{% for remote in remotes %}
<li>{{ remote.name }} - {{ remote.module_name }}</li>
{% for plugin in discovery_plugins %}
<li>{{ plugin.name }} - {{ plugin.module_name }}</li>
{% endfor %}
</td>
</tr>
Expand Down
4 changes: 2 additions & 2 deletions promgen/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ class ProjectDetail(DetailView):
def get_context_data(self, **kwargs):
context = super(ProjectDetail, self).get_context_data(**kwargs)
context['sources'] = [
entry.name for entry in plugins.remotes()
entry.name for entry in plugins.discovery()
]
context['global'] = models.Service.default()
return context
Expand Down Expand Up @@ -680,7 +680,7 @@ def get(self, request, *args, **kwargs):
class Status(View):
def get(self, request):
return render(request, 'promgen/status.html', {
'remotes': [entry for entry in plugins.remotes()],
'discovery_plugins': [entry for entry in plugins.discovery()],
'senders': [entry for entry in plugins.senders()],
})

Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@
'console_scripts': [
'promgen = promgen.manage:main',
],
'promgen.server': [
'default = promgen.remote',
'promgen.discovery': [
'default = promgen.discovery.default:DiscoveryPromgen',
],
'promgen.sender': [
'ikasan = promgen.sender.ikasan:SenderIkasan',
Expand Down

0 comments on commit 198503a

Please sign in to comment.