From 353fdd5ee7bac9826228ca73b2cd4e2e87ff779a Mon Sep 17 00:00:00 2001 From: prachi Date: Wed, 28 Mar 2012 19:05:29 -0700 Subject: [PATCH] Bug 14536 - DB exception while trying to delete physical network Reviewed-By: Sheng Yang Changes: Added 'removed' column to physical_network_service_providers to avoid the Foreign Key constraint error. --- .../dao/PhysicalNetworkServiceProviderVO.java | 12 ++++++++++++ setup/db/create-schema.sql | 1 + setup/db/db/schema-30to301.sql | 2 ++ 3 files changed, 15 insertions(+) diff --git a/server/src/com/cloud/network/dao/PhysicalNetworkServiceProviderVO.java b/server/src/com/cloud/network/dao/PhysicalNetworkServiceProviderVO.java index d5104a91828..ddd1b675744 100644 --- a/server/src/com/cloud/network/dao/PhysicalNetworkServiceProviderVO.java +++ b/server/src/com/cloud/network/dao/PhysicalNetworkServiceProviderVO.java @@ -18,6 +18,7 @@ package com.cloud.network.dao; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.UUID; @@ -32,6 +33,7 @@ import javax.persistence.Table; import com.cloud.network.Network.Service; import com.cloud.network.PhysicalNetworkServiceProvider; +import com.cloud.utils.db.GenericDao; @Entity @Table(name = "physical_network_service_providers") @@ -90,6 +92,8 @@ public class PhysicalNetworkServiceProviderVO implements PhysicalNetworkServiceP @Column(name = "security_group_service_provided") boolean securitygroupServiceProvided; + @Column(name=GenericDao.REMOVED_COLUMN) + Date removed; public PhysicalNetworkServiceProviderVO() { } @@ -242,6 +246,14 @@ public class PhysicalNetworkServiceProviderVO implements PhysicalNetworkServiceP this.uuid = uuid; } + public Date getRemoved() { + return removed; + } + + public void setRemoved(Date removed) { + this.removed = removed; + } + public void setEnabledServices(List services){ this.setVpnServiceProvided(services.contains(Service.Vpn)); this.setDhcpServiceProvided(services.contains(Service.Dhcp)); diff --git a/setup/db/create-schema.sql b/setup/db/create-schema.sql index 5a5be19b135..40fefe0f768 100755 --- a/setup/db/create-schema.sql +++ b/setup/db/create-schema.sql @@ -2005,6 +2005,7 @@ CREATE TABLE `cloud`.`physical_network_service_providers` ( `port_forwarding_service_provided` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT 'Is Port Forwarding service provided', `user_data_service_provided` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT 'Is UserData service provided', `security_group_service_provided` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT 'Is SG service provided', + `removed` datetime COMMENT 'date removed if not null', PRIMARY KEY (`id`), CONSTRAINT `fk_pnetwork_service_providers__physical_network_id` FOREIGN KEY (`physical_network_id`) REFERENCES `physical_network`(`id`) ON DELETE CASCADE, CONSTRAINT `uc_service_providers__uuid` UNIQUE (`uuid`), diff --git a/setup/db/db/schema-30to301.sql b/setup/db/db/schema-30to301.sql index 4449c8b8257..f08d5c500a6 100755 --- a/setup/db/db/schema-30to301.sql +++ b/setup/db/db/schema-30to301.sql @@ -28,3 +28,5 @@ ALTER TABLE `cloud_usage`.`usage_ip_address` MODIFY COLUMN `is_system` smallint( ALTER TABLE `cloud_usage`.`account` ADD CONSTRAINT `uc_account__uuid` UNIQUE (`uuid`); ALTER TABLE `cloud`.`host` ALTER COLUMN `resource_state` SET DEFAULT 'Enabled'; + +ALTER TABLE `cloud`.`physical_network_service_providers` ADD COLUMN `removed` datetime COMMENT 'date removed if not null'; \ No newline at end of file