Skip to content

Commit efc4243

Browse files
LopezGabriel Ortiga Fernandes
authored andcommitted
some additional changes
1 parent 8688128 commit efc4243

File tree

10 files changed

+25
-23
lines changed

10 files changed

+25
-23
lines changed

engine/schema/src/main/java/com/cloud/vm/dao/UserVmDao.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,5 @@ public interface UserVmDao extends GenericDao<UserVmVO, Long> {
103103

104104
List<UserVmVO> findByUserDataId(long userdataId);
105105

106+
List<UserVmVO> listByIds(List<Long> ids);
106107
}

engine/schema/src/main/java/com/cloud/vm/dao/UserVmDaoImpl.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
7171
protected SearchBuilder<UserVmVO> RunningSearch;
7272
protected SearchBuilder<UserVmVO> StateChangeSearch;
7373
protected SearchBuilder<UserVmVO> AccountHostSearch;
74+
protected SearchBuilder<UserVmVO> IdsSearch;
7475

7576
protected SearchBuilder<UserVmVO> DestroySearch;
7677
protected SearchBuilder<UserVmVO> AccountDataCenterVirtualSearch;
@@ -135,6 +136,10 @@ void init() {
135136
AccountSearch.and("account", AccountSearch.entity().getAccountId(), SearchCriteria.Op.EQ);
136137
AccountSearch.done();
137138

139+
IdsSearch = createSearchBuilder();
140+
IdsSearch.and("ids", IdsSearch.entity().getId(), SearchCriteria.Op.IN);
141+
IdsSearch.done();
142+
138143
HostSearch = createSearchBuilder();
139144
HostSearch.and("host", HostSearch.entity().getHostId(), SearchCriteria.Op.EQ);
140145
HostSearch.done();
@@ -778,4 +783,11 @@ public List<UserVmVO> findByUserDataId(long userdataId) {
778783
sc.setParameters("userDataId", userdataId);
779784
return listBy(sc);
780785
}
786+
787+
@Override
788+
public List<UserVmVO> listByIds(List<Long> ids) {
789+
SearchCriteria<UserVmVO> sc = IdsSearch.create();
790+
sc.setParameters("ids", ids.toArray());
791+
return listBy(sc);
792+
}
781793
}

