8080import com .cloud .vm .Nic ;
8181import com .cloud .vm .NicSecondaryIp ;
8282import com .cloud .vm .UserVmVO ;
83+ import com .cloud .vm .VMInstanceVO ;
8384import com .cloud .vm .VirtualMachine ;
8485import com .cloud .vm .VirtualMachine .Type ;
8586import com .cloud .vm .dao .NicDao ;
8687import com .cloud .vm .dao .NicSecondaryIpDao ;
8788import com .cloud .vm .dao .NicSecondaryIpVO ;
8889import com .cloud .vm .dao .UserVmDao ;
90+ import com .cloud .vm .dao .VMInstanceDao ;
8991
9092@ Component
9193@ Local (value = { RulesManager .class , RulesService .class })
@@ -103,6 +105,8 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
103105 @ Inject
104106 UserVmDao _vmDao ;
105107 @ Inject
108+ VMInstanceDao _vmInstanceDao ;
109+ @ Inject
106110 AccountManager _accountMgr ;
107111 @ Inject
108112 NetworkManager _networkMgr ;
@@ -416,7 +420,12 @@ public StaticNatRule createStaticNatRule(StaticNatRule rule, boolean openFirewal
416420
417421 @ Override
418422 @ ActionEvent (eventType = EventTypes .EVENT_ENABLE_STATIC_NAT , eventDescription = "enabling static nat" )
419- public boolean enableStaticNat (long ipId , long vmId , long networkId , boolean isSystemVm , String vmGuestIp )
423+ public boolean enableStaticNat (long ipId , long vmId , long networkId , String vmGuestIp )
424+ throws NetworkRuleConflictException , ResourceUnavailableException {
425+ return enableStaticNat (ipId , vmId , networkId , false , vmGuestIp );
426+ }
427+
428+ private boolean enableStaticNat (long ipId , long vmId , long networkId , boolean isSystemVm , String vmGuestIp )
420429 throws NetworkRuleConflictException , ResourceUnavailableException {
421430 UserContext ctx = UserContext .current ();
422431 Account caller = ctx .getCaller ();
@@ -1370,7 +1379,7 @@ protected List<StaticNat> createStaticNatForIp(IpAddress sourceIp, Account calle
13701379 throw new CloudRuntimeException ("Ip address is not associated with any network" );
13711380 }
13721381
1373- UserVmVO vm = _vmDao .findById (sourceIp .getAssociatedWithVmId ());
1382+ VMInstanceVO vm = _vmInstanceDao .findById (sourceIp .getAssociatedWithVmId ());
13741383 Network network = _networkModel .getNetwork (networkId );
13751384 if (network == null ) {
13761385 CloudRuntimeException ex = new CloudRuntimeException ("Unable to find an ip address to map to specified vm id" );
0 commit comments