From cd5da806dad48bfabd2de5ae56018483dab6106f Mon Sep 17 00:00:00 2001 From: Piotr Darosz Date: Mon, 8 Apr 2019 14:35:40 +0200 Subject: Refactor hardcoded column config Move hardcoded GAB columns configuration to configuration.yaml file Change-Id: Ie70a1d44c9a04a37c3ba0d3b5f64ad2989b11166 Issue-ID: SDC-2225 Signed-off-by: Piotr Darosz --- .../templates/default/configuration.yaml.erb | 16 ++++++ .../templates/default/BE-configuration.yaml.erb | 16 ++++++ .../openecomp/sdc/be/servlets/ElementServlet.java | 2 + .../src/main/resources/config/configuration.yaml | 16 ++++++ catalog-ui/src/app/models/gab-config.ts | 7 +++ catalog-ui/src/app/models/paths-and-names.ts | 2 +- .../deployment-artifacts-view-model.ts | 35 ++++++++++--- catalog-ui/src/assets/languages/en_US.json | 3 +- .../org/openecomp/sdc/be/config/Configuration.java | 61 ++++++++++++++++++++++ 9 files changed, 149 insertions(+), 9 deletions(-) create mode 100644 catalog-ui/src/app/models/gab-config.ts diff --git a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb index aabdacc3af..0a658bb8d9 100644 --- a/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb +++ b/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb @@ -712,6 +712,22 @@ environmentContext: - Useful_Non-Revenue - General_Non-Revenue +gabConfig: + - artifactType: 'VES_EVENTS' + pathsAndNamesDefinitions: + - + friendlyName: "Action" + path: "event.action[2]" + searchable: "true" + - + friendlyName: "Comment" + path: "event.comment" + searchable: "true" + - + friendlyName: "Alarm Additional Information" + path: "event.structure.faultFields.structure.alarmAdditionalInformation.comment" + searchable: "true" + dmaapConsumerConfiguration: hosts: localhost:3905 consumerGroup: sdc diff --git a/catalog-be/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/templates/default/BE-configuration.yaml.erb b/catalog-be/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/templates/default/BE-configuration.yaml.erb index df8b898318..37e3d936d1 100644 --- a/catalog-be/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/templates/default/BE-configuration.yaml.erb +++ b/catalog-be/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/templates/default/BE-configuration.yaml.erb @@ -738,6 +738,22 @@ environmentContext: - Useful_Non-Revenue - General_Non-Revenue +gabConfig: + - artifactType: 'VES_EVENTS' + pathsAndNamesDefinitions: + - + friendlyName: "Action" + path: "event.action[2]" + searchable: "true" + - + friendlyName: "Comment" + path: "event.comment" + searchable: "true" + - + friendlyName: "Alarm Additional Information" + path: "event.structure.faultFields.structure.alarmAdditionalInformation.comment" + searchable: "true" + dmaapConsumerConfiguration: active: <%= @dmaap_active %> hosts: localhost:3905 diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ElementServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ElementServlet.java index eda9a61883..081c9cad1a 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ElementServlet.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ElementServlet.java @@ -455,6 +455,8 @@ public class ElementServlet extends BeGenericServlet { configuration.put("roles", elementBL.getAllSupportedRoles()); configuration.put("resourceTypes", resourceTypesMap.left().value()); configuration.put("environmentContext", ConfigurationManager.getConfigurationManager().getConfiguration().getEnvironmentContext()); + configuration.put("gab", ConfigurationManager.getConfigurationManager().getConfiguration().getGabConfig()); + return buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.OK), configuration); } diff --git a/catalog-be/src/main/resources/config/configuration.yaml b/catalog-be/src/main/resources/config/configuration.yaml index 1d9a51e6b3..d23f87eb96 100644 --- a/catalog-be/src/main/resources/config/configuration.yaml +++ b/catalog-be/src/main/resources/config/configuration.yaml @@ -737,6 +737,22 @@ environmentContext: - Useful_Non-Revenue - General_Non-Revenue +gabConfig: + - artifactType: 'VES_EVENTS' + pathsandnames: + - + friendlyName: "Action" + path: "event.action[2]" + searchable: "true" + - + friendlyName: "Comment" + path: "event.comment" + searchable: "true" + - + friendlyName: "Alarm Additional Information" + path: "event.structure.faultFields.structure.alarmAdditionalInformation.comment" + searchable: "true" + dmaapConsumerConfiguration: active: true hosts: olsd004.wnsnet.ws.com:3905 diff --git a/catalog-ui/src/app/models/gab-config.ts b/catalog-ui/src/app/models/gab-config.ts new file mode 100644 index 0000000000..85547189b7 --- /dev/null +++ b/catalog-ui/src/app/models/gab-config.ts @@ -0,0 +1,7 @@ +import {PathsAndNamesDefinition} from "./paths-and-names"; + +export class GabConfig { + constructor(public artifactType: string, public pathsAndNamesDefinitions: PathsAndNamesDefinition[]) { + + } +} \ No newline at end of file diff --git a/catalog-ui/src/app/models/paths-and-names.ts b/catalog-ui/src/app/models/paths-and-names.ts index afab4d02f8..43136378c0 100644 --- a/catalog-ui/src/app/models/paths-and-names.ts +++ b/catalog-ui/src/app/models/paths-and-names.ts @@ -19,5 +19,5 @@ */ export class PathsAndNamesDefinition { - constructor(public path: string, public friendlyName: string) {} + constructor(public path: string, public friendlyName: string, public searchable: boolean) {} } \ No newline at end of file diff --git a/catalog-ui/src/app/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view-model.ts index 73273e04d5..5e78301287 100644 --- a/catalog-ui/src/app/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view-model.ts +++ b/catalog-ui/src/app/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view-model.ts @@ -31,6 +31,8 @@ import {GenericArtifactBrowserComponent} from "../../../../ng2/components/logic/ import {PathsAndNamesDefinition} from "../../../../models/paths-and-names"; import {ModalService as ModalServiceSdcUI} from "sdc-ui/lib/angular/modals/modal.service"; import {IModalConfig} from "sdc-ui/lib/angular/modals/models/modal-config"; +import {CacheService} from "../../../../services/cache-service"; +import {GabConfig} from "../../../../models/gab-config"; interface IDeploymentArtifactsViewModelScope extends IWorkspaceViewModelScope { tableHeadersList:Array; @@ -66,6 +68,7 @@ export class DeploymentArtifactsViewModel { '$scope', '$templateCache', '$filter', + 'Sdc.Services.CacheService', 'ValidationUtils', 'ArtifactsUtils', 'ModalsHandler', @@ -76,6 +79,7 @@ export class DeploymentArtifactsViewModel { constructor(private $scope:IDeploymentArtifactsViewModelScope, private $templateCache:ng.ITemplateCacheService, private $filter:ng.IFilterService, + private cacheService:CacheService, private validationUtils:ValidationUtils, private artifactsUtils:ArtifactsUtils, private ModalsHandler:ModalsHandler, @@ -278,9 +282,11 @@ export class DeploymentArtifactsViewModel { }; this.$scope.openGenericArtifactBrowserModal = (artifact:ArtifactModel):void => { + let self = this; + const title = 'Generic Artifact Browser'; let modalConfig: IModalConfig = { size: 'xl', - title: 'Generic Artifact Browser', + title: title, type: 'custom', buttons: [{ id: 'okButton', @@ -291,13 +297,28 @@ export class DeploymentArtifactsViewModel { {text: "Cancel", size: "'x-small'", closeModal: true}] }; - let pathsandnames: PathsAndNamesDefinition[] = [ - {friendlyName: 'Action', path: 'event.action[2]'}, - {friendlyName: 'Comment', path: 'event.comment'}, - {friendlyName: 'Alarm Additional Information', - path: 'event.structure.faultFields.structure.alarmAdditionalInformation.comment'}]; + const uiConfiguration: any = this.cacheService.get('UIConfiguration'); + let noConfig: boolean = false; + let pathsandnames: PathsAndNamesDefinition[] = []; + + if(typeof uiConfiguration.gab === 'undefined') { + noConfig = true + } else { + const gabConfig: GabConfig = uiConfiguration.gab + .find(config => config.artifactType === artifact.artifactType); + if(typeof gabConfig === 'undefined') { + noConfig = true; + } else { + pathsandnames = gabConfig.pathsAndNamesDefinitions; + } + } + + if(noConfig) { + const msg = self.$filter('translate')("DEPLOYMENT_ARTIFACT_GAB_NO_CONFIG"); + this.ModalServiceSdcUI.openAlertModal(title, msg); + } - let modalInputs = { + const modalInputs = { pathsandnames: pathsandnames, artifactid: artifact.esId, resourceid: this.$scope.component.uniqueId diff --git a/catalog-ui/src/assets/languages/en_US.json b/catalog-ui/src/assets/languages/en_US.json index b430217f6c..72f320d5b4 100644 --- a/catalog-ui/src/assets/languages/en_US.json +++ b/catalog-ui/src/assets/languages/en_US.json @@ -387,7 +387,8 @@ "DEPLOYMENT_ARTIFACT_BUTTON_ADD_BASE_HEAT": "Add Base HEAT Artifact", "DEPLOYMENT_ARTIFACT_BUTTON_ADD_NETWORK_HEAT": "Add Network HEAT Artifact", "DEPLOYMENT_ARTIFACT_BUTTON_ADD_VOLUME_HEAT": "Add Volume HEAT Artifact", - "DEPLOYMENT_ARTIFACT_BUTTON_ADD_OTHER": "Add Other Artifact" + "DEPLOYMENT_ARTIFACT_BUTTON_ADD_OTHER": "Add Other Artifact", + "DEPLOYMENT_ARTIFACT_GAB_NO_CONFIG": "Generic Artifact Browser has no columns configured" ,"=========== IMPORT VF ===========": "", "IMPORT_VF_MESSAGE_CREATE_TAKES_LONG_TIME_TITLE": "Create VF", diff --git a/common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java b/common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java index 6325f00f3e..a9c4ed362a 100644 --- a/common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java +++ b/common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java @@ -234,6 +234,8 @@ public class Configuration extends BasicConfiguration { private EnvironmentContext environmentContext; + private List gabConfig; + public Map getGenericAssetNodeTypes() { return genericAssetNodeTypes; } @@ -617,6 +619,14 @@ public class Configuration extends BasicConfiguration { this.environmentContext = environmentContext; } + public List getGabConfig() { + return gabConfig; + } + + public void setGabConfig(List gabConfig) { + this.gabConfig = gabConfig; + } + public static class ElasticSearchConfig { List indicesTimeFrequency; @@ -1585,4 +1595,55 @@ public class Configuration extends BasicConfiguration { this.healthStatusExclude = healthStatusExclude; } + + public static class PathsAndNamesDefinition { + private String friendlyName; + private String path; + private String searchable; + + public String getFriendlyName() { + return friendlyName; + } + + public String getPath() { + return path; + } + + public String getSearchable() { + return searchable; + } + + public void setFriendlyName(String friendlyName) { + this.friendlyName = friendlyName; + } + + public void setPath(String path) { + this.path = path; + } + + public void setSearchable(String searchable) { + this.searchable = searchable; + } + } + + public static class GabConfig { + private String artifactType; + private List pathsAndNamesDefinitions; + + public String getArtifactType() { + return artifactType; + } + + public List getPathsAndNamesDefinitions() { + return pathsAndNamesDefinitions; + } + + public void setArtifactType(String artifactType) { + this.artifactType = artifactType; + } + + public void setPathsAndNamesDefinitions(List pathsAndNamesDefinitions) { + this.pathsAndNamesDefinitions = pathsAndNamesDefinitions; + } + } } -- cgit 1.2.3-korg