Bug 1904299

Summary: sort the OVS ports by name
Product: Red Hat Enterprise Linux 8 Reporter: Mingyu Shi <mshi>
Component: nmstateAssignee: Gris Ge <fge>
Status: CLOSED ERRATA QA Contact: Mingyu Shi <mshi>
Severity: low Docs Contact:
Priority: low    
Version: 8.4CC: ferferna, fge, jiji, jishi, network-qe, till
Target Milestone: rcKeywords: Triaged
Target Release: 8.0Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: nmstate-1.0.1-0.1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-05-18 15:18:22 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
example none

Description Mingyu Shi 2020-12-04 02:50:02 UTC
Created attachment 1736287 [details]
example

Description of problem:
When running 'nmstatectl show', the port part of ovs bridge may be shown with unpredictable order, looks like it depends on port's name, type or maybe the order when nmstate attached them.
For the state consistence, by default, we can sort them by name.

Version-Release number of selected component (if applicable):


How reproducible:
100%

Steps to Reproduce:
See the attachment as an example.

Actual results:
The order of the ports may vary

Expected results:
Consistent order

Additional info:

Comment 2 Mingyu Shi 2020-12-04 02:52:28 UTC
Already pre-tested with https://github.com/nmstate/nmstate/pull/1436

Comment 3 Mingyu Shi 2020-12-04 03:15:53 UTC
The reported version is nmstate-1.0.0-0.1.el8.noarch

Comment 6 Mingyu Shi 2020-12-25 07:38:30 UTC
Hi Gris, strange it doesn't work anymore, can you take a look? Still use the transaction in the attachment.

After apply, you will see:
# nmstatectl show ovs-br0
*******
interfaces:
- name: ovs-br0
  type: ovs-bridge
  state: up
  bridge:
    options:
      fail-mode: ''
      mcast-snooping-enable: false
      rstp: false
      stp: false
    port:
    - name: veth0
    - name: ovsbond0
      link-aggregation:
        mode: balance-slb
        port:
        - name: dummy0
        - name: veth1
    - name: ovs0
  lldp:
    enabled: false
  ovs-db:
    external_ids:
      NM.connection.uuid: 2ab5c8cf-5382-448b-a3c5-78e3df8ae077

You will see it is veth0 -> ovsbond0 -> ovs0, the order should be [0-9] -> [aA-zZ]

Comment 8 Gris Ge 2021-01-04 05:35:58 UTC
The patch is not included in the build.

Will provide new build next week.

Comment 9 Mingyu Shi 2021-01-06 11:56:12 UTC
Verified with versions:
nmstate-1.0.1-0.1.el8.noarch
nispor-1.0.1-2.el8.x86_64
NetworkManager-1.30.0-0.5.el8.x86_64

[19:53:58@dell-per740-01 ~]0# nmstatectl show ovs-br0
2021-01-06 19:54:02,020 root         DEBUG    Async action: Retrieve applied config: ethernet eno1 started
2021-01-06 19:54:02,021 root         DEBUG    Async action: Retrieve applied config: dummy dummy0 started
2021-01-06 19:54:02,021 root         DEBUG    Async action: Retrieve applied config: ovs-interface ovs0 started
2021-01-06 19:54:02,021 root         DEBUG    Async action: Retrieve applied config: ovs-interface veth0 started
2021-01-06 19:54:02,021 root         DEBUG    Async action: Retrieve applied config: ovs-interface veth1 started
2021-01-06 19:54:02,021 root         DEBUG    Async action: Retrieve applied config: ovs-bridge ovs-br0 started
2021-01-06 19:54:02,021 root         DEBUG    Async action: Retrieve applied config: ovs-port ovsbond0 started
2021-01-06 19:54:02,021 root         DEBUG    Async action: Retrieve applied config: ovs-port ovs-port-ovs0 started
2021-01-06 19:54:02,022 root         DEBUG    Async action: Retrieve applied config: ovs-port ovs-port-veth0 started
2021-01-06 19:54:02,023 root         DEBUG    Async action: Retrieve applied config: ethernet eno1 finished
2021-01-06 19:54:02,024 root         DEBUG    Async action: Retrieve applied config: dummy dummy0 finished
2021-01-06 19:54:02,025 root         DEBUG    Async action: Retrieve applied config: ovs-interface ovs0 finished
2021-01-06 19:54:02,025 root         DEBUG    Async action: Retrieve applied config: ovs-interface veth0 finished
2021-01-06 19:54:02,025 root         DEBUG    Async action: Retrieve applied config: ovs-interface veth1 finished
2021-01-06 19:54:02,026 root         DEBUG    Async action: Retrieve applied config: ovs-bridge ovs-br0 finished
2021-01-06 19:54:02,026 root         DEBUG    Async action: Retrieve applied config: ovs-port ovsbond0 finished
2021-01-06 19:54:02,026 root         DEBUG    Async action: Retrieve applied config: ovs-port ovs-port-ovs0 finished
2021-01-06 19:54:02,026 root         DEBUG    Async action: Retrieve applied config: ovs-port ovs-port-veth0 finished
---
dns-resolver:
  config: {}
  running:
    search:
    - rhts.eng.pek2.redhat.com
    server:
    - 10.73.2.107
    - 10.73.2.108
    - 10.66.127.10
route-rules:
  config: []
routes:
  config: []
  running: []
interfaces:
- name: ovs-br0
  type: ovs-bridge
  state: up
  bridge:
    options:
      fail-mode: ''
      mcast-snooping-enable: false
      rstp: false
      stp: false
    port:
    - name: ovs0
    - name: ovsbond0
      link-aggregation:
        mode: balance-slb
        port:
        - name: dummy0
        - name: veth1
    - name: veth0
  lldp:
    enabled: false
  ovs-db:
    external_ids:
      NM.connection.uuid: 936675b6-8be2-4912-9922-ac61a2caa7d9

Comment 11 errata-xmlrpc 2021-05-18 15:18:22 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (nmstate bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2021:1748