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