publish list of services

This commit is contained in:
Frédéric Péters 2014-03-25 17:00:18 +01:00
parent dd14cccf48
commit 7cfae74b66
3 changed files with 28 additions and 0 deletions

View File

@ -38,6 +38,13 @@ class ServiceBase(models.Model):
two_minutes = datetime.timedelta(minutes=2)
return (now() - self.last_operational_check_timestamp < two_minutes)
def as_dict(self):
as_dict = dict([(x, y) for (x, y) in self.__dict__.items()
if type(y) in (int, str, unicode)])
as_dict['service-id'] = self.Extra.service_id
return as_dict
class IdentityProvider(ServiceBase):
class Meta:

View File

@ -8,4 +8,6 @@ urlpatterns = patterns('',
operational_check_view, name='operational-check'),
url(r'^new-idp$', IdentityProviderCreateView.as_view()),
url(r'^new-wcs$', WebFormsCreateView.as_view()),
url(r'^installed_services.json$', installed_services_json_view),
url(r'^operational_services.json$', operational_services_json_view),
)

View File

@ -69,3 +69,22 @@ def operational_check_view(request, service, slug, **kwargs):
response = HttpResponse(content_type='application/json')
json.dump({'operational': object.is_operational()}, response)
return response
def installed_services_json_view(request, **kwargs):
installed_services = []
for available_service in AVAILABLE_SERVICES:
installed_services.extend(available_service.objects.all())
response = HttpResponse(content_type='application/json')
json.dump([x.as_dict() for x in installed_services], response)
return response
def operational_services_json_view(request, **kwargs):
installed_services = []
for available_service in AVAILABLE_SERVICES:
installed_services.extend(available_service.objects.all())
response = HttpResponse(content_type='application/json')
json.dump([x.as_dict() for x in installed_services if x.is_operational()],
response)
return response