Bulk upload changes and music health check apis
[portal.git] / ecomp-portal-BE-common / src / main / java / org / onap / portalapp / portal / service / EPAppCommonServiceImpl.java
index 8c055b2..24572fb 100644 (file)
@@ -33,7 +33,7 @@
  *
  * ============LICENSE_END============================================
  *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * 
  */
 package org.onap.portalapp.portal.service;
 
@@ -47,6 +47,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.UUID;
 
 import javax.annotation.PostConstruct;
 import javax.servlet.http.HttpServletResponse;
@@ -82,7 +83,6 @@ import org.onap.portalapp.portal.transport.FieldsValidator;
 import org.onap.portalapp.portal.transport.FunctionalMenuItem;
 import org.onap.portalapp.portal.transport.LocalRole;
 import org.onap.portalapp.portal.transport.OnboardingApp;
-import org.onap.portalapp.portal.ueb.EPUebHelper;
 import org.onap.portalapp.portal.utils.EPCommonSystemProperties;
 import org.onap.portalapp.portal.utils.EcompPortalUtils;
 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
@@ -100,7 +100,6 @@ import com.att.nsa.cambria.client.CambriaClient.CambriaApiException;
 import com.att.nsa.cambria.client.CambriaClientBuilders;
 import com.att.nsa.cambria.client.CambriaIdentityManager;
 import com.att.nsa.cambria.client.CambriaTopicManager;
