django.utils.translation.ugettext(), ugettext_lazy(), ugettext_noop(),
ungettext(), and ungettext_lazy() are deprecated in favor of the
functions that they’re aliases for: django.utils.translation.gettext(),
gettext_lazy(), gettext_noop(), ngettext(), and ngettext_lazy().
https://docs.djangoproject.com/en/4.0/releases/3.0/#id3
Change-Id: I77878f84e9d10cf6a136dada81eabf4e18676250
All strings are considered as unicode strings in python 3,
so we no longer need "u" prefix (u'...').
Co-Authored-By: Akihiro Motoki <amotoki@gmail.com>
Change-Id: I796d2fcdca066475bbf29d25cbf2aa67b2b2178b
In python3, super() does not always require a class and self reference.
In other words, super() is enough for most cases.
This is much simpler and it is time to switch it to the newer style.
pylint provides a check for this.
Let's enable 'super-with-arguments' check.
NOTE: _prepare_mappings() method of FormRegion in
openstack_dashboard/test/integration_tests/regions/forms.py is refactored.
super() (without explicit class and self referece) does not work when
a subclass method calls a same method in a parent class multiple times.
It looks better to prepare a separate method to provide a common logic.
Change-Id: Id9512a14be9f20dbd5ebd63d446570c7b7c825ff
This patch is a clean-up patch for refactor-error-messages bp
which remove the exception message from base message otherwise
the same exception message display twice like
this https://ibb.co/XyFWMdz .
Partially-Implements blueprint refactor-error-messages
Change-Id: I46b632dbb6701785e7d654feff336a27d6ecea9c
(In Django 2.0) The django.core.urlresolvers module is removed
in favor of its new location, django.urls.
It was depreacted in Django 1.10:
https://docs.djangoproject.com/en/2.0/releases/1.10/#id3
blueprint django2-support
Change-Id: I46ab5c325491274b8eaffbf848e5d80f83c2fd26
When creating a router, or when setting a gateway on a router - a checkbox
is displayed, which can be unchecked to disable SNAT.
Change-Id: I8bc040018645fe2bde534b7d48e14c17984cc9c4
Closes-bug: #1673076
Change Networks, Routers, Ports update form names from 'Update xxx'
to 'Edit xxx' to be consistent with the corresponding row actions.
Change-Id: I7d42830e640c75bf2bafd10bcf3ec96de592dc3d
Closes-Bug: #1688645
Many of the Python table views are using identical (or nearly identical)
table templates. This patch adds a common template and makes it the
default for a DataTableView, which allows us to remove many similar
templates and redundant lines of code.
Change-Id: I1e4e15e695ee1f21f4d44f141a854e30f1e567a1
Closes-Bug: 1653986
Across the codebase we've been using modal_header values that are
identical (or very close to) the page_title values. This patch sets the
modal_header to default to the page_title value, and cleans up a few
inconsistencies. Also deleted a couple of redundant submit_label values
that were identical to the default ("Submit").
Change-Id: I88815c3801c29b3fbc41e0cb426a50653255595f
Closes-Bug: 1653960
To extract commments for translators, '--add-comments' option
must be passed to pybabel. Comments for translators were extracted
when we used Django tools to extract messages, but when we switched
to pybabel it was lost. This commit adds the option to run_tests.sh.
Move the place of existing comments for translators
so that pybabel can find them. Django tool and pybabel
expect a bit different places.
Also add comments to ungettext_lazy in test codes.
Closes-Bug: #1553581
Change-Id: Ia2df36dfebb59bede19d57b2158a907126ca1944
Enables the translation of the status on
network topology.
Provides a json decoder that will resolve
lazy objects like translations.
Moves STATUS_DISPLAY_CHOICES and
ADMIN_STATE_DISPLAY_CHOICES out of the RoutersTable
for easy access to their status from other parts
of the code.
All network objects have their status translated
and a new item called original_status which provides
the untranslated status so the javascript code
is able to display the proper image (green/red)
based on the original status instead of doing it
on the translation.
Change-Id: Ic8cebafe7fbc291fa8933e8d1c2a244be20128e3
Closes-Bug: #1323599
Closes-Bug: #1484113
This patch adds basic Breadcrumb nav to the detail pages for Data
Processing, Databases, Metadata Definitions and Routers.
Change-Id: I114e93799b957db39cbe0d4e49d3e6869bc9d92d
Partial-Bug: 1413823
In some of the dashboard 'views.py' files, there is code that enables
the detail status and, when applicable, admin state labels to be
translated. The current coding style of these sections is hard
to read. Any and all sections of code that use this style should
be refactored to enhance the code readability. This change
proposes to create a single utility method that handles this
repetitive code block that is used in many places. Thus to perform
the translation label lookup, this method need only be called. This
method will provide a single clean and consistent code block that can
be used for any of these situations in the future.
Change-Id: I6353abef58fc2a481d4379eb1a2f8289d7f1790b
Closes-Bug: #1490031
In router detail page, the link to the network detail page
redirecting to admins panel. so the non admin users not
able to access the network detail page from router detail page.
Change-Id: If6d70dcb214b9557d8501b9252b75fbfd9add248
Closes-Bug: #1504123
From django V1.9 django.utils.datastructures.SortedDict
will be removed and it is deprecated in V1.7.
The similar functionality is added in collections.OrderedDict
from python 2.7.
Horizon code also should avoid the SortedDict class and
start using the OrderedDict class.
This patch replacing the SortedDict with OrderedDict.
Change-Id: I8dfcf7c29fc49b6215451f160cf7a951bf11b5ad
Closes-Bug: #1492270
The "Status" and "Admin State" labels on the Router Details panel in both the
Project and Admin dashboards are currently untranslatable. This patch
fixes that issue and allows these labels to be translated.
Change-Id: I5f78701d4b830bab115a7e8da39714f00da90273
Partial-Bug: #1441366
This patch addresses the stylistic inconsistencies in the Router details
pages, by changing it into a tabbed detail page
- Fixed bug on the Interfaces table causing the Name field to be empty
- Overview page has also been restyled to more clearly show information
and link to relevant network
- Increased inheritance where possible, to reduce duplicate code
- Deleted unused files/functions. These can always be added as required
later, but there is no need for unnecessary code bloat
Co-Authored-By: Sam Betts <sam@code-smash.net>
Change-Id: Ifbdfbf46127e9445395207c547c2b81ea9459dac
Closes-Bug: 1378895
Patch https://review.openstack.org/#/c/142802 adds a method of
reducing duplication of page title logic, this patch applies that change
to the project network topology, networks and routers views.
Change-Id: I2a1372eb9d82acb3d9a259e19a3ecfb8aeff4c02
Partial-Bug: 1413749
we can replace set_id_as_name_if_empty with name_or_id in
in all neutron related place to reduce a extra loop call
since set_id_as_name_if_empty is called every after *_list.
Change-Id: I341adb3a581337790e22e049e5b72df11b462b44
Closes-bug: #1370986
HA (high availability) mode support is one of the important topics in
Neutron Juno, and this patch adds HA router mode support to Horizon.
This commit also changes the default value of enable_distributed_router
in the example local_settings.py to False. In Juno release of Neutron,
the distributed router and L3 HA mode cannot be enabled at the same
time and only L3-agent deployment with L3 Router service plugin
support both features. Thus I believe it is reasonable to make both
options default to False to avoid unnecessary confusions to operators.
Closes-Bug: #1370110
Change-Id: I77b0292b761f08b4580846f6d58443f7df9a1f6b
This commit add contextual markers to some short strings
which turned out difficult to distinguish during translations.
The detail descriptions are available in the bug report.
Closes-Bug: #1367104
Change-Id: I5ec2045b12542c8474356023bed73d583dc8dccd
Neutron DVR implementation allows to change router type from
centralized to distributed. This commit adds "Edit Router" form
which is not implemented so far to allow this feature.
This commit also adds:
- admin_state field to the router detail.
- documentation on a new option enable_distributed_router
Completes blueprint enhance-horizon-for-dvr
Change-Id: I4b46e44c417726217ed034e305827b102ba656f8
When an external network can't be found, project/routers/index.html will
result in a type error caused by calling exceptions.handle when no
exception is present. In this case, an error message should be
displayed, and the missing-network should be indicated to the user.
Also added tests for this case.
Change-Id: I3aaa64de28738051ad84cc587fbb6cfd546f4662
Closes-Bug: 1220345
Feature completed :
1. Admin router panel
+ New "Distributed" column introduced.
+ New Field "Distributed" added on to
router detail panel
2. Project router panel
if logged in as "Admin"
======================
+ New distributed column introduced.
+ New Field distributed column added on to
router detail panel.
+ New Router Field dropdown box introduced in
create router form.
if logged in as "nonAdmin"
=========================
+ Router Type dropdown will be invisible for
non admin.
+ Distributed information will be
hidden from details panel.
implements: blueprint enhance-horizon-for-dvr
Co-Authored-By: Akihiro Motoki <motoki@da.jp.nec.com>
Change-Id: I995745dd72a8b750866c0977a7d7cf42036f716f
Remove vim setting:
comment - # vim: tabstop=4 shiftwidth=4 softtabstop=4
at the top of source code files, except for files in
openstack/common.
Change-Id: I9a5c6b17c6ef7ecec601f4503dfc7b31fc72e90a
Close-bug: #1229324
We have a lot of import with #noqa that is there to ignore h302,
because it's traditional to import and use a name directly, instead
of a whole module. This hides other errors and gives people the
impression that it's actually fine to import non-modules, you just
have to slap #noqa on those lines.
I went through the code and identified about a dozen names that are
most commonly imported this way. I remove the #noqa tag from them,
and added them to the list in import_exceptions.
I also removed a few unused imports that were revealed in the process.
Change-Id: I27afb8e2b1d4759ec974ded9464d8f010312ee78
A lot of horizon's views use the pattern:
def get_data(self):
if not hasattr(self, "_data"):
# Calculate data here.
self._data = data
return self._data
This is copy-pasted all over the codebase. It's better to handle that
with a single decorator. In the future, we might even replace it with
some better caching approach.
Closes-bug: #1248230
Change-Id: Id021fccf9032e5068993ec91a7774a5d0fbf29bb
Adds a table display and grid display for router
rules on the router details page. Changes router
details page to tab style page.
Implements: blueprint horizon-routerrules
Change-Id: I86d81db31f09e2a8d3b66a327fb9c1fb055e9d94
In some files, we import logging and define
LOG, but we never used it later, so i remove
those unused LOG and make horizon code clean.
Fixed: bug #1231761
Change-Id: I1ebf0098c647e7522f5f1a93cfece7a52bdc05c1
This patch replaces some method imports with module imports and
makes H302 test enabled.
Fixes bug 1188531
Change-Id: Ibfbddeaa19cbbb244da58ffd5c918c41f03a0c65
Fixes all occurrences of this. We have a custom exception handler
in Horizon anyway that only catches ClientException in most of these
cases, but this commit lets us gate on the other cases.
Change-Id: Iea3dc13817f3e5b775b2024424bf3a906da5584b
Closes-Bug: #1211657
This check looks to see whether a local variable
is unused. Also fixed all violators of said check.
Change-Id: I7c186df41b5601078ffc54588aace8136c6576bd
This patch replaces relative imports with full paths and
makes H304 test enabled.
Fixes bug 1188535
Change-Id: I47254cf9a790727102f7993d0fd107da514983df
This patch also re-organizes imports to import one per line.
Change-Id: Ia958e3a30a48d4308d08d51df243c1272425c316
Fixes: bug 1188529
Fixes: bug 1188537
In the move to make flake8 tests stricter, we need a code
cleanup earlier.
This removes all unused imports and also enables tests to prevent
them for the future.
This patch also includes the checks on __init__.py files.
Change-Id: I34055803f7c4726682ac6fb95cc5b50ba761fec8
Fixes: bug 1188134
Fixes bug 1131193
In Grizzly-3 milestone, quantum made a change to allow regular users
to set non-owned external network as router gateway, but Quantum
router support cannot handle it, particularily non-admin user cannot
clear router gateway. This means non-admin cannot delete a router as
a result. In addition, there is no way for non-admin users to check
if router gateway is set or not since a non-admin user cannot see
a router gateway.
To address the above issues, this commit does the following changes:
- Display "external gateway info" in router table and detail to allow
non-admin users to check if a router is connected to an external
network (i.e., a router has a default gateway).
- Move "Set/Clear Gateway" button to router table and Set/Clear
button is displayed based on an existence of router gateway.
- Move "Set/Clear Gateway" button in Admin panel in the same way
to keep consistency with Project panel.
Change-Id: Ib096d5e40c88b8a605ad8aae26d1f5cf7fd745e6
Implements bp quantum-l3-support
Implemented basic CRD for router
Add/remove interface support
Support set gateway and clear gateway
Change-Id: Ie4cac962eb8fadc021c80cf05e2aa63caab3c00a