blob: dc03e30356028ed44ba4605063d687ee58fd86b0 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001#
2# BitBake Toaster Implementation
3#
Brad Bishopd7bf8c12018-02-25 22:55:05 -05004# Copyright (C) 2013-2017 Intel Corporation
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005#
6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License version 2 as
8# published by the Free Software Foundation.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License along
16# with this program; if not, write to the Free Software Foundation, Inc.,
17# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
Brad Bishopd7bf8c12018-02-25 22:55:05 -050019from django.conf.urls import include, url
Patrick Williamsc124f4f2015-09-15 14:41:29 -050020from django.views.generic import RedirectView, TemplateView
21
22from django.http import HttpResponseBadRequest
23from toastergui import tables
Patrick Williamsc0f7c042017-02-23 20:41:17 -060024from toastergui import buildtables
Patrick Williamsc124f4f2015-09-15 14:41:29 -050025from toastergui import typeaheads
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050026from toastergui import api
Patrick Williamsc0f7c042017-02-23 20:41:17 -060027from toastergui import widgets
Brad Bishopd7bf8c12018-02-25 22:55:05 -050028from toastergui import views
Patrick Williamsc124f4f2015-09-15 14:41:29 -050029
Brad Bishopd7bf8c12018-02-25 22:55:05 -050030urlpatterns = [
Patrick Williamsc124f4f2015-09-15 14:41:29 -050031 # landing page
Brad Bishopd7bf8c12018-02-25 22:55:05 -050032 url(r'^landing/$', views.landing, name='landing'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -050033
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050034 url(r'^builds/$',
35 tables.AllBuildsTable.as_view(template_name="builds-toastertable.html"),
36 name='all-builds'),
37
Patrick Williamsc124f4f2015-09-15 14:41:29 -050038 # build info navigation
Brad Bishopd7bf8c12018-02-25 22:55:05 -050039 url(r'^build/(?P<build_id>\d+)$', views.builddashboard, name="builddashboard"),
Patrick Williamsc0f7c042017-02-23 20:41:17 -060040 url(r'^build/(?P<build_id>\d+)/tasks/$',
41 buildtables.BuildTasksTable.as_view(
42 template_name="buildinfo-toastertable.html"),
43 name='tasks'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -050044
Brad Bishopd7bf8c12018-02-25 22:55:05 -050045 url(r'^build/(?P<build_id>\d+)/task/(?P<task_id>\d+)$', views.task, name='task'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -050046
Patrick Williamsc0f7c042017-02-23 20:41:17 -060047 url(r'^build/(?P<build_id>\d+)/recipes/$',
48 buildtables.BuiltRecipesTable.as_view(
49 template_name="buildinfo-toastertable.html"),
50 name='recipes'),
51
Brad Bishopd7bf8c12018-02-25 22:55:05 -050052 url(r'^build/(?P<build_id>\d+)/recipe/(?P<recipe_id>\d+)/active_tab/(?P<active_tab>\d{1})$', views.recipe, name='recipe'),
Patrick Williamsc0f7c042017-02-23 20:41:17 -060053
Brad Bishopd7bf8c12018-02-25 22:55:05 -050054 url(r'^build/(?P<build_id>\d+)/recipe/(?P<recipe_id>\d+)$', views.recipe, name='recipe'),
55 url(r'^build/(?P<build_id>\d+)/recipe_packages/(?P<recipe_id>\d+)$', views.recipe_packages, name='recipe_packages'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -050056
Patrick Williamsc0f7c042017-02-23 20:41:17 -060057 url(r'^build/(?P<build_id>\d+)/packages/$',
58 buildtables.BuiltPackagesTable.as_view(
59 template_name="buildinfo-toastertable.html"),
60 name='packages'),
61
Brad Bishopd7bf8c12018-02-25 22:55:05 -050062 url(r'^build/(?P<build_id>\d+)/package/(?P<package_id>\d+)$', views.package_built_detail,
Patrick Williamsc124f4f2015-09-15 14:41:29 -050063 name='package_built_detail'),
64 url(r'^build/(?P<build_id>\d+)/package_built_dependencies/(?P<package_id>\d+)$',
Brad Bishopd7bf8c12018-02-25 22:55:05 -050065 views.package_built_dependencies, name='package_built_dependencies'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -050066 url(r'^build/(?P<build_id>\d+)/package_included_detail/(?P<target_id>\d+)/(?P<package_id>\d+)$',
Brad Bishopd7bf8c12018-02-25 22:55:05 -050067 views.package_included_detail, name='package_included_detail'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -050068 url(r'^build/(?P<build_id>\d+)/package_included_dependencies/(?P<target_id>\d+)/(?P<package_id>\d+)$',
Brad Bishopd7bf8c12018-02-25 22:55:05 -050069 views.package_included_dependencies, name='package_included_dependencies'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -050070 url(r'^build/(?P<build_id>\d+)/package_included_reverse_dependencies/(?P<target_id>\d+)/(?P<package_id>\d+)$',
Brad Bishopd7bf8c12018-02-25 22:55:05 -050071 views.package_included_reverse_dependencies, name='package_included_reverse_dependencies'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -050072
Patrick Williamsc0f7c042017-02-23 20:41:17 -060073 url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)$',
74 buildtables.InstalledPackagesTable.as_view(
75 template_name="target.html"),
76 name='target'),
77
78
Brad Bishopd7bf8c12018-02-25 22:55:05 -050079 url(r'^dentries/build/(?P<build_id>\d+)/target/(?P<target_id>\d+)$', views.xhr_dirinfo, name='dirinfo_ajax'),
80 url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/dirinfo$', views.dirinfo, name='dirinfo'),
81 url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/dirinfo_filepath/_(?P<file_path>(?:/[^/\n]+)*)$', views.dirinfo, name='dirinfo_filepath'),
82 url(r'^build/(?P<build_id>\d+)/configuration$', views.configuration, name='configuration'),
83 url(r'^build/(?P<build_id>\d+)/configvars$', views.configvars, name='configvars'),
Patrick Williamsc0f7c042017-02-23 20:41:17 -060084 url(r'^build/(?P<build_id>\d+)/buildtime$',
85 buildtables.BuildTimeTable.as_view(
86 template_name="buildinfo-toastertable.html"),
87 name='buildtime'),
88
89 url(r'^build/(?P<build_id>\d+)/cputime$',
90 buildtables.BuildCPUTimeTable.as_view(
91 template_name="buildinfo-toastertable.html"),
92 name='cputime'),
93
94 url(r'^build/(?P<build_id>\d+)/diskio$',
95 buildtables.BuildIOTable.as_view(
96 template_name="buildinfo-toastertable.html"),
97 name='diskio'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -050098
99 # image information dir
100 url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/packagefile/(?P<packagefile_id>\d+)$',
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500101 views.image_information_dir, name='image_information_dir'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500102
103 # build download artifact
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500104 url(r'^build/(?P<build_id>\d+)/artifact/(?P<artifact_type>\w+)/id/(?P<artifact_id>\w+)', views.build_artifact, name="build_artifact"),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500105
106 # project URLs
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500107 url(r'^newproject/$', views.newproject, name='newproject'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500108
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500109 url(r'^projects/$',
110 tables.ProjectsTable.as_view(template_name="projects-toastertable.html"),
111 name='all-projects'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500112
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500113 url(r'^project/(?P<pid>\d+)/$', views.project, name='project'),
114 url(r'^project/(?P<pid>\d+)/configuration$', views.projectconf, name='projectconf'),
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500115 url(r'^project/(?P<pid>\d+)/builds/$',
116 tables.ProjectBuildsTable.as_view(template_name="projectbuilds-toastertable.html"),
117 name='projectbuilds'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500118
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800119 url(r'^newproject_specific/(?P<pid>\d+)/$', views.newproject_specific, name='newproject_specific'),
120 url(r'^project_specific/(?P<pid>\d+)/$', views.project_specific, name='project_specific'),
121 url(r'^landing_specific/(?P<pid>\d+)/$', views.landing_specific, name='landing_specific'),
122 url(r'^landing_specific_cancel/(?P<pid>\d+)/$', views.landing_specific_cancel, name='landing_specific_cancel'),
123
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500124 # the import layer is a project-specific functionality;
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500125 url(r'^project/(?P<pid>\d+)/importlayer$', views.importlayer, name='importlayer'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500126
127 # the table pages that have been converted to ToasterTable widget
128 url(r'^project/(?P<pid>\d+)/machines/$',
129 tables.MachinesTable.as_view(template_name="generic-toastertable-page.html"),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500130 name="projectmachines"),
131
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500132 url(r'^project/(?P<pid>\d+)/softwarerecipes/$',
133 tables.SoftwareRecipesTable.as_view(template_name="generic-toastertable-page.html"),
134 name="projectsoftwarerecipes"),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500135
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500136 url(r'^project/(?P<pid>\d+)/images/$',
137 tables.ImageRecipesTable.as_view(template_name="generic-toastertable-page.html"), name="projectimagerecipes"),
138
139 url(r'^project/(?P<pid>\d+)/customimages/$',
140 tables.CustomImagesTable.as_view(template_name="generic-toastertable-page.html"), name="projectcustomimages"),
141
142 url(r'^project/(?P<pid>\d+)/newcustomimage/$',
143 tables.NewCustomImagesTable.as_view(template_name="newcustomimage.html"),
144 name="newcustomimage"),
145
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500146 url(r'^project/(?P<pid>\d+)/layers/$',
147 tables.LayersTable.as_view(template_name="generic-toastertable-page.html"),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500148 name="projectlayers"),
149
150 url(r'^project/(?P<pid>\d+)/layer/(?P<layerid>\d+)$',
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500151 views.layerdetails, name='layerdetails'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500152
153 url(r'^project/(?P<pid>\d+)/layer/(?P<layerid>\d+)/recipes/$',
154 tables.LayerRecipesTable.as_view(template_name="generic-toastertable-page.html"),
155 { 'table_name': tables.LayerRecipesTable.__name__.lower(),
156 'title' : 'All recipes in layer' },
157 name=tables.LayerRecipesTable.__name__.lower()),
158
159 url(r'^project/(?P<pid>\d+)/layer/(?P<layerid>\d+)/machines/$',
160 tables.LayerMachinesTable.as_view(template_name="generic-toastertable-page.html"),
161 { 'table_name': tables.LayerMachinesTable.__name__.lower(),
162 'title' : 'All machines in layer' },
163 name=tables.LayerMachinesTable.__name__.lower()),
164
165
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500166 url(r'^project/(?P<pid>\d+)/distros/$',
167 tables.DistrosTable.as_view(template_name="generic-toastertable-page.html"),
168 name="projectdistros"),
169
170
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500171 url(r'^project/(?P<pid>\d+)/customrecipe/(?P<custrecipeid>\d+)/selectpackages/$',
172 tables.SelectPackagesTable.as_view(), name="recipeselectpackages"),
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500173
174
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500175 url(r'^project/(?P<pid>\d+)/customrecipe/(?P<custrecipeid>\d+)$',
176 tables.SelectPackagesTable.as_view(template_name="customrecipe.html"),
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500177 name="customrecipe"),
178
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500179 url(r'^project/(?P<pid>\d+)/customrecipe/(?P<recipe_id>\d+)/download$',
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500180 views.customrecipe_download,
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500181 name="customrecipedownload"),
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500182
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500183 url(r'^project/(?P<pid>\d+)/recipe/(?P<recipe_id>\d+)$',
184 tables.PackagesTable.as_view(template_name="recipedetails.html"),
185 name="recipedetails"),
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500186
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500187 # typeahead api end points
188 url(r'^xhr_typeahead/(?P<pid>\d+)/layers$',
189 typeaheads.LayersTypeAhead.as_view(), name='xhr_layerstypeahead'),
190 url(r'^xhr_typeahead/(?P<pid>\d+)/machines$',
191 typeaheads.MachinesTypeAhead.as_view(), name='xhr_machinestypeahead'),
192 url(r'^xhr_typeahead/(?P<pid>\d+)/recipes$',
193 typeaheads.RecipesTypeAhead.as_view(), name='xhr_recipestypeahead'),
194 url(r'^xhr_typeahead/projects$',
195 typeaheads.ProjectsTypeAhead.as_view(), name='xhr_projectstypeahead'),
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500196 url(r'^xhr_typeahead/gitrev$',
197 typeaheads.GitRevisionTypeAhead.as_view(),
198 name='xhr_gitrevtypeahead'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500199
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500200 url(r'^xhr_typeahead/(?P<pid>\d+)/distros$',
201 typeaheads.DistrosTypeAhead.as_view(), name='xhr_distrostypeahead'),
202
203 url(r'^xhr_testreleasechange/(?P<pid>\d+)$', views.xhr_testreleasechange,
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500204 name='xhr_testreleasechange'),
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500205 url(r'^xhr_configvaredit/(?P<pid>\d+)$', views.xhr_configvaredit,
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500206 name='xhr_configvaredit'),
207
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600208 url(r'^xhr_layer/(?P<pid>\d+)/(?P<layerversion_id>\d+)$',
209 api.XhrLayer.as_view(),
210 name='xhr_layer'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500211
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500212 url(r'^xhr_layer/(?P<pid>\d+)$',
213 api.XhrLayer.as_view(),
214 name='xhr_layer'),
215
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500216 # JS Unit tests
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500217 url(r'^js-unit-tests/$', views.jsunittests, name='js-unit-tests'),
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500218
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500219 # image customisation functionality
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600220 url(r'^xhr_customrecipe/(?P<recipe_id>\d+)'
221 '/packages/(?P<package_id>\d+|)$',
222 api.XhrCustomRecipePackages.as_view(),
223 name='xhr_customrecipe_packages'),
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500224
225 url(r'^xhr_customrecipe/(?P<recipe_id>\d+)/packages/$',
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600226 api.XhrCustomRecipePackages.as_view(),
227 name='xhr_customrecipe_packages'),
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500228
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600229 url(r'^xhr_customrecipe/(?P<recipe_id>\d+)$',
230 api.XhrCustomRecipeId.as_view(),
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500231 name='xhr_customrecipe_id'),
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600232
233 url(r'^xhr_customrecipe/',
234 api.XhrCustomRecipe.as_view(),
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500235 name='xhr_customrecipe'),
236
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500237 url(r'^xhr_buildrequest/project/(?P<pid>\d+)$',
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600238 api.XhrBuildRequest.as_view(),
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500239 name='xhr_buildrequest'),
240
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800241 url(r'^xhr_projectupdate/project/(?P<pid>\d+)$',
242 api.XhrProjectUpdate.as_view(),
243 name='xhr_projectupdate'),
244
245 url(r'^xhr_setdefaultimage/project/(?P<pid>\d+)$',
246 api.XhrSetDefaultImageUrl.as_view(),
247 name='xhr_setdefaultimage'),
248
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600249 url(r'xhr_project/(?P<project_id>\d+)$',
250 api.XhrProject.as_view(),
251 name='xhr_project'),
252
253 url(r'xhr_build/(?P<build_id>\d+)$',
254 api.XhrBuild.as_view(),
255 name='xhr_build'),
256
257 url(r'^mostrecentbuilds$', widgets.MostRecentBuildsView.as_view(),
258 name='most_recent_builds'),
259
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500260 # JSON data for aggregators
261 url(r'^api/builds$', views.json_builds, name='json_builds'),
262 url(r'^api/building$', views.json_building, name='json_building'),
263 url(r'^api/build/(?P<build_id>\d+)$', views.json_build, name='json_build'),
264
265 # default redirection
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500266 url(r'^$', RedirectView.as_view(url='landing', permanent=True)),
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500267]