public SwiftApi leaseSwiftApi()

in transport/swift-transport/src/main/java/org/apache/airavata/mft/transport/swift/SwiftUtil.java [68:116]


    public SwiftApi leaseSwiftApi(SwiftSecret swiftSecret) throws Exception {

        String secretKey = getSecretKey(swiftSecret);

        if (swiftApiCache.get().containsKey(secretKey)) {
            return swiftApiCache.get().get(secretKey);
        }

        SwiftApi swiftApi;

        String provider = "openstack-swift";
        Properties overrides = new Properties();
        switch (swiftSecret.getSecretCase()) {
          case V2AUTHSECRET:
              SwiftV2AuthSecret v2AuthSecret = swiftSecret.getV2AuthSecret();
              overrides.put(KeystoneProperties.KEYSTONE_VERSION, "2");
              swiftApi = ContextBuilder.newBuilder(provider)
                  .endpoint(swiftSecret.getEndpoint())
                  .credentials(v2AuthSecret.getTenant() + ":" + v2AuthSecret.getUserName(),
                      v2AuthSecret.getPassword())
                  .overrides(overrides)
                  .buildApi(SwiftApi.class);
              break;
          case V3AUTHSECRET:

              SwiftV3AuthSecret v3AuthSecret = swiftSecret.getV3AuthSecret();
              overrides.put(KeystoneProperties.KEYSTONE_VERSION, "3");
              if (!"".equals(v3AuthSecret.getTenantName())) {
                  overrides.put(KeystoneProperties.SCOPE, "project:" + v3AuthSecret.getTenantName());
              }

              if (!"".equals(v3AuthSecret.getProjectDomainName())) {
                  overrides.put(KeystoneProperties.PROJECT_DOMAIN_NAME, v3AuthSecret.getProjectDomainName());
              }

              swiftApi =  ContextBuilder.newBuilder(provider)
                  .endpoint(swiftSecret.getEndpoint())
                  .credentials(v3AuthSecret.getUserDomainName() + ":" + v3AuthSecret.getUserName(),
                      v3AuthSecret.getPassword())
                  .overrides(overrides)
                  .buildApi(SwiftApi.class);
              break;
          default:
            throw new Exception("No v2 or v3 auth secret set");
        }

        swiftApiCache.get().put(secretKey, swiftApi);
        return swiftApi;
    }