protected boolean startVpc(final Vpc vpc, final DeployDestination dest, final ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // deploy provider boolean success = true; final List<Provider> providersToImplement = getVpcProviders(vpc.getId()); for (final VpcProvider element : getVpcElements()) { if (providersToImplement.contains(element.getProvider())) { if (element.implementVpc(vpc, dest, context)) { s_logger.debug("Vpc " + vpc + " has started successfully"); } else { s_logger.warn("Vpc " + vpc + " failed to start"); success = false; } } } return success; }
protected boolean applyStaticRoutes(final List<StaticRouteProfile> routes) throws ResourceUnavailableException { if (routes.isEmpty()) { s_logger.debug("No static routes to apply"); return true; } final Vpc vpc = _vpcDao.findById(routes.get(0).getVpcId()); s_logger.debug("Applying static routes for vpc " + vpc); final String staticNatProvider = _vpcSrvcDao.getProviderForServiceInVpc(vpc.getId(), Service.StaticNat); for (final VpcProvider provider : getVpcElements()) { if (!(provider instanceof StaticNatServiceProvider && provider.getName().equalsIgnoreCase(staticNatProvider))) { continue; } if (provider.applyStaticRoutes(vpc, routes)) { s_logger.debug("Applied static routes for vpc " + vpc); } else { s_logger.warn("Failed to apply static routes for vpc " + vpc); return false; } } return true; }
@Override public boolean shutdownVpc(final long vpcId) throws ConcurrentOperationException, ResourceUnavailableException { final CallContext ctx = CallContext.current(); final Account caller = ctx.getCallingAccount(); // check if vpc exists final Vpc vpc = _vpcDao.findById(vpcId); if (vpc == null) { throw new InvalidParameterValueException("Unable to find vpc by id " + vpcId); } // permission check _accountMgr.checkAccess(caller, null, false, vpc); // shutdown provider s_logger.debug("Shutting down vpc " + vpc); // TODO - shutdown all vpc resources here (ACLs, gateways, etc) boolean success = true; final List<Provider> providersToImplement = getVpcProviders(vpc.getId()); final ReservationContext context = new ReservationContextImpl(null, null, _accountMgr.getActiveUser(ctx.getCallingUserId()), caller); for (final VpcProvider element : getVpcElements()) { if (providersToImplement.contains(element.getProvider())) { if (element.shutdownVpc(vpc, context)) { s_logger.debug("Vpc " + vpc + " has been shutdown succesfully"); } else { s_logger.warn("Vpc " + vpc + " failed to shutdown"); success = false; } } } return success; }
for (final VpcProvider provider : getVpcElements()) { if (providersToImplement.contains(provider.getProvider())) { if (!provider.createPrivateGateway(gateway)) {
for (final VpcProvider provider : getVpcElements()) { if (providersToImplement.contains(provider.getProvider())) { if (provider.deletePrivateGateway(gateway)) {