airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From machris...@apache.org
Subject [1/3] airavata git commit: AIRAVATA-2431 Migrating Gateway and IAM Tenant also
Date Wed, 07 Jun 2017 18:50:22 GMT
Repository: airavata
Updated Branches:
  refs/heads/thrift-docker [created] 97e1e9cd2


AIRAVATA-2431 Migrating Gateway and IAM Tenant also


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/65583e82
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/65583e82
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/65583e82

Branch: refs/heads/thrift-docker
Commit: 65583e821744ab99a0999a8a4920d583cb6af04b
Parents: c26f289
Author: Marcus Christie <machristie@apache.org>
Authored: Wed Jun 7 12:56:32 2017 -0400
Committer: Marcus Christie <machristie@apache.org>
Committed: Wed Jun 7 12:56:32 2017 -0400

----------------------------------------------------------------------
 .../core/impl/TenantManagementKeycloakImpl.java |  6 +-
 .../commons/tenant/entities/GatewayEntity.java  | 24 ++---
 .../repositories/TenantProfileRepository.java   |  1 -
 modules/user-profile-migration/pom.xml          |  5 ++
 .../airavata/KeycloakTenantCreationManager.java | 92 -------------------
 .../org/apache/airavata/MigrationManager.java   | 95 +++++++++++++++++---
 .../UserProfileAiravataThriftClient.java        | 37 --------
 .../user-profile-migration.properties.template  |  7 +-
 8 files changed, 113 insertions(+), 154 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/65583e82/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/impl/TenantManagementKeycloakImpl.java
