When the evacuate is run without specifying a target host, horizon
sets an empty string for target host. But the evacuate api doesn't
allow an empty string. As a result, nova returns "HTTP 400 Bad
request".
So this patch sets None as the target host when it isn't specified.
Change-Id: Ia865a6c02e206fa49efc3095e8d3488f5638d0e3
Closes-Bug: 1793694
six.reraise can be converted into "raise new_exc from original_exc"
introduced in python3.
In case of horizon.exceptions.handle(), six.reraise was used to
raise the original exception again, so we can convert it into "raise".
six is removed from requirements.txt.
Note that we need to keep six in lower-constraints.txt
as dependent libraries still use six.
Change-Id: I0672a516083727c245f1d4fa5b10eed9cd81a726
The most elegant way to add pagination is to refactor the table using
<hz-dynamic-table> which already contains pagination instead of wiring
it to the existing table framework.
This solution adds the pagination and makes the code more readable.
Partial-Bug: #1859423
Change-Id: Iaff9e1f3c834a2bdb5823249de632ce472811a7d
We don't support Python 2 anymore so we don't need this
compatibility library.
six.reraise usages are left as is until it'll be moved to some
base lib like oslo.utils to not re-implenent this method in
Horizon.
This patch also removes Python2-specific base test case methods
assertItemsEqual and assertNotRegexpMatches in flavor of new
Python 3 analogues.
Change-Id: I26a59176be9e9f213128e4945a58b9459334b626
We don't support Python 2 anymore so we don't need this
compatibility library.
six.reraise usages are left as is until it'll be moved to some
base lib like oslo.utils to not re-implenent this method in
Horizon.
This patch also removes Python2-specific base test case methods
assertItemsEqual and assertNotRegexpMatches in flavor of new
Python 3 analogues.
Change-Id: I0b567382edf4d68674a7b8d0b02333fb57293958
Pint is no longer used after horizon/utils/units.py was cleanup
by commit 26eebd4abbbabc1475bae61c51d1cfcf14dba770.
Change-Id: I17add5dc20846be052577db1ed8ca8bf98819846
There is no need to run horizon-integration-tests as we use
the default language, English, in the integration tests and
proposed translation files are validated in the pep8 job.
It reduced the CI resources and waiting time.
Change-Id: I70851622a91280eab99005bf285d8190bfbf8933
The detail context on why we need to cap Django version again
is explained in https://review.opendev.org/#/c/701213/.
Change-Id: I0685993b6c43e64a66a19fb0dd8857ab69998127
Replace select widget from ThemableSelectWidget to SelectWidget.
When there are too many images, ThemableSelectWidget will be too long and
makes choosing an image hard. But normal style select can provide a scroll
bar there.
Change-Id: I843c5011d3caf9946210b7ee236e76318a646173
Closes-Bug: #1794000
No longer check flavor disk size larger or equal than image's mix disk when
you create instance from volume, because it's already checked when creating
volume.
Change-Id: I8e4fc074aafe7e880ceb7ab06d8ef565709beeeb
Closes-Bug: #1563529
Django 1.11 support was dropped. Django 1.11 ends its extended support
in April 2020 which is before Ussuri release. Considering this,
horizon dropped Django 1.11 support.
Unnecessary Django version checks in the code are also dropped.
Change-Id: I2c58934f2b026745fbc97a58212b91d149db3657
We already have a template 'horizon-non-primary-django-jobs'
to test horizon and plugins with non-primary django versions,
but we still need to update tox.ini in all horizon plugins
whenever we change Django versions used.
This commit prepares per-Django environment in the zuul job.
Per-Django tox environments like py3-{dj111,dj20,dj22} are
no longer needed. It would be a big merit that we will no longer
need to update tox.ini in all horizon plugins.
The downside is that we do not provide a convenient way to
test it locally, but I think it can be covered in the document.
Change-Id: I726b19130ee9e7d06eb33231071c2673cfd3a49f
The goal definition in the TC repo [1] defines the completion criteria.
We have already completed 1, 2, 3 and partially 4 in [1].
This commit completes 4 (requirements.txt etc) and 5 (release note).
Python dependency in the installation guide is updated.
Django support plan in Ussuri is updated as well.
References to python 2.7 in the document are updated as well.
[1] https://governance.openstack.org/tc/goals/selected/ussuri/drop-py27.html
Change-Id: I0383920e32e053e1611519be774fab8dec124ccc
This patch resolves an issue with the "prev" link when instances
have identical "created_at" values. This can occur when creating
instance using the "min/max count" option. The reverse sort does not
work correctly as the server list returned from nova is not an exact
reverse as the forward sort. It looks like the combination of sort_keys
must be unique to ensure the forward and reverse pagination properly.
As a workaround 'uuid' (server ID) is added to 'sort_keys'.
In addition, 'display_name' is added before 'uuid' in 'sort_keys'
to list servers in the alphabetical order (which sounds natural).
Closes-Bug #1856243
Change-Id: I73234b2c69ce8ea648b4a9721abe4f5670031909
exceptions.handle() is used in most cases consistently.
check_message() is a legacy which was introduced when exceptions
were not well classified. exceptions.handle() should cover all
common error scenarios and there is no role played by check_messages().
Let's clean up its usage and deprecate it for the future removal.
Co-Authored-By: Akihiro Motoki <amotoki@gmail.com>
Change-Id: I545b6c666d13d39cf5287ccc7c972dc746faf2fb
Closes-Bug: #1339885
The plugin registry is maintained manually, so it tends to be out-of-date.
The deliverble files in openstack/releases repository provide information
on repositories and bug trackers. It sounds reasonable to me to generate
the plugin registry based on infomration in the openstack/releases repo.
The script added picks up deliverables marked as horizon-plugin.
mistral-dashboard and networking-bgpvpn dashboard are released in
different ways, so they are handled specially in the script.
How to run:
./tools/list-horizon-plugins.py \
--csv-file plugin-registry.csv \
../releases ussuri
Note that this commit does not autogenerate the plugin registry.
The script still needs to be run manually.
Further automation would be the next step.
Note that bug trackers of senlin-dashboard and trove-dashboard in
the releases repo looks out-of-date. I will submit a fix for them soon.
The downside of the automation is that we cannot list non-official
horizon plugins but I believe it is a good compromise.
The only non-offical plugin listed now is the group-based-policy UI,
but it is questionable whether it is still maintained well.
Change-Id: Id56be13fb93c6dc123e7cfb1c906357cdf59732b
Babel allows us to register babel extractors via entry points.
This means we no longer need to have extractor definitions in
each babel config files. All horizon plugins have copies of
babel-django.cfg and babel-djangojs.cfg now. By dropping the
extractor defintiions from babel config files, we can make
a potential migration from django-babel to enmerkar (and
we can also avoid more modifications of babel config files
even if more transition is required).
django-babel and enmerkar both define 'django' extractor
in the entry point, so we can drop it from babel-django.cfg.
This commit also registers 'angular' extractor, so we can drop
the extractor for AngularJS from babel-djangojs.cfg.
Change-Id: Icf93d4551bd3db1baa84c110f06dcc1c36e18b7e
The setNames and getNames functions in the resource registry were
calling ngettext() on already translated strings that were marked for
translation with gettext() and not ngetttext(). That lead to some
page titles in some locales being displayed as single characters.
Closes-Bug: #1762089
Change-Id: I0ef365e0c0de6ae27a2e80bcb5257132f8c6ba29
This patch allows administrators to set disk_formats only for glance,
while horizon will retrieve list of supported formats from glance API.
IMAGE_BACKEND_SETTINGS still may be used to redefine display name
of the format or additionally limit list of availble ones.
Change-Id: Ia4ea513023895f4ad2a87f91e3d2837c7668d9ae
Closes-Bug: 1853822
All of the nova API extensions have been mainlined several releases ago
and there is no potential performance issue in the nova API.
This option is used only to toggle features in horizon and
there seems no performance issues controlled by the option in horizon.
Considering this situation, this option is deprecated now.
Change-Id: If8e58e8324bad919ea45d0ccb10e21371d97f470
It seems hacking 2.0.0 was shipped with incompatible changes
(which is not surprising as this is a new major version).
Let's fix these errors and use a newer hacking.
Change-Id: I8da9dca5d8d74f6dfc2340dabc8d50e6253358e2
- Fixes KeyErrors when accessing 'floatingip' values in usages, which
broken Floating IP allocation.
- The quota display in the bottom right of the Allocation dialog are
only displayed if 'enabled_quotas' is True
- Adds security group rule tallying for the usages overview page, which
fixes a KeyError crash for installations where Horizon 'enable_quotas'
is set to true, but the 'quota_details' extension is not installed on
in Neutron
- Adds a policy check to show and hide The plus/add button in
Instances->Associate Floating IP to match the Allocate IP To Project
button in Floating IPs
- Fixed the page title not being set for the non-modal version of the
modal allocation dialog/form
- Added an 'allowed' functionality for network usage overview charts to
allow for them to be dynamically disabled
- Added tests and mocks for the above
- Added tests for non-legacy quota tallying for networks
- Added test for disabled network quotas in overview
Change-Id: I47f73ff94664d315a2400feb8ce8a25f4e6beced
closes-bug: #1838522