class RouterDeploymentDefinition {

    protected void executeDeployment()
            throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
        //Check current redundant routers, if possible(all routers are stopped), reset the priority
        planDeploymentRouters();

        if (getNumberOfRoutersToDeploy() > 0 && prepareDeployment()) {
            findVirtualProvider();
            findServiceOfferingId();
            findSourceNatIP();
            deployAllVirtualRouters();
        }
    }

    protected  RouterDeploymentDefinition(final Network guestNetwork, final DeployDestination dest,
                                         final Account owner, final Map<Param, Object> params);

}