Eli Mesika has uploaded a new change for review.

Change subject: core[DB]: Adding external status to DB
......................................................................

core[DB]: Adding external status to DB

This patch set adds external status for the storage domain  entity

The Health Status field will be returned as part of the retrieved entity
when a call to display the entity is done using the REST API.

The main use-case for this new status is to provide plugins / external
systems the ability to trigger issues, and allow the administrator to
clearly see there is an issue through the UI

For more information please see the feature page wiki
http://www.ovirt.org/Features/EntityHealthStatus

Change-Id: Ifdfc25b91eacfa73be783b3b84827e0d5788b91d
Signed-off-by: emesika <[email protected]>
---
M packaging/dbscripts/create_views.sql
M packaging/dbscripts/storages_san_sp.sql
A packaging/dbscripts/upgrade/03_06_1520_add_sd_external_status.sql
3 files changed, 25 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/32/42132/1

diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index 7a651de..a0a8d12 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -137,6 +137,7 @@
     storage_domain_static.storage_domain_type AS storage_domain_type,
     storage_pool_iso_map.storage_pool_id AS storage_pool_id,
     storage_pool_iso_map.status AS storage_domain_status,
+    storage_pool_iso_map.external_status AS external_status,
     repo_file_meta_data.repo_image_id AS repo_image_id,
     repo_file_meta_data.size AS SIZE,
     repo_file_meta_data.date_created AS date_created,
@@ -464,6 +465,7 @@
     fn_get_disk_commited_value_by_storage ( storage_domain_static.id ) AS 
commited_disk_size,
     fn_get_actual_images_size_by_storage ( storage_domain_static.id ) AS 
actual_images_size,
     storage_pool_iso_map.status AS status,
+    storage_pool_iso_map.external_status AS external_status,
     storage_pool.name AS storage_pool_name,
     storage_domain_static.storage_type AS storage_type,
     storage_domain_static.storage_domain_type AS storage_domain_type,
@@ -510,6 +512,7 @@
     fn_get_disk_commited_value_by_storage ( storage_domain_static.id ) AS 
commited_disk_size,
     fn_get_actual_images_size_by_storage ( storage_domain_static.id ) AS 
actual_images_size,
     NULL AS status,
+    storage_pool_iso_map.external_status AS external_status,
     fn_get_storage_domain_shared_status_by_domain_id ( 
storage_domain_static.id,
         storage_pool_iso_map.status,
         storage_domain_static.storage_domain_type ) AS 
storage_domain_shared_status,
@@ -558,10 +561,14 @@
     storage_domain_static.recoverable AS recoverable,
     unregistered_entities.storage_domain_id IS NOT NULL AS 
contains_unregistered_entities,
     storage_domain_static.warning_low_space_indicator as 
warning_low_space_indicator,
-    storage_domain_static.critical_space_action_blocker as 
critical_space_action_blocker
+    storage_domain_static.critical_space_action_blocker as 
critical_space_action_blocker,
+    storage_pool_iso_map.external_status as external_status
 FROM
     storage_domain_static
 INNER JOIN storage_domain_dynamic ON storage_domain_static.id = 
storage_domain_dynamic.id
+INNER JOIN storage_pool_iso_map ON storage_domain_static.id = 
storage_pool_iso_map.storage_id
+INNER JOIN storage_pool ON storage_pool_iso_map.storage_pool_id = 
storage_pool.id
+
 LEFT
 OUTER JOIN (
         SELECT
@@ -581,7 +588,7 @@
             storage_pool_iso_map
             JOIN storage_pool ON storage_pool_iso_map.storage_pool_id = 
storage_pool.id
         GROUP BY
-            storage_id ) AS status_table ON storage_domain_static.id = 
status_table.storage_id
+            storage_id) AS status_table ON storage_domain_static.id = 
status_table.storage_id
 LEFT
 OUTER JOIN (
         SELECT
@@ -2059,6 +2066,7 @@
     fn_get_storage_domain_shared_status_by_domain_id ( 
storage_domain_static.id,
         storage_pool_iso_map.status,
         storage_domain_static.storage_domain_type ) AS 
storage_domain_shared_status,
+    storage_pool_iso_map.external_status AS external_status,
     vds_groups.vds_group_id,
     vds_static.vds_id,
     storage_pool_iso_map.storage_pool_id,
diff --git a/packaging/dbscripts/storages_san_sp.sql 
b/packaging/dbscripts/storages_san_sp.sql
index f6534ec..e410504 100644
--- a/packaging/dbscripts/storages_san_sp.sql
+++ b/packaging/dbscripts/storages_san_sp.sql
@@ -227,9 +227,21 @@
 END; $procedure$
 LANGUAGE plpgsql;
 
+Create or replace FUNCTION UpdateStorageDomainExternalStatus(
+        v_storage_id UUID,
+       v_storage_pool_id UUID,
+        v_external_status INTEGER)
+RETURNS VOID
 
-
-
+   AS $procedure$
+BEGIN
+      UPDATE storage_pool_iso_map
+      SET
+      external_status = v_external_status
+      WHERE storage_id = v_storage_id and
+            storage_pool_id = v_storage_pool_id;
+END; $procedure$
+LANGUAGE plpgsql;
 
 Create or replace FUNCTION Deletestorage_pool_iso_map(v_storage_id UUID,
        v_storage_pool_id UUID)
diff --git a/packaging/dbscripts/upgrade/03_06_1520_add_sd_external_status.sql 
b/packaging/dbscripts/upgrade/03_06_1520_add_sd_external_status.sql
new file mode 100644
index 0000000..c1c9047
--- /dev/null
+++ b/packaging/dbscripts/upgrade/03_06_1520_add_sd_external_status.sql
@@ -0,0 +1 @@
+select fn_db_add_column('storage_pool_iso_map', 'external_status', 'integer 
not null default 0');


-- 
To view, visit https://gerrit.ovirt.org/42132
To unsubscribe, visit https://gerrit.ovirt.org/settings

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

Reply via email to