Skip to content

Commit 242f5f9

Browse files
committed
=More changes and marvin test
1 parent d1642a4 commit 242f5f9

15 files changed

Lines changed: 372 additions & 55 deletions

File tree

api/src/com/cloud/network/NetworkService.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@
1919
import java.util.List;
2020

2121
import org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd;
22-
import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
23-
import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd;
24-
import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
22+
import org.apache.cloudstack.api.command.user.network.*;
2523
import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
2624

2725
import com.cloud.exception.ConcurrentOperationException;
@@ -165,4 +163,11 @@ String allocateSecondaryGuestIP(Account account, long zoneId, Long nicId,
165163

166164
/* lists the nic informaton */
167165
List<? extends Nic> listNics(ListNicsCmd listNicsCmd);
166+
167+
void removeNicDetail(RemoveNicDetailCmd removeNicDetailCmd);
168+
169+
void addNicDetail(AddNicDetailCmd cmd);
170+
171+
void updateNicDetail(UpdateNicDetailCmd cmd);
172+
168173
}

client/tomcatconf/applicationContext.xml.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@
256256
<bean id="networkRuleConfigDaoImpl" class="com.cloud.network.dao.NetworkRuleConfigDaoImpl" />
257257
<bean id="networkServiceMapDaoImpl" class="com.cloud.network.dao.NetworkServiceMapDaoImpl" />
258258
<bean id="nicDaoImpl" class="com.cloud.vm.dao.NicDaoImpl" />
259+
<bean id="nicDetailDaoImpl" class="com.cloud.vm.dao.NicDetailDaoImpl" />
259260
<bean id="nicSecondaryIpDaoImpl" class="com.cloud.vm.dao.NicSecondaryIpDaoImpl" />
260261
<bean id="objectInDataStoreDaoImpl" class="org.apache.cloudstack.storage.db.ObjectInDataStoreDaoImpl" />
261262
<bean id="ovsTunnelInterfaceDaoImpl" class="com.cloud.network.ovs.dao.OvsTunnelInterfaceDaoImpl" />
@@ -355,6 +356,7 @@
355356
<bean id="vmRulesetLogDaoImpl" class="com.cloud.network.security.dao.VmRulesetLogDaoImpl" />
356357
<bean id="volumeDao2Impl" class="org.apache.cloudstack.storage.volume.db.VolumeDao2Impl" />
357358
<bean id="volumeDaoImpl" class="com.cloud.storage.dao.VolumeDaoImpl" />
359+
<bean id="volumeDetailsDaoImpl" class="com.cloud.storage.dao.VolumeDetailsDaoImpl" />
358360
<bean id="volumeHostDaoImpl" class="com.cloud.storage.dao.VolumeHostDaoImpl" />
359361
<bean id="volumeJoinDaoImpl" class="com.cloud.api.query.dao.VolumeJoinDaoImpl" />
360362
<bean id="volumeReservationDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VolumeReservationDaoImpl" />

server/src/com/cloud/api/query/QueryManagerImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import javax.ejb.Local;
2222
import javax.inject.Inject;
2323

