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