Update for akanda->astara rename
This updates astara-horizon code for the project rename: * References to Akanda/akanda changed to Astara/astara * Refernces to RUG/Rug removed or replaced with astara * RugClient -> AstaraClient * Panel renamed RUG -> Astara Also added copyright headers to all code files. Change-Id: I78eeacda4f8ae16a61890d9cbfd41ddf037b9677 Partially-implements: blueprint astara-horizon-mitaka
This commit is contained in:
parent
3a3f2617d5
commit
c3234f70fb
|
@ -1,11 +1,11 @@
|
|||
# Akanda Rug Horizon Extension
|
||||
|
||||
1. Install module
|
||||
|
||||
|
||||
```
|
||||
pip install akanda-horizon
|
||||
pip install astara-horizon
|
||||
```
|
||||
|
||||
|
||||
2. Copy extension files from the project root folder to ```/etc/openstack_dashboard/local/enabled``` or to ```/opt/stack/horizon/openstack_dashboard/local/enabled``` folder
|
||||
|
||||
```
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
"""
|
||||
Stub file to work around django bug: https://code.djangoproject.com/ticket/7198
|
||||
"""
|
|
@ -1,13 +0,0 @@
|
|||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
import horizon
|
||||
|
||||
from openstack_dashboard.dashboards.admin import dashboard
|
||||
|
||||
|
||||
class Rugrouters(horizon.Panel):
|
||||
name = _("Routers")
|
||||
slug = "rugrouters"
|
||||
|
||||
|
||||
dashboard.Admin.register(Rugrouters)
|
|
@ -1,14 +0,0 @@
|
|||
from django.conf.urls import patterns
|
||||
from django.conf.urls import url
|
||||
|
||||
from akanda_horizon.rug_openstack_dashboard.dashboards.admin.rugrouters \
|
||||
import views
|
||||
|
||||
ROUTERS = r'^(?P<router_id>[^/]+)/%s$'
|
||||
|
||||
urlpatterns = patterns(
|
||||
'rug_openstack_dashboard.dashboards.admin.rugrouters.views',
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
url(r'^poll$', views.PollView.as_view(), name='poll'),
|
||||
url(ROUTERS % 'rebuild', views.RebuildView.as_view(), name='rebuild'),
|
||||
)
|
|
@ -1,3 +0,0 @@
|
|||
"""
|
||||
Stub file to work around django bug: https://code.djangoproject.com/ticket/7198
|
||||
"""
|
|
@ -1,13 +0,0 @@
|
|||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
import horizon
|
||||
|
||||
from openstack_dashboard.dashboards.admin import dashboard
|
||||
|
||||
|
||||
class Rugtenants(horizon.Panel):
|
||||
name = _("Tenants")
|
||||
slug = "rugtenants"
|
||||
|
||||
|
||||
dashboard.Admin.register(Rugtenants)
|
|
@ -1,15 +0,0 @@
|
|||
from django.conf.urls import patterns
|
||||
from django.conf.urls import url
|
||||
|
||||
from akanda_horizon.rug_openstack_dashboard.dashboards.admin.rugtenants \
|
||||
import views
|
||||
|
||||
TENANT = r'^(?P<tenant_id>[^/]+)/%s$'
|
||||
|
||||
urlpatterns = patterns(
|
||||
'rug_openstack_dashboard.dashboards.admin.rugtenants.views',
|
||||
url(r'^$', views.TenantIndexView.as_view(), name='index'),
|
||||
url(TENANT % '$', views.TenantRouterIndexView.as_view(), name='tenant'),
|
||||
url(r'^(?P<tenant_id>[^/]+)/(?P<router_id>[^/]+)/rebuild$',
|
||||
views.RebuildView.as_view(), name='rebuild'),
|
||||
)
|
|
@ -1,3 +1,17 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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 datetime import datetime
|
||||
from django.conf import settings
|
||||
from horizon.utils import functions as utils
|
||||
|
@ -41,7 +55,7 @@ class Router(object):
|
|||
setattr(self, k, v)
|
||||
|
||||
|
||||
class RugClient(object):
|
||||
class AstaraClient(object):
|
||||
def __init__(self):
|
||||
self.host = (
|
||||
_get_local_service_ip(settings.RUG_MANAGEMENT_PREFIX)
|
|
@ -1,3 +1,17 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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.utils.translation import ugettext_lazy as _
|
||||
from django.template.defaultfilters import filesizeformat
|
||||
|
||||
|
@ -7,10 +21,10 @@ from horizon import messages
|
|||
|
||||
from openstack_dashboard.dashboards.project.images import utils
|
||||
|
||||
from akanda_horizon.rug_openstack_dashboard.api.rug import RugClient
|
||||
from astara_horizon.astara_openstack_dashboard.api.astara import AstaraClient
|
||||
|
||||
|
||||
rc = RugClient()
|
||||
rc = AstaraClient()
|
||||
|
||||
|
||||
def _image_choice_title(img):
|
|
@ -0,0 +1,17 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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.
|
||||
|
||||
"""
|
||||
Stub file to work around django bug: https://code.djangoproject.com/ticket/7198
|
||||
"""
|
|
@ -0,0 +1,27 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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.utils.translation import ugettext_lazy as _
|
||||
|
||||
import horizon
|
||||
|
||||
from openstack_dashboard.dashboards.admin import dashboard
|
||||
|
||||
|
||||
class AstaraRouters(horizon.Panel):
|
||||
name = _("Routers")
|
||||
slug = "astararouters"
|
||||
|
||||
|
||||
dashboard.Admin.register(AstaraRouters)
|
|
@ -1,13 +1,27 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import ungettext_lazy
|
||||
|
||||
from horizon import exceptions
|
||||
from horizon import tables
|
||||
|
||||
from akanda_horizon.rug_openstack_dashboard.api.rug import RugClient
|
||||
from astara_horizon.astara_openstack_dashboard.api.astara import AstaraClient
|
||||
|
||||
|
||||
rc = RugClient()
|
||||
rc = AstaraClient()
|
||||
|
||||
|
||||
class ManageAction(tables.BatchAction):
|
||||
|
@ -109,14 +123,14 @@ class UpdateAction(tables.BatchAction):
|
|||
class PollAction(tables.LinkAction):
|
||||
name = "poll"
|
||||
verbose_name = _("Poll Routers")
|
||||
url = "horizon:admin:rugrouters:poll"
|
||||
url = "horizon:admin:astararouters:poll"
|
||||
classes = ("ajax-modal",)
|
||||
|
||||
|
||||
class RebuildAction(tables.LinkAction):
|
||||
name = "rebuild"
|
||||
verbose_name = _("Rebuild Router")
|
||||
url = "horizon:admin:rugrouters:rebuild"
|
||||
url = "horizon:admin:astararouters:rebuild"
|
||||
classes = ("ajax-modal",)
|
||||
|
||||
|
|
@ -2,10 +2,10 @@
|
|||
{% load i18n %}
|
||||
{% load url from future %}
|
||||
|
||||
{% block form_id %}poll_rugrouters_form{% endblock %}
|
||||
{% block form_action %}{% url 'horizon:admin:rugrouters:poll' %}{% endblock %}
|
||||
{% block form_id %}poll_astararouters_form{% endblock %}
|
||||
{% block form_action %}{% url 'horizon:admin:astararouters:poll' %}{% endblock %}
|
||||
|
||||
{% block modal_id %}poll_rugrouters_modal{% endblock %}
|
||||
{% block modal_id %}poll_astararouters_modal{% endblock %}
|
||||
|
||||
{% block modal-header %}{% trans "Poll Routers" %}{% endblock %}
|
||||
|
||||
|
@ -17,5 +17,5 @@
|
|||
|
||||
{% block modal-footer %}
|
||||
<input class="btn btn-primary" type="submit" value="{% trans "Poll Routers" %}" />
|
||||
<a href="{% url 'horizon:admin:rugrouters:index' %}" class="btn btn-default cancel">{% trans "Cancel" %}</a>
|
||||
<a href="{% url 'horizon:admin:astararouters:index' %}" class="btn btn-default cancel">{% trans "Cancel" %}</a>
|
||||
{% endblock %}
|
|
@ -2,10 +2,10 @@
|
|||
{% load i18n %}
|
||||
{% load url from future %}
|
||||
|
||||
{% block form_id %}rebuild_rugrouters_form{% endblock %}
|
||||
{% block form_action %}{% url 'horizon:admin:rugrouters:rebuild' router_id %}{% endblock %}
|
||||
{% block form_id %}rebuild_astararouters_form{% endblock %}
|
||||
{% block form_action %}{% url 'horizon:admin:astararouters:rebuild' router_id %}{% endblock %}
|
||||
|
||||
{% block modal_id %}rebuild_rugrouters_modal{% endblock %}
|
||||
{% block modal_id %}rebuild_astararouters_modal{% endblock %}
|
||||
|
||||
{% block modal-header %}{% trans "Rebuild Router" %}{% endblock %}
|
||||
|
||||
|
@ -23,5 +23,5 @@
|
|||
|
||||
{% block modal-footer %}
|
||||
<input class="btn btn-primary" type="submit" value="{% trans "Rebuild Router" %}" />
|
||||
<a href="{% url 'horizon:admin:rugrouters:index' %}" class="btn btn-default cancel">{% trans "Cancel" %}</a>
|
||||
<a href="{% url 'horizon:admin:astararouters:index' %}" class="btn btn-default cancel">{% trans "Cancel" %}</a>
|
||||
{% endblock %}
|
|
@ -7,5 +7,5 @@
|
|||
{% endblock page_header %}
|
||||
|
||||
{% block main %}
|
||||
{% include "admin/rugrouters/_poll.html" %}
|
||||
{% include "admin/astararouters/_poll.html" %}
|
||||
{% endblock %}
|
|
@ -7,5 +7,5 @@
|
|||
{% endblock page_header %}
|
||||
|
||||
{% block main %}
|
||||
{% include "admin/rugrouters/_rebuild.html" %}
|
||||
{% include "admin/astararouters/_rebuild.html" %}
|
||||
{% endblock %}
|
|
@ -0,0 +1,28 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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 patterns
|
||||
from django.conf.urls import url
|
||||
|
||||
from astara_horizon.astara_openstack_dashboard.dashboards.admin.astararouters \
|
||||
import views
|
||||
|
||||
ROUTERS = r'^(?P<router_id>[^/]+)/%s$'
|
||||
|
||||
urlpatterns = patterns(
|
||||
'rug_openstack_dashboard.dashboards.admin.astararouters.views',
|
||||
url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
url(r'^poll$', views.PollView.as_view(), name='poll'),
|
||||
url(ROUTERS % 'rebuild', views.RebuildView.as_view(), name='rebuild'),
|
||||
)
|
|
@ -1,3 +1,17 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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.core.urlresolvers import reverse
|
||||
from django.core.urlresolvers import reverse_lazy
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
@ -8,19 +22,19 @@ from horizon import exceptions
|
|||
|
||||
from openstack_dashboard import api
|
||||
|
||||
from akanda_horizon.rug_openstack_dashboard.dashboards.admin.rugrouters import \
|
||||
from astara_horizon.astara_openstack_dashboard.dashboards.admin.astararouters import \
|
||||
tables as router_tables
|
||||
from akanda_horizon.rug_openstack_dashboard.dashboards.admin.rugrouters import \
|
||||
forms as rugrouters_forms
|
||||
from akanda_horizon.rug_openstack_dashboard.api.rug import RugClient
|
||||
from astara_horizon.astara_openstack_dashboard.dashboards.admin.astararouters import \
|
||||
forms as astararouters_forms
|
||||
from astara_horizon.astara_openstack_dashboard.api.astara import AstaraClient
|
||||
|
||||
|
||||
rc = RugClient()
|
||||
rc = AstaraClient()
|
||||
|
||||
|
||||
class IndexView(tables.DataTableView):
|
||||
table_class = router_tables.RouterTable
|
||||
template_name = 'admin/rugrouters/index.html'
|
||||
template_name = 'admin/astararouters/index.html'
|
||||
|
||||
def has_prev_data(self, table):
|
||||
return getattr(self, "_prev", False)
|
||||
|
@ -33,22 +47,22 @@ class IndexView(tables.DataTableView):
|
|||
routers, self._more = rc.get_routers(self.request)
|
||||
return routers
|
||||
except Exception:
|
||||
url = reverse('horizon:admin:rugrouters:index')
|
||||
url = reverse('horizon:admin:astararouters:index')
|
||||
exceptions.handle(self.request,
|
||||
_('Unable to retrieve routers\' details.'),
|
||||
redirect=url)
|
||||
|
||||
|
||||
class PollView(forms.ModalFormView):
|
||||
form_class = rugrouters_forms.PollForm
|
||||
template_name = 'admin/rugrouters/poll.html'
|
||||
success_url = reverse_lazy('horizon:admin:rugrouters:index')
|
||||
form_class = astararouters_forms.PollForm
|
||||
template_name = 'admin/astararouters/poll.html'
|
||||
success_url = reverse_lazy('horizon:admin:astararouters:index')
|
||||
|
||||
|
||||
class RebuildView(forms.ModalFormView):
|
||||
form_class = rugrouters_forms.RebuildForm
|
||||
template_name = 'admin/rugrouters/rebuild.html'
|
||||
success_url = reverse_lazy('horizon:admin:rugrouters:index')
|
||||
form_class = astararouters_forms.RebuildForm
|
||||
template_name = 'admin/astararouters/rebuild.html'
|
||||
success_url = reverse_lazy('horizon:admin:astararouters:index')
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
self.router = api.neutron.router_get(self.request,
|
|
@ -0,0 +1,17 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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.
|
||||
|
||||
"""
|
||||
Stub file to work around django bug: https://code.djangoproject.com/ticket/7198
|
||||
"""
|
|
@ -0,0 +1,27 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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.utils.translation import ugettext_lazy as _
|
||||
|
||||
import horizon
|
||||
|
||||
from openstack_dashboard.dashboards.admin import dashboard
|
||||
|
||||
|
||||
class AstaraTenants(horizon.Panel):
|
||||
name = _("Tenants")
|
||||
slug = "astaratenants"
|
||||
|
||||
|
||||
dashboard.Admin.register(AstaraTenants)
|
|
@ -1,3 +1,17 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import ungettext_lazy
|
||||
|
@ -5,10 +19,10 @@ from django.utils.translation import ungettext_lazy
|
|||
from horizon import tables
|
||||
from horizon import exceptions
|
||||
|
||||
from akanda_horizon.rug_openstack_dashboard.api.rug import RugClient
|
||||
from astara_horizon.astara_openstack_dashboard.api.astara import AstaraClient
|
||||
|
||||
|
||||
rc = RugClient()
|
||||
rc = AstaraClient()
|
||||
|
||||
|
||||
class TenantFilterAction(tables.FilterAction):
|
||||
|
@ -89,7 +103,7 @@ class TenantDebugAction(tables.BatchAction):
|
|||
|
||||
class TenantsTable(tables.DataTable):
|
||||
name = tables.Column('name', verbose_name=_('Name'),
|
||||
link="horizon:admin:rugtenants:tenant")
|
||||
link="horizon:admin:astaratenants:tenant")
|
||||
description = tables.Column(lambda obj: getattr(obj, 'description', None),
|
||||
verbose_name=_('Description'))
|
||||
id = tables.Column('id', verbose_name=_('Project ID'))
|
||||
|
@ -205,7 +219,7 @@ class RouterRebuildAction(tables.LinkAction):
|
|||
classes = ("ajax-modal",)
|
||||
|
||||
def get_link_url(self, datum=None):
|
||||
return reverse("horizon:admin:rugtenants:rebuild",
|
||||
return reverse("horizon:admin:astaratenants:rebuild",
|
||||
kwargs={'tenant_id': datum.tenant_id,
|
||||
'router_id': datum.id})
|
||||
|
|
@ -2,10 +2,10 @@
|
|||
{% load i18n %}
|
||||
{% load url from future %}
|
||||
|
||||
{% block form_id %}rebuild_rugtenants_form{% endblock %}
|
||||
{% block form_action %}{% url 'horizon:admin:rugtenants:rebuild' router_id=router_id tenant_id=tenant_id %}{% endblock %}
|
||||
{% block form_id %}rebuild_astaratenants_form{% endblock %}
|
||||
{% block form_action %}{% url 'horizon:admin:astaratenants:rebuild' router_id=router_id tenant_id=tenant_id %}{% endblock %}
|
||||
|
||||
{% block modal_id %}rebuild_rugtenants_modal{% endblock %}
|
||||
{% block modal_id %}rebuild_astaratenants_modal{% endblock %}
|
||||
|
||||
{% block modal-header %}{% trans "Rebuild Router" %}{% endblock %}
|
||||
|
||||
|
@ -23,5 +23,5 @@
|
|||
|
||||
{% block modal-footer %}
|
||||
<input class="btn btn-primary" type="submit" value="{% trans "Rebuild Router" %}" />
|
||||
<a href="{% url 'horizon:admin:rugtenants:index' %}" class="btn btn-default cancel">{% trans "Cancel" %}</a>
|
||||
<a href="{% url 'horizon:admin:astaratenants:index' %}" class="btn btn-default cancel">{% trans "Cancel" %}</a>
|
||||
{% endblock %}
|
|
@ -7,5 +7,5 @@
|
|||
{% endblock page_header %}
|
||||
|
||||
{% block main %}
|
||||
{% include "admin/rugtenants/_rebuild.html" %}
|
||||
{% include "admin/astaratenants/_rebuild.html" %}
|
||||
{% endblock %}
|
|
@ -0,0 +1,29 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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 patterns
|
||||
from django.conf.urls import url
|
||||
|
||||
from astara_horizon.astara_openstack_dashboard.dashboards.admin.astaratenants \
|
||||
import views
|
||||
|
||||
TENANT = r'^(?P<tenant_id>[^/]+)/%s$'
|
||||
|
||||
urlpatterns = patterns(
|
||||
'astara_openstack_dashboard.dashboards.admin.astaratenants.views',
|
||||
url(r'^$', views.TenantIndexView.as_view(), name='index'),
|
||||
url(TENANT % '$', views.TenantRouterIndexView.as_view(), name='tenant'),
|
||||
url(r'^(?P<tenant_id>[^/]+)/(?P<router_id>[^/]+)/rebuild$',
|
||||
views.RebuildView.as_view(), name='rebuild'),
|
||||
)
|
|
@ -1,3 +1,17 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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.utils.translation import ugettext_lazy as _
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.urlresolvers import reverse_lazy
|
||||
|
@ -10,19 +24,19 @@ from horizon import forms
|
|||
from openstack_dashboard import api
|
||||
from openstack_dashboard import policy
|
||||
|
||||
from akanda_horizon.rug_openstack_dashboard.dashboards.admin.rugtenants \
|
||||
from astara_horizon.astara_openstack_dashboard.dashboards.admin.astaratenants \
|
||||
import tables as tenant_tables
|
||||
from akanda_horizon.rug_openstack_dashboard.dashboards.admin.rugrouters \
|
||||
import forms as rugrouters_forms
|
||||
from akanda_horizon.rug_openstack_dashboard.api.rug import RugClient
|
||||
from astara_horizon.astara_openstack_dashboard.dashboards.admin.astararouters \
|
||||
import forms as astararouters_forms
|
||||
from astara_horizon.astara_openstack_dashboard.api.astara import AstaraClient
|
||||
|
||||
|
||||
rc = RugClient()
|
||||
rc = AstaraClient()
|
||||
|
||||
|
||||
class TenantIndexView(tables.DataTableView):
|
||||
table_class = tenant_tables.TenantsTable
|
||||
template_name = 'admin/rugtenants/index.html'
|
||||
template_name = 'admin/astaratenants/index.html'
|
||||
|
||||
def has_more_data(self, table):
|
||||
return self._more
|
||||
|
@ -66,7 +80,7 @@ class TenantIndexView(tables.DataTableView):
|
|||
|
||||
class TenantRouterIndexView(tables.DataTableView):
|
||||
table_class = tenant_tables.TenantRouterTable
|
||||
template_name = 'admin/rugtenants/router-index.html'
|
||||
template_name = 'admin/astaratenants/router-index.html'
|
||||
|
||||
def has_prev_data(self, table):
|
||||
return getattr(self, "_prev", False)
|
||||
|
@ -91,19 +105,19 @@ class TenantRouterIndexView(tables.DataTableView):
|
|||
)
|
||||
return routers
|
||||
except Exception:
|
||||
url = reverse('horizon:admin:rugtenants:index')
|
||||
url = reverse('horizon:admin:astaratenants:index')
|
||||
exceptions.handle(self.request,
|
||||
_('Unable to retrieve routers\' details.'),
|
||||
redirect=url)
|
||||
|
||||
|
||||
class RebuildView(forms.ModalFormView):
|
||||
form_class = rugrouters_forms.RebuildForm
|
||||
template_name = 'admin/rugtenants/rebuild.html'
|
||||
success_url = reverse_lazy('horizon:admin:rugtenants:index')
|
||||
form_class = astararouters_forms.RebuildForm
|
||||
template_name = 'admin/astaratenants/rebuild.html'
|
||||
success_url = reverse_lazy('horizon:admin:astaratenants:index')
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse("horizon:admin:rugtenants:tenant",
|
||||
return reverse("horizon:admin:astaratenants:tenant",
|
||||
args=(self.kwargs['tenant_id'],))
|
||||
|
||||
def get_context_data(self, **kwargs):
|
|
@ -0,0 +1,20 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# The name of the panel group to be added to HORIZON_CONFIG. Required.
|
||||
PANEL_GROUP = 'astara'
|
||||
# The display name of the PANEL_GROUP. Required.
|
||||
PANEL_GROUP_NAME = 'Astara'
|
||||
# The name of the dashboard the PANEL_GROUP associated with. Required.
|
||||
PANEL_GROUP_DASHBOARD = 'admin'
|
|
@ -1,6 +0,0 @@
|
|||
# The name of the panel group to be added to HORIZON_CONFIG. Required.
|
||||
PANEL_GROUP = 'rug'
|
||||
# The display name of the PANEL_GROUP. Required.
|
||||
PANEL_GROUP_NAME = 'RUG'
|
||||
# The name of the dashboard the PANEL_GROUP associated with. Required.
|
||||
PANEL_GROUP_DASHBOARD = 'admin'
|
|
@ -0,0 +1,24 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# The name of the panel to be added to HORIZON_CONFIG. Required.
|
||||
PANEL = 'astararouters'
|
||||
# The name of the dashboard the PANEL associated with. Required.
|
||||
PANEL_DASHBOARD = 'admin'
|
||||
# The name of the panel group the PANEL is associated with.
|
||||
PANEL_GROUP = 'astara'
|
||||
|
||||
# Python panel class of the PANEL to be added.
|
||||
ADD_PANEL = \
|
||||
'astara_horizon.astara_openstack_dashboard.dashboards.admin.astararouters.panel.AstaraRouters'
|
|
@ -1,10 +0,0 @@
|
|||
# The name of the panel to be added to HORIZON_CONFIG. Required.
|
||||
PANEL = 'rugrouters'
|
||||
# The name of the dashboard the PANEL associated with. Required.
|
||||
PANEL_DASHBOARD = 'admin'
|
||||
# The name of the panel group the PANEL is associated with.
|
||||
PANEL_GROUP = 'rug'
|
||||
|
||||
# Python panel class of the PANEL to be added.
|
||||
ADD_PANEL = \
|
||||
'akanda_horizon.rug_openstack_dashboard.dashboards.admin.rugrouters.panel.Rugrouters'
|
|
@ -0,0 +1,26 @@
|
|||
# Copyright (c) 2015 Akanda, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# The name of the panel to be added to HORIZON_CONFIG. Required.
|
||||
PANEL = 'astaratenants'
|
||||
# The name of the dashboard the PANEL associated with. Required.
|
||||
PANEL_DASHBOARD = 'admin'
|
||||
# The name of the panel group the PANEL is associated with.
|
||||
PANEL_GROUP = 'astara'
|
||||
|
||||
# Python panel class of the PANEL to be added.
|
||||
ADD_PANEL = (
|
||||
'astara_horizon.astara_openstack_dashboard.dashboards.admin.astaratenants.'
|
||||
'panel.AstaraTenants')
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
# The name of the panel to be added to HORIZON_CONFIG. Required.
|
||||
PANEL = 'rugtenants'
|
||||
# The name of the dashboard the PANEL associated with. Required.
|
||||
PANEL_DASHBOARD = 'admin'
|
||||
# The name of the panel group the PANEL is associated with.
|
||||
PANEL_GROUP = 'rug'
|
||||
|
||||
# Python panel class of the PANEL to be added.
|
||||
ADD_PANEL = (
|
||||
'akanda_horizon.rug_openstack_dashboard.dashboards.admin.rugtenants.'
|
||||
'panel.Rugtenants')
|
||||
|
10
setup.cfg
10
setup.cfg
|
@ -6,7 +6,7 @@ description-file =
|
|||
README.md
|
||||
author = OpenStack
|
||||
author-email = openstack-dev@lists.openstack.org
|
||||
home-page = http://github.com/openstack/akanda-horizon
|
||||
home-page = http://github.com/openstack/astara-horizon
|
||||
classifier =
|
||||
Environment :: OpenStack
|
||||
Intended Audience :: Developers
|
||||
|
@ -22,10 +22,10 @@ classifier =
|
|||
|
||||
[files]
|
||||
packages =
|
||||
akanda_horizon
|
||||
akanda_horizon.rug_openstack_dashboard
|
||||
astara_horizon
|
||||
astara_horizon.astara_openstack_dashboard
|
||||
namespace_packages =
|
||||
akanda_horizon
|
||||
astara_horizon
|
||||
|
||||
[global]
|
||||
setup-hooks =
|
||||
|
@ -40,4 +40,4 @@ source-dir = doc/source
|
|||
where = test
|
||||
verbosity = 2
|
||||
detailed-errors = 1
|
||||
cover-package = akanda_horizon
|
||||
cover-package = astara_horizon
|
||||
|
|
4
tox.ini
4
tox.ini
|
@ -5,7 +5,7 @@ envlist = py27,pep8
|
|||
distribute = False
|
||||
setenv = VIRTUAL_ENV={envdir}
|
||||
deps = -r{toxinidir}/test-requirements.txt
|
||||
commands = nosetests --with-coverage --cover-package=akanda.rug {posargs}
|
||||
commands = nosetests --with-coverage {posargs}
|
||||
sitepackages = False
|
||||
|
||||
[tox:jenkins]
|
||||
|
@ -13,7 +13,7 @@ sitepackages = False
|
|||
[testenv:style]
|
||||
deps = flake8
|
||||
setuptools_git>=0.4
|
||||
commands = flake8 akanda_horizon setup.py
|
||||
commands = flake8 astara_horizon setup.py
|
||||
|
||||
[testenv:pep8]
|
||||
deps = {[testenv:style]deps}
|
||||
|
|
Loading…
Reference in New Issue