You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/06/16 00:38:03 UTC
[46/51] [abbrv] Support for adding private network
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0a7faa98/server/src/com/cloud/vm/dao/NicDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/dao/NicDaoImpl.java b/server/src/com/cloud/vm/dao/NicDaoImpl.java
index 1e3d6e0..09786ca 100644
--- a/server/src/com/cloud/vm/dao/NicDaoImpl.java
+++ b/server/src/com/cloud/vm/dao/NicDaoImpl.java
@@ -22,6 +22,8 @@ import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.SearchCriteria.Func;
import com.cloud.utils.db.SearchCriteria.Op;
+import com.cloud.vm.Nic.State;
+import com.cloud.vm.Nic;
import com.cloud.vm.NicVO;
import com.cloud.vm.VirtualMachine;
@@ -29,6 +31,7 @@ import com.cloud.vm.VirtualMachine;
public class NicDaoImpl extends GenericDaoBase<NicVO, Long> implements NicDao {
private final SearchBuilder<NicVO> AllFieldsSearch;
private final GenericSearchBuilder<NicVO, String> IpSearch;
+ private final SearchBuilder<NicVO> NonReleasedSearch;
protected NicDaoImpl() {
super();
@@ -46,6 +49,12 @@ public class NicDaoImpl extends GenericDaoBase<NicVO, Long> implements NicDao {
IpSearch.and("network", IpSearch.entity().getNetworkId(), Op.EQ);
IpSearch.and("address", IpSearch.entity().getIp4Address(), Op.NNULL);
IpSearch.done();
+
+ NonReleasedSearch = createSearchBuilder();
+ NonReleasedSearch.and("instance", NonReleasedSearch.entity().getInstanceId(), Op.EQ);
+ NonReleasedSearch.and("network", NonReleasedSearch.entity().getNetworkId(), Op.EQ);
+ NonReleasedSearch.and("state", NonReleasedSearch.entity().getState(), Op.NOTIN);
+ NonReleasedSearch.done();
}
@Override
@@ -123,4 +132,22 @@ public class NicDaoImpl extends GenericDaoBase<NicVO, Long> implements NicDao {
sc.setParameters("isDefault", 1);
return findOneBy(sc);
}
+
+ @Override
+ public NicVO findNonReleasedByInstanceIdAndNetworkId(long networkId, long instanceId) {
+ SearchCriteria<NicVO> sc = NonReleasedSearch.create();
+ sc.setParameters("network", networkId);
+ sc.setParameters("instance", instanceId);
+ sc.setParameters("state", State.Releasing, Nic.State.Deallocating);
+ return findOneBy(sc);
+ }
+
+ @Override
+ public String getIpAddress(long networkId, long instanceId) {
+ SearchCriteria<NicVO> sc = AllFieldsSearch.create();
+ sc.setParameters("network", networkId);
+ sc.setParameters("instance", instanceId);
+ return findOneBy(sc).getIp4Address();
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0a7faa98/server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java b/server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java
index f72e7e8..f2e69bc 100755
--- a/server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java
+++ b/server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java
@@ -240,7 +240,7 @@ public class MockVirtualMachineManagerImpl implements VirtualMachineManager {
* @see com.cloud.vm.VirtualMachineManager#addVmToNetwork(com.cloud.vm.VirtualMachine, com.cloud.network.Network)
*/
@Override
- public boolean addVmToNetwork(VirtualMachine vm, Network network) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException {
+ public NicProfile addVmToNetwork(VirtualMachine vm, Network network) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException {
// TODO Auto-generated method stub
return false;
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0a7faa98/setup/db/create-schema.sql
----------------------------------------------------------------------
diff --git a/setup/db/create-schema.sql b/setup/db/create-schema.sql
index a7bcd08..ff77121 100755
--- a/setup/db/create-schema.sql
+++ b/setup/db/create-schema.sql
@@ -2201,5 +2201,34 @@ CREATE TABLE `cloud`.`router_network_ref` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `cloud`.`vpc_gateways` (
+ `id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT COMMENT 'id',
+ `uuid` varchar(40),
+ `ip4_address` char(40) COMMENT 'ip4 address of the gateway',
+ `type` varchar(32) COMMENT 'type of gateway; can be Public/Private/Vpn',
+ `network_id` bigint unsigned NOT NULL COMMENT 'network id vpc gateway belongs to',
+ `vpc_id` bigint unsigned NOT NULL COMMENT 'id of the vpc the gateway belongs to',
+ `zone_id` bigint unsigned NOT NULL COMMENT 'id of the zone the gateway belongs to',
+ `created` datetime NOT NULL COMMENT 'date created',
+ `removed` datetime COMMENT 'date removed if not null',
+ PRIMARY KEY (`id`),
+ CONSTRAINT `fk_vpc_gateways__network_id` FOREIGN KEY `fk_vpc_gateways__network_id`(`network_id`) REFERENCES `networks`(`id`),
+ CONSTRAINT `fk_vpc_gateways__vpc_id` FOREIGN KEY `fk_vpc_gateways__vpc_id`(`vpc_id`) REFERENCES `vpc`(`id`),
+ CONSTRAINT `fk_vpc_gateways__zone_id` FOREIGN KEY `fk_vpc_gateways__zone_id`(`zone_id`) REFERENCES `data_center`(`id`),
+ CONSTRAINT `uc_vpc_gateways__uuid` UNIQUE (`uuid`),
+ INDEX `i_vpc_gateways__removed`(`removed`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `cloud`.`private_ip_address` (
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'primary key',
+ `ip_address` char(40) NOT NULL COMMENT 'ip address',
+ `network_id` bigint unsigned NOT NULL COMMENT 'id of the network ip belongs to',
+ `reservation_id` char(40) COMMENT 'reservation id',
+ `taken` datetime COMMENT 'Date taken',
+ PRIMARY KEY (`id`),
+ CONSTRAINT `fk_private_ip_address__network_id` FOREIGN KEY (`network_id`) REFERENCES `networks` (`id`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+
SET foreign_key_checks = 1;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0a7faa98/wscript
----------------------------------------------------------------------
diff --git a/wscript b/wscript
index 921cc37..2a518e3 100644
--- a/wscript
+++ b/wscript
@@ -3,7 +3,11 @@
# the following two variables are used by the target "waf dist"
# if you change 'em here, you need to change it also in cloud.spec, add a %changelog entry there, and add an entry in debian/changelog
+<<<<<<< HEAD
VERSION = '3.0.3.2012-06-04T23:35:51Z'
+=======
+VERSION = '3.0.3.2012-06-04T21:10:12Z'
+>>>>>>> Support for adding private network
APPNAME = 'cloud'
import shutil,os