|
19 | 19 |
|
20 | 20 | package com.cloud.util; |
21 | 21 |
|
| 22 | +import java.util.HashSet; |
| 23 | +import java.util.Iterator; |
| 24 | +import java.util.List; |
| 25 | +import java.util.Set; |
| 26 | +import java.util.TreeSet; |
| 27 | + |
| 28 | +import javax.inject.Inject; |
| 29 | + |
| 30 | +import net.nuage.vsp.acs.client.api.model.VspAclRule; |
| 31 | +import net.nuage.vsp.acs.client.api.model.VspDomain; |
| 32 | +import net.nuage.vsp.acs.client.api.model.VspNetwork; |
| 33 | +import net.nuage.vsp.acs.client.api.model.VspNic; |
| 34 | +import net.nuage.vsp.acs.client.api.model.VspStaticNat; |
| 35 | +import net.nuage.vsp.acs.client.api.model.VspVm; |
| 36 | +import net.nuage.vsp.acs.client.common.model.Pair; |
| 37 | + |
| 38 | +import org.apache.commons.lang.StringUtils; |
| 39 | +import org.apache.log4j.Logger; |
| 40 | + |
| 41 | +import com.google.common.collect.Iterables; |
| 42 | +import com.google.common.collect.Lists; |
| 43 | + |
| 44 | +import org.apache.cloudstack.framework.config.dao.ConfigurationDao; |
| 45 | + |
22 | 46 | import com.cloud.dc.VlanVO; |
23 | 47 | import com.cloud.dc.dao.VlanDao; |
24 | 48 | import com.cloud.domain.Domain; |
|
44 | 68 | import com.cloud.vm.NicProfile; |
45 | 69 | import com.cloud.vm.NicVO; |
46 | 70 | import com.cloud.vm.VirtualMachine; |
47 | | -import com.google.common.collect.Iterables; |
48 | | -import com.google.common.collect.Lists; |
49 | | -import net.nuage.vsp.acs.client.api.model.VspAclRule; |
50 | | -import net.nuage.vsp.acs.client.api.model.VspDomain; |
51 | | -import net.nuage.vsp.acs.client.api.model.VspNetwork; |
52 | | -import net.nuage.vsp.acs.client.api.model.VspNic; |
53 | | -import net.nuage.vsp.acs.client.api.model.VspStaticNat; |
54 | | -import net.nuage.vsp.acs.client.api.model.VspVm; |
55 | | -import net.nuage.vsp.acs.client.common.model.Pair; |
56 | | -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; |
57 | | -import org.apache.commons.lang.StringUtils; |
58 | | -import org.apache.log4j.Logger; |
59 | | - |
60 | | -import javax.inject.Inject; |
61 | | -import java.util.HashSet; |
62 | | -import java.util.Iterator; |
63 | | -import java.util.List; |
64 | | -import java.util.Set; |
65 | | -import java.util.TreeSet; |
66 | 71 |
|
67 | 72 | public class NuageVspEntityBuilder { |
68 | 73 | private static final Logger s_logger = Logger.getLogger(NuageVspEntityBuilder.class); |
@@ -270,24 +275,29 @@ public VspNic buildVspNic(NicVO nic) { |
270 | 275 | return vspNicBuilder.build(); |
271 | 276 | } |
272 | 277 |
|
273 | | - public VspStaticNat buildVspStaticNat(Boolean forRevoke, IPAddressVO staticNatIp, VlanVO staticNatVlan, NicVO nic) { |
| 278 | + public VspStaticNat buildVspStaticNat(Boolean forRevoke, IPAddressVO staticNatIp, VlanVO staticNatVlan, VspNic vspNic) { |
274 | 279 | VspStaticNat.Builder vspStaticNatBuilder = new VspStaticNat.Builder() |
275 | 280 | .ipUuid(staticNatIp.getUuid()) |
276 | 281 | .ipAddress(staticNatIp.getAddress().addr()) |
277 | 282 | .revoke(forRevoke) |
278 | 283 | .oneToOneNat(staticNatIp.isOneToOneNat()) |
| 284 | + .state(getEnumValue(staticNatIp.getState(), VspStaticNat.State.class)) |
279 | 285 | .vlanUuid(staticNatVlan.getUuid()) |
280 | 286 | .vlanGateway(staticNatVlan.getVlanGateway()) |
281 | 287 | .vlanNetmask(staticNatVlan.getVlanNetmask()); |
282 | 288 |
|
283 | | - if (nic != null) { |
284 | | - VspNic vspNic = buildVspNic(nic); |
| 289 | + if (vspNic != null) { |
285 | 290 | vspStaticNatBuilder.nic(vspNic); |
286 | 291 | } |
287 | 292 |
|
288 | 293 | return vspStaticNatBuilder.build(); |
289 | 294 | } |
290 | 295 |
|
| 296 | + public VspStaticNat buildVspStaticNat(Boolean forRevoke, IPAddressVO staticNatIp, VlanVO staticNatVlan, NicVO nic) { |
| 297 | + VspNic vspNic = (nic != null) ?buildVspNic(nic) : null; |
| 298 | + return buildVspStaticNat(forRevoke, staticNatIp, staticNatVlan, vspNic); |
| 299 | + } |
| 300 | + |
291 | 301 | public VspAclRule buildVspAclRule(FirewallRule firewallRule, Network network) { |
292 | 302 | VspAclRule.Builder vspAclRuleBuilder = new VspAclRule.Builder() |
293 | 303 | .uuid(firewallRule.getUuid()) |
@@ -367,4 +377,20 @@ public VspAclRule buildVspAclRule(NetworkACLItem networkAcl) { |
367 | 377 |
|
368 | 378 | return vspAclRuleBuilder.build(); |
369 | 379 | } |
| 380 | + |
| 381 | + private <E extends Enum<E>> E getEnumValue(Enum cloudstackValue, Class<E> target) { |
| 382 | + try { |
| 383 | + return Enum.valueOf(target, cloudstackValue.name()); |
| 384 | + } catch (IllegalArgumentException e) { |
| 385 | + return null; |
| 386 | + } |
| 387 | + } |
| 388 | + |
| 389 | + private <E extends Enum<E>> E getEnumValue(Enum cloudstackValue, E defaultValue) { |
| 390 | + try { |
| 391 | + return Enum.valueOf(defaultValue.getDeclaringClass(), cloudstackValue.name()); |
| 392 | + } catch (IllegalArgumentException e) { |
| 393 | + return defaultValue; |
| 394 | + } |
| 395 | + } |
370 | 396 | } |
0 commit comments