diff options
author | Haibin Huang <haibin.huang@intel.com> | 2019-01-28 15:08:19 +0800 |
---|---|---|
committer | Haibin Huang <haibin.huang@intel.com> | 2019-01-28 15:46:06 +0800 |
commit | 52ba7d322d875a4d20c4651479bc7f608846e4f8 (patch) | |
tree | 7990f72eaa040383d62a23a702d16de149d28ead /starlingx | |
parent | 72b82b89006088802d13b1c488296fb7a2f0fcf9 (diff) |
Add openoapi for starlingx
Change-Id: Ifd5395ec49e1eb56d349270dbc13efc963fe7e67
Issue-ID: MULTICLOUD-428
Signed-off-by: Haibin Huang <haibin.huang@intel.com>
Diffstat (limited to 'starlingx')
-rw-r--r-- | starlingx/starlingx/requests/__init__.py | 13 | ||||
-rw-r--r-- | starlingx/starlingx/requests/urls.py | 49 | ||||
-rw-r--r-- | starlingx/starlingx/requests/urlsV1.py | 49 | ||||
-rw-r--r-- | starlingx/starlingx/requests/views/__init__.py | 13 | ||||
-rw-r--r-- | starlingx/starlingx/urls.py | 9 |
5 files changed, 133 insertions, 0 deletions
diff --git a/starlingx/starlingx/requests/__init__.py b/starlingx/starlingx/requests/__init__.py new file mode 100644 index 00000000..81362a2b --- /dev/null +++ b/starlingx/starlingx/requests/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) 2019 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/starlingx/starlingx/requests/urls.py b/starlingx/starlingx/requests/urls.py new file mode 100644 index 00000000..fbd088e3 --- /dev/null +++ b/starlingx/starlingx/requests/urls.py @@ -0,0 +1,49 @@ +# Copyright (c) 2019 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from django.conf.urls import url +from rest_framework.urlpatterns import format_suffix_patterns + +from newton_base.openoapi import network +from newton_base.openoapi import subnet +from newton_base.openoapi import image +from newton_base.openoapi import volume +from newton_base.openoapi import server +from newton_base.openoapi import vport +from newton_base.openoapi import limits +from newton_base.openoapi import hosts +from newton_base.openoapi import flavor + +urlpatterns = [ + url(r'^networks(/(?P<networkid>[0-9a-zA-Z_-]+))?', + network.Networks.as_view()), + url(r'^subnets(/(?P<subnetid>[0-9a-zA-Z_-]+))?', + subnet.Subnets.as_view()), + url(r'^images(/(?P<imageid>[0-9a-zA-Z_-]+))?', + image.Images.as_view()), + url(r'^volumes(/(?P<volumeid>[0-9a-zA-Z_-]+))?', + volume.Volumes.as_view()), + url(r'^servers(/(?P<serverid>[0-9a-zA-Z_-]+))/action/?$', + server.ServerAction.as_view()), + url(r'^servers(/(?P<serverid>[0-9a-zA-Z_-]+))?', + server.Servers.as_view()), + url(r'^ports(/(?P<portid>[0-9a-zA-Z_-]+))?', + vport.Vports.as_view()), + url(r'^flavors(/(?P<flavorid>[0-9a-zA-Z_-]+))?', + flavor.Flavors.as_view()), + url(r'^limits$', limits.Limits.as_view()), + url(r'^hosts(/(?P<hostname>[0-9a-zA-Z_-]+))?', hosts.Hosts.as_view()), +] + +urlpatterns = format_suffix_patterns(urlpatterns) diff --git a/starlingx/starlingx/requests/urlsV1.py b/starlingx/starlingx/requests/urlsV1.py new file mode 100644 index 00000000..1318e82b --- /dev/null +++ b/starlingx/starlingx/requests/urlsV1.py @@ -0,0 +1,49 @@ +# Copyright (c) 2019 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from django.conf.urls import url +from rest_framework.urlpatterns import format_suffix_patterns + +from newton_base.openoapi import network +from newton_base.openoapi import subnet +from newton_base.openoapi import image +from newton_base.openoapi import volume +from newton_base.openoapi import server +from newton_base.openoapi import vport +from newton_base.openoapi import limits +from newton_base.openoapi import hosts +from newton_base.openoapi import flavor + +urlpatterns = [ + url(r'^networks(/(?P<networkid>[0-9a-zA-Z_-]+))?', + network.APIv1Networks.as_view()), + url(r'^subnets(/(?P<subnetid>[0-9a-zA-Z_-]+))?', + subnet.APIv1Subnets.as_view()), + url(r'^images(/(?P<imageid>[0-9a-zA-Z_-]+))?', + image.APIv1Images.as_view()), + url(r'^volumes(/(?P<volumeid>[0-9a-zA-Z_-]+))?', + volume.APIv1Volumes.as_view()), + url(r'^servers(/(?P<serverid>[0-9a-zA-Z_-]+))/action/?$', + server.APIv1ServerAction.as_view()), + url(r'^servers(/(?P<serverid>[0-9a-zA-Z_-]+))?', + server.APIv1Servers.as_view()), + url(r'^ports(/(?P<portid>[0-9a-zA-Z_-]+))?', + vport.APIv1Vports.as_view()), + url(r'^flavors(/(?P<flavorid>[0-9a-zA-Z_-]+))?', + flavor.APIv1Flavors.as_view()), + url(r'^limits$', limits.APIv1Limits.as_view()), + url(r'^hosts(/(?P<hostname>[0-9a-zA-Z_-]+))?', hosts.APIv1Hosts.as_view()), +] + +urlpatterns = format_suffix_patterns(urlpatterns) diff --git a/starlingx/starlingx/requests/views/__init__.py b/starlingx/starlingx/requests/views/__init__.py new file mode 100644 index 00000000..81362a2b --- /dev/null +++ b/starlingx/starlingx/requests/views/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) 2019 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/starlingx/starlingx/urls.py b/starlingx/starlingx/urls.py index 2795f324..d2a7c57f 100644 --- a/starlingx/starlingx/urls.py +++ b/starlingx/starlingx/urls.py @@ -14,6 +14,7 @@ from django.conf.urls import include, url from starlingx_base.registration import registration +from newton_base.openoapi import tenants urlpatterns = [ url(r'^', include('starlingx.swagger.urls')), @@ -26,6 +27,10 @@ urlpatterns = [ registration.Registry.as_view()), url(r'^api/multicloud-starlingx/v0/(?P<vimid>[0-9a-zA-Z_-]+)/', include('starlingx.proxy.urls')), + url(r'^api/multicloud-starlingx/v0/(?P<vimid>[0-9a-zA-Z_-]+)/tenants/?$', + tenants.Tenants.as_view()), + url(r'^api/multicloud-starlingx/v0/(?P<vimid>[0-9a-zA-Z_-]+)/' + '(?P<tenantid>[0-9a-zA-Z_-]{20,})/', include('starlingx.requests.urls')), # API v1, depreciated due to MULTICLOUD-335 url(r'^api/multicloud-starlingx/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/registry/?$', @@ -34,4 +39,8 @@ urlpatterns = [ registration.APIv1Registry.as_view()), url(r'^api/multicloud-starlingx/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/', include('starlingx.proxy.urlsV1')), + url(r'^api/multicloud-starlingx/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/tenants/?$', + tenants.APIv1Tenants.as_view()), + url(r'^api/multicloud-starlingx/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/' + '(?P<tenantid>[0-9a-zA-Z_-]{20,})/', include('starlingx.requests.urlsV1')), ] |