Example #1
0
  @Override
  public boolean isSubscribed() throws CloudException, InternalException {
    APITrace.begin(provider, "isSubscribedVPCGateway");
    try {
      Map<String, String> parameters =
          provider.getStandardParameters(
              provider.getContext(), ELBMethod.DESCRIBE_CUSTOMER_GATEWAYS);
      EC2Method method;

      method = new EC2Method(provider, provider.getEc2Url(), parameters);
      try {
        method.invoke();
        return true;
      } catch (EC2Exception e) {
        if (e.getStatus() == HttpServletResponse.SC_UNAUTHORIZED
            || e.getStatus() == HttpServletResponse.SC_FORBIDDEN) {
          return false;
        }
        String code = e.getCode();

        if (code != null
            && (code.equals("SubscriptionCheckFailed")
                || code.equals("AuthFailure")
                || code.equals("SignatureDoesNotMatch")
                || code.equals("UnsupportedOperation")
                || code.equals("InvalidClientTokenId")
                || code.equals("OptInRequired"))) {
          return false;
        }
        logger.error(e.getSummary());
        e.printStackTrace();
        throw new CloudException(e);
      }
    } finally {
      APITrace.end();
    }
  }