This has been supported in the keystone API since version 3.6
Although not used in horizon (yet) some third party plugins may
require this.
Closes-Bug: #1729449
Change-Id: I961c1681b757134037ae767ac750afa36476d630
os-virtual-interfaces is part of nova-network, which Horizon does not support.
No code in Horizon is using this function, and it is no longer necessary.
Change-Id: I118c81db1e581487384677aa0b0020dd35001a29
In Nova Compute API microversion 2.19, you can specify a “description”
attribute when creating, rebuilding, or updating a server instance. This
description can be retrieved by getting server details, or list details
for servers, this patch adds support for this attribute for instance in
horizon.
Change-Id: Ic9217234021d236aee8295915f1a9c3c544396b0
Implement-blueprint: support-description-for-instance
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
We have to fetch and show Cinder availability zones list during volume
creation and volume creation from image.
Change-Id: I1c8746870d94c183f5ef510c1ce09b3fc9c84220
Closes-Bug: #1721286
This patch support operation for operators and project users to
associate security groups to a port. The feature is mentioned at
the neutron user feedback session in Barcelona summit [1].
This function UI is same as the function of security groups
association per instance. To realize this, the way of implementation
for 'Edit port' is changed, which move from a single modal to a
workflow base.
[1] https://etherpad.openstack.org/p/ocata-neutron-end-user-operator-feedback (L.35+)
Also we need to display how security groups is associated at a port.
At the moment, there is not way to be able to see it (only this function).
It should be done as an another patch.
Change-Id: I96e0fafdffbf05b8167ec1b85f7430176fdaab90
Closes-Bug: #1637444
Co-Authored-By: Akihiro Motoki <amotoki@gmail.com>
A floating IP can only be associated with an IPv4 address, so we should
not show IPv6 addresses in the list of ports when assigning floating IP
addresses.
Change-Id: I7b39a263445204a9efbc8fe113cc79146d9bee8c
Closes-Bug: #1703360
Closes-Bug: #1724393
When 'availability_zone'-extension is enabled, we present the user with
a drop-down menu containing a list of available availability zones.
This sets the 'availability_zone_hints' parameter on router creation.
Change-Id: I96293202ddd855823e89c4c7ba0b1f6a6423aab2
Partial-bug: #1716638
Actions "Lock" and "Unlock" of instance on instances table are calling
api.nova.is_feature_available() to check if the feature is supported
by current Nova server. Unfortunately, the function get_microversion()
called by is_feature_available() is not cached, which is causing about
40 unnecesary REST API calls. If the Nova's version is under Mitaka,
it could be even worse, about 80 unnecesary API calls, see
openstack_dashboard/api/nova.py#L60 and
novaclient/v2/versions.py#L47 for more details.
Closes-Bug: #1721423
Change-Id: Ie96b1a35e379d4cf407bfd53b1ee734178f9cb07
We still can show instance info on admin/instances page even if tenant
is deleted or we can't retrieve tenant's information.
Change-Id: Idb1a5ffbb4103cce5258657d559bf4fe784b98d6
Closes-Bug: #1712565
This patch adds Angularized details view for Key Pair.
Also, added new filter 'mediumDate' that format date as follow:
e.g) Feb 3, 2001 4:05:06 PM
Change-Id: I1eaead66a582c15442b28ae83fb1c573a46b0f43
Partial-Implements: blueprint ng-keypairs
To ensure project imports are placed after third party import,
we need to specify application-import-names.
Previously flake8-import-check checks only standard imports or not.
Change-Id: I9beb2105f686dc7d9aebfce8e21c5e182698e2fe
When neutron trunk extension is not enabled, we cannot retrieve
network ports for a new instance. The current version of
port_list_with_trunk_types assumes the trunk extension is always
available, so if it is not enabled we cannot retrieve network ports.
This commit changes the logic to check whether the trunk extension
is enabled and if not it does not retrieve trunk information.
Change-Id: I2aa476790820f9512fe4728e0a806bd543021b0b
Closes-Bug: #1717893
Ethernet trunks (network interfaces having a vlan tag) cannot be used
as a boot interface. This is a DHCP/PXE limitation. So instead the
interface without the vlan tag can be used. In neutron's nomenclature
they are the trunk parents. It is also an OpenStack limitation. Subports
should not be passed to 'openstack server create --nic ...'. But if you
do, there's no clear error message about it. Please see Armando's
analysis here why:
https://bugs.launchpad.net/neutron/+bug/1636485/comments/9
The server part of this patch signals port kind (i.e. plain, trunkparent,
trunksubport) so the launch widget can easily filter out trunksubports,
what are not suitable for boot interface.
Change-Id: Ie3a6710eeffefcb472c569898d0f1f1554e599f7
Partially-Implements: blueprint neutron-trunk-ui
Signed-off-by: Ferenc Cserepkei <ferenc.cserepkei@ericsson.com>
We don't need to call neutron's servers_update_addresses on instances
page if no instances are shown.
Change-Id: I98b595e443603f1409336ce61811c0ae3cbd2b21
Due to the change in the neutron API wrapper [1],
admin cannot create a port on networks owned by different project.
This is because api.neutron.network_get returns subnet detail
(Subnet object) only when project_id matches that of a target network.
This commit changes the logic to try to retrieve subnet detail first.
The condition is not simple and it looks wise to let neutron decide it.
The error reported in the bug also happens in the Port Create form
in the project dashboard if a user tries to create a port on an
external network. To handle the situation, handle() in CreatePort form
honors whether subnet detail is retrieved or not by checking a subnet
information is an instance of api.neutron.Subnet class.
This is a bit tricky but considering the current policy for create_port
I believe it is a good compromise.
Also fixes the wrong initial value of 'specify_ip' field of CreatePort
form. The initial value should be one of choices or None. Otherwise,
when 'specify_ip' field is hidden, an error message is returned
(though the message is not visible in the form), a user cannot submit
the form and the form is displayed continuously....
[1] commit 803209e237ea2987cfa2fad5f0e07a8c30d6d901
Closes-Bug: #1645708
Change-Id: I6aae0a29eedebc920247912fec0729bf47cda002
This patch change UpdatePort form to workflow in order to
be able to add extra tabs like the setting of security groups.
Originally, this work is a part of the subsequent patch
"Support security groups association per port",
but the changes are big so it is divided into two patches.
This patch focuses on refactoring the existing implementation
from the form to the workflow.
Change-Id: Id42b311242b66ee25e8870ed86e45b5464e19c01
Co-Authored-By: Akihiro Motoki <amotoki@gmail.com>
Related-bug: #1637444
Some functions in api/neutron use @memoized decorator,
but @memoized decorator cannot handle request.GET (an instance of
QueryDict) because a weakref to WSGIRequest is not hashable.
(Note that @memoized decorator can handle a dict itself)
What we actually need is the content of request.GET.
By using .dict() method we can ensure arguments which
@memoized can handle are passed to api.neutron functions.
This pattern is used only in api.rest.neutron and
not used in other codes.
Closes-Bug: #1706348
Change-Id: Ibb38ad1d95af1cd90a1fedd834602f444010c151
When using glance v2 client, it will leave an upload
tmp file in /tmp folder, which will cause upload error
if its filesystem (in memory) is full.
Change-Id: I0a7267db894e7be4216a346752d299132df9a29a
Closes-Bug: #1689694
Add details link to the trunk panel to show details of the given trunk,
like the subports list, with port_id and segmentation details.
Co-Authored-By: Bence Romsics <bence.romsics@ericsson.com>
Change-Id: I9000e2907a8f188d5e72e36818b7171f35158eb9
Partially-Implements: blueprint neutron-trunk-ui
This patch adds details drawer summary to network_qos panel to show
policy descriptions and details page with further information and
associated rules.
Implements: blueprint network-bandwidth-limiting-qos
Change-Id: I1a8032206b576cf8dad5f75077bac7a093971973
The Volume object passed back from cinder doesn't have the name
for volumes created with an instance. It should be passed in to
api.cinder.Volume to get the name properly.
Change-Id: I2a812c898f601c741f232419f96bf93f3965bf81
Closes-bug: #1702966
Nova server_list() wrapper needs to receive an explicit `all_tenants`
boolean flag in order to request instances for _all_ tenants -
otherwise while rendering Admin->Volumes table Django will request
missing instances (to get their names for volume attachments) one by
one, thus significantly increasing response time.
This patch adds check if all_tenants in search_opts and add it to
the search else uses tenant_id in the search_opts.
Co-Authored-By: Dmitry Sutyagin <dsutyagin@mirantis.com>
Co-Authored-By: Ivan Kolodyazhny <e0ne@e0ne.info>
Change-Id: I4761d7da15036b69619649871aef91e1799ee385
Closes-Bug: #1508568
In reviews we usually check import grouping but it is boring.
By using flake8-import-order plugin, we can avoid this.
This flake8 plugin is already used in tempest.
It enforces loose checking so it sounds good to use.
Note that flake8-import-order version is pinned to avoid unexpected
breakage of pep8 job.
Change-Id: I8ccd05eb70350a2441cc2a4d1eafc09ee690b83b
Make cinderclient use volumev3 or volumev2 endpoints, before
falling back to the volume endpoint, otherwise Horizon is
trying to use the v1 API, and that doesn't work with the
"sort" parameter that we are using, resulting in an empty
volumes list.
Change-Id: Id03988d89000c4bc976090c68a41ee320b9d43f7
Closes-bug: #1700977