diff mbox

[ovs-dev,v2] Copy external_ids from Logical_Switch_Port to SB database

Message ID 1496675607-28619-1-git-send-email-dalvarez@redhat.com
State Changes Requested
Delegated to: Russell Bryant
Headers show

Commit Message

Daniel Alvarez Sanchez June 5, 2017, 3:13 p.m. UTC
This patch makes ovn-northd copy all string-string pairs in
external_ids column of the Logical_Switch_Port table in Northbound
database to the equivalent column of the Port_Binding table in
Southbound database.

OpenStack Neutron will add some useful data to NB database that can be
later read by networking-ovn-metadata-agent without the need of
maintaining a connection to NB database. This data would include
the CIDR's of a port or the project and device ID's which are needed
when talking to Nova to request metadata.
---
 ovn/northd/ovn-northd.c | 11 +++++++----
 ovn/ovn-nb.xml          | 11 ++++++++++-
 2 files changed, 17 insertions(+), 5 deletions(-)
diff mbox

Patch

diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c
index 5914988..a063a05 100644
--- a/ovn/northd/ovn-northd.c
+++ b/ovn/northd/ovn-northd.c
@@ -1814,10 +1814,13 @@  ovn_port_update_sbrec(const struct ovn_port *op,
                                    op->nbsp->n_addresses);
 
         struct smap ids = SMAP_INITIALIZER(&ids);
-        const char *name = smap_get(&op->nbsp->external_ids,
-                                    "neutron:port_name");
-        if (name && name[0]) {
-            smap_add(&ids, "name", name);
+        smap_clone(&ids, &op->nbsp->external_ids);
+        const char *name = smap_get(&ids, "neutron:port_name");
+        if (name) {
+            smap_remove(&ids, "neutron:port_name");
+            if (name[0]) {
+                smap_add(&ids, "name", name);
+            }
         }
         sbrec_port_binding_set_external_ids(op->sb, &ids);
     }
diff --git a/ovn/ovn-nb.xml b/ovn/ovn-nb.xml
index eb348fe..7bb322f 100644
--- a/ovn/ovn-nb.xml
+++ b/ovn/ovn-nb.xml
@@ -848,7 +848,16 @@ 
 
     <group title="Common Columns">
       <column name="external_ids">
-        See <em>External IDs</em> at the beginning of this document.
+        <p>
+          See <em>External IDs</em> at the beginning of this document.
+        </p>
+
+        <p>
+          The <code>ovn-northd</code> program copies all these pairs into the
+          <ref column="external_ids"/> column of the
+          <ref table="Port_Binding"/> table in <ref db="OVN_Southbound"/>
+          database.
+        </p>
       </column>
     </group>
   </table>