Yaniv Bronhaim has uploaded a new change for review.

Change subject: core: add host_provider_id to vdsStatic
......................................................................

core: add host_provider_id to vdsStatic

This allows to sign the provider id, which in hosts mostly foreman
server id that added as external provider. With saving the ID we'll be
able to gather more info about the host later on.

Change-Id: Icced7dda43fee83aa904a068cff48b1fd3da4b76
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1113003
Signed-off-by: Yaniv Bronhaim <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterVdsQuery.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDS.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatic.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAODbFacadeImpl.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStaticDAODbFacadeImpl.java
M backend/manager/modules/dal/src/test/resources/fixtures.xml
M 
backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/HostMapperTest.java
M 
backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializationEntitiesTest.java
M packaging/dbscripts/create_views.sql
A packaging/dbscripts/upgrade/03_06_0100_add_provider_host_id_vdsstatic.sql
M packaging/dbscripts/vds_sp.sql
12 files changed, 56 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/03/31103/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsCommand.java
index bc48d39..7606b4a 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsCommand.java
@@ -102,20 +102,10 @@
             }
         }
 
-        TransactionSupport.executeInNewTransaction(new 
TransactionMethod<Void>() {
-            @Override
-            public Void runInTransaction() {
-                AddVdsStaticToDb();
-                AddVdsDynamicToDb();
-                AddVdsStatisticsToDb();
-                getCompensationContext().stateChanged();
-                return null;
-            }
-        });
-
         if (getParameters().getAddProvisioned()) {
             HostProviderProxy proxy =
                     ((HostProviderProxy) 
ProviderProxyFactory.getInstance().create(getHostProvider()));
+            
getParameters().getvds().getStaticData().setHostProviderId(getParameters().getProviderId());
             proxy.provisionHost(
                     getParameters().getvds(),
                     getParameters().getHostGroup(),
@@ -131,6 +121,17 @@
             AuditLogDirector.log(logable, AuditLogType.VDS_PROVISION);
         }
 
+        TransactionSupport.executeInNewTransaction(new 
TransactionMethod<Void>() {
+            @Override
+            public Void runInTransaction() {
+                AddVdsStaticToDb();
+                AddVdsDynamicToDb();
+                AddVdsStatisticsToDb();
+                getCompensationContext().stateChanged();
+                return null;
+            }
+        });
+
         // set vds spm id
         if (getVdsGroup().getStoragePoolId() != null) {
             VdsActionParameters tempVar = new 
VdsActionParameters(getVdsIdRef());
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterVdsQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterVdsQuery.java
index 4ddad26..adc90ad 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterVdsQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterVdsQuery.java
@@ -285,7 +285,7 @@
                     getParameters().getSSHUser(),
                     vdsGroupId, Guid.Empty,
                     getParameters().getVdsName(), Config.<Boolean> 
getValue(ConfigValues.SSLEnabled),
-                    VDSType.VDS);
+                    VDSType.VDS, null);
         vds.setSshKeyFingerprint(getParameters().getSSHFingerprint());
 
                 log.debugFormat(
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDS.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDS.java
index 86ccf4e..a6b7e71 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDS.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDS.java
@@ -1291,6 +1291,14 @@
         mVdsStatic.setSshKeyFingerprint(sshKeyFingerprint);
     }
 
+    public Guid getHostProviderId() {
+        return mVdsStatic.getHostProviderId();
+    }
+
+    public void setHostProviderId(Guid hostProviderId) {
+        mVdsStatic.setHostProviderId(hostProviderId);
+    }
+
     private float maxSchedulingMemory;
 
     public void calculateFreeVirtualMemory() {
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatic.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatic.java
index 200a15a..f8dfccc 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatic.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatic.java
@@ -169,6 +169,8 @@
     @Size(max = BusinessEntitiesDefinitions.SSH_KEY_FINGERPRINT_SIZE)
     private String sshKeyFingerprint;
 
+    private Guid hostProviderId;
+
     public boolean isAutoRecoverable() {
         return autoRecoverable;
     }
@@ -192,10 +194,11 @@
         disablePowerManagementPolicy = false;
         pmKdumpDetection = true;
         this.protocol = VdsProtocol.XML;
+        this.hostProviderId = null;
     }
 
     public VdsStatic(String host_name, String ip, String uniqueId, int port, 
int ssh_port, String ssh_username, Guid vds_group_id, Guid vds_id,
-            String vds_name, boolean server_SSL_enabled, VDSType vds_type) {
+            String vds_name, boolean server_SSL_enabled, VDSType vds_type, 
Guid host_provider_id) {
         this();
         this.hostName = host_name;
         this.managementIp = ip;
@@ -212,6 +215,7 @@
         this.name = vds_name;
         this.serverSslEnabled = server_SSL_enabled;
         this.setVdsType(vds_type);
+        this.hostProviderId = host_provider_id;
     }
 
     public boolean isServerSslEnabled() {
@@ -510,6 +514,10 @@
         this.consoleAddress = consoleAddress;
     }
 
