diff options
12 files changed, 433 insertions, 2 deletions
diff --git a/cds-ui/client/src/app/common/core/services/loader.service.ts b/cds-ui/client/src/app/common/core/services/loader.service.ts new file mode 100644 index 000000000..1d2d1f082 --- /dev/null +++ b/cds-ui/client/src/app/common/core/services/loader.service.ts @@ -0,0 +1,43 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2018 IBM Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software 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. +============LICENSE_END============================================ +*/ + + + +import { Injectable } from '@angular/core'; +import { Observable, Subject } from 'rxjs'; + +@Injectable() +export class LoaderService { + + public subject = new Subject<boolean>(); + + constructor() { + } + + showLoader() { + this.subject.next(true); + } + + hideLoader() { + this.subject.next(false); + } + +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/services/notification-handler.service.ts b/cds-ui/client/src/app/common/core/services/notification-handler.service.ts new file mode 100644 index 000000000..296b71e53 --- /dev/null +++ b/cds-ui/client/src/app/common/core/services/notification-handler.service.ts @@ -0,0 +1,51 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2019 IBM Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software 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. +============LICENSE_END============================================ +*/ + + + +import { Injectable } from '@angular/core'; + +// import { NotificationService } from '../../shared/components/notification/notification.service'; + +@Injectable() +export class NotificationHandlerService { + + constructor( + // private alert: NotificationService + ) { } + + + success(message: string) { + // this.alert.success(message); + } + + error(message: string) { + // this.alert.error(message); + } + + info(message: string) { + // this.alert(new Notification({ message, type: NotificationType.Info })); + } + + warn(message: string) { + // this.alert(new Notification({ message, type: NotificationType.Warning })); + } +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/shared/components/notification/notification.component.html b/cds-ui/client/src/app/common/shared/components/notification/notification.component.html new file mode 100644 index 000000000..f240908a6 --- /dev/null +++ b/cds-ui/client/src/app/common/shared/components/notification/notification.component.html @@ -0,0 +1,24 @@ +<!-- ============LICENSE_START========================================== +=================================================================== +Copyright (C) 2019 IBM Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software 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. +============LICENSE_END============================================ +--> + +<div *ngFor="let alert of alerts" class="{{ cssStyles(alert) }} alert-dismissable"> + {{alert.message}} + <a class="close" (click)="closeNotification(alert)">×</a> +</div> diff --git a/cds-ui/client/src/app/common/shared/components/notification/notification.component.scss b/cds-ui/client/src/app/common/shared/components/notification/notification.component.scss new file mode 100644 index 000000000..93f5c9dea --- /dev/null +++ b/cds-ui/client/src/app/common/shared/components/notification/notification.component.scss @@ -0,0 +1,20 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2019 IBM Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software 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. +============LICENSE_END============================================ +*/
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/shared/components/notification/notification.component.spec.ts b/cds-ui/client/src/app/common/shared/components/notification/notification.component.spec.ts new file mode 100644 index 000000000..c86d6a0e9 --- /dev/null +++ b/cds-ui/client/src/app/common/shared/components/notification/notification.component.spec.ts @@ -0,0 +1,46 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2019 IBM Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software 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. +============LICENSE_END============================================ +*/ + +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NotificationComponent } from './notification.component'; + +describe('NotificationComponent', () => { + let component: NotificationComponent; + let fixture: ComponentFixture<NotificationComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ NotificationComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(NotificationComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/cds-ui/client/src/app/common/shared/components/notification/notification.component.ts b/cds-ui/client/src/app/common/shared/components/notification/notification.component.ts new file mode 100644 index 000000000..8a70b03af --- /dev/null +++ b/cds-ui/client/src/app/common/shared/components/notification/notification.component.ts @@ -0,0 +1,71 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2019 IBM Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software 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. +============LICENSE_END============================================ +*/ + +import { Component, OnInit, Input } from '@angular/core'; + +import { Notification, NotificationType } from './notification'; +import { NotificationService } from './notification.service'; + +@Component({ + selector: 'app-notification', + templateUrl: './notification.component.html', + styleUrls: ['./notification.component.scss'] +}) +export class NotificationComponent implements OnInit { + + @Input() id: string; + + alerts: Notification[] = []; + + constructor(private alertService: NotificationService) { } + + ngOnInit() { + this.alertService.getAlert(this.id).subscribe((alert: Notification) => { + if (!alert.message) { + this.alerts = []; + return; + } + this.alerts.push(alert); + }); + } + + + cssStyles(alert: Notification) { + if (!alert) { + return; + } + switch (alert.type) { + case NotificationType.Success: + return 'alert alert-success'; + case NotificationType.Error: + return 'alert alert-danger'; + case NotificationType.Info: + return 'alert alert-info'; + case NotificationType.Warning: + return 'alert alert-warning'; + } +} + + closeNotification(alert: Notification) { + this.alerts = this.alerts.filter(x => x !== alert); + } + +} diff --git a/cds-ui/client/src/app/common/shared/components/notification/notification.service.spec.ts b/cds-ui/client/src/app/common/shared/components/notification/notification.service.spec.ts new file mode 100644 index 000000000..0270d2716 --- /dev/null +++ b/cds-ui/client/src/app/common/shared/components/notification/notification.service.spec.ts @@ -0,0 +1,33 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2019 IBM Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software 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. +============LICENSE_END============================================ +*/ + +import { TestBed } from '@angular/core/testing'; + +import { NotificationService } from './notification.service'; + +describe('NotificationService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: NotificationService = TestBed.get(NotificationService); + expect(service).toBeTruthy(); + }); +}); diff --git a/cds-ui/client/src/app/common/shared/components/notification/notification.service.ts b/cds-ui/client/src/app/common/shared/components/notification/notification.service.ts new file mode 100644 index 000000000..83c0504ac --- /dev/null +++ b/cds-ui/client/src/app/common/shared/components/notification/notification.service.ts @@ -0,0 +1,77 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2019 IBM Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software 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. +============LICENSE_END============================================ +*/ + +import { Injectable } from '@angular/core'; +import { Router, NavigationStart } from '@angular/router'; +import { Observable, Subject } from 'rxjs'; +// import { Subject } from 'rxjs/Subject'; + +import { Notification, NotificationType} from './notification'; + +@Injectable({ + providedIn: 'root' +}) +export class NotificationService { + + private subject = new Subject<Notification>(); + private keepAfterRouteChange = false; + + constructor(private router: Router) { + router.events.subscribe(event => { + if (event instanceof NavigationStart) { + if (this.keepAfterRouteChange) { + this.keepAfterRouteChange = false; + } else { + this.clear(); + } + } + }); + } + + getAlert(alertId?: string): Observable<any> { + return this.subject.asObservable(); + } + + success(message: string) { + this.alert(new Notification({ message, type: NotificationType.Success })); + } + + error(message: string) { + this.alert(new Notification({ message, type: NotificationType.Error })); + } + + info(message: string) { + this.alert(new Notification({ message, type: NotificationType.Info })); + } + + warn(message: string) { + this.alert(new Notification({ message, type: NotificationType.Warning })); + } + + alert(alert: Notification) { + this.keepAfterRouteChange = alert.keepAfterRouteChange; + this.subject.next(alert); + } + + clear(alertId?: string) { + this.subject.next(new Notification({ alertId })); + } +} diff --git a/cds-ui/client/src/app/common/shared/components/notification/notification.ts b/cds-ui/client/src/app/common/shared/components/notification/notification.ts new file mode 100644 index 000000000..95f3f17b0 --- /dev/null +++ b/cds-ui/client/src/app/common/shared/components/notification/notification.ts @@ -0,0 +1,38 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2019 IBM Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software 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. +============LICENSE_END============================================ +*/ + +export class Notification { + type: NotificationType; + message: string; + alertId: string; + keepAfterRouteChange: boolean; + + constructor(init?:Partial<Notification>) { + Object.assign(this, init); + } +} + +export enum NotificationType { + Success, + Error, + Info, + Warning +}
\ No newline at end of file diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/properties-capability-source.json b/components/model-catalog/resource-dictionary/starter-dictionary/properties-capability-source.json new file mode 100644 index 000000000..950c4a2df --- /dev/null +++ b/components/model-catalog/resource-dictionary/starter-dictionary/properties-capability-source.json @@ -0,0 +1,26 @@ +{
+ "name": "properties-capability-source",
+ "updated-by": "Steve Alphonse Siani, alphonse.steve.siani.djissitchi@ibm.com",
+ "tags": "properties-capability-source",
+ "property" :{
+ "description": "Data dictionary used to read properties.",
+ "type": "string"
+ },
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "capability": {
+ "type": "source-capability",
+ "properties" : {
+ "script-type" : "jython",
+ "script-class-reference" : "Scripts/python/ResolvProperties.py",
+ "instance-dependencies" : []
+ }
+ }
+ }
+}
\ No newline at end of file diff --git a/ms/blueprintsprocessor/functions/netconf-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/utils/NetconfConstant.kt b/ms/blueprintsprocessor/functions/netconf-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/utils/NetconfConstant.kt index 8722bb031..03177e8ec 100644 --- a/ms/blueprintsprocessor/functions/netconf-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/utils/NetconfConstant.kt +++ b/ms/blueprintsprocessor/functions/netconf-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/utils/NetconfConstant.kt @@ -79,7 +79,7 @@ object RpcMessageUtils { const val INTERLEAVE_CAPABILITY_STRING = "urn:ietf:params:netconf:capability:interleave:1.0" - const val CAPABILITY_REGEX = "capability>\\s*(.*?)\\s*capability>" + const val CAPABILITY_REGEX = "capability>\\s*(.*?)\\s*</capability>" const val SESSION_ID_REGEX = "session-id>\\s*(.*?)\\s*session-id>" @@ -87,4 +87,4 @@ object RpcMessageUtils { const val NETCONF_10_CAPABILITY = "urn:ietf:params:netconf:base:1.0" const val NETCONF_11_CAPABILITY = "urn:ietf:params:netconf:base:1.1" -}
\ No newline at end of file +} diff --git a/ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutor.kt b/ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutor.kt index 4642a7c13..4ef1cfbb3 100644 --- a/ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutor.kt +++ b/ms/blueprintsprocessor/functions/python-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/python/executor/ComponentRemotePythonExecutor.kt @@ -95,6 +95,7 @@ open class ComponentRemotePythonExecutor(private val remoteScriptExecutionServic packages = packages ) val prepareEnvOutput = remoteScriptExecutionService.prepareEnv(prepareEnvInput) + log.info("$ATTRIBUTE_PREPARE_ENV_LOG - ${prepareEnvOutput.response}") setAttribute(ATTRIBUTE_PREPARE_ENV_LOG, prepareEnvOutput.response.asJsonPrimitive()) setAttribute(ATTRIBUTE_EXEC_CMD_LOG, "N/A".asJsonPrimitive()) check(prepareEnvOutput.status == StatusType.SUCCESS) { @@ -110,6 +111,7 @@ open class ComponentRemotePythonExecutor(private val remoteScriptExecutionServic command = scriptCommand, properties = properties) val remoteExecutionOutput = remoteScriptExecutionService.executeCommand(remoteExecutionInput) + log.info("$ATTRIBUTE_EXEC_CMD_LOG - ${remoteExecutionOutput.response}") setAttribute(ATTRIBUTE_EXEC_CMD_LOG, remoteExecutionOutput.response.asJsonPrimitive()) check(remoteExecutionOutput.status == StatusType.SUCCESS) { "failed to get prepare remote command response status for requestId(${remoteExecutionOutput.requestId})" |