@Override
 protected boolean checkStatus(
     OpenStackContext context, AuthenticatedContext auth, CloudResource resource) {
   CloudContext cloudContext = auth.getCloudContext();
   OSClient osClient = createOSClient(auth);
   Router osRouter = osClient.networking().router().get(resource.getReference());
   if (osRouter != null && context.isBuild()) {
     State routerStatus = osRouter.getStatus();
     if (State.ERROR == routerStatus) {
       throw new OpenStackResourceException(
           "Router in failed state",
           resource.getType(),
           cloudContext.getStackName(),
           cloudContext.getStackId(),
           resource.getName());
     }
     return routerStatus == State.ACTIVE;
   } else if (osRouter == null && !context.isBuild()) {
     return true;
   }
   return false;
 }