-import com.google.common.primitives.Ints;
 
 public class EPAppCommonServiceImpl implements EPAppService {
 
@@ -119,9 +118,7 @@ public class EPAppCommonServiceImpl implements EPAppService {
        @Autowired
        protected SessionFactory sessionFactory;
        @Autowired
-       private DataAccessService dataAccessService;
-       @Autowired
-       private EPUebHelper epUebHelper;        
+       private DataAccessService dataAccessService;    
 
        @PostConstruct
        private void init() {
@@ -515,8 +512,8 @@ public class EPAppCommonServiceImpl implements EPAppService {
         * (non-Javadoc)
         *
         * @see
-        * org.openecomp.portalapp.portal.service.EPAppService#getAppCatalog(
-        * org.openecomp.portalapp.portal.domain.EPUser)
+        * org.onap.portalapp.portal.service.EPAppService#getAppCatalog(
+        * org.onap.portalapp.portal.domain.EPUser)
         */
        @Override
        public List<AppCatalogItem> getUserAppCatalog(EPUser user) {
@@ -532,8 +529,8 @@ public class EPAppCommonServiceImpl implements EPAppService {
         * (non-Javadoc)
         *
         * @see
-        * org.openecomp.portalapp.portal.service.EPAppService#getAdminAppCatalog(
-        * org.openecomp.portalapp.portal.domain.EPUser)
+        * org.onap.portalapp.portal.service.EPAppService#getAdminAppCatalog(
+        * org.onap.portalapp.portal.domain.EPUser)
         */
        @Override
        public List<AppCatalogItem> getAdminAppCatalog(EPUser user) {
@@ -667,6 +664,7 @@ public class EPAppCommonServiceImpl implements EPAppService {
                List<OnboardingApp> onboardingAppsList = new ArrayList<OnboardingApp>();
                for (EPApp app : apps) {
                        OnboardingApp onboardingApp = new OnboardingApp();
+                       app.setAppPassword(EPCommonSystemProperties.APP_DISPLAY_PASSWORD);//to hide password from get request
                        createOnboardingFromApp(app, onboardingApp);
                        onboardingAppsList.add(onboardingApp);
                }
@@ -681,6 +679,7 @@ public class EPAppCommonServiceImpl implements EPAppService {
                List<OnboardingApp> onboardingAppsList = new ArrayList<OnboardingApp>();
                for (EPApp app : apps) {
                        OnboardingApp onboardingApp = new OnboardingApp();
+                       app.setAppPassword(EPCommonSystemProperties.APP_DISPLAY_PASSWORD); //to hide password from get request
                        createOnboardingFromApp(app, onboardingApp);
                        onboardingAppsList.add(onboardingApp);
                }
@@ -1066,9 +1065,79 @@ public class EPAppCommonServiceImpl implements EPAppService {
                        
                }
        }
+       
 
        protected void updateRestrictedApp(Long appId, OnboardingApp onboardingApp, FieldsValidator fieldsValidator,
                        EPUser user) {
+               synchronized (syncRests) {
+                       boolean result = false;
+                       Session localSession = null;
+                       Transaction transaction = null;
+                       try {
+                               localSession = sessionFactory.openSession();
+                               transaction = localSession.beginTransaction();
+                               EPApp app;
+                               if (appId == null) {
+                                       app = new EPApp();
+                                       /*
+                                        * In the parent class, the UEB code is responsible for generating the
+                                        * keys/secret/mailbox but UEB Messaging is not actually being used currently;
+                                        * may be used in future at which point we can just remove this method and
+                                        * depend on parent class's method So, using UUID generator to generate the
+                                        * unique key instead.
+                                        */
+                                       String uuidStr = UUID.randomUUID().toString();
+                                       String appKey = uuidStr;
+                                       String appSecret = uuidStr;
+                                       String appMailboxName = "ECOMP-PORTAL-OUTBOX";
+                                       onboardingApp.setUebTopicName(appMailboxName);
+                                       onboardingApp.setUebKey(appKey);
+                                       onboardingApp.setUebSecret(appSecret);
+                               } else {
+                                       app = (EPApp) localSession.get(EPApp.class, appId);
+                                       if (app == null || app.getId() == null) {
+                                               // App is already deleted!
+                                               transaction.commit();
+                                               localSession.close();
+                                               fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_NOT_FOUND);
+                                               return;
+                                       }
+                               }
+                               logger.debug(EELFLoggerDelegate.debugLogger,
+                                               "updateRestrictedApp: about to call createAppFromOnboarding");
+                               createAppFromOnboarding(app, onboardingApp, localSession);
+                               logger.debug(EELFLoggerDelegate.debugLogger,
+                                               "updateRestrictedApp: finished calling createAppFromOnboarding");
+                               localSession.saveOrUpdate(app);
+                               logger.debug(EELFLoggerDelegate.debugLogger,
+                                               "updateRestrictedApp: finished calling localSession.saveOrUpdate");
+                               // Enable or disable all menu items associated with this app
+                               setFunctionalMenuItemsEnabled(localSession, onboardingApp.isEnabled, appId);
+                               logger.debug(EELFLoggerDelegate.debugLogger,
+                                               "updateRestrictedApp: finished calling setFunctionalMenuItemsEnabled");
+                               transaction.commit();
+                               logger.debug(EELFLoggerDelegate.debugLogger,
+                                               "updateRestrictedApp: finished calling transaction.commit");
+                               result = true;
+                       } catch (Exception e) {
+                               logger.error(EELFLoggerDelegate.errorLogger, "updateRestrictedApp failed", e);
+                               EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebRegisterOnboardingAppError, e);
+                               EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e);
+                               EcompPortalUtils.rollbackTransaction(transaction,
+                                               "updateRestrictedApp rollback, exception = " + e.toString());
+                       } finally {
+                               EcompPortalUtils.closeLocalSession(localSession, "updateRestrictedApp");
+                       }
+                       if (!result) {
+                               fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                       }
+               }
+
+       }
+
+       @Deprecated
+       protected void updateRestrictedAppUeb(Long appId, OnboardingApp onboardingApp, FieldsValidator fieldsValidator,
+                       EPUser user) {
                synchronized (syncRests) {
                        boolean result = false;
                        Session localSession = null;
@@ -1086,7 +1155,7 @@ public class EPAppCommonServiceImpl implements EPAppService {
                                        // name and keys to the FN_APP table. The App's mailbox
                                        // and
                                        // keys will be visible to the
-                                       // admin on the ECOMP portal.
+                                       // admin on the ONAP portal.
                                        // -------------------------------------------------------------------------------------------
                                        TopicManager topicManager = new TopicManager() {
 
@@ -1134,7 +1203,7 @@ public class EPAppCommonServiceImpl implements EPAppService {
                                        final CambriaIdentityManager im = new CambriaClientBuilders.IdentityManagerBuilder()
                                                        .usingHosts(Helper.uebUrlList()).build();
                                        com.att.nsa.apiClient.credentials.ApiCredential credential = im.createApiKey(user.getEmail(),
-                                                       "ECOMP Portal Owner");
+                                                       "ONAP Portal Owner");
                                        String appKey = credential.getApiKey();
                                        String appSecret = credential.getApiSecret();
                                        String appMailboxName = null;
@@ -1235,7 +1304,6 @@ public class EPAppCommonServiceImpl implements EPAppService {
                                                "LR: updateApp: finished calling setFunctionalMenuItemsEnabled");
                                transaction.commit();
                                logger.debug(EELFLoggerDelegate.debugLogger, "LR: updateApp: finished calling transaction.commit");
-                               epUebHelper.addPublisher(app);
                                logger.debug(EELFLoggerDelegate.debugLogger,
                                                "LR: updateApp: finished calling epUebHelper.addPublisher");
                                result = true;
@@ -1283,7 +1351,7 @@ public class EPAppCommonServiceImpl implements EPAppService {
                onboardingApp.isOpen = app.getOpen();
                onboardingApp.isEnabled = app.getEnabled();
                onboardingApp.username = app.getUsername();
-               onboardingApp.appPassword = decryptedPassword(app.getAppPassword(), app);
+               onboardingApp.appPassword = (app.getAppPassword().equals(EPCommonSystemProperties.APP_DISPLAY_PASSWORD)) ? EPCommonSystemProperties.APP_DISPLAY_PASSWORD :decryptedPassword(app.getAppPassword(), app);
                onboardingApp.uebTopicName = app.getUebTopicName();
                onboardingApp.uebKey = app.getUebKey();
                onboardingApp.uebSecret = app.getUebSecret();
@@ -1314,8 +1382,9 @@ public class EPAppCommonServiceImpl implements EPAppService {
                app.setOpen(onboardingApp.isOpen);
                app.setEnabled(onboardingApp.isEnabled);
                app.setUsername(onboardingApp.username);
+               if(!onboardingApp.appPassword.equals(EPCommonSystemProperties.APP_DISPLAY_PASSWORD))
                app.setAppPassword(this.encryptedPassword(onboardingApp.appPassword, app));
-               app.setUebTopicName(onboardingApp.uebTopicName);
+               //app.setUebTopicName(onboardingApp.uebTopicName);
                app.setUebKey(onboardingApp.uebKey);
                app.setUebSecret(onboardingApp.uebSecret);
                app.setCentralAuth(onboardingApp.isCentralAuth);
@@ -1404,7 +1473,7 @@ public class EPAppCommonServiceImpl implements EPAppService {
                                                epWidgetsManualSort.setWidgetCol(epWidgetsManPref.getCol());
                                                epWidgetsManualSort.setWidgetWidth(epWidgetsManPref.getSizeX());
                                                epWidgetsManualSort.setWidgetHeight(epWidgetsManPref.getSizeY());
-                                               HashMap<String, Integer> additionalUpdateParam = new HashMap<String, Integer>();
+                                               HashMap<String, Long> additionalUpdateParam = new HashMap<>();
                                                additionalUpdateParam.put("userId", epWidgetsManualSort.getUserId());
                                                dataAccessService.saveDomainObject(epWidgetsManualSort, additionalUpdateParam);
                                        } else {
@@ -1414,7 +1483,7 @@ public class EPAppCommonServiceImpl implements EPAppService {
                                                epWidgetsManualSort.setWidgetCol(epWidgetsManPref.getCol());
                                                epWidgetsManualSort.setWidgetWidth(epWidgetsManPref.getSizeX());
                                                epWidgetsManualSort.setWidgetHeight(epWidgetsManPref.getSizeY());
-                                               epWidgetsManualSort.setUserId(Ints.checkedCast(user.getId()));
+                                               epWidgetsManualSort.setUserId(user.getId());
                                                dataAccessService.saveDomainObject(epWidgetsManualSort, null);
                                        }
                                        fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK);
@@ -1485,7 +1554,7 @@ public class EPAppCommonServiceImpl implements EPAppService {
                                                EPUserAppsManualSortPreference epAppsManualSort = existingAppIds.get(appid);
                                                epAppsManualSort
                                                                .setAppManualSortOrder((epAppsManPref.getCol() + (6 * epAppsManPref.getRow())) + 1);
-                                               HashMap<String, Integer> additionalUpdateParam = new HashMap<String, Integer>();
+                                               HashMap<String, Long> additionalUpdateParam = new HashMap<>();
                                                additionalUpdateParam.put("userId", epAppsManualSort.getUserId());
                                                dataAccessService.saveDomainObject(epAppsManualSort, additionalUpdateParam);
                                        } else {
@@ -1493,7 +1562,7 @@ public class EPAppCommonServiceImpl implements EPAppService {
                                                epAppsManualSort.setAppId(epAppsManPref.getAppid());
                                                epAppsManualSort
                                                                .setAppManualSortOrder((epAppsManPref.getCol() + (6 * epAppsManPref.getRow())) + 1);
-                                               epAppsManualSort.setUserId(Ints.checkedCast(user.getId()));
+                                               epAppsManualSort.setUserId(user.getId());
                                                dataAccessService.saveDomainObject(epAppsManualSort, null);
                                        }
                                        fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK);
@@ -1509,9 +1578,9 @@ public class EPAppCommonServiceImpl implements EPAppService {
        /*
         * (non-Javadoc)
         *
-        * @see org.openecomp.portalapp.portal.service.EPAppService#
+        * @see org.onap.portalapp.portal.service.EPAppService#
         * deleteUserAppSortManual(java.lang.String,
-        * org.openecomp.portalapp.portal.domain.EPUser)
+        * org.onap.portalapp.portal.domain.EPUser)
         */
        @SuppressWarnings("unchecked")
        @Override
@@ -1550,7 +1619,7 @@ public class EPAppCommonServiceImpl implements EPAppService {
                        epSortTypes = dataAccessService.executeNamedQuery("userAppsSortPreferenceQuery", params, null);
                        if (epSortTypes.size() == 0) {
                                usrSortPr = new EPUserAppsSortPreference();
-                               usrSortPr.setUserId(Ints.checkedCast(user.getId()));
+                               usrSortPr.setUserId((int)(long)(user.getId()));
                                usrSortPr.setSortPref(appsSortPreference.getValue());
                                dataAccessService.saveDomainObject(usrSortPr, null);
                                fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK);
@@ -1663,4 +1732,4 @@ public class EPAppCommonServiceImpl implements EPAppService {
                return userAndRoles;
                
        }
-}
+}
\ No newline at end of file