.service(
'cldsModelService',
[
- 'alertService',
- '$http',
- '$q',
- '$rootScope',
- function(alertService, $http, $q, $rootScope) {
-
- function checkIfElementType(name) {
-
- //This will open the methods located in the app.js
- if (undefined == name) {
- return;
- }else if (name.toLowerCase().indexOf("policy") >= 0){
- PolicyWindow();
- } else {
- $rootScope.selectedBoxName = name.toLowerCase();
- ToscaModelWindow();
- }
- }
- function handleQueryToBackend(def, svcAction, svcUrl, svcPayload) {
-
- $http.put(svcUrl, svcPayload).success(
- function(data) {
-
- def.resolve(data);
- if (typeof data.statusCodeValue === 'undefined'
- || data.statusCodeValue === 200) {
- alertService.alertMessage(
- "Action Successful: " + svcAction, 1)
- } else {
- if (typeof data.body !== 'undefined') {
- alertService.alertMessage("Action Failure: "
- + svcAction + ", " + data.body.errorMessageForUi, 2);
- } else {
- alertService.alertMessage("Action Failure: "
- + svcAction, 2);
- }
- def.reject(svcAction + " not successful");
- }
- }).error(
- function(data) {
-
- def.resolve(data);
- if (typeof data.body !== 'undefined') {
- alertService.alertMessage("Action Failure: " + svcAction
- + ", " + data.body.errorMessageForUi, 2);
- } else {
- alertService
- .alertMessage("Action Failure: " + svcAction, 2);
- }
- def.reject(svcAction + " not successful");
- });
- }
- this.toggleDeploy = function(uiAction, modelName, controlNamePrefixIn,
- bpmnTextIn, propTextIn, svgXmlIn,
- templateName, typeID, controlNameUuid,
- modelEventService, deploymentId) {
-
- var def = $q.defer();
- var sets = [];
- var action = uiAction.toLowerCase();
- var deployUrl = "/restservices/clds/v1/clds/" + action + "/"
- + modelName;
- var requestData = {
- name : modelName,
- controlNamePrefix : controlNamePrefixIn,
- bpmnText : bpmnTextIn,
- propText : propTextIn,
- imageText : svgXmlIn,
- templateName : templateName,
- typeId : typeID,
- controlNameUuid : controlNameUuid,
- event : modelEventService,
- deploymentId : deploymentId
- };
- handleQueryToBackend(def, action, deployUrl, requestData);
- return def.promise;
- };
- this.getModel = function(modelName) {
+ 'alertService',
+ '$http',
+ '$q',
+ '$rootScope',
+ function(alertService, $http, $q, $rootScope) {
+
+ function checkIfElementType(name) {
+ //This will open the methods located in the app.js
+ if (undefined == name) {
+ return;
+ }else if (name === "OperationalPolicy"){
+ PolicyWindow();
+ } else {
+ $rootScope.selectedBoxName = name;
+ ToscaModelWindow();
+ }
+ }
+ this.toggleDeploy = function(uiAction, modelName) {
+ var svcAction = uiAction.toLowerCase();
+ var deployUrl = "/restservices/clds/v2/loop/" + svcAction + "Loop/" + modelName;
+ var def = $q.defer();
+ var sets = [];
+ $http.put(deployUrl).success(
+ function(data) {
+ def.resolve(data);
+ alertService.alertMessage("Action Successful: " + svcAction, 1)
+ // update deploymentID, lastUpdatedStatus
+ setLastComputedState(data.lastComputedState);
+ setDeploymentStatusURL(data.dcaeDeploymentStatusUrl);
+ setDeploymentID(data.dcaeDeploymentId);
+ setStatus(data.lastComputedState);
+ enableDisableMenuOptions();
+ }).error(
+ function(data) {
+ def.resolve(data);
+ alertService.alertMessage("Action Failure: " + svcAction, 2);
+ def.reject(svcAction + " not successful");
+ });
+ return def.promise;
+ }
+ this.getModel = function(modelName) {
var def = $q.defer();
var sets = [];
- var svcUrl = "/restservices/clds/v1/clds/model/" + modelName;
+ var svcUrl = "/restservices/clds/v2/loop/" + modelName;
$http.get(svcUrl).success(function(data) {
- var clModel = '{"name": "ClosedLoopTest","lastComputedState":"DESIGN","svgRepresentation": "representation","globalPropertiesJson": [{"name":"service","value":["4cc5b45a-1f63-4194-8100-cd8e14248c92"]},{"name":"vf","value":["07e266fc-49ab-4cd7-8378-ca4676f1b9ec"]},{"name":"actionSet","value":["vnfRecipe"]},{"name":"location","value":["DC1"]},{"name":"deployParameters","value":{"location_id":"","service_id":"","policy_id":"AUTO_GENERATED_POLICY_ID_AT_SUBMIT"}}], "blueprint": "yaml","lastComputedState": "DESIGN","operationalPolicies": [ {"name": "OpPolicyTest", "configurationsJson": { "policy1": [{"name": "pname","value": "policy1"},{"name": "pid","value": "0"},{"name": "timeout","value": "345"},{"policyConfigurations": [[{"name": "recipe","value": ["restart"]},{"name": "maxRetries","value": ["3"]},{"name": "retryTimeLimit","value": ["180"]},{"name": "_id","value": ["6TtHGPq"]},{"name": "parentPolicy","value": [""]},{"name": "actor","value": ["APPC"]},{"name": "recipeInput","value": [""]},{"name": "recipeLevel","value": ["VM"]},{"name": "targetResourceId","value": ["07e266fc-49ab-4cd7-8378-ca4676f1b9ec"]},{"name": "targetResourceIdOther","value": [""]},{"name": "enableGuardPolicy","value": ["on"]},{"name": "guardPolicyType","value": ["GUARD_YAML"]},{"name": "guardTargets","value": [".*"]},{"name": "minGuard","value": ["1"]},{"name": "maxGuard","value": ["1"]},{"name": "limitGuard","value": ["1"]},{"name": "timeUnitsGuard","value": ["minute"]},{"name": "timeWindowGuard","value": ["10"]},{"name": "guardActiveStart","value": ["00:00:01-05:00"]},{"name": "guardActiveEnd","value": ["00:00:00-05:00"]}]]}]} }],"microServicePolicies": [{"name": "tca","properties": "", "shared": true,"policyTosca": "tosca","jsonRepresentation": {"schema":{"title":"DCAE TCA Config","type":"object","required":["name","eventName"],"properties":{"name":{"propertyOrder":101,"title":"Name","type":"string","default":"New_Set"},"eventName":{"propertyOrder":102,"title":"EventName","type":"string","enum":["event1","event2"]},"clSchemaType":{"propertyOrder":103,"title":"Control Loop Schema Type","type":"string","enum":["","type1","type2"]},"threshold":{"propertyOrder":104,"title":"Threshold","format":"tabs","type":"array","items":{"type":"object","title":"Threshold","required":["metric","operator"],"properties":{"metric":{"propertyOrder":1001,"title":"Metric","type":"string","enum":["metric1","metric2"]},"operator":{"propertyOrder":1003,"default":">","title":"Operator","type":"string","enum":[">","<","=","<=",">="]}, "clEventStatus":{"propertyOrder":1004,"title":"Closed Loop Event Status","type":"string","enum":["","ONSET","ABATED"]}}}}}}}}],"loopLogs": [{ } ] }';
- cl_props = JSON.parse(clModel);
+ cl_props = data;
+ setStatus(data.lastComputedState);
def.resolve(data);
}).error(function(data) {
-
def.reject("Open Model not successful");
});
return def.promise;
};
this.getSavedModel = function() {
-
var def = $q.defer();
var sets = [];
- var svcUrl = "/restservices/clds/v1/clds/model-names";
+ var svcUrl = "/restservices/clds/v2/loop/getAllNames";
$http.get(svcUrl).success(function(data) {
def.resolve(data);
});
return def.promise;
};
- this.setModel = function(modelName, controlNamePrefixIn, bpmnTextIn,
- propTextIn) {
-
- var def = $q.defer();
- var sets = [];
- var svcUrl = "/restservices/clds/v1/clds/model/" + modelName;
- var svcRequest = {
- name : modelName,
- controlNamePrefix : controlNamePrefixIn,
- bpmnText : bpmnTextIn,
- propText : propTextIn
- };
- $http.put(svcUrl, svcRequest).success(function(data) {
-
- def.resolve(data);
- }).error(function(data) {
-
- def.reject("Save Model not successful");
- });
- return def.promise;
- };
- this.processAction = function(uiAction, modelName, controlNamePrefixIn,
- bpmnTextIn, propTextIn, svgXmlIn,
- templateName, typeID, deploymentId) {
-
+ this.processAction = function(uiAction, modelName) {
var def = $q.defer();
var sets = [];
- // console.log(svgXmlIn);
- var svcUrl = "/restservices/clds/v1/clds/";
var svcAction = uiAction.toLowerCase();
- if (svcAction == "save" || svcAction == "refresh") {
- svcUrl = svcUrl + "model/" + modelName;
- } else if (svcAction == "test") {
- svcUrl = svcUrl + "action/submit/" + modelName + "?test=true";
- } else {
- svcUrl = svcUrl + "action/" + svcAction + "/" + modelName;
- }
- var svcRequest = {
- name : modelName,
- controlNamePrefix : controlNamePrefixIn,
- bpmnText : bpmnTextIn,
- propText : propTextIn,
- imageText : svgXmlIn,
- templateName : templateName,
- typeId : typeID,
- deploymentId : deploymentId
- };
- handleQueryToBackend(def, svcAction, svcUrl, svcRequest);
+ var svcUrl = "/restservices/clds/v2/loop/" + svcAction + "/" + modelName;
+
+ $http.put(svcUrl).success(
+ function(data) {
+ def.resolve(data);
+ alertService.alertMessage("Action Successful: " + svcAction, 1)
+ // update deploymentID, lastUpdatedStatus
+ setLastComputedState(data.lastComputedState);
+ setDeploymentStatusURL(data.dcaeDeploymentStatusUrl);
+ setDeploymentID(data.dcaeDeploymentId);
+ }).error(
+ function(data) {
+ def.resolve(data);
+ alertService.alertMessage("Action Failure: " + svcAction, 2);
+ def.reject(svcAction + " not successful");
+ });
+
return def.promise;
};
this.manageAction = function(modelName, typeId, typeName) {
});
return def.promise;
};
- this.checkPermittedActionCd = function(permittedActionCd, menuText,
- actionCd) {
-
- if (permittedActionCd.indexOf(actionCd) > -1) {
- document.getElementById(menuText).classList.remove('ThisLink');
- } else {
- document.getElementById(menuText).classList.add('ThisLink');
- }
- };
- this.processActionResponse = function(modelName, pars) {
-
- // populate control name (prefix and uuid here)
- var controlNamePrefix = pars.controlNamePrefix;
- var controlNameUuid = pars.controlNameUuid;
- deploymentId = pars.deploymentId;
- typeID = pars.typeId;
- var headerText = "Closed Loop Modeler - " + modelName;
- if (controlNameUuid != null) {
- headerText = headerText + " [" + controlNamePrefix
- + controlNameUuid + "]";
- }
- document.getElementById("modeler_name").textContent = headerText;
- document.getElementById("templa_name").textContent = ("Template Used - " + selected_template);
- setStatus(pars)
- disableBPMNAddSVG(pars);
- this.enableDisableMenuOptions(pars);
+ this.processActionResponse = function(modelName) {
+ // populate control name (prefix and uuid here)
+ $("#loop_name").text(getLoopName());
+ manageCLImage(modelName);
+ enableDisableMenuOptions();
};
- this.processRefresh = function(pars) {
-
- var newPars = pars;
- if (typeof pars.body !== 'undefined') {
- newPars = pars.body;
- }
- typeID = newPars.typeId;
- deploymentId = newPars.deploymentId;
- setStatus(newPars);
- this.enableDisableMenuOptions(newPars);
+ this.refreshStatus = function(modelName) {
+ var def = $q.defer();
+ var sets = [];
+ var svcUrl = "/restservices/clds/v2/loop/getstatus/" + modelName;
+ $http.get(svcUrl).success(function(data) {
+ setStatus(data.lastComputedState);
+ def.resolve(data);
+ }).error(function(data) {
+ def.reject("Refresh Status not successful");
+ });
+ return def.promise;
+ enableDisableMenuOptions();
}
- function setStatus() {
-
- var status = getStatus();
+ function setStatus(status) {
// apply color to status
var statusColor = 'white';
if (status.trim() === "DESIGN") {
statusColor = 'gray'
} else if (status.trim() === "DISTRIBUTED") {
statusColor = 'blue'
- } else if (status.trim() === "ACTIVE") {
+ } else if (status.trim() === "SUBMITTED") {
statusColor = 'green'
} else if (status.trim() === "STOPPED") {
statusColor = 'red'
'<span id="status_clds" style="position: absolute; left: 61%;top: 151px; font-size:20px;">Status: '
+ statusMsg + '</span>');
}
- function disableBPMNAddSVG(pars) {
-
- var svg = pars.imageText.substring(pars.imageText.indexOf("<svg"))
- if ($("#svgContainer").length > 0)
- $("#svgContainer").remove();
- $("#js-canvas").append(
- "<span id=\"svgContainer\">" + svg + "</span>");
- /* added code for height width viewBox */
- $("#svgContainer svg").removeAttr("height");
- $("#svgContainer svg").removeAttr('viewBox');
- $("#svgContainer svg").removeAttr('width');
- $("#svgContainer svg").attr('width', '100%');
- $("#svgContainer svg").attr('height', '100%');
- $("#svgContainer").click(
- function(event) {
-
- // console.log($(event.target).parent().html())
- // console.log($($(event.target).parent()).attr("data-element-id"))
- var name = $($(event.target).parent()).attr("data-element-id")
- lastElementSelected = $($(event.target).parent()).attr(
- "data-element-id")
- checkIfElementType(name)
- });
+ function manageCLImage(modelName) {
+ getModelImage(modelName).then(function(pars) {
+ var svg = pars;
+ if ($("#svgContainer").length > 0)
+ $("#svgContainer").remove();
+ $("#loop-content").append(
+ "<span id=\"svgContainer\">" + svg + "</span>");
+ $("#svgContainer svg").attr('width', '100%');
+ $("#svgContainer svg").attr('height', '100%');
+ $("#svgContainer").click(
+ function(event) {
+ var name = $($($($(event.target).parent()).parent()).parent()).attr("data-element-id")
+ checkIfElementType(name)
+ });
+ }, function(data) {
+ });
}
- this.enableDisableMenuOptions = function(pars) {
-
- var permittedActionCd = pars.permittedActionCd;
- // dropdown options - always true
- document.getElementById('Open CL').classList.remove('ThisLink');
- if (readMOnly) {
- // enable model options
- document.getElementById('Properties CL').classList
- .remove('ThisLink');
- document.getElementById('Close Model').classList
- .remove('ThisLink');
- // disable models options
- document.getElementById('Save CL').classList.add('ThisLink');
- document.getElementById('Revert Model Changes').classList
- .add('ThisLink');
- } else {
- // enable menu options
- document.getElementById('Save CL').classList.remove('ThisLink');
- document.getElementById('Properties CL').classList
- .remove('ThisLink');
- document.getElementById('Revert Model Changes').classList
- .remove('ThisLink');
- document.getElementById('Close Model').classList
- .remove('ThisLink');
- document.getElementById('Validation Test').classList
- .remove('ThisLink');
- document.getElementById('Refresh Status').classList
- .remove('ThisLink');
- }
- // enable/disable menu options based on permittedActionCd
- // list
- this.checkPermittedActionCd(permittedActionCd, 'Validation Test',
- 'TEST');
- this.checkPermittedActionCd(permittedActionCd, 'Submit', 'SUBMIT');
- this.checkPermittedActionCd(permittedActionCd, 'Resubmit',
- 'RESUBMIT');
- this.checkPermittedActionCd(permittedActionCd, 'Update', 'UPDATE');
- this.checkPermittedActionCd(permittedActionCd, 'Stop', 'STOP');
- this
- .checkPermittedActionCd(permittedActionCd, 'Restart', 'RESTART');
- this.checkPermittedActionCd(permittedActionCd, 'Delete', 'DELETE');
- this.checkPermittedActionCd(permittedActionCd, 'Deploy', 'DEPLOY');
- this.checkPermittedActionCd(permittedActionCd, 'UnDeploy',
- 'UNDEPLOY');
+ enableDisableMenuOptions = function() {
+ enableDefaultMenu();
+ enableAllActionMenu();
}
+ getModelImage = function(modelName) {
+ var def = $q.defer();
+ var sets = [];
+ var svcUrl = "/restservices/clds/v2/loop/svgRepresentation/" + modelName;
+ $http.get(svcUrl).success(function(data) {
+ def.resolve(data);
+ }).error(function(data) {
+ def.reject("Not able to get the model image");
+ });
+ return def.promise;
+ };
} ]);