X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=catalog-ui%2Fsrc%2Fapp%2Fmodels%2Fcomponents%2Fservice.ts;h=5bb42d1910ac9d0e556bec0e21dce11ba7d98e10;hb=d86cb2fa6591e7a5d3e5f2af3312d35def0e5837;hp=ce6921b1bb0ff63e64e75891a8db074f4fff6169;hpb=3305683fc787c38b96393777bf48091ec63f38a0;p=sdc.git diff --git a/catalog-ui/src/app/models/components/service.ts b/catalog-ui/src/app/models/components/service.ts index ce6921b1bb..5bb42d1910 100644 --- a/catalog-ui/src/app/models/components/service.ts +++ b/catalog-ui/src/app/models/components/service.ts @@ -7,9 +7,9 @@ * Licensed 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. @@ -22,11 +22,14 @@ * Created by obarda on 2/4/2016. */ 'use strict'; +import * as _ from "lodash"; import {IServiceService} from "../../services/components/service-service"; import {Component, PropertyModel, DisplayModule, InputsAndProperties, InputModel, InstancesInputsOrPropertiesMapData, InstancesInputsPropertiesMap, Distribution, DistributionComponent, ArtifactGroupModel} from "../../models"; import {ArtifactGroupType} from "../../utils/constants"; +import {FileUploadModel} from "../../directives/file-upload/file-upload"; import {ComponentMetadata} from "../component-metadata"; +import {ForwardingPath} from "app/models/forwarding-path"; export class Service extends Component { @@ -36,7 +39,19 @@ export class Service extends Component { public namingPolicy:string; public serviceType:string; public serviceRole:string; + public serviceFunction:string; public environmentContext:string; + public instantiationType:string; + public forwardingPaths:{ [key:string]:ForwardingPath } = {}; + public payloadData: string; + public payloadName: string; + public importedFile: FileUploadModel; + + // Onboarding parameters + public csarUUID: string; + public csarVersion: string; + public csarPackageType: string; + public packageId: string; constructor(componentService:IServiceService, $q:ng.IQService, component?:Service) { super(componentService, $q, component); @@ -48,16 +63,43 @@ export class Service extends Component { this.namingPolicy = component.namingPolicy; this.serviceType = component.serviceType; this.serviceRole = component.serviceRole; + this.serviceFunction = component.serviceFunction; + this.instantiationType = component.instantiationType; this.environmentContext = component.environmentContext; + this.payloadData = component.payloadData ? component.payloadData : undefined; + this.payloadName = component.payloadName ? component.payloadName : undefined; + this.csarUUID = component.csarUUID; + this.csarVersion = component.csarVersion; if (component.categories && component.categories[0]) { this.mainCategory = component.categories[0].name; this.selectedCategory = this.mainCategory; + this.importedFile = component.importedFile; } } this.componentService = componentService; this.iconSprite = "sprite-services-icons"; } + public importComponentOnServer = (): ng.IPromise => { + let deferred = this.$q.defer(); + let onSuccess = (component: Service): void => { + this.payloadData = undefined; + this.payloadName = undefined; + deferred.resolve(component); + }; + let onError = (error: any): void => { + deferred.reject(error); + }; + + this.handleTags(); + if (this.importedFile) { + this.payloadData = this.importedFile.base64; + this.payloadName = this.importedFile.filename; + } + this.componentService.importComponent(this).then(onSuccess, onError); + return deferred.promise; + }; + public getDistributionsList = ():ng.IPromise> => { return this.componentService.getDistributionsList(this.uuid); }; @@ -75,7 +117,7 @@ export class Service extends Component { */ public createInputsFormInstances = (instancesInputsMap:InstancesInputsOrPropertiesMapData, instancePropertiesMap:InstancesInputsOrPropertiesMapData):ng.IPromise> => { - let deferred = this.$q.defer(); + let deferred = this.$q.defer>(); let onSuccess = (inputsCreated:Array):void => { this.inputs = inputsCreated.concat(this.inputs); deferred.resolve(inputsCreated); @@ -91,8 +133,8 @@ export class Service extends Component { }; // we need to change the name of the input to vfInstanceName + input name before sending to server in order to create the inputs on the service - public getServiceInputInputsAndProperties = (inputId:string):ng.IPromise> => { - let deferred = this.$q.defer(); + public getServiceInputInputsAndProperties = (inputId:string):ng.IPromise => { + let deferred = this.$q.defer(); let onSuccess = (inputsAndProperties:InputsAndProperties):void => { let input:InputModel = _.find(this.inputs, (input:InputModel) => { return input.uniqueId === inputId; @@ -109,7 +151,7 @@ export class Service extends Component { }; public deleteServiceInput = (inputId:string):ng.IPromise => { - let deferred = this.$q.defer(); + let deferred = this.$q.defer(); let onSuccess = (deletedInput:InputModel):void => { delete _.remove(this.inputs, {uniqueId: deletedInput.uniqueId})[0]; @@ -137,7 +179,7 @@ export class Service extends Component { public updateGroupInstanceProperties = (resourceInstanceId:string, group:DisplayModule, properties:Array):ng.IPromise> => { - let deferred = this.$q.defer(); + let deferred = this.$q.defer>(); let onSuccess = (updatedProperties:Array):void => { _.forEach(updatedProperties, (property:PropertyModel) => { // Replace all updated properties on the we needed to update _.extend(_.find(group.properties, {uniqueId: property.uniqueId}), property); @@ -156,14 +198,15 @@ export class Service extends Component { return 'services/'; } - public setComponentMetadata(componentMetadata: ComponentMetadata) { super.setComponentMetadata(componentMetadata); - this.ecompGeneratedNaming = componentMetadata.ecompGeneratedNaming; + this.ecompGeneratedNaming = componentMetadata.ecompGeneratedNaming != undefined && componentMetadata.ecompGeneratedNaming; this.namingPolicy = componentMetadata.namingPolicy; this.serviceType = componentMetadata.serviceType; this.serviceRole = componentMetadata.serviceRole; + this.serviceFunction = componentMetadata.serviceFunction; this.environmentContext = componentMetadata.environmentContext; + this.instantiationType = componentMetadata.instantiationType; this.setComponentDisplayData(); } @@ -175,5 +218,26 @@ export class Service extends Component { } this.iconSprite = "sprite-services-icons"; } + + public isSubstituteCandidate(): boolean { + return !!this.derivedFromGenericType; + } + + public toJSON = ():any => { + let temp = angular.copy(this); + temp.componentService = undefined; + temp.filterTerm = undefined; + temp.iconSprite = undefined; + temp.mainCategory = undefined; + temp.subCategory = undefined; + temp.selectedInstance = undefined; + temp.showMenu = undefined; + temp.$q = undefined; + temp.selectedCategory = undefined; + temp.modules = undefined; + temp.groupInstances = undefined; + temp.policies = undefined; + return temp; + }; }