----------------------------------------------------------------------
diff --git a/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/impl/TenantManagementKeycloakImpl.java
b/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/impl/TenantManagementKeycloakImpl.java
index e3aa6e5..c457bc0 100644
--- a/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/impl/TenantManagementKeycloakImpl.java
+++ b/airavata-services/profile-service/iam-admin-services-core/src/main/java/org/apache/airavata/service/profile/iam/admin/services/core/impl/TenantManagementKeycloakImpl.java
@@ -150,6 +150,10 @@ public class TenantManagementKeycloakImpl implements TenantManagementInterface
{
         pendingUserRole.setName("user-pending");
         pendingUserRole.setDescription("role for newly registered PGA users");
         defaultRoles.add(pendingUserRole);
+        RoleRepresentation gatewayProviderRole = new RoleRepresentation();
+        gatewayProviderRole.setName("gateway-provider");
+        gatewayProviderRole.setDescription("role for gateway providers in the super-admin
PGA");
+        defaultRoles.add(gatewayProviderRole);
         RolesRepresentation rolesRepresentation = new RolesRepresentation();
         rolesRepresentation.setRealm(defaultRoles);
         realmDetails.setRoles(rolesRepresentation);
@@ -237,7 +241,7 @@ public class TenantManagementKeycloakImpl implements TenantManagementInterface
{
             } else {
                 logger.error("Request for Realm Client Creation failed, callback URL not
present");
                 IamAdminServicesException ex = new IamAdminServicesException();
-                ex.setMessage("Gateway Url field in GatewayProfile cannot be empty, Relam
Client creation failed");
+                ex.setMessage("Gateway Url field in GatewayProfile cannot be empty, Realm
Client creation failed");
                 throw ex;
             }
             pgaClient.setRedirectUris(redirectUris);

http://git-wip-us.apache.org/repos/asf/airavata/blob/65583e82/airavata-services/profile-service/profile-service-commons/src/main/java/org/apache/airavata/service/profile/commons/tenant/entities/GatewayEntity.java
----------------------------------------------------------------------
diff --git a/airavata-services/profile-service/profile-service-commons/src/main/java/org/apache/airavata/service/profile/commons/tenant/entities/GatewayEntity.java
b/airavata-services/profile-service/profile-service-commons/src/main/java/org/apache/airavata/service/profile/commons/tenant/entities/GatewayEntity.java
index a63c0a1..08ae76a 100644
--- a/airavata-services/profile-service/profile-service-commons/src/main/java/org/apache/airavata/service/profile/commons/tenant/entities/GatewayEntity.java
+++ b/airavata-services/profile-service/profile-service-commons/src/main/java/org/apache/airavata/service/profile/commons/tenant/entities/GatewayEntity.java
@@ -42,13 +42,13 @@ public class GatewayEntity {
     private String gatewayPublicAbstract;
     private String reviewProposalDescription;
     private String gatewayAdminFirstName;
-    private String getGatewayAdminLastName;
+    private String gatewayAdminLastName;
     private String gatewayAdminEmail;
     private String identityServerUserName;
     private String identityServerPasswordToken;
     private String declinedReason;
     private String oauthClientId;
-    private String getOauthClientSecret;
+    private String oauthClientSecret;
     private long requestCreationTime;
     private String requesterUsername;
 
@@ -158,12 +158,12 @@ public class GatewayEntity {
     }
 
     @Column(name = "GATEWAY_ADMIN_LAST_NAME")
-    public String getGetGatewayAdminLastName() {
-        return getGatewayAdminLastName;
+    public String getGatewayAdminLastName() {
+        return gatewayAdminLastName;
     }
 
-    public void setGetGatewayAdminLastName(String getGatewayAdminLastName) {
-        this.getGatewayAdminLastName = getGatewayAdminLastName;
+    public void setGatewayAdminLastName(String gatewayAdminLastName) {
+        this.gatewayAdminLastName = gatewayAdminLastName;
     }
 
     @Column(name = "GATEWAY_ADMIN_EMAIL")
@@ -230,12 +230,12 @@ public class GatewayEntity {
     }
 
     @Column(name = "OAUTH_CLIENT_SECRET")
-    public String getGetOauthClientSecret() {
-        return getOauthClientSecret;
+    public String getOauthClientSecret() {
+        return oauthClientSecret;
     }
 
-    public void setGetOauthClientSecret(String oauthClientSecret) {
-        this.getOauthClientSecret = oauthClientSecret;
+    public void setOauthClientSecret(String oauthClientSecret) {
+        this.oauthClientSecret = oauthClientSecret;
     }
 
     @PrePersist
@@ -256,13 +256,13 @@ public class GatewayEntity {
                 ", gatewayPublicAbstract='" + gatewayPublicAbstract + '\'' +
                 ", reviewProposalDescription='" + reviewProposalDescription + '\'' +
                 ", gatewayAdminFirstName='" + gatewayAdminFirstName + '\'' +
-                ", getGatewayAdminLastName='" + getGatewayAdminLastName + '\'' +
+                ", gatewayAdminLastName='" + gatewayAdminLastName + '\'' +
                 ", gatewayAdminEmail='" + gatewayAdminEmail + '\'' +
                 ", identityServerUserName='" + identityServerUserName + '\'' +
                 ", identityServerPasswordToken='" + identityServerPasswordToken + '\'' +
                 ", declinedReason='" + declinedReason + '\'' +
                 ", oauthClientId='" + oauthClientId + '\'' +
-                ", getOauthClientSecret='" + getOauthClientSecret + '\'' +
+                ", oauthClientSecret='" + oauthClientSecret + '\'' +
                 ", requestCreationTime=" + requestCreationTime +
                 ", requesterUsername='" + requesterUsername + '\'' +
                 '}';

http://git-wip-us.apache.org/repos/asf/airavata/blob/65583e82/airavata-services/profile-service/profile-tenant-core/src/main/java/org/apache/airavata/service/profile/tenant/core/repositories/TenantProfileRepository.java
----------------------------------------------------------------------
diff --git a/airavata-services/profile-service/profile-tenant-core/src/main/java/org/apache/airavata/service/profile/tenant/core/repositories/TenantProfileRepository.java
b/airavata-services/profile-service/profile-tenant-core/src/main/java/org/apache/airavata/service/profile/tenant/core/repositories/TenantProfileRepository.java
index ebc5fee..13e89e7 100644
--- a/airavata-services/profile-service/profile-tenant-core/src/main/java/org/apache/airavata/service/profile/tenant/core/repositories/TenantProfileRepository.java
+++ b/airavata-services/profile-service/profile-tenant-core/src/main/java/org/apache/airavata/service/profile/tenant/core/repositories/TenantProfileRepository.java
@@ -27,7 +27,6 @@ import org.apache.airavata.service.profile.commons.utils.QueryConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;

http://git-wip-us.apache.org/repos/asf/airavata/blob/65583e82/modules/user-profile-migration/pom.xml
----------------------------------------------------------------------
diff --git a/modules/user-profile-migration/pom.xml b/modules/user-profile-migration/pom.xml
index 1baa85b..ee002c6 100755
--- a/modules/user-profile-migration/pom.xml
+++ b/modules/user-profile-migration/pom.xml
@@ -74,6 +74,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-api-stubs</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
             <artifactId>airavata-commons</artifactId>
             <version>0.17-SNAPSHOT</version>
         </dependency>

http://git-wip-us.apache.org/repos/asf/airavata/blob/65583e82/modules/user-profile-migration/src/main/java/org/apache/airavata/KeycloakTenantCreationManager.java
----------------------------------------------------------------------
diff --git a/modules/user-profile-migration/src/main/java/org/apache/airavata/KeycloakTenantCreationManager.java
b/modules/user-profile-migration/src/main/java/org/apache/airavata/KeycloakTenantCreationManager.java
deleted file mode 100644
index b166a27..0000000
--- a/modules/user-profile-migration/src/main/java/org/apache/airavata/KeycloakTenantCreationManager.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package org.apache.airavata;
-
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-import org.apache.airavata.model.credential.store.PasswordCredential;
-import org.apache.airavata.model.security.AuthzToken;
-import org.apache.airavata.model.workspace.Gateway;
-import org.apache.airavata.model.workspace.GatewayApprovalStatus;
-import org.apache.airavata.service.profile.client.ProfileServiceClientFactory;
-import org.apache.airavata.service.profile.iam.admin.services.cpi.IamAdminServices;
-import org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException;
-import org.apache.thrift.TException;
-
-public class KeycloakTenantCreationManager {
-
-    private String profileServiceServerHost = "localhost";
-    private int profileServiceServerPort = 8962;
-    private String masterAdminUsername = "admin";
-    private String masterAdminPassword = "password";
-
-    private IamAdminServices.Client iamAdminServiceClient = null;
-
-    public void createTenant(Gateway gateway) {
-        PasswordCredential passwordCredential = getPasswordCredential();
-        try {
-            // TODO: replace with real authz token?
-            getIamAdminServiceClient().setUpGateway(new AuthzToken("empty"), gateway, passwordCredential);
-        } catch (TException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    private IamAdminServices.Client getIamAdminServiceClient() {
-        if (iamAdminServiceClient == null) {
-            try {
-                iamAdminServiceClient = ProfileServiceClientFactory.createIamAdminServiceClient(this.profileServiceServerHost,
this.profileServiceServerPort);
-            } catch (IamAdminServicesException e) {
-                throw new RuntimeException(e);
-            }
-        }
-        return iamAdminServiceClient;
-    }
-
-    private PasswordCredential getPasswordCredential() {
-        PasswordCredential passwordCredential = new PasswordCredential();
-        passwordCredential.setGatewayId("dummy");
-        passwordCredential.setPortalUserName("dummy");
-        passwordCredential.setLoginUserName(masterAdminUsername);
-        passwordCredential.setPassword(masterAdminPassword);
-        return passwordCredential;
-    }
-
-    public static void main(String[] args) {
-
-        // Configuration ...
-        KeycloakTenantCreationManager keycloakTenantCreationManager = new KeycloakTenantCreationManager();
-        keycloakTenantCreationManager.masterAdminUsername = "";
-        keycloakTenantCreationManager.masterAdminPassword = "";
-        keycloakTenantCreationManager.profileServiceServerHost = "";
-
-        Gateway gateway = new Gateway();
-        gateway.setGatewayId("");
-        gateway.setGatewayApprovalStatus(GatewayApprovalStatus.CREATED);
-        gateway.setGatewayName("");
-        gateway.setIdentityServerUserName("");
-        gateway.setGatewayAdminFirstName("");
-        gateway.setGatewayAdminLastName("");
-        gateway.setGatewayAdminEmail("");
-        gateway.setGatewayURL("");
-
-        keycloakTenantCreationManager.createTenant(gateway);
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/65583e82/modules/user-profile-migration/src/main/java/org/apache/airavata/MigrationManager.java
----------------------------------------------------------------------
diff --git a/modules/user-profile-migration/src/main/java/org/apache/airavata/MigrationManager.java
b/modules/user-profile-migration/src/main/java/org/apache/airavata/MigrationManager.java
index a44b173..b197c70 100644
--- a/modules/user-profile-migration/src/main/java/org/apache/airavata/MigrationManager.java
+++ b/modules/user-profile-migration/src/main/java/org/apache/airavata/MigrationManager.java
@@ -19,10 +19,21 @@
  */
 package org.apache.airavata;
 
+import org.apache.airavata.api.Airavata;
+import org.apache.airavata.api.client.AiravataClientFactory;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.model.credential.store.PasswordCredential;
+import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.airavata.model.security.AuthzToken;
 import org.apache.airavata.model.user.Status;
 import org.apache.airavata.model.user.UserProfile;
+import org.apache.airavata.model.workspace.Gateway;
+import org.apache.airavata.model.workspace.GatewayApprovalStatus;
+import org.apache.airavata.service.profile.client.ProfileServiceClientFactory;
+import org.apache.airavata.service.profile.iam.admin.services.cpi.IamAdminServices;
+import org.apache.airavata.service.profile.iam.admin.services.cpi.exception.IamAdminServicesException;
+import org.apache.airavata.service.profile.tenant.cpi.TenantProfileService;
+import org.apache.airavata.service.profile.tenant.cpi.exception.TenantProfileServiceException;
 import org.apache.airavata.service.profile.user.cpi.UserProfileService;
 import org.apache.thrift.TException;
 import org.wso2.carbon.um.ws.api.stub.ClaimValue;
@@ -43,12 +54,14 @@ public class MigrationManager {
     // Default values
     private String profileServiceServerHost = "localhost";
     private int profileServiceServerPort = 8962;
+    private String airavataServiceServerHost = "localhost";
+    private int airavataServiceServerPort = 8930;
     private Map<String,String> roleConversionMap = createDefaultRoleConversionMap();
     private String gatewayId = "gateway-id";
+    private String gatewayURL = "http://localhost";
     private String wso2ISAdminUsername = "username";
     private String wso2ISAdminPassword = "password";
     private String keycloakServiceURL = "https://iam.scigap.org/auth";
-    private String keycloakRealmId = "keycloak-realm";
     private String keycloakAdminUsername = "username";
     private String keycloakAdminPassword = "password";
     private String keycloakTrustStorePath = "../../modules/configuration/server/src/main/resources/client_truststore.jks";
@@ -57,6 +70,7 @@ public class MigrationManager {
 
     // Names of properties in user-profile-migration.properties.template
     private final static String GATEWAY_ID = "gateway-id";
+    private final static String GATEWAY_URL = "gateway.url";
     private final static String WSO2IS_ADMIN_USERNAME = "wso2is.admin.username";
     private final static String WSO2IS_ADMIN_PASSWORD = "wso2is.admin.password";
     private final static String WSO2IS_ADMIN_ROLENAME = "wso2is.admin.rolename";
@@ -64,11 +78,12 @@ public class MigrationManager {
     private final static String WSO2IS_GATEWAY_USER_ROLENAME = "wso2is.gateway-user.rolename";
     private final static String WSO2IS_USER_PENDING_ROLENAME = "wso2is.user-pending.rolename";
     private final static String WSO2IS_GATEWAY_PROVIDER_ROLENAME = "wso2is.gateway-provider.rolename";
+    private final static String AIRAVATA_SERVICE_HOST = "airavata.service.host";
+    private final static String AIRAVATA_SERVICE_PORT = "airavata.service.port";
     private final static String PROFILE_SERVICE_HOST = "profile.service.host";
     private final static String PROFILE_SERVICE_PORT = "profile.service.port";
     private final static String KEYCLOAK_ADMIN_USERNAME = "keycloak.admin.username";
     private final static String KEYCLOAK_ADMIN_PASSWORD = "keycloak.admin.password";
-    private final static String KEYCLOAK_REALM_ID = "keycloak.realm-id";
     private final static String KEYCLOAK_SERVICE_URL = "keycloak.service-url";
     private final static String KEYCLOAK_TRUSTSTORE_PATH = "keycloak.truststore.path";
     private final static String KEYCLOAK_TRUSTSTORE_PASSWORD = "keycloak.truststore.password";
@@ -169,11 +184,70 @@ public class MigrationManager {
                 .collect(Collectors.toList());
     }
 
+    private TenantProfileService.Client getTenantProfileServiceClient() throws TenantProfileServiceException
{
+
+        return ProfileServiceClientFactory.createTenantProfileServiceClient(profileServiceServerHost,
profileServiceServerPort);
+    }
+
+    private Airavata.Client getAiravataClient() throws AiravataClientException {
+        return AiravataClientFactory.createAiravataClient(airavataServiceServerHost, airavataServiceServerPort);
+    }
+
+    private IamAdminServices.Client getIamAdminServicesClient() throws IamAdminServicesException
{
+        return ProfileServiceClientFactory.createIamAdminServiceClient(profileServiceServerHost,
profileServiceServerPort);
+    }
+
+    private PasswordCredential getPasswordCredential() {
+        PasswordCredential passwordCredential = new PasswordCredential();
+        passwordCredential.setGatewayId("dummy");
+        passwordCredential.setPortalUserName("dummy");
+        passwordCredential.setLoginUserName(keycloakAdminUsername);
+        passwordCredential.setPassword(keycloakAdminPassword);
+        return passwordCredential;
+    }
+
+    private boolean migrateGatewayProfileToAiravata() throws TException {
+
+        TenantProfileService.Client tenantProfileServiceClient = getTenantProfileServiceClient();
+        Airavata.Client airavataClient = getAiravataClient();
+        IamAdminServices.Client iamAdminServicesClient = getIamAdminServicesClient();
+
+        // Get Gateway from Airavata API
+        Gateway gateway = airavataClient.getGateway(authzToken, gatewayId);
+
+        if (!GatewayApprovalStatus.APPROVED.equals(gateway.getGatewayApprovalStatus())) {
+            throw new RuntimeException("Gateway " + gatewayId + " is not APPROVED! Status
is " + gateway.getGatewayApprovalStatus());
+        }
+        // Add Gateway through TenantProfileService
+        if (!tenantProfileServiceClient.isGatewayExist(authzToken, gatewayId)) {
+
+            System.out.println("Gateway [" + gatewayId + "] doesn't exist, adding in Profile
Service...");
+            tenantProfileServiceClient.addGateway(authzToken, gateway);
+        } else {
+
+            System.out.println("Gateway [" + gatewayId + "] already exists in Profile Service");
+            gateway = tenantProfileServiceClient.getGateway(authzToken, gatewayId);
+        }
+
+        // Gateway URL is required by IAM Admin Services
+        if (gateway.getGatewayURL() == null) {
+            gateway.setGatewayURL(this.gatewayURL);
+        }
+
+        // Add Keycloak Tenant for Gateway
+        System.out.println("Creating Keycloak Tenant for gateway ...")
+        Gateway gatewayWithIdAndSecret = iamAdminServicesClient.setUpGateway(authzToken,
gateway, getPasswordCredential());
+
+        // Update Gateway profile with the client id and secret
+        System.out.println("Updating gateway with OAuth client id and secret ...");
+        tenantProfileServiceClient.updateGateway(authzToken, gatewayWithIdAndSecret);
+        return true;
+    }
+
     /* Method used to migrate User profiles to Airavata DB by making a call to User profile
thrift Service */
     private boolean migrateUserProfilesToAiravata(List<UserProfileDAO> ISProfileList)
throws TException, ApplicationSettingsException {
         System.out.println("Initiating migration to Airavata internal DB ...");
-        UserProfileAiravataThriftClient objFactory = new UserProfileAiravataThriftClient();
-        UserProfileService.Client client = objFactory.getUserProfileServiceClient(profileServiceServerHost,
profileServiceServerPort);
+        UserProfileService.Client client = ProfileServiceClientFactory.createUserProfileServiceClient(profileServiceServerHost,
profileServiceServerPort);
         UserProfile airavataUserProfile = new UserProfile();
         // Here are the data associations...
         for(UserProfileDAO ISProfile : ISProfileList){
@@ -204,7 +278,7 @@ public class MigrationManager {
                 this.keycloakAdminPassword,
                 this.keycloakTrustStorePath,
                 this.keycloakTrustStorePassword);
-        client.migrateUserStore(Wso2ISProfileList, this.keycloakRealmId, this.keycloakTemporaryUserPassword,
this.roleConversionMap);
+        client.migrateUserStore(Wso2ISProfileList, this.gatewayId, this.keycloakTemporaryUserPassword,
this.roleConversionMap);
     }
 
     private void loadConfigFile(String filename) {
@@ -213,12 +287,14 @@ public class MigrationManager {
             properties.load(new FileInputStream(filename));
             // Load values from properties if they exist, otherwise will just use default
values
             this.gatewayId = properties.getProperty(GATEWAY_ID, this.gatewayId);
+            this.gatewayURL = properties.getProperty(GATEWAY_URL, this.gatewayURL);
             this.wso2ISAdminUsername = properties.getProperty(WSO2IS_ADMIN_USERNAME, this.wso2ISAdminUsername);
             this.wso2ISAdminPassword = properties.getProperty(WSO2IS_ADMIN_PASSWORD, this.wso2ISAdminPassword);
+            this.airavataServiceServerHost = properties.getProperty(AIRAVATA_SERVICE_HOST,
this.airavataServiceServerHost);
+            this.airavataServiceServerPort = Integer.valueOf(properties.getProperty(AIRAVATA_SERVICE_PORT,
Integer.toString(this.airavataServiceServerPort)));
             this.profileServiceServerHost = properties.getProperty(PROFILE_SERVICE_HOST,
this.profileServiceServerHost);
             this.profileServiceServerPort = Integer.valueOf(properties.getProperty(PROFILE_SERVICE_PORT,
Integer.toString(this.profileServiceServerPort)));
             this.keycloakServiceURL = properties.getProperty(KEYCLOAK_SERVICE_URL, this.keycloakServiceURL);
-            this.keycloakRealmId = properties.getProperty(KEYCLOAK_REALM_ID, this.keycloakRealmId);
             this.keycloakAdminUsername = properties.getProperty(KEYCLOAK_ADMIN_USERNAME,
this.keycloakAdminUsername);
             this.keycloakAdminPassword = properties.getProperty(KEYCLOAK_ADMIN_PASSWORD,
this.keycloakAdminPassword);
             this.keycloakTrustStorePath = properties.getProperty(KEYCLOAK_TRUSTSTORE_PATH,
this.keycloakTrustStorePath);
@@ -244,12 +320,11 @@ public class MigrationManager {
         migrationManager.setISLoginCredentials();
         List<UserProfileDAO> userProfileList = migrationManager.getUserProfilesFromWso2IS();
         try {
+            migrationManager.migrateGatewayProfileToAiravata();
             migrationManager.migrateUserProfilesToAiravata(userProfileList);
             migrationManager.migrateUserProfilesToKeycloak(userProfileList);
-        } catch (TException e) {
-            e.printStackTrace();
-        } catch (ApplicationSettingsException e) {
-            e.printStackTrace();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
         }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/65583e82/modules/user-profile-migration/src/main/java/org/apache/airavata/UserProfileAiravataThriftClient.java
----------------------------------------------------------------------
diff --git a/modules/user-profile-migration/src/main/java/org/apache/airavata/UserProfileAiravataThriftClient.java
b/modules/user-profile-migration/src/main/java/org/apache/airavata/UserProfileAiravataThriftClient.java
deleted file mode 100644
index 3bea905..0000000
--- a/modules/user-profile-migration/src/main/java/org/apache/airavata/UserProfileAiravataThriftClient.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.airavata;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.service.profile.client.ProfileServiceClientFactory;
-import org.apache.airavata.service.profile.user.cpi.UserProfileService;
-import org.apache.airavata.service.profile.user.cpi.exception.UserProfileServiceException;
-import org.apache.thrift.TException;
-
-public class UserProfileAiravataThriftClient {
-
-    public UserProfileService.Client getUserProfileServiceClient(String serverHost, int serverPort)
throws TException, ApplicationSettingsException {
-        try {
-            return ProfileServiceClientFactory.createUserProfileServiceClient(serverHost,
serverPort);
-        } catch (UserProfileServiceException e) {
-            throw new TException("Unable to create user profile service client...", e);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/65583e82/modules/user-profile-migration/user-profile-migration.properties.template
----------------------------------------------------------------------
diff --git a/modules/user-profile-migration/user-profile-migration.properties.template b/modules/user-profile-migration/user-profile-migration.properties.template
index aa751b2..840effe 100644
--- a/modules/user-profile-migration/user-profile-migration.properties.template
+++ b/modules/user-profile-migration/user-profile-migration.properties.template
@@ -1,5 +1,7 @@
 # Common settings
+# NOTE: the gateway-id will also be used for the realm id in Keycloak
 gateway-id = gateway-id
+gateway.url = http://localhost
 
 # WSO2 Identity Server settings
 wso2is.admin.username = username
@@ -10,6 +12,10 @@ wso2is.gateway-user.rolename = gateway-user
 wso2is.user-pending.rolename = user-pending
 wso2is.gateway-provider.rolename = gateway-provider
 
+# Airavata Service settings
+airavata.service.host = localhost
+airavata.service.port = 8930
+
 # Profile Service settings
 profile.service.host = localhost
 profile.service.port = 8962
@@ -17,7 +23,6 @@ profile.service.port = 8962
 # Keycloak settings
 keycloak.admin.username = username
 keycloak.admin.password = password
-keycloak.realm-id = keycloak-realm
 keycloak.service-url = https://iam.scigap.org/auth
 keycloak.truststore.path = ../../modules/configuration/server/src/main/resources/client_truststore.jks
 keycloak.truststore.password = password


Mime
View raw message