summaryrefslogtreecommitdiffstats
path: root/usecaseui-lcm/src/main/webapp/app/uui/fusion/scripts/controller/ServiceTemplateService.js
diff options
context:
space:
mode:
Diffstat (limited to 'usecaseui-lcm/src/main/webapp/app/uui/fusion/scripts/controller/ServiceTemplateService.js')
-rw-r--r--usecaseui-lcm/src/main/webapp/app/uui/fusion/scripts/controller/ServiceTemplateService.js241
1 files changed, 240 insertions, 1 deletions
diff --git a/usecaseui-lcm/src/main/webapp/app/uui/fusion/scripts/controller/ServiceTemplateService.js b/usecaseui-lcm/src/main/webapp/app/uui/fusion/scripts/controller/ServiceTemplateService.js
index 328e1bbb..e329e947 100644
--- a/usecaseui-lcm/src/main/webapp/app/uui/fusion/scripts/controller/ServiceTemplateService.js
+++ b/usecaseui-lcm/src/main/webapp/app/uui/fusion/scripts/controller/ServiceTemplateService.js
@@ -14,6 +14,245 @@
* limitations under the License.
*/
app.factory("ServiceTemplateService", function($http, $log) {
+ var url = '';
+ return {
+ getAllCustomers: function (processFun) {
+ return $http({
+ url: url+'/onapapi/uui-lcm/v1/customers',
+ method: 'GET',
+ data: null,
+ headers: {'Content-Type': 'application/json'}
+ }).then(function(response){
+ var customers = response.data;
+ var result = customers.map(function (customer) {
+ return {
+ name: customer['subscriber-name'],
+ id: customer['global-customer-id'],
+ };
+ });
+ processFun(result);
+ });
+ },
- return {};
+ getAllServiceTypes: function (customerId, processFun) {
+ return $http({
+ url: url+'/onapapi/uui-lcm/v1/customers/' + customerId + '/service-subscriptions',
+ method: 'GET',
+ data: null,
+ headers: {'Content-Type': 'application/json'}
+ }).then(function(response){
+ var serviceSubscriptions = response.data;
+ var result = serviceSubscriptions.map(function (serviceSubscription) {
+ return {
+ name: serviceSubscription['service-type'],
+ value: serviceSubscription['service-type']
+ };
+ });
+ processFun(result);
+ });
+ },
+
+ getServiceInstances: function (customerId, serviceType, processFun) {
+ return $http({
+ url: url+'/onapapi/uui-lcm/v1/service-instances?customerId='+customerId+'&&serviceType='+serviceType,
+ method: 'GET',
+ data: null,
+ headers: {'Content-Type': 'application/json'}
+ }).then(function(response){
+ var serviceInstances = response.data;
+ var result = serviceInstances.map(function (serviceInstance) {
+ return {
+ serviceInstanceId: serviceInstance['service-instance-id'],
+ serviceInstanceName: serviceInstance['service-instance-name'],
+ serviceType: serviceInstance['service-type'],
+ };
+ });
+ processFun(result);
+ });
+ },
+
+ getAllServiceTemplates: function (processFun) {
+ return $http({
+ url: url+'/onapapi/uui-lcm/v1/service-templates',
+ method: 'GET',
+ data: null,
+ headers: {'Content-Type': 'application/json'}
+ }).then(function(response){
+ var templates = response.data;
+ var result = templates.map(function (template) {
+ return {
+ name: template.name,
+ id: template.uuid,
+ invariantUUID: template.invariantUUID,
+ version: template.version,
+ toscaModelURL: template.toscaModelURL
+ };
+ });
+ processFun(result);
+ });
+ },
+
+ getTemplateParameters: function (template, processFun) {
+ return $http({
+ url: url+'/onapapi/uui-lcm/v1/service-templates/' + template.id,
+ method: 'GET',
+ data: null,
+ headers: {'Content-Type': 'application/json'}
+ }).then(function(response){
+ var inputRsp = response.data;
+ processFun(inputRsp);
+ });
+ },
+
+ getAllVimInfo: function (processFun) {
+ return $http({
+ url: url+'/onapapi/uui-lcm/v1/locations/',
+ method: 'GET',
+ data: null,
+ headers: {'Content-Type': 'application/json'}
+ }).then(function(response){
+ var vimInfos = response.data;
+ var result = vimInfos.map(function (vim) {
+ return {
+ name: vim['cloud-owner'] + '-' + vim['cloud-region-id'],
+ value: vim['cloud-owner'] + '-' + vim['cloud-region-id']
+ };
+ });
+ processFun(result);
+ });
+ },
+
+ createService: function (customer, serviceType, service, template) {
+
+ function translateInputs(t, customer,serviceType, c) {
+ var reqParas = {
+ subscriptionServiceType: serviceType.value
+ };
+ c[t.name].parameters.forEach(function (parameter) {
+ reqParas[parameter.name] = parameter.value;// todo
+ });
+ var nestedSegments = t.nestedTemplates.map(function (nestedTemplate) {
+ return translateInputs(nestedTemplate,customer,serviceType, c);
+ });
+ return {
+ domainHost: c[t.name].location.value,// ???
+ nodeTemplateName: t.name+':'+t.version,
+ nodeType: 'service',
+ 'GLOBALSUBSCIBERID': customer.id,
+ 'SUBSCIBERNAME': customer.name,
+ requestParameters: reqParas,
+ segments: nestedSegments
+ };
+ }
+
+ var cache = {};
+ cache[template.name] = {
+ location: service.location.value,
+ parameters: service.parameters
+ };
+ service.segments.forEach(function (segment) {
+ cache[segment.nodeTemplateName] = {
+ location: segment.location.value,
+ parameters: segment.parameters
+ }
+ });
+ console.log('cache ----');
+ console.log(cache);
+
+ var reqPara = translateInputs(template,customer, serviceType, cache);
+ var requestBody = {
+ service: {
+ name: service.serviceName,
+ description: service.serviceDescription,
+ serviceDefId: template.invariantUUID,
+ templateId: template.uuid, // uuid ??
+ parameters: reqPara
+ }
+ };
+
+ console.log('request body: ');
+ console.log(requestBody);
+
+ return $http({
+ url: url+'/onapapi/uui-lcm/v1/services',
+ method: 'POST',
+ data: JSON.stringify(requestBody),
+ headers: {'Content-Type': 'application/json'}
+ }).then(function(response){
+ console.log('create response...');
+ console.log(response.data);
+ });
+ },
+
+ deleteService: function (serviceId) {
+ return $http({
+ url: url+'/onapapi/uui-lcm/v1/services/' + serviceId,
+ method: 'DELETE',
+ data: null,
+ headers: {'Content-Type': 'application/json'}
+ }).then(function(response){
+ console.log('delete response...');
+ console.log(response.data);
+ });
+ },
+
+ getPackages: function (processFun) {
+ return $http({
+ url: url+'/onapapi/uui-lcm/v1/vf-ns-packages',
+ method: 'GET',
+ data: null,
+ headers: {'Content-Type': 'application/json'}
+ }).then(function(response){
+ var packageRsp = response.data;
+ var packages = [];
+ packageRsp.nsPackage.forEach(function (ns) {
+ packages.push({
+ uuid: ns.uuid,
+ invariantUUID: ns.invariantUUID,
+ name: ns.name,
+ type: 'NS'
+ })
+ });
+ packageRsp.vnfPackages.forEach(function (vnf) {
+ packages.push({
+ uuid: vnf.uuid,
+ invariantUUID: vnf.invariantUUID,
+ name: vnf.name,
+ type: 'VF'
+ })
+ });
+ processFun(packages);
+ });
+ },
+
+ packageOnboard: function (onboardPackage, vims) {
+ console.log('onboard...');
+ console.log(onboardPackage);
+ console.log(vims);
+ var requestBody = {
+ csarId: onboardPackage.uuid
+ }
+ if(onboardPackage.type === 'NS') {
+ return $http({
+ url: url+'/onapapi/uui-lcm/v1/ns-packages',
+ method: 'POST',
+ data: JSON.stringify(requestBody),
+ headers: {'Content-Type': 'application/json'}
+ }).then(function(response){
+ console.log('onboard ns package response...');
+ console.log(response.data);
+ });
+ } else {
+ return $http({
+ url: url+'/onapapi/uui-lcm/v1/vf-packages',
+ method: 'POST',
+ data: JSON.stringify(requestBody),
+ headers: {'Content-Type': 'application/json'}
+ }).then(function(response){
+ console.log('onboard vf package response...');
+ console.log(response.data);
+ });
+ }
+ }
+ };
});