+    public void setHostProviderId (Guid hostProviderId) { this.hostProviderId 
= hostProviderId; }
+
+    public Guid getHostProviderId () { return hostProviderId; }
+
     /**
      * Converts a PM Options map to string
      *
@@ -597,6 +605,7 @@
         result = prime * result + ((vdsStrength == null) ? 0 : 
vdsStrength.hashCode());
         result = prime * result + ((vdsType == null) ? 0 : vdsType.hashCode());
         result = prime * result + (disablePowerManagementPolicy ? 0 : 1);
+        result = prime * result + ((hostProviderId == null) ? 0 : 
hostProviderId.hashCode());
         return result;
     }
 
@@ -644,6 +653,7 @@
                 && ObjectUtils.objectsEqual(vdsStrength, other.vdsStrength)
                 && vdsType == other.vdsType
                 && ObjectUtils.objectsEqual(sshKeyFingerprint, 
other.sshKeyFingerprint))
-                && disablePowerManagementPolicy == 
other.disablePowerManagementPolicy;
+                && disablePowerManagementPolicy == 
other.disablePowerManagementPolicy
+                && ObjectUtils.objectsEqual(hostProviderId, 
other.hostProviderId);
     }
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAODbFacadeImpl.java
index efbbbe7..beba0d1 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAODbFacadeImpl.java
@@ -335,6 +335,7 @@
             entity.setVdsSpmPriority(rs.getInt("vds_spm_priority"));
             entity.setAutoRecoverable(rs.getBoolean("recoverable"));
             entity.setSshKeyFingerprint(rs.getString("sshKeyFingerprint"));
+            entity.setHostProviderId(getGuid(rs, "host_provider_id"));
             entity.setHardwareManufacturer(rs.getString("hw_manufacturer"));
             entity.setHardwareProductName(rs.getString("hw_product_name"));
             entity.setHardwareVersion(rs.getString("hw_version"));
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStaticDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStaticDAODbFacadeImpl.java
index 7b0e433..c3d7a4b 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStaticDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStaticDAODbFacadeImpl.java
@@ -102,7 +102,8 @@
                 .addValue("sshKeyFingerprint", vds.getSshKeyFingerprint())
                 .addValue("ssh_port", vds.getSshPort())
                 .addValue("ssh_username", vds.getSshUsername())
-                .addValue("disable_auto_pm", 
vds.isDisablePowerManagementPolicy());
+                .addValue("disable_auto_pm", 
vds.isDisablePowerManagementPolicy())
+                .addValue("host_provider_id", vds.getHostProviderId());
     }
 
     @Override
@@ -163,6 +164,7 @@
             entity.setSshKeyFingerprint(rs.getString("sshKeyFingerprint"));
             entity.setConsoleAddress(rs.getString("console_address"));
             
entity.setDisablePowerManagementPolicy(rs.getBoolean("disable_auto_pm"));
+            entity.setHostProviderId(getGuid(rs, "host_provider_id"));
 
             return entity;
         }
diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml 
b/backend/manager/modules/dal/src/test/resources/fixtures.xml
index 3e504d8..84bf861 100644
--- a/backend/manager/modules/dal/src/test/resources/fixtures.xml
+++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml
@@ -1292,6 +1292,7 @@
         <column>ssh_username</column>
         <column>pm_detect_kdump</column>
         <column>protocol</column>
+        <column>host_provider_id</column>
         <row>
             <value>afce7a39-8e8c-4819-ba9c-796d316592e6</value>
             <value>magenta-vdsc</value>
@@ -1325,6 +1326,7 @@
             <value>root</value>
             <value>1</value>
             <value>0</value>
+            <null />
         </row>
         <row>
             <value>afce7a39-8e8c-4819-ba9c-796d316592e7</value>
@@ -1359,6 +1361,7 @@
             <value>root</value>
             <value>1</value>
             <value>1</value>
+            <null />
         </row>
         <row>
             <value>afce7a39-8e8c-4819-ba9c-796d316592e8</value>
@@ -1393,6 +1396,7 @@
             <value>root</value>
             <value>1</value>
             <value>2</value>
+            <null />
         </row>
         <row>
             <value>23f6d691-5dfb-472b-86dc-9e1d2d3c18f3</value>
@@ -1427,6 +1431,7 @@
             <value>root</value>
             <value>1</value>
             <value>0</value>
+            <null />
         </row>
         <row>
             <value>2001751e-549b-4e7a-aff6-32d36856c125</value>
@@ -1461,6 +1466,7 @@
             <value>root</value>
             <value>1</value>
             <value>1</value>
+            <null />
         </row>
     </table>
 
diff --git 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/HostMapperTest.java
 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/HostMapperTest.java
index 475d58a..fc6af17 100644
--- 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/HostMapperTest.java
+++ 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/HostMapperTest.java
@@ -40,6 +40,7 @@
         inverse.setPort(to.getPort());
         inverse.setProtocol(to.getProtocol());
         inverse.setSshKeyFingerprint(to.getSshKeyFingerprint());
+        inverse.setHostProviderId(to.getHostProviderId());
         inverse.setSshPort(to.getSshPort());
         inverse.setSshUsername(to.getSshUsername());
         inverse.setVdsSpmPriority(to.getVdsSpmPriority());
diff --git 
a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializationEntitiesTest.java
 
b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializationEntitiesTest.java
index 3ecbd16..bcd7a8e 100644
--- 
a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializationEntitiesTest.java
+++ 
b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializationEntitiesTest.java
@@ -55,7 +55,8 @@
                                     Guid.newGuid(),
                                     random.nextString(10),
                                     random.nextBoolean(),
-                                    random.nextEnum(VDSType.class));
+                                    random.nextEnum(VDSType.class),
+                                    Guid.newGuid());
         vdsStatic.setPmOptions("option1=value1,option2=value2");
         Object[][] data =
                 new Object[][] {
diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index aa1f630..762e601 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -760,7 +760,7 @@
                       vds_groups.virt_service as vds_group_virt_service, 
vds_groups.gluster_service as vds_group_gluster_service,
                       vds_dynamic.host_os as host_os, vds_dynamic.kvm_version 
as kvm_version, vds_dynamic.libvirt_version as libvirt_version, 
vds_dynamic.spice_version as spice_version, vds_dynamic.gluster_version as 
gluster_version, vds_dynamic.kernel_version as kernel_version, 
vds_dynamic.iscsi_initiator_name as iscsi_initiator_name,
                       vds_dynamic.transparent_hugepages_state as 
transparent_hugepages_state, vds_statistics.anonymous_hugepages as 
anonymous_hugepages, vds_dynamic.non_operational_reason as 
non_operational_reason,
-                       vds_static.recoverable as recoverable, 
vds_static.sshKeyFingerprint as sshKeyFingerprint, vds_dynamic.hw_manufacturer 
as hw_manufacturer, vds_dynamic.hw_product_name as hw_product_name, 
vds_dynamic.hw_version as hw_version,
+                       vds_static.recoverable as recoverable, 
vds_static.sshKeyFingerprint as sshKeyFingerprint, vds_static.host_provider_id 
as host_provider_id, vds_dynamic.hw_manufacturer as hw_manufacturer, 
vds_dynamic.hw_product_name as hw_product_name, vds_dynamic.hw_version as 
hw_version,
                       vds_dynamic.hw_serial_number as hw_serial_number, 
vds_dynamic.hw_uuid as hw_uuid, vds_dynamic.hw_family as hw_family, 
vds_static.console_address as console_address,
                       vds_dynamic.hbas as hbas, 
vds_dynamic.supported_emulated_machines as supported_emulated_machines, 
vds_dynamic.supported_rng_sources as supported_rng_sources, vds_static.ssh_port 
as ssh_port, vds_static.ssh_username as ssh_username, vds_statistics.ha_score 
as ha_score,
                       vds_statistics.ha_configured as ha_configured, 
vds_statistics.ha_active as ha_active, vds_statistics.ha_global_maintenance as 
ha_global_maintenance,
diff --git 
a/packaging/dbscripts/upgrade/03_06_0100_add_provider_host_id_vdsstatic.sql 
b/packaging/dbscripts/upgrade/03_06_0100_add_provider_host_id_vdsstatic.sql
new file mode 100644
index 0000000..3ecfc4e
--- /dev/null
+++ b/packaging/dbscripts/upgrade/03_06_0100_add_provider_host_id_vdsstatic.sql
@@ -0,0 +1,2 @@
+select fn_db_add_column('vds_static', 'host_provider_id', 'UUID');
+ALTER TABLE vds_static ADD CONSTRAINT fk_vds_static_host_provider_id FOREIGN 
KEY (host_provider_id) REFERENCES providers(id) ON DELETE SET NULL;
diff --git a/packaging/dbscripts/vds_sp.sql b/packaging/dbscripts/vds_sp.sql
index 201d3e3..2cddd87 100644
--- a/packaging/dbscripts/vds_sp.sql
+++ b/packaging/dbscripts/vds_sp.sql
@@ -423,7 +423,8 @@
     v_console_address VARCHAR(255),
     v_ssh_port INTEGER,
     v_ssh_username VARCHAR(255),
-    v_disable_auto_pm BOOLEAN)
+    v_disable_auto_pm BOOLEAN,
+    v_host_provider_id UUID)
 RETURNS VOID
 
    AS $procedure$
@@ -434,12 +435,12 @@
                                
vds_type,vds_strength,pm_type,pm_user,pm_password,pm_port,pm_options,pm_enabled,
                                pm_proxy_preferences, pm_secondary_ip, 
pm_secondary_type, pm_secondary_user,
                                pm_secondary_password, pm_secondary_port, 
pm_secondary_options, pm_secondary_concurrent, pm_detect_kdump,
-                               vds_spm_priority, sshKeyFingerprint, 
console_address, ssh_port, ssh_username, disable_auto_pm)
+                               vds_spm_priority, sshKeyFingerprint, 
console_address, ssh_port, ssh_username, disable_auto_pm, host_provider_id)
                        VALUES(v_vds_id,v_host_name, v_free_text_comment, v_ip, 
v_vds_unique_id, v_port, v_protocol, v_vds_group_id, v_vds_name, 
v_server_SSL_enabled,
                                
v_vds_type,v_vds_strength,v_pm_type,v_pm_user,v_pm_password,v_pm_port,v_pm_options,v_pm_enabled,
                                v_pm_proxy_preferences, v_pm_secondary_ip, 
v_pm_secondary_type, v_pm_secondary_user,
                                v_pm_secondary_password, v_pm_secondary_port, 
v_pm_secondary_options, v_pm_secondary_concurrent, v_pm_detect_kdump,
-                               v_vds_spm_priority, v_sshKeyFingerprint, 
v_console_address, v_ssh_port, v_ssh_username, v_disable_auto_pm);
+                               v_vds_spm_priority, v_sshKeyFingerprint, 
v_console_address, v_ssh_port, v_ssh_username, v_disable_auto_pm, 
v_host_provider_id);
       END;
    end if;
    RETURN;
@@ -483,7 +484,8 @@
     v_console_address VARCHAR(255),
     v_ssh_port INTEGER,
     v_ssh_username VARCHAR(255),
-    v_disable_auto_pm BOOLEAN)
+    v_disable_auto_pm BOOLEAN,
+    v_host_provider_id UUID)
 RETURNS VOID
 
        --The [vds_static] table doesn't have a timestamp column. Optimistic 
concurrency logic cannot be generated
@@ -502,7 +504,7 @@
       pm_secondary_user = v_pm_secondary_user, pm_secondary_password = 
v_pm_secondary_password,
       pm_secondary_port = v_pm_secondary_port, pm_secondary_options = 
v_pm_secondary_options,
       pm_secondary_concurrent = v_pm_secondary_concurrent, pm_detect_kdump = 
v_pm_detect_kdump,
-      otp_validity = v_otp_validity, vds_spm_priority = v_vds_spm_priority, 
sshKeyFingerprint = v_sshKeyFingerprint,
+      otp_validity = v_otp_validity, vds_spm_priority = v_vds_spm_priority, 
sshKeyFingerprint = v_sshKeyFingerprint, host_provider_id = v_host_provider_id,
       console_address = v_console_address, ssh_port = v_ssh_port, ssh_username 
= v_ssh_username, disable_auto_pm = v_disable_auto_pm
       WHERE vds_id = v_vds_id;
    END;


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Icced7dda43fee83aa904a068cff48b1fd3da4b76
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Yaniv Bronhaim <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to