server/src/main/java/com/cloud/network/IpAddressManagerImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1476,7 +1476,8 @@ public IPAddressVO associateIPToGuestNetwork(long ipId, long networkId, boolean
14761476
// - if shared network in Advanced zone
14771477
// - and it belongs to the system
14781478
if (network.getAccountId() != owner.getId()) {
1479-
if (zone.getNetworkType() != NetworkType.Basic && !(zone.getNetworkType() == NetworkType.Advanced && network.getGuestType() == Network.GuestType.Shared)) {
1479+
if (zone.getNetworkType() != NetworkType.Basic &&
1480+
!(zone.getNetworkType() == NetworkType.Advanced && network.getGuestType() == Network.GuestType.Shared || network.getVpcId() == ipToAssoc.getVpcId())) {
14801481
throw new InvalidParameterValueException("The owner of the network is not the same as owner of the IP");
14811482
}
14821483
}

server/src/main/java/com/cloud/network/NetworkModelImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1701,7 +1701,7 @@ private void checkAccountNetworkPermissions(Account caller, Network network) {
17011701
if (!Account.Type.PROJECT.equals(caller.getType()) && Account.Type.PROJECT.equals(networkOwner.getType())) {
17021702
checkProjectNetworkPermissions(caller, networkOwner, network);
17031703
} else {
1704-
List<NetworkVO> networkMap = _networksDao.listBy(caller.getId(), network.getId());
1704+
List<NetworkVO> networkMap = _networksDao.listBy(networkOwner.getId(), network.getId());
17051705
NetworkPermissionVO networkPermission = _networkPermissionDao.findByNetworkAndAccount(network.getId(), caller.getId());
17061706
if (CollectionUtils.isEmpty(networkMap) && networkPermission == null) {
17071707
throw new PermissionDeniedException(String.format(UNABLE_TO_USE_NETWORK, ((NetworkVO) network).getUuid()));

server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2351,7 +2351,7 @@ public Pair<List<? extends UserVm>, List<String>> listLoadBalancerInstances(List
23512351
}
23522352
}
23532353

2354-
List<UserVmVO> userVms = _vmDao.listVirtualNetworkInstancesByAcctAndNetwork(loadBalancer.getAccountId(), loadBalancer.getNetworkId());
2354+
List<UserVmVO> userVms = _vmDao.listByIds(appliedInstanceIdList);
23552355

23562356
for (UserVmVO userVm : userVms) {
23572357
// if the VM is destroyed, being expunged, in an error state, or in

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2793,11 +2793,11 @@ public IpAddress associateIPToVpc(final long ipId, final long vpcId) throws Reso
27932793
}
27942794

27952795
// check permissions
2796-
_accountMgr.checkAccess(caller, null, true, owner, vpc);
2796+
_accountMgr.checkAccess(caller, null, false, owner, vpc);
27972797

27982798
s_logger.debug("Associating ip " + ipToAssoc + " to vpc " + vpc);
27992799

2800-
final boolean isSourceNatFinal = isSrcNatIpRequired(vpc.getVpcOfferingId()) && getExistingSourceNatInVpc(owner.getId(), vpcId) == null;
2800+
final boolean isSourceNatFinal = isSrcNatIpRequired(vpc.getVpcOfferingId()) && getExistingSourceNatInVpc(vpc.getAccountId(), vpcId) == null;
28012801
Transaction.execute(new TransactionCallbackNoReturn() {
28022802
@Override
28032803
public void doInTransactionWithoutResult(final TransactionStatus status) {

ui/src/config/section/network.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,15 @@ export default {
5959
}, {
6060
name: 'egress.rules',
6161
component: shallowRef(defineAsyncComponent(() => import('@/views/network/EgressRulesTab.vue'))),
62-
show: (record, route, user) => { return record.type === 'Isolated' && !('vpcid' in record) && 'listEgressFirewallRules' in store.getters.apis && (['Admin', 'DomainAdmin'].includes(user.roletype) || record.account === user.account || record.projectid) }
62+
show: (record, route, user) => { return record.type === 'Isolated' && !('vpcname' in record) && 'listEgressFirewallRules' in store.getters.apis && (['Admin', 'DomainAdmin'].includes(user.roletype) || record.account === user.account || record.projectid) }
6363
}, {
6464
name: 'ip.v6.firewall',
6565
component: shallowRef(defineAsyncComponent(() => import('@/views/network/Ipv6FirewallRulesTab.vue'))),
6666
show: (record, route, user) => { return record.type === 'Isolated' && ['IPv6', 'DualStack'].includes(record.internetprotocol) && !('vpcid' in record) && 'listIpv6FirewallRules' in store.getters.apis && (['Admin', 'DomainAdmin'].includes(user.roletype) || record.account === user.account || record.projectid) }
6767
}, {
6868
name: 'public.ip.addresses',
6969
component: shallowRef(defineAsyncComponent(() => import('@/views/network/IpAddressesTab.vue'))),
70-
show: (record, route, user) => { return 'listPublicIpAddresses' in store.getters.apis && (record.type === 'Shared' || (record.type === 'Isolated' && !('vpcid' in record) && (['Admin', 'DomainAdmin'].includes(user.roletype) || record.account === user.account || record.projectid))) }
70+
show: (record, route, user) => { return 'listPublicIpAddresses' in store.getters.apis && (record.type === 'Shared' || (record.type === 'Isolated' && !('vpcname' in record) && (['Admin', 'DomainAdmin'].includes(user.roletype) || record.account === user.account || record.projectid))) }
7171
}, {
7272
name: 'virtual.routers',
7373
component: shallowRef(defineAsyncComponent(() => import('@/views/network/RoutersTab.vue'))),

ui/src/views/network/EnableStaticNat.vue

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,6 @@ export default {
188188
pageSize: this.pageSize,
189189
listAll: true,
190190
networkid: this.resource.associatednetworkid,
191-
account: this.resource.account,
192-
domainid: this.resource.domainid,
193191
keyword: this.searchQuery
194192
}).then(response => {
195193
this.vmCount = response.listvirtualmachinesresponse.count
@@ -207,8 +205,6 @@ export default {
207205
pageSize: this.pageSize,
208206
listAll: true,
209207
networkid: e,
210-
account: this.resource.account,
211-
domainid: this.resource.domainid,
212208
vpcid: this.resource.vpcid,
213209
keyword: this.searchQuery
214210
}).then(response => {
@@ -247,8 +243,7 @@ export default {
247243
this.loading = true
248244
api('listNetworks', {
249245
vpcid: this.resource.vpcid,
250-
domainid: this.resource.domainid,
251-
account: this.resource.account,
246+
isrecursive: true,
252247
supportedservices: 'StaticNat'
253248
}).then(response => {
254249
this.networksList = response.listnetworksresponse.network

ui/src/views/network/LoadBalancing.vue

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -847,9 +847,8 @@ export default {
847847
this.tiers.loading = true
848848
849849
api('listNetworks', {
850-
account: this.resource.account,
851-
domainid: this.resource.domainid,
852850
supportedservices: 'Lb',
851+
isrecursive: true,
853852
vpcid: this.resource.vpcid
854853
}).then(json => {
855854
this.tiers.data = json.listnetworksresponse.network || []
@@ -1447,9 +1446,7 @@ export default {
14471446
keyword: this.searchQuery,
14481447
page: this.vmPage,
14491448
pagesize: this.vmPageSize,
1450-
networkid: networkId,
1451-
account: this.resource.account,
1452-
domainid: this.resource.domainid
1449+
networkid: networkId
14531450
}).then(response => {
14541451
this.vmCount = response.listvirtualmachinesresponse.count || 0
14551452
this.vms = response.listvirtualmachinesresponse.virtualmachine || []

ui/src/views/network/PortForwarding.vue

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -490,8 +490,6 @@ export default {
490490
this.selectedTier = null
491491
this.tiers.loading = true
492492
api('listNetworks', {
493-
account: this.resource.account,
494-
domainid: this.resource.domainid,
495493
supportedservices: 'PortForwarding',
496494
vpcid: this.resource.vpcid
497495
}).then(json => {
@@ -795,9 +793,7 @@ export default {
795793
keyword: this.searchQuery,
796794
page: this.vmPage,
797795
pagesize: this.vmPageSize,
798-
networkid: networkId,
799-
account: this.resource.account,
800-
domainid: this.resource.domainid
796+
networkid: networkId
801797
}).then(response => {
802798
this.vmCount = response.listvirtualmachinesresponse.count || 0
803799
this.vms = response.listvirtualmachinesresponse.virtualmachine

0 commit comments

Comments
 (0)