Moti Asayag has uploaded a new change for review.

Change subject: engine: Remove network attachments for network interface
......................................................................

engine: Remove network attachments for network interface

When network interface doesn't exist in the system, all of
its network attachments should be removed from. The patch
adds support for removing all of the network attachments
which configured on a specific network interface.

Change-Id: I64e2432eceabea56466815db95e01e32ab7ea4fb
Signed-off-by: Moti Asayag <masa...@redhat.com>
---
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDao.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDaoDbFacadeImpl.java
M 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDaoTest.java
M packaging/dbscripts/network_sp.sql
4 files changed, 40 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/71/34071/1

diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDao.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDao.java
index 7aaaa88..a7f6e63 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDao.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDao.java
@@ -25,4 +25,12 @@
      * @return the list of network attachments
      */
     List<NetworkAttachment> getAllForHost(Guid hostId);
+
+    /**
+     * Removes all the network attachments of a given network interface
+     *
+     * @param nicId
+     *            the network interface id
+     */
+    void removeNetworkAttachmentsForNic(Guid nicId);
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDaoDbFacadeImpl.java
index d7dbb39..9e89086 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDaoDbFacadeImpl.java
@@ -36,6 +36,13 @@
     }
 
     @Override
+    public void removeNetworkAttachmentsForNic(Guid nicId) {
+        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
+                .addValue("nic_id", nicId);
+        
getCallsHandler().executeModification("DeleteNetworkAttachmentsForNic", 
parameterSource);
+    }
+
+    @Override
     protected MapSqlParameterSource 
createFullParametersMapper(NetworkAttachment networkAttachment) {
         MapSqlParameterSource mapper = 
createIdParameterMapper(networkAttachment.getId())
                 .addValue("network_id", networkAttachment.getNetworkId())
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDaoTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDaoTest.java
index cc6649a..ad51d99 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDaoTest.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkAttachmentDaoTest.java
@@ -3,6 +3,7 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 
 import java.util.HashMap;
 import java.util.List;
@@ -131,4 +132,16 @@
         dao.remove(networkAttachment.getId());
         assertNull(dao.get(networkAttachment.getId()));
     }
+
+    /**
+     * Ensures that the remove all nic's attachments is working correctly
+     */
+    @Test
+    public void testRemoveNetworkAttachmentsForNic() {
+        dao.save(networkAttachment);
+        NetworkAttachment result = dao.get(networkAttachment.getId());
+        assertNotNull(result);
+        dao.removeNetworkAttachmentsForNic(networkAttachment.getNicId());
+        assertTrue(dao.getAllForNic(networkAttachment.getNicId()).isEmpty());
+    }
 }
diff --git a/packaging/dbscripts/network_sp.sql 
b/packaging/dbscripts/network_sp.sql
index 6262037..5e3af10 100644
--- a/packaging/dbscripts/network_sp.sql
+++ b/packaging/dbscripts/network_sp.sql
@@ -1366,6 +1366,18 @@
 LANGUAGE plpgsql;
 
 
+Create or replace FUNCTION DeleteNetworkAttachmentsForNic(v_nic_id UUID)
+RETURNS VOID
+   AS $procedure$
+BEGIN
+
+    DELETE FROM network_attachments
+    WHERE nic_id = v_nic_id;
+
+END; $procedure$
+LANGUAGE plpgsql;
+
+
 Create or replace FUNCTION GetAllFromNetworkAttachments()
 RETURNS SETOF network_attachments STABLE
    AS $procedure$


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I64e2432eceabea56466815db95e01e32ab7ea4fb
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Moti Asayag <masa...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to