add site_roles to REST API
[plstackapi.git] / planetstack / planetstack / urls.py
1 from django.conf.urls import patterns, include, url
2
3 # Uncomment the next two lines to enable the admin:
4 from django.contrib import admin
5
6 # This is the generated API
7 from genapi import *
8
9 from core.views.legacyapi import LegacyXMLRPC
10 #from core.views.analytics import AnalyticsAjaxView
11 from core.models import *
12 from rest_framework import generics
13 from core.dashboard.sites import SitePlus
14 from django.http import HttpResponseRedirect
15 #from core.xoslib import XOSLibDataView
16
17 admin.site = SitePlus()
18 admin.autodiscover()
19
20 def redirect_to_apache(request):
21      """ bounce a request back to the apache server that is running on the machine """
22      apache_url = "http://%s%s" % (request.META['HOSTNAME'], request.path)
23      return HttpResponseRedirect(apache_url)
24
25 urlpatterns = patterns('',
26     # Examples:
27     # url(r'^$', 'planetstack.views.home', name='home'),
28     # url(r'^planetstack/', include('planetstack.foo.urls')),
29
30     # Uncomment the admin/doc line below to enable admin documentation:
31     url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
32
33     # Uncomment the next line to enable the admin:
34     url(r'^admin/', include(admin.site.urls)),
35     url(r'^', include(admin.site.urls)),
36     #url(r'^profile/home', 'core.views.home'),
37
38 #    url(r'^admin/xoslib/(?P<name>\w+)/$', XOSLibDataView.as_view(), name="xoslib"),
39
40     url(r'^plstackapi/$', api_root),
41
42     url(r'^plstackapi/dashboardviews/$', DashboardViewList.as_view(), name='dashboardview-list'),
43     url(r'^plstackapi/dashboardview/(?P<pk>[a-zA-Z0-9\-]+)/$', DashboardViewDetail.as_view(), name='dashboardview-detail'),
44
45     url(r'^plstackapi/payments/$', PaymentList.as_view(), name='payment-list'),
46     url(r'^plstackapi/payments/(?P<pk>[a-zA-Z0-9\-]+)/$', PaymentDetail.as_view(), name='payment-detail'),
47
48     url(r'^plstackapi/charges/$', ChargeList.as_view(), name='charge-list'),
49     url(r'^plstackapi/charges/(?P<pk>[a-zA-Z0-9\-]+)/$', ChargeDetail.as_view(), name='charge-detail'),
50
51     url(r'^plstackapi/accounts/$', AccountList.as_view(), name='account-list'),
52     url(r'^plstackapi/accounts/(?P<pk>[a-zA-Z0-9\-]+)/$', AccountDetail.as_view(), name='account-detail'),
53
54     url(r'^plstackapi/deployments/$', DeploymentList.as_view(), name='deployment-list'),
55     url(r'^plstackapi/deployments/(?P<pk>[a-zA-Z0-9\-]+)/$', DeploymentDetail.as_view(), name='deployment-detail'),
56
57     url(r'^plstackapi/images/$', ImageList.as_view(), name='image-list'),
58     url(r'^plstackapi/images/(?P<pk>[a-zA-Z0-9_\-]+)/$', ImageDetail.as_view(), name='image-detail'),
59
60     url(r'^plstackapi/networkparametertypes/$', NodeList.as_view(), name='node-list'),
61     url(r'^plstackapi/networkparametertypes/(?P<pk>[a-zA-Z0-9_\-]+)/$', NodeDetail.as_view(), name='node-detail'),
62
63     url(r'^plstackapi/nodes/$', NodeList.as_view(), name='node-list'),
64     url(r'^plstackapi/nodes/(?P<pk>[a-zA-Z0-9_\-]+)/$', NodeDetail.as_view(), name='node-detail'),
65     
66     url(r'^plstackapi/projects/$', ProjectList.as_view(), name='project-list'),
67     url(r'^plstackapi/projects/(?P<pk>[a-zA-Z0-9_\-]+)/$', ProjectDetail.as_view(), name='project-detail'),
68     
69     url(r'^plstackapi/reservations/$', ReservationList.as_view(), name='reservation-list'),
70     url(r'^plstackapi/reservations/(?P<pk>[a-zA-Z0-9_\-]+)/$', ReservationDetail.as_view(), name='reservation-detail'),
71     
72     url(r'^plstackapi/roles/$', RoleList.as_view(), name='role-list'),
73     url(r'^plstackapi/roles/(?P<pk>[a-zA-Z0-9]+)/$', RoleDetail.as_view(), name='role-detail'),
74
75     url(r'^plstackapi/serviceclasses/$', ServiceClassList.as_view(), name='serviceclass-list'),
76     url(r'^plstackapi/serviceclasses/(?P<pk>[a-zA-Z0-9]+)/$', ServiceClassDetail.as_view(), name='serviceclass-detail'),
77
78     url(r'^plstackapi/serviceresources/$', ServiceResourceList.as_view(), name='serviceresource-list'),
79     url(r'^plstackapi/serviceresources/(?P<pk>[a-zA-Z0-9]+)/$', ServiceResourceDetail.as_view(), name='serviceresource-detail'),
80
81     url(r'^plstackapi/site_privileges/$', SitePrivilegeList.as_view(), name='siteprivilege-list'),
82     url(r'^plstackapi/site_privileges/(?P<pk>[a-zA-Z0-9_]+)/$', SitePrivilegeDetail.as_view(), name='siteprivilege-detail'),
83
84     url(r'^plstackapi/site_roles/$', SiteList.as_view(), name='siterole-list'),
85     url(r'^plstackapi/site_roles/(?P<pk>[a-zA-Z0-9_\-]+)/$', SiteDetail.as_view(), name='siterole-detail'),
86   
87     url(r'^plstackapi/sites/$', SiteList.as_view(), name='site-list'),
88     url(r'^plstackapi/sites/(?P<pk>[a-zA-Z0-9_\-]+)/$', SiteDetail.as_view(), name='site-detail'),
89
90     url(r'^plstackapi/accounts/$', AccountList.as_view(), name='account-list'),
91     url(r'^plstackapi/accounts/(?P<pk>[a-zA-Z0-9_\-]+)/$', AccountDetail.as_view(), name='account-detail'),
92
93     url(r'^plstackapi/networktemplates/$', NetworkTemplateList.as_view(), name='networktemplate-list'),
94     url(r'^plstackapi/networktemplates/(?P<pk>[a-zA-Z0-9_\-]+)/$', NetworkTemplateDetail.as_view(), name='networktemplate-detail'),
95
96     url(r'^plstackapi/networkslices/$', NetworkSliceList.as_view(), name='networkslice-list'),
97     url(r'^plstackapi/networkslices/(?P<pk>[a-zA-Z0-9_\-]+)/$', NetworkSliceDetail.as_view(), name='networkslice-detail'),
98
99     url(r'^plstackapi/networkslivers/$', NetworkSliverList.as_view(), name='networksliver-list'),
100     url(r'^plstackapi/networkslivers/(?P<pk>[a-zA-Z0-9_\-]+)/$', NetworkSliverDetail.as_view(), name='networksliver-detail'),
101
102     url(r'^plstackapi/networks/$', NetworkList.as_view(), name='network-list'),
103     url(r'^plstackapi/networks/(?P<pk>[a-zA-Z0-9_\-]+)/$', NetworkDetail.as_view(), name='network-detail'),
104     
105     url(r'^plstackapi/services/$', SliceList.as_view(), name='service-list'),
106     url(r'^plstackapi/services/(?P<pk>[a-zA-Z0-9_\-]+)/$', SliceDetail.as_view(), name='service-detail'),
107
108     url(r'^plstackapi/slices/$', SliceList.as_view(), name='slice-list'),
109     url(r'^plstackapi/slices/(?P<pk>[a-zA-Z0-9_\-]+)/$', SliceDetail.as_view(), name='slice-detail'),
110
111     url(r'^plstackapi/slice_memberships/$', SlicePrivilegeList.as_view(), name='sliceprivilege-list'),
112     url(r'^plstackapi/slice_memberships/(?P<pk>[0-9]+)/$', SlicePrivilegeDetail.as_view(), name='sliceprivilege-detail'),
113     
114     url(r'^plstackapi/slivers/$', SliverList.as_view(), name='sliver-list'),
115     url(r'^plstackapi/slivers/(?P<pk>[a-zA-Z0-9_\-]+)/$', SliverDetail.as_view(), name='sliver-detail'),
116
117     url(r'^plstackapi/tags/$', TagList.as_view(), name='tag-list'),
118     url(r'^plstackapi/tags/(?P<pk>[a-zA-Z0-9_\-]+)/$', TagDetail.as_view(), name='tag-detail'),
119
120     url(r'^plstackapi/users/$', UserList.as_view(), name='user-list'),
121     url(r'^plstackapi/users/(?P<pk>[a-zA-Z0-9_\-]+)/$', UserDetail.as_view(), name='user-detail'),
122
123     url(r'^xmlrpc/legacyapi/$', 'core.views.legacyapi.LegacyXMLRPC', name='xmlrpc'),
124
125 #    url(r'^analytics/(?P<name>\w+)/$', AnalyticsAjaxView.as_view(), name="analytics"),
126
127     url(r'^files/', redirect_to_apache),
128
129     #Adding in rest_framework urls
130     url(r'^plstackapi/', include('rest_framework.urls', namespace='rest_framework')),
131
132     # XOSLib rest methods
133     url(r'^xoslib/', include('core.xoslib.methods', namespace='xoslib')),    
134 )