Alon Bar-Lev has uploaded a new change for review.

Change subject: packaging: setup: database: set vdc_options correctly
......................................................................

packaging: setup: database: set vdc_options correctly

1. insert/update based on already available option.

2. modify only requested version.

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1059411
Change-Id: Ibe020ef3b557a5af67ee2f40e7e72bd9fe920b47
Signed-off-by: Alon Bar-Lev <alo...@redhat.com>
---
M packaging/setup/ovirt_engine_setup/database.py
1 file changed, 45 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/72/23872/1

diff --git a/packaging/setup/ovirt_engine_setup/database.py 
b/packaging/setup/ovirt_engine_setup/database.py
index 29178a1..6a3b0a8 100644
--- a/packaging/setup/ovirt_engine_setup/database.py
+++ b/packaging/setup/ovirt_engine_setup/database.py
@@ -228,7 +228,9 @@
         options,
     ):
         for option in options:
+            name = option['name']
             value = option['value']
+            version = option.get('version', 'general')
 
             if option.get('encrypt', False):
                 x509 = X509.load_cert(
@@ -248,20 +250,55 @@
             if isinstance(value, bool):
                 value = 'true' if value else 'false'
 
-            self.execute(
+            res = self.execute(
                 statement="""
-                    update vdc_options
-                    set
-                        option_value=%(value)s,
+                    select count(*) as count
+                    from vdc_options
+                    where
+                        option_name=%(name)s and
                         version=%(version)s
-                    where option_name=%(name)s
                 """,
                 args=dict(
-                    name=option['name'],
-                    value=value,
-                    version=option.get('version', 'general'),
+                    name=name,
+                    version=version,
                 ),
             )
+            if res[0]['count'] == 0:
+                self.execute(
+                    statement="""
+                        insert into vdc_options (
+                            option_name,
+                            option_value,
+                            version
+                        )
+                        values (
+                            %(name)s,
+                            %(value)s,
+                            %(version)s
+                        )
+                    """,
+                    args=dict(
+                        name=name,
+                        version=version,
+                        value=value,
+                    ),
+                )
+            else:
+                self.execute(
+                    statement="""
+                        update vdc_options
+                        set
+                            option_value=%(value)s
+                        where
+                            option_name=%(name)s and
+                            version=%(version)s
+                    """,
+                    args=dict(
+                        name=name,
+                        version=version,
+                        value=value,
+                    ),
+                )
 
 
 @util.export


-- 
To view, visit http://gerrit.ovirt.org/23872
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibe020ef3b557a5af67ee2f40e7e72bd9fe920b47
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to