diff options
8 files changed, 152 insertions, 72 deletions
diff --git a/INFO.yaml b/INFO.yaml new file mode 100644 index 00000000..5ce7de9c --- /dev/null +++ b/INFO.yaml @@ -0,0 +1,45 @@ +--- +project: 'portal' +project_creation_date: '2017-02-02' +project_category: '' +lifecycle_state: 'Incubation' +project_lead: &onap_portal_ptl + name: 'Manoop Talasila' + email: 'mt2061@att.com' + id: 'mt2061' + company: 'ATT' + timezone: 'America/New_York' +primary_contact: *onap_portal_ptl +issue_tracking: + type: 'jira' + url: 'https://jira.onap.org/projects/PORTAL' + key: 'PORTAL' +mailing_list: + type: 'groups.io' + url: 'lists.onap.org' + tag: '<[sub-project_name]>' +realtime_discussion: '' +meetings: + - type: 'zoom' + agenda: 'https://wiki.onap.org/pages/viewpage.action?pageId=10782705' + url: 'https://wiki.onap.org/pages/viewpage.action?pageId=10782705' + server: 'n/a' + channel: 'n/a' + repeats: 'weekly' + time: '15:00 UTC (DST)' +repositories: + - 'portal' +committers: + - <<: *onap_portal_ptl + - name: 'Manoop Talasila' + email: 'mt2061@att.com' + company: 'ATT' + id: 'mt2061' + timezone: 'America/New_York' + - name: 'Sunder Tattavarada' + email: 'st782s@att.com' + company: 'ATT' + id: 'st782s' + timezone: 'America/New_York' +tsc: + approval: 'https://lists.onap.org/pipermail/onap-tsc' diff --git a/deliveries/.env b/deliveries/.env index 73259592..3b2fa140 100644 --- a/deliveries/.env +++ b/deliveries/.env @@ -14,11 +14,11 @@ CLI_IMG_NAME=onap/cli # This is the first portion of the Docker image tag # that is published to the ONAP registry. -PORTAL_VERSION=v2.3.0 +PORTAL_VERSION=2.3.0 # This is used during builds and in docker-compose; # it is never published to the ONAP registry. -PORTAL_TAG=beijing +PORTAL_TAG=casablanca # Name of directory in apps container (NOT host) WEBAPPS_DIR=/opt/apache-tomcat-8.0.37/webapps diff --git a/deliveries/Apps_Users_OnBoarding_Script.sql b/deliveries/Apps_Users_OnBoarding_Script.sql index 0232a1f4..af3edbaa 100644 --- a/deliveries/Apps_Users_OnBoarding_Script.sql +++ b/deliveries/Apps_Users_OnBoarding_Script.sql @@ -13,7 +13,7 @@ INSERT INTO `fn_app` (`app_id`, `app_name`, `app_image_url`, `app_description`, (6, 'Virtual Infrastructure Deployment', 'images/cache/portal-345993588_92550.png', NULL, NULL, 'http://vid.api.simpledemo.onap.org:8080/vid/welcome.htm', NULL, 'http://vid.api.simpledemo.onap.org:8080/vid/api/v2', '', '', NULL, 'okYTaDrhzibcbGVq5mjkVQ==', 'N', 'Y', NULL, 'Default', '2Re7Pvdkgw5aeAUD', 'S31PrbOzGgL4hg4owgtx47Da', 'ECOMP-PORTAL-OUTBOX-90', 1,'N',NULL), (7, 'A&AI UI', 'images/cache/portal-345993588_92550.png', NULL, NULL, 'http://aai.api.simpledemo.onap.org:9517/services/aai/webapp/index.html#/viewInspect', NULL, 'http://aai.api.simpledemo.onap.org:9517/api/v2', '', '', NULL, 't1oqm6wCXrGUXUSL8mS7pQ==', 'N', 'Y', NULL, 'aaiui', 'ueb_key', 'ueb_secret', 'ECOMP-PORTAL-OUTBOX', 1,'N',NULL), (8, 'CLI', 'images/cache/portal-345993588_92550.png', NULL, NULL, 'http://portal.api.simpledemo.onap.org:8080/', NULL, NULL, '', '', NULL, '', 'Y', 'Y', NULL, '', '', '', '', 1,'N',NULL), -(9, 'MSB', 'images/cache/portal-345993588_92550.png', NULL, NULL, 'http://msb-discovery:8080/iui/microservices/default.html', NULL, NULL, '', '', NULL, '', 'Y', 'Y', NULL, '', '', '', '', 2,'N',NULL); +(9, 'MSB', 'images/cache/portal-345993588_92550.png', NULL, NULL, 'http://msb-iag:80/iui/microservices/index.html', NULL, NULL, '', '', NULL, '', 'Y', 'Y', NULL, '', '', '', '', 2,'N',NULL); -- insert SDC users user id2-8 diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 43803ad0..b0c3f33c 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -6,6 +6,37 @@ Portal Platform Release Notes ============================= +Version: 2.3.0 +-------------- +:Release Date: XXXX-XX-XX + +.. toctree:: + :maxdepth: 1 + +We worked on SDK upgrade to integrate with AAF. + +**New Features** + * Portal SDK (2.4.0) + * Use of Semantic Versioning - V3 is the supported version + * Integration with AAF via REST; Supports both SDK and Framework Applicaitons + +**Bug Fixes** + + +**Known Issues** + +**Security Issues** + +**Security Notes** + +**Upgrade Notes** + +**Deprecation Notes** + +**Other** + * portal/sdk - (Release branch: "release-2.4.0") + + Version: 2.2.0 -------------- diff --git a/ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java b/ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java index 7d3bfeea..b5508636 100644 --- a/ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java +++ b/ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java @@ -72,47 +72,50 @@ public class ExtractJar { String classContainer = clazz.getProtectionDomain().getCodeSource().getLocation().toString(); URL jarUrl = clazz.getProtectionDomain().getCodeSource().getLocation(); - JarInputStream entryStream = new JarInputStream(jarUrl.openStream()); - JarEntry entry; - while (true) { - entry = entryStream.getNextJarEntry(); - if (entry == null) - break; - if (entry.getName().indexOf("jarutil") < 0) { - logger.info(entry.getName()); - File file = new File(directory, entry.getName()); - if (entry.isDirectory()) { - if (!file.exists()) - file.mkdirs(); - } else { - // make directory (some jars don't list dirs) - File dir = new File(file.getParent()); - if (!dir.exists()) - dir.mkdirs(); - if (file.exists()) - file.delete(); - // Make file - FileOutputStream fout = new FileOutputStream(file); - copy(entryStream, fout); - fout.close(); - - // touch the file. - if (entry.getTime() >= 0) - file.setLastModified(entry.getTime()); + try(JarInputStream entryStream = new JarInputStream(jarUrl.openStream())){ + JarEntry entry; + while (true) { + entry = entryStream.getNextJarEntry(); + if (entry == null) + break; + if (entry.getName().indexOf("jarutil") < 0) { + logger.info(entry.getName()); + File file = new File(directory, entry.getName()); + if (entry.isDirectory()) { + if (!file.exists()) + file.mkdirs(); + } else { + // make directory (some jars don't list dirs) + File dir = new File(file.getParent()); + if (!dir.exists()) + dir.mkdirs(); + if (file.exists()) + file.delete(); + // Make file + FileOutputStream fout = new FileOutputStream(file); + copy(entryStream, fout); + fout.close(); + + // touch the file. + if (entry.getTime() >= 0) + file.setLastModified(entry.getTime()); + } + } - + entryStream.closeEntry(); } - entryStream.closeEntry(); + System.out.println("************************************************"); + System.out.println("* *"); + System.out.println("* *"); + System.out.println("* RAPTOR SETUP COMPLETE. *"); + System.out.println("* *"); + System.out.println("* Thank you for upgrading. *"); + System.out.println("* *"); + System.out.println("************************************************"); + }catch(Exception e) { + logger.error("Exception in extractFilesFromJar",e); } - entryStream.close(); - System.out.println("************************************************"); - System.out.println("* *"); - System.out.println("* *"); - System.out.println("* RAPTOR SETUP COMPLETE. *"); - System.out.println("* *"); - System.out.println("* Thank you for upgrading. *"); - System.out.println("* *"); - System.out.println("************************************************"); + } public static void copy(InputStream in, OutputStream out, long byteCount) throws IOException { diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsCatalogController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsCatalogController.java index d05fe014..a7ce3557 100644 --- a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsCatalogController.java +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/WidgetsCatalogController.java @@ -377,32 +377,38 @@ public class WidgetsCatalogController extends EPRestrictedBaseController { .getBody(); File downloadFile = File.createTempFile("temp", ".zip"); - FileOutputStream stream = new FileOutputStream(downloadFile.getPath()); - stream.write(byteFile); - stream.close(); - - FileInputStream inputStream = new FileInputStream(downloadFile); - String mimeType = context.getMimeType(downloadFile.getPath()); - if (mimeType == null) { - mimeType = "application/octet-stream"; + try(FileOutputStream stream = new FileOutputStream(downloadFile.getPath())){ + stream.write(byteFile); + }catch(Exception e) + { + logger.error(EELFLoggerDelegate.errorLogger, "doDownload failed", e); + throw e; } - response.setContentType(mimeType); - response.setContentLength((int) downloadFile.length()); - String headerKey = "Content-Disposition"; - String headerValue = String.format("attachment; filename=\"%s\"", downloadFile.getName()); - downloadFile.delete(); - response.setHeader(headerKey, headerValue); - - OutputStream outStream = response.getOutputStream(); - byte[] buffer = new byte[32 * 1024]; - int bytesRead; - while ((bytesRead = inputStream.read(buffer)) != -1) { - outStream.write(buffer, 0, bytesRead); - } + try(FileInputStream inputStream = new FileInputStream(downloadFile); + OutputStream outStream = response.getOutputStream()){ + String mimeType = context.getMimeType(downloadFile.getPath()); + if (mimeType == null) { + mimeType = "application/octet-stream"; + } - inputStream.close(); - outStream.close(); + response.setContentType(mimeType); + response.setContentLength((int) downloadFile.length()); + String headerKey = "Content-Disposition"; + String headerValue = String.format("attachment; filename=\"%s\"", downloadFile.getName()); + downloadFile.delete(); + response.setHeader(headerKey, headerValue); + + byte[] buffer = new byte[32 * 1024]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + outStream.write(buffer, 0, bytesRead); + } + }catch(Exception e) + { + logger.error(EELFLoggerDelegate.errorLogger, "doDownload failed", e); + throw e; + } } @RequestMapping(value = { "/portalApi/microservices/parameters" }, method = RequestMethod.POST) diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterface.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterface.java index 825d33a2..1886b8b5 100644 --- a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterface.java +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/scheduler/SchedulerRestInterface.java @@ -157,7 +157,7 @@ public class SchedulerRestInterface implements SchedulerRestInterfaceIfc { client = HttpsBasicClient.getClient(); } } catch (Exception e) { - logger.debug(EELFLoggerDelegate.debugLogger, "Unable to initialize rest client"); + logger.debug(EELFLoggerDelegate.debugLogger, "Unable to initialize rest client",e.getMessage()); } logger.debug(EELFLoggerDelegate.debugLogger, "Client Initialized"); diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/onap/portalapp/widget/service/impl/InitializationServiceImpl.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/onap/portalapp/widget/service/impl/InitializationServiceImpl.java index cbc0c9d0..c9365c46 100644 --- a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/onap/portalapp/widget/service/impl/InitializationServiceImpl.java +++ b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/onap/portalapp/widget/service/impl/InitializationServiceImpl.java @@ -114,18 +114,13 @@ public class InitializationServiceImpl implements InitializationService { long widgetId = widgetCatalogService.saveWidgetCatalog(newWidget); File tmpZipFile = new File("/tmp/" + fileLocation); - InputStream fileInputStream = null; - OutputStream outputStream = null; - try { - fileInputStream = this.getClass().getClassLoader().getResourceAsStream(fileLocation); - outputStream = new FileOutputStream(tmpZipFile); + try(OutputStream outputStream = new FileOutputStream(tmpZipFile); + InputStream fileInputStream = this.getClass().getClassLoader().getResourceAsStream(fileLocation)) { int read = 0; byte[] bytes = new byte[4096]; while ((read = fileInputStream.read(bytes)) != -1) { outputStream.write(bytes, 0, read); } - outputStream.close(); - fileInputStream.close(); } catch (Exception e) { logger.error( "Exception occurred while performing InitializationServiceImpl.initCommonWidget in widget microservices. Details:", e); |