24+
import com.cloud.api.ApiDBUtils;
2425
import org.apache.cloudstack.affinity.AffinityGroupResponse;
2526
import org.apache.cloudstack.affinity.AffinityGroupVMMapVO;
2627
import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
@@ -1510,7 +1511,8 @@ public List<VolumeDetailResponse> searchForVolumeDetails(ListVolumeDetailsCmd cm
15101511
List<VolumeDetailResponse> volumeDetailResponseList = new ArrayList<VolumeDetailResponse>();
15111512
for (VolumeDetailVO volumeDetail : volumeDetailList ){
15121513
VolumeDetailResponse volumeDetailResponse = new VolumeDetailResponse();
1513-
volumeDetailResponse.setId(id.toString());
1514+
String uuid = ApiDBUtils.findVolumeById(id).getUuid();
1515+
volumeDetailResponse.setId(uuid);
15141516
volumeDetailResponse.setName(volumeDetail.getName());
15151517
volumeDetailResponse.setValue(volumeDetail.getValue());
15161518
volumeDetailResponse.setObjectName("volumedetail");

server/src/com/cloud/network/NetworkManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ List<NetworkVO> setupNetwork(Account owner, NetworkOffering offering, Deployment
9999
throws ConcurrentOperationException;
100100

101101
List<NetworkVO> setupNetwork(Account owner, NetworkOffering offering, Network predefined, DeploymentPlan plan, String name, String displayText, boolean errorIfAlreadySetup, Long domainId,
102-
ACLType aclType, Boolean subdomainAccess, Long vpcId) throws ConcurrentOperationException;
102+
ACLType aclType, Boolean subdomainAccess, Long vpcId, Boolean isDisplayNetworkEnabled) throws ConcurrentOperationException;
103103

104104
void allocate(VirtualMachineProfile<? extends VMInstanceVO> vm, List<Pair<NetworkVO, NicProfile>> networks) throws InsufficientCapacityException, ConcurrentOperationException;
105105

@@ -127,8 +127,8 @@ Pair<NetworkGuru, NetworkVO> implementNetwork(long networkId, DeployDestination
127127
boolean destroyNetwork(long networkId, ReservationContext context);
128128

129129
Network createGuestNetwork(long networkOfferingId, String name, String displayText, String gateway, String cidr,
130-
String vlanId, String networkDomain, Account owner, Long domainId, PhysicalNetwork physicalNetwork,
131-
long zoneId, ACLType aclType, Boolean subdomainAccess, Long vpcId, String ip6Gateway, String ip6Cidr)
130+
String vlanId, String networkDomain, Account owner, Long domainId, PhysicalNetwork physicalNetwork,
131+
long zoneId, ACLType aclType, Boolean subdomainAccess, Long vpcId, String ip6Gateway, String ip6Cidr, Boolean displayNetworkEnabled)
132132
throws ConcurrentOperationException, InsufficientCapacityException, ResourceAllocationException;
133133

134134
/**

server/src/com/cloud/network/NetworkManagerImpl.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,14 +1091,14 @@ protected NetworkManagerImpl() {
10911091
public List<NetworkVO> setupNetwork(Account owner, NetworkOffering offering, DeploymentPlan plan, String name,
10921092
String displayText, boolean isDefault)
10931093
throws ConcurrentOperationException {
1094-
return setupNetwork(owner, offering, null, plan, name, displayText, false, null, null, null, null);
1094+
return setupNetwork(owner, offering, null, plan, name, displayText, false, null, null, null, null, true);
10951095
}
10961096

10971097
@Override
10981098
@DB
10991099
public List<NetworkVO> setupNetwork(Account owner, NetworkOffering offering, Network predefined, DeploymentPlan
11001100
plan, String name, String displayText, boolean errorIfAlreadySetup, Long domainId,
1101-
ACLType aclType, Boolean subdomainAccess, Long vpcId) throws ConcurrentOperationException {
1101+
ACLType aclType, Boolean subdomainAccess, Long vpcId, Boolean isDisplayNetworkEnabled) throws ConcurrentOperationException {
11021102

11031103
Account locked = _accountDao.acquireInLockTable(owner.getId());
11041104
if (locked == null) {
@@ -1173,6 +1173,7 @@ public List<NetworkVO> setupNetwork(Account owner, NetworkOffering offering, Net
11731173
NetworkVO vo = new NetworkVO(id, network, offering.getId(), guru.getName(), owner.getDomainId(), owner.getId(),
11741174
related, name, displayText, predefined.getNetworkDomain(), offering.getGuestType(),
11751175
plan.getDataCenterId(), plan.getPhysicalNetworkId(), aclType, offering.getSpecifyIpRanges(), vpcId);
1176+
vo.setDisplayNetwork(isDisplayNetworkEnabled);
11761177
networks.add(_networksDao.persist(vo, vo.getGuestType() == Network.GuestType.Isolated,
11771178
finalizeServicesAndProvidersForNetwork(offering, plan.getPhysicalNetworkId())));
11781179

@@ -1862,9 +1863,9 @@ public void expungeNics(VirtualMachineProfile<? extends VMInstanceVO> vm) {
18621863

18631864
@Override
18641865
@DB
1865-
public Network createGuestNetwork(long networkOfferingId, String name, String displayText, String gateway,
1866-
String cidr, String vlanId, String networkDomain, Account owner, Long domainId,
1867-
PhysicalNetwork pNtwk, long zoneId, ACLType aclType, Boolean subdomainAccess, Long vpcId, String ip6Gateway, String ip6Cidr)
1866+
public Network createGuestNetwork(long networkOfferingId, String name, String displayText, String gateway,
1867+
String cidr, String vlanId, String networkDomain, Account owner, Long domainId,
1868+
PhysicalNetwork pNtwk, long zoneId, ACLType aclType, Boolean subdomainAccess, Long vpcId, String ip6Gateway, String ip6Cidr, Boolean isDisplayNetworkEnabled)
18681869
throws ConcurrentOperationException, InsufficientCapacityException, ResourceAllocationException {
18691870

18701871
NetworkOfferingVO ntwkOff = _networkOfferingDao.findById(networkOfferingId);
@@ -2094,7 +2095,7 @@ public Network createGuestNetwork(long networkOfferingId, String name, String di
20942095
}
20952096

20962097
List<NetworkVO> networks = setupNetwork(owner, ntwkOff, userNetwork, plan, name, displayText, true, domainId,
2097-
aclType, subdomainAccess, vpcId);
2098+
aclType, subdomainAccess, vpcId, isDisplayNetworkEnabled);
20982099

20992100
Network network = null;
21002101
if (networks == null || networks.isEmpty()) {
@@ -2687,7 +2688,7 @@ public boolean associateIpAddressListToAccount(long userId, long accountId, long
26872688
guestNetwork = createGuestNetwork(requiredOfferings.get(0).getId(), owner.getAccountName() + "-network"
26882689
, owner.getAccountName() + "-network", null, null, null, null, owner, null, physicalNetwork,
26892690
zoneId, ACLType.Account,
2690-
null, null, null, null);
2691+
null, null, null, null, true);
26912692
if (guestNetwork == null) {
26922693
s_logger.warn("Failed to create default Virtual network for the account " + accountId + "in zone " + zoneId);
26932694
throw new CloudRuntimeException("Failed to create a Guest Isolated Networks with SourceNAT " +

server/src/com/cloud/network/NetworkServiceImpl.java

Lines changed: 60 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,7 @@
8686
import org.apache.cloudstack.acl.SecurityChecker;
8787
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
8888
import org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd;
89-
import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd;
90-
import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
91-
import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
89+
import org.apache.cloudstack.api.command.user.network.*;
9290
import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
9391
import org.apache.log4j.Logger;
9492
import org.springframework.stereotype.Component;
@@ -203,6 +201,8 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
203201
HostPodDao _hostPodDao;
204202
@Inject
205203
DataCenterVnetDao _datacneter_vnet;
204+
@Inject
205+
NicDetailDao _nicDetailDao = null;
206206

207207
int _cidrLimit;
208208
boolean _allowSubdomainNetworkAccess;
@@ -817,6 +817,7 @@ public Network createGuestNetwork(CreateNetworkCmd cmd) throws InsufficientCapac
817817
String endIPv6 = cmd.getEndIpv6();
818818
String ip6Gateway = cmd.getIp6Gateway();
819819
String ip6Cidr = cmd.getIp6Cidr();
820+
Boolean isDisplayNetworkEnabled = cmd.getDisplayNetwork();
820821

821822
// Validate network offering
822823
NetworkOfferingVO ntwkOff = _networkOfferingDao.findById(networkOfferingId);
@@ -1098,13 +1099,13 @@ && areServicesSupportedByNetworkOffering(ntwkOff.getId(), Service.SourceNat))) {
10981099
throw new InvalidParameterValueException("Network offering can't be used for VPC networks");
10991100
}
11001101
network = _vpcMgr.createVpcGuestNetwork(networkOfferingId, name, displayText, gateway, cidr, vlanId,
1101-
networkDomain, owner, sharedDomainId, pNtwk, zoneId, aclType, subdomainAccess, vpcId, caller);
1102+
networkDomain, owner, sharedDomainId, pNtwk, zoneId, aclType, subdomainAccess, vpcId, caller, isDisplayNetworkEnabled);
11021103
} else {
11031104
if (_configMgr.isOfferingForVpc(ntwkOff)){
11041105
throw new InvalidParameterValueException("Network offering can be used for VPC networks only");
11051106
}
11061107
network = _networkMgr.createGuestNetwork(networkOfferingId, name, displayText, gateway, cidr, vlanId,
1107-
networkDomain, owner, sharedDomainId, pNtwk, zoneId, aclType, subdomainAccess, vpcId, ip6Gateway, ip6Cidr);
1108+
networkDomain, owner, sharedDomainId, pNtwk, zoneId, aclType, subdomainAccess, vpcId, ip6Gateway, ip6Cidr, isDisplayNetworkEnabled);
11081109
}
11091110

11101111
if (caller.getType() == Account.ACCOUNT_TYPE_ADMIN && createVlan) {
@@ -3347,7 +3348,7 @@ public Network createPrivateNetwork(String networkName, String displayText, long
33473348
if (privateNetwork == null) {
33483349
//create Guest network
33493350
privateNetwork = _networkMgr.createGuestNetwork(ntwkOff.getId(), networkName, displayText, gateway, cidr, vlan,
3350-
null, owner, null, pNtwk, pNtwk.getDataCenterId(), ACLType.Account, null, null, null, null);
3351+
null, owner, null, pNtwk, pNtwk.getDataCenterId(), ACLType.Account, null, null, null, null, true);
33513352
s_logger.debug("Created private network " + privateNetwork);
33523353
} else {
33533354
s_logger.debug("Private network already exists: " + privateNetwork);
@@ -3407,4 +3408,57 @@ public List<? extends Nic> listNics(ListNicsCmd cmd) {
34073408
_accountMgr.checkAccess(caller, null, true, userVm);
34083409
return _networkMgr.listVmNics(vmId, nicId);
34093410
}
3411+
3412+
@Override
3413+
public void addNicDetail(AddNicDetailCmd cmd){
3414+
UserContext.current().setEventDetails("Nic Id: " + cmd.getId());
3415+
Account caller = UserContext.current().getCaller();
3416+
Long nicId = cmd.getId();
3417+
String name = cmd.getName();
3418+
String value = cmd.getValue();
3419+
3420+
NicVO nic = _nicDao.findById(nicId);
3421+
3422+
//_accountMgr.checkAccess(caller, null, true, nic);
3423+
NicDetailVO nicDetail = new NicDetailVO(nicId, name, value);
3424+
_nicDetailDao.persist(nicDetail);
3425+
}
3426+
3427+
@Override
3428+
public void updateNicDetail(UpdateNicDetailCmd cmd){
3429+
UserContext.current().setEventDetails("Nic Id: " + cmd.getId());
3430+
Account caller = UserContext.current().getCaller();
3431+
Long nicId = cmd.getId();
3432+
String name = cmd.getName();
3433+
String value = cmd.getValue();
3434+
3435+
NicVO nic = _nicDao.findById(nicId);
3436+
// _accountMgr.checkAccess(caller, null, true, nic);
3437+
NicDetailVO nicDetail = _nicDetailDao.findDetail(nicId, name);
3438+
if(nicDetail != null){
3439+
nicDetail.setValue(value);
3440+
_nicDetailDao.update(nicDetail.getId(), nicDetail);
3441+
}else{
3442+
throw new InvalidParameterValueException("This detail doesnt exist for the nic");
3443+
}
3444+
3445+
}
3446+
3447+
@Override
3448+
public void removeNicDetail(RemoveNicDetailCmd cmd){
3449+
Account caller = UserContext.current().getCaller();
3450+
Long nicId = cmd.getId();
3451+
String name = cmd.getName();
3452+
3453+
NicVO nic = _nicDao.findById(nicId);
3454+
//_accountMgr.checkAccess(caller, null, true, nic);
3455+
NicDetailVO nicDetail = _nicDetailDao.findDetail(nicId, name);
3456+
if(nicDetail != null){
3457+
_nicDetailDao.remove(nicDetail.getId());
3458+
}else{
3459+
throw new InvalidParameterValueException("This detail doesnt exist for the nic ");
3460+
}
3461+
3462+
}
3463+
34103464
}

server/src/com/cloud/network/vpc/VpcManager.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ public interface VpcManager extends VpcService{
8282
/**
8383
* Creates guest network in the VPC
8484
*
85+
*
8586
* @param ntwkOffId
8687
* @param name
8788
* @param displayText
@@ -97,14 +98,15 @@ public interface VpcManager extends VpcService{
9798
* @param subdomainAccess
9899
* @param vpcId
99100
* @param caller
101+
* @param displayNetworkEnabled
100102
* @return
101103
* @throws ConcurrentOperationException
102104
* @throws InsufficientCapacityException
103105
* @throws ResourceAllocationException
104106
*/
105-
Network createVpcGuestNetwork(long ntwkOffId, String name, String displayText, String gateway, String cidr,
106-
String vlanId, String networkDomain, Account owner, Long domainId, PhysicalNetwork pNtwk, long zoneId,
107-
ACLType aclType, Boolean subdomainAccess, long vpcId, Account caller)
107+
Network createVpcGuestNetwork(long ntwkOffId, String name, String displayText, String gateway, String cidr,
108+
String vlanId, String networkDomain, Account owner, Long domainId, PhysicalNetwork pNtwk, long zoneId,
109+
ACLType aclType, Boolean subdomainAccess, long vpcId, Account caller, Boolean displayNetworkEnabled)
108110
throws ConcurrentOperationException, InsufficientCapacityException, ResourceAllocationException;
109111

110112

server/src/com/cloud/network/vpc/VpcManagerImpl.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1938,9 +1938,9 @@ public boolean isIpAllocatedToVpc(IpAddress ip) {
19381938

19391939
@DB
19401940
@Override
1941-
public Network createVpcGuestNetwork(long ntwkOffId, String name, String displayText, String gateway,
1942-
String cidr, String vlanId, String networkDomain, Account owner, Long domainId,
1943-
PhysicalNetwork pNtwk, long zoneId, ACLType aclType, Boolean subdomainAccess, long vpcId, Account caller)
1941+
public Network createVpcGuestNetwork(long ntwkOffId, String name, String displayText, String gateway,
1942+
String cidr, String vlanId, String networkDomain, Account owner, Long domainId,
1943+
PhysicalNetwork pNtwk, long zoneId, ACLType aclType, Boolean subdomainAccess, long vpcId, Account caller, Boolean isDisplayNetworkEnabled)
19441944
throws ConcurrentOperationException, InsufficientCapacityException, ResourceAllocationException {
19451945

19461946
Vpc vpc = getActiveVpc(vpcId);
@@ -1965,7 +1965,7 @@ public Network createVpcGuestNetwork(long ntwkOffId, String name, String display
19651965

19661966
//2) Create network
19671967
Network guestNetwork = _ntwkMgr.createGuestNetwork(ntwkOffId, name, displayText, gateway, cidr, vlanId,
1968-
networkDomain, owner, domainId, pNtwk, zoneId, aclType, subdomainAccess, vpcId, null, null);
1968+
networkDomain, owner, domainId, pNtwk, zoneId, aclType, subdomainAccess, vpcId, null, null, isDisplayNetworkEnabled);
19691969

19701970
return guestNetwork;
19711971
}

server/src/com/cloud/vm/NicDetailsVO.java

Lines changed: 0 additions & 11 deletions
This file was deleted.

server/src/com/cloud/vm/dao/NicDetailDaoImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
// under the License.
1717
package com.cloud.vm.dao;
1818

19+
import com.cloud.storage.dao.SnapshotDao;
20+
import com.cloud.storage.dao.VolumeDao;
1921
import com.cloud.utils.db.GenericDaoBase;
2022
import com.cloud.utils.db.SearchBuilder;
2123
import com.cloud.utils.db.SearchCriteria;
@@ -29,7 +31,7 @@
2931
import java.util.Map;
3032

3133
@Component
32-
@Local(value = { NicDetailDao.class })
34+
@Local (value={NicDetailDao.class})
3335
public class NicDetailDaoImpl extends GenericDaoBase<NicDetailVO, Long> implements NicDetailDao {
3436
protected final SearchBuilder<NicDetailVO> NicSearch;
3537
protected final SearchBuilder<NicDetailVO> DetailSearch;

0 commit comments

Comments
 (0)