Skip to content

Commit a6196b0

Browse files
fmaximusyadvr
authored andcommitted
Fixes: #2881 Improve Exception message (#2889)
Network.Service and Network.Provider were missing a toString() method. Added this so appending (a list of) them will be understandable.
1 parent 37ecfe2 commit a6196b0

2 files changed

Lines changed: 40 additions & 3 deletions

File tree

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
import java.util.ArrayList;
2222
import java.util.List;
2323

24+
import org.apache.commons.lang.builder.ToStringBuilder;
25+
import org.apache.commons.lang.builder.ToStringStyle;
26+
2427
import org.apache.cloudstack.acl.ControlledEntity;
2528
import org.apache.cloudstack.api.Displayable;
2629
import org.apache.cloudstack.api.Identity;
@@ -95,6 +98,12 @@ public boolean containsCapability(Capability cap) {
9598
return success;
9699
}
97100

101+
@Override public String toString() {
102+
return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
103+
.append("name", name)
104+
.toString();
105+
}
106+
98107
public static Service getService(String serviceName) {
99108
for (Service service : supportedServices) {
100109
if (service.getName().equalsIgnoreCase(serviceName)) {
@@ -186,6 +195,12 @@ public static Provider getProvider(String providerName) {
186195
}
187196
return null;
188197
}
198+
199+
@Override public String toString() {
200+
return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
201+
.append("name", name)
202+
.toString();
203+
}
189204
}
190205

191206
public static class Capability {
@@ -241,6 +256,12 @@ public static Capability getCapability(String capabilityName) {
241256
}
242257
return null;
243258
}
259+
260+
@Override public String toString() {
261+
return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
262+
.append("name", name)
263+
.toString();
264+
}
244265
}
245266

246267
enum Event {

plugins/network-elements/nuage-vsp/test/com/cloud/network/element/NuageVspElementTest.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@
2626
import java.util.Collections;
2727
import java.util.Set;
2828

29-
import com.cloud.network.dao.NetworkDao;
30-
import com.cloud.network.dao.NetworkVO;
31-
import com.cloud.tags.dao.ResourceTagDao;
3229
import org.junit.Before;
3330
import org.junit.Test;
3431
import org.mockito.InjectMocks;
@@ -50,6 +47,7 @@
5047
import com.cloud.exception.ConcurrentOperationException;
5148
import com.cloud.exception.InsufficientCapacityException;
5249
import com.cloud.exception.ResourceUnavailableException;
50+
import com.cloud.exception.UnsupportedServiceException;
5351
import com.cloud.host.HostVO;
5452
import com.cloud.host.dao.HostDao;
5553
import com.cloud.network.Network;
@@ -62,7 +60,9 @@
6260
import com.cloud.network.dao.FirewallRulesDao;
6361
import com.cloud.network.dao.IPAddressDao;
6462
import com.cloud.network.dao.IPAddressVO;
63+
import com.cloud.network.dao.NetworkDao;
6564
import com.cloud.network.dao.NetworkServiceMapDao;
65+
import com.cloud.network.dao.NetworkVO;
6666
import com.cloud.network.dao.NuageVspDao;
6767
import com.cloud.network.dao.PhysicalNetworkDao;
6868
import com.cloud.network.dao.PhysicalNetworkVO;
@@ -77,14 +77,18 @@
7777
import com.cloud.offerings.dao.NetworkOfferingDao;
7878
import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
7979
import com.cloud.resource.ResourceManager;
80+
import com.cloud.tags.dao.ResourceTagDao;
8081
import com.cloud.user.Account;
8182
import com.cloud.util.NuageVspEntityBuilder;
8283
import com.cloud.vm.DomainRouterVO;
8384
import com.cloud.vm.ReservationContext;
8485
import com.cloud.vm.dao.DomainRouterDao;
8586

87+
import static org.hamcrest.Matchers.is;
8688
import static org.junit.Assert.assertFalse;
89+
import static org.junit.Assert.assertThat;
8790
import static org.junit.Assert.assertTrue;
91+
import static org.junit.Assert.fail;
8892
import static org.mockito.Matchers.any;
8993
import static org.mockito.Matchers.eq;
9094
import static org.mockito.Mockito.mock;
@@ -233,6 +237,18 @@ public void testVerifyServiceCombination() {
233237
Service.Connectivity,
234238
Service.Firewall);
235239
assertTrue(_nuageVspElement.verifyServicesCombination(services));
240+
241+
242+
services = Sets.newHashSet(
243+
Service.Dhcp,
244+
Service.StaticNat,
245+
Service.Firewall);
246+
try {
247+
_nuageVspElement.verifyServicesCombination(services);
248+
fail("Expected Exception");
249+
} catch (UnsupportedServiceException e) {
250+
assertThat(e.getMessage(), is("Provider Network.Provider[name=NuageVsp] requires services: [Network.Service[name=Connectivity]]"));
251+
}
236252
}
237253

238254
@Test

0 commit comments

Comments
 (0)