diff --git a/openstack_dashboard/dashboards/project/stacks/api.py b/openstack_dashboard/dashboards/project/stacks/api.py index 1572b5a984..319bfe23fc 100644 --- a/openstack_dashboard/dashboards/project/stacks/api.py +++ b/openstack_dashboard/dashboards/project/stacks/api.py @@ -1,8 +1,6 @@ import json import logging -from django.http import HttpResponse - from openstack_dashboard.api.heat import resources_list from openstack_dashboard.api.heat import stack_get @@ -77,8 +75,3 @@ def d3_data(request, stack_id=''): } d3_data['nodes'].append(resource_node) return json.dumps(d3_data) - - -def get_d3_data(request, stack_id=''): - return HttpResponse(d3_data(request, stack_id=stack_id), - content_type="application/json") diff --git a/openstack_dashboard/dashboards/project/stacks/urls.py b/openstack_dashboard/dashboards/project/stacks/urls.py index 157f386097..82e0bcf3f5 100644 --- a/openstack_dashboard/dashboards/project/stacks/urls.py +++ b/openstack_dashboard/dashboards/project/stacks/urls.py @@ -15,10 +15,10 @@ from django.conf.urls.defaults import patterns from django.conf.urls.defaults import url -from openstack_dashboard.dashboards.project.stacks.api import get_d3_data from openstack_dashboard.dashboards.project.stacks.views import CreateStackView from openstack_dashboard.dashboards.project.stacks.views import DetailView from openstack_dashboard.dashboards.project.stacks.views import IndexView +from openstack_dashboard.dashboards.project.stacks.views import JSONView from openstack_dashboard.dashboards.project.stacks.views import ResourceView from openstack_dashboard.dashboards.project.stacks.views \ import SelectTemplateView @@ -33,7 +33,6 @@ urlpatterns = patterns( url(r'^stack/(?P[^/]+)/$', DetailView.as_view(), name='detail'), url(r'^stack/(?P[^/]+)/(?P[^/]+)/$', ResourceView.as_view(), name='resource'), - - #AJAX urls - url(r'^get_d3_data/(?P[^/]+)/$', get_d3_data, name='d3_data') + url(r'^get_d3_data/(?P[^/]+)/$', + JSONView.as_view(), name='d3_data'), ) diff --git a/openstack_dashboard/dashboards/project/stacks/views.py b/openstack_dashboard/dashboards/project/stacks/views.py index 97640dff33..3dfb2906a8 100644 --- a/openstack_dashboard/dashboards/project/stacks/views.py +++ b/openstack_dashboard/dashboards/project/stacks/views.py @@ -22,10 +22,13 @@ from horizon import tabs from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse_lazy +from django.http import HttpResponse from django.utils.translation import ugettext_lazy as _ +from django.views import generic from openstack_dashboard import api +from openstack_dashboard.dashboards.project.stacks.api import d3_data from openstack_dashboard.dashboards.project.stacks.forms import StackCreateForm from openstack_dashboard.dashboards.project.stacks.forms import TemplateForm from openstack_dashboard.dashboards.project.stacks.tables import StacksTable @@ -158,3 +161,9 @@ class ResourceView(tabs.TabView): metadata = self.get_metadata(request, **kwargs) return self.tab_group_class( request, resource=resource, metadata=metadata, **kwargs) + + +class JSONView(generic.View): + def get(self, request, stack_id=''): + return HttpResponse(d3_data(request, stack_id=stack_id), + content_type="application/json")