Source code for promgen.discovery.default
# Copyright (c) 2017 LINE Corporation
# These sources are released under the terms of the MIT license: see LICENSE
import logging
from django.shortcuts import get_object_or_404
from promgen import models
from promgen import discovery
logger = logging.getLogger(__name__)
[docs]class DiscoveryPromgen(discovery.DiscoveryBase):
'''Promgen local database discovery plugin
This is the default discovery plugin for farms and hosts stored locally in
promgen's database. They are queried directly from Django's ORM
'''
remote = False
[docs] def fetch(self, farm_name):
'''Fetch list of hosts for a farm from the local database'''
farm = get_object_or_404(models.Farm, name=farm_name)
for host in models.Host.objects.filter(farm=farm):
yield host.name
[docs] def farms(self):
'''Fetch farms from local database'''
for farm in models.Farm.objects.filter(source=discovery.FARM_DEFAULT):
yield farm.name