Must have been some caching issue. It disappeared after splitting up the change and applying the parts one by one.
Regards, -----Original Message----- From: Daan Hoogland [mailto:dhoogl...@schubergphilis.com] Sent: woensdag 1 mei 2013 17:15 To: 'dev@cloudstack.apache.org' Subject: RE: startup slow after changing api I noticed this change in startup time is mainly noticeable in the debugger. I made a patch for review. I am puzzled as the change seems trivial: diff --git a/api/src/com/cloud/network/NetworkService.java b/api/src/com/cloud/network/NetworkService.java old mode 100755 new mode 100644 index 22f1502..c3850c3 --- a/api/src/com/cloud/network/NetworkService.java +++ b/api/src/com/cloud/network/NetworkService.java @@ -148,13 +148,14 @@ * @param netmask * @param networkOwnerId * @param vpcId TODO + * @param networkOffering * @return * @throws InsufficientCapacityException * @throws ConcurrentOperationException * @throws ResourceAllocationException */ Network createPrivateNetwork(String networkName, String displayText, long physicalNetworkId, String broadcastUri, - String startIp, String endIP, String gateway, String netmask, long networkOwnerId, Long vpcId) + String startIp, String endIP, String gateway, String + netmask, long networkOwnerId, Long vpcId, String networkOffering) throws ResourceAllocationException, ConcurrentOperationException, InsufficientCapacityException; /* Requests an IP address for the guest nic */ diff --git a/api/src/com/cloud/network/vpc/VpcService.java b/api/src/com/cloud/network/vpc/VpcService.java index 07ce89b..d8c7396 100644 --- a/api/src/com/cloud/network/vpc/VpcService.java +++ b/api/src/com/cloud/network/vpc/VpcService.java @@ -165,18 +165,19 @@ * * @param vpcId TODO * @param physicalNetworkId - * @param vlan + * @param broadcastUri * @param ipAddress * @param gateway * @param netmask * @param gatewayOwnerId + * @param networkOffering * @return * @throws InsufficientCapacityException * @throws ConcurrentOperationException * @throws ResourceAllocationException */ - public PrivateGateway createVpcPrivateGateway(long vpcId, Long physicalNetworkId, String vlan, String ipAddress, - String gateway, String netmask, long gatewayOwnerId) throws ResourceAllocationException, + public PrivateGateway createVpcPrivateGateway(long vpcId, Long physicalNetworkId, String broadcastUri, String ipAddress, + String gateway, String netmask, long gatewayOwnerId, String + networkOffering) throws ResourceAllocationException, ConcurrentOperationException, InsufficientCapacityException; /** diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java old mode 100755 new mode 100644 index 1165c7b..c266d78 --- a/api/src/org/apache/cloudstack/api/ApiConstants.java +++ b/api/src/org/apache/cloudstack/api/ApiConstants.java @@ -237,6 +237,7 @@ public static final String PAGE_SIZE = "pagesize"; public static final String COUNT = "count"; public static final String TRAFFIC_TYPE = "traffictype"; + public static final String NETWORK_OFFERING_NAME = + "networkoffering"; public static final String NETWORK_OFFERING_ID = "networkofferingid"; public static final String NETWORK_IDS = "networkids"; public static final String NETWORK_ID = "networkid"; diff --git a/api/src/org/apache/cloudstack/api/command/admin/vpc/CreatePrivateGatewayCmd.java b/api/src/org/apache/cloudstack/api/command/admin/vpc/CreatePrivateGatewayCmd.java index 9da572d..014d053 100644 --- a/api/src/org/apache/cloudstack/api/command/admin/vpc/CreatePrivateGatewayCmd.java +++ b/api/src/org/apache/cloudstack/api/command/admin/vpc/CreatePrivateG +++ atewayCmd.java @@ -69,6 +69,9 @@ required=true, description="the VPC network belongs to") private Long vpcId; + @Parameter(name=ApiConstants.NETWORK_OFFERING_NAME, type=CommandType.STRING, description="the name of the network offering to use for the private gateways network connection") + private String networkOffering; + ///////////////////////////////////////////////////// /////////////////// Accessors /////////////////////// ///////////////////////////////////////////////////// @@ -97,6 +100,10 @@ return vpcId; } + public String getNetworkOffering() { + return networkOffering; + } + ///////////////////////////////////////////////////// /////////////// API Implementation/////////////////// ///////////////////////////////////////////////////// @@ -111,7 +118,7 @@ PrivateGateway result = null; try { result = _vpcService.createVpcPrivateGateway(getVpcId(), getPhysicalNetworkId(), - getBroadcastUri(), getStartIp(), getGateway(), getNetmask(), getEntityOwnerId()); + getBroadcastUri(), getStartIp(), getGateway(), + getNetmask(), getEntityOwnerId(), getNetworkOffering()); } catch (InsufficientCapacityException ex){ s_logger.info(ex); s_logger.trace(ex); @@ -129,7 +136,7 @@ } } - @Override + @Override public void execute() throws InsufficientCapacityException, ConcurrentOperationException, ResourceAllocationException, ResourceUnavailableException { PrivateGateway result = _vpcService.applyVpcPrivateGateway(getEntityId(), true); diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java old mode 100755 new mode 100644 index bff98eb..6a5bf3a --- a/server/src/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/com/cloud/network/NetworkServiceImpl.java @@ -3312,14 +3312,19 @@ @Override @DB public Network createPrivateNetwork(String networkName, String displayText, long physicalNetworkId, - String broadcastUriString, String startIp, String endIp, String gateway, String netmask, long networkOwnerId, Long vpcId) + String broadcastUriString, String startIp, String endIp, String gateway, String netmask, + long networkOwnerId, Long vpcId, String networkOffering) throws ResourceAllocationException, ConcurrentOperationException, InsufficientCapacityException { Account owner = _accountMgr.getAccount(networkOwnerId); // Get system network offering - NetworkOfferingVO ntwkOff = findSystemNetworkOffering(NetworkOffering.SystemPrivateGatewayNetworkOffering); - + NetworkOfferingVO ntwkOff = findSystemNetworkOffering(networkOffering); + if(ntwkOff == null) + { + ntwkOff = findSystemNetworkOffering(NetworkOffering.SystemPrivateGatewayNetworkOffering); + } + // Validate physical network PhysicalNetwork pNtwk = _physicalNetworkDao.findById(physicalNetworkId); if (pNtwk == null) { @@ -3403,7 +3408,8 @@ return privateNetwork; } - + + // TODO search the name directly instead of getting them all private NetworkOfferingVO findSystemNetworkOffering(String offeringName) { List<NetworkOfferingVO> allOfferings = _networkOfferingDao.listSystemNetworkOfferings(); for (NetworkOfferingVO offer: allOfferings){ diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java index c242334..4db7881 100644 --- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java @@ -1286,7 +1286,7 @@ @DB @ActionEvent(eventType = EventTypes.EVENT_PRIVATE_GATEWAY_CREATE, eventDescription = "creating vpc private gateway", create=true) public PrivateGateway createVpcPrivateGateway(long vpcId, Long physicalNetworkId, String broadcastUri, String ipAddress, - String gateway, String netmask, long gatewayOwnerId) throws ResourceAllocationException, + String gateway, String netmask, long gatewayOwnerId, String + networkOffering) throws ResourceAllocationException, ConcurrentOperationException, InsufficientCapacityException { //Validate parameters @@ -1313,8 +1313,9 @@ String networkName = "vpc-" + vpc.getName() + "-privateNetwork"; //TODO specify the right guru/provider?? + // add the network offering that can supply the broadcastUri Network privateNtwk = _ntwkSvc.createPrivateNetwork(networkName, networkName, physicalNetworkId, - broadcastUri, ipAddress, null, gateway, netmask, gatewayOwnerId, vpcId); + broadcastUri, ipAddress, null, gateway, netmask, + gatewayOwnerId, vpcId, networkOffering); //2) create gateway entry VpcGatewayVO gatewayVO = new VpcGatewayVO(ipAddress, VpcGateway.Type.Private, vpcId, privateNtwk.getDataCenterId(), diff --git a/server/test/com/cloud/network/MockNetworkManagerImpl.java b/server/test/com/cloud/network/MockNetworkManagerImpl.java old mode 100755 new mode 100644 index e9987bd..5106b26 --- a/server/test/com/cloud/network/MockNetworkManagerImpl.java +++ b/server/test/com/cloud/network/MockNetworkManagerImpl.java @@ -604,7 +604,7 @@ */ @Override public Network createPrivateNetwork(String networkName, String displayText, long physicalNetworkId, String vlan, - String startIp, String endIP, String gateway, String netmask, long networkOwnerId, Long vpcId) + String startIp, String endIP, String gateway, String + netmask, long networkOwnerId, Long vpcId, String networkOffering) throws ResourceAllocationException, ConcurrentOperationException, InsufficientCapacityException { // TODO Auto-generated method stub return null; diff --git a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java index 9b18358..6bfacba 100644 --- a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java +++ b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java @@ -609,7 +609,7 @@ */ @Override public Network createPrivateNetwork(String networkName, String displayText, long physicalNetworkId, String vlan, - String startIp, String endIP, String gateway, String netmask, long networkOwnerId, Long vpcId) + String startIp, String endIP, String gateway, String + netmask, long networkOwnerId, Long vpcId, String networkOffering) throws ResourceAllocationException, ConcurrentOperationException, InsufficientCapacityException { // TODO Auto-generated method stub return null; diff --git a/server/test/com/cloud/vpc/MockVpcManagerImpl.java b/server/test/com/cloud/vpc/MockVpcManagerImpl.java index 0f26928..37c4fa3 100644 --- a/server/test/com/cloud/vpc/MockVpcManagerImpl.java +++ b/server/test/com/cloud/vpc/MockVpcManagerImpl.java @@ -164,7 +164,7 @@ * @see com.cloud.network.vpc.VpcService#createVpcPrivateGateway(long, java.lang.Long, java.lang.String, java.lang.String, java.lang.String, java.lang.String, long) */ @Override - public PrivateGateway createVpcPrivateGateway(long vpcId, Long physicalNetworkId, String vlan, String ipAddress, String gateway, String netmask, long gatewayOwnerId) throws ResourceAllocationException, + public PrivateGateway createVpcPrivateGateway(long vpcId, Long + physicalNetworkId, String vlan, String ipAddress, String gateway, + String netmask, long gatewayOwnerId, String networkOffering) throws + ResourceAllocationException, ConcurrentOperationException, InsufficientCapacityException { // TODO Auto-generated method stub return null; -----Original Message----- From: Daan Hoogland [mailto:dhoogl...@schubergphilis.com] Sent: woensdag 1 mei 2013 16:39 To: dev@cloudstack.apache.org Subject: startup slow after changing api LS, I experimented with adding an parameter to the api call createVpcPrivateGateway. I added an optional network offering name. After this the startup time got tens of minutes slower in my eclipse env. I stashed my change away and so where these awful minutes. Is there something to keep in mind when extending the api, something that need regenerated extra with respect to 'mvn clean test install'? Note: I did add handling code to the implementation in VpcManagerImpl and NetworkManagerImpl. Thanks for any pointers, Daan Hoogland