Remove GBP-UI and all Dlux dependencies
[groupbasedpolicy.git] / groupbasedpolicy-ui / module / src / main / resources / gbp / resolved-policy / resolved-policy-list.service.js
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy-list.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy-list.service.js
deleted file mode 100644 (file)
index 5f6ac6c..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-define(['app/gbp/resolved-policy/resolved-policy.service'], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('ResolvedPolicyListService', ResolvedPolicyListService);
-
-    ResolvedPolicyListService.$inject = ['$filter', 'Restangular', 'ResolvedPolicyService'];
-
-    function ResolvedPolicyListService($filter, Restangular, ResolvedPolicyService) {
-        /* methods */
-        this.createList = createList;
-
-
-        function ResolvedPolicyList() {
-            /* properties */
-            this.data = [];
-
-            /* methods */
-            this.aggregateResolvedPolicies = aggregateResolvedPolicies;
-            this.get = get;
-            this.clearData = clearData;
-            this.setData = setData;
-
-            /* Implementation */
-            /**
-             * fills ResolvedPolicyList object with data
-             * @param data
-             */
-            function setData(data) {
-                var self = this;
-
-                if (data) {
-                    data.forEach(function (dataElement) {
-                        self.data.push(ResolvedPolicyService.createObject(dataElement));
-                    });
-                }
-            }
-
-            /**
-             * Clears data property of ResolvedPolicyList object
-             */
-            function clearData() {
-                var self = this;
-                self.data = [];
-            }
-
-            /**
-             * Reads data from operational datastore and filters it by tenant property if available
-             * @param tenant
-             * @param successCallback
-             */
-            function get(tenant, successCallback) {
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one('operational').one('resolved-policy:resolved-policies');
-
-                return restObj.get().then(function (data) {
-                    if (tenant) {
-                        self.data = $filter('filter')(data['resolved-policies']['resolved-policy'], {
-                            'consumer-tenant-id': tenant,
-                            'provider-tenant-id': tenant,
-                        });
-                    }
-                    else {
-                        self.data = data['resolved-policies']['resolved-policy'];
-                    }
-
-                    successCallback();
-                });
-            }
-
-            /**
-             * Process resolved policies and returns object with epgs and contracts properties
-             * @returns {{epgs: {}, contracts: {}}}
-             */
-            function aggregateResolvedPolicies() {
-                var self = this,
-                    result = { epgs: {}, contracts: {} };
-
-                self.data.forEach(function (rp) {
-                    processEpg(result, rp, 'consumer');
-                    processEpg(result, rp, 'provider');
-
-                    if (rp.hasOwnProperty('policy-rule-group-with-endpoint-constraints')) {
-                        processConstraints(
-                            result,
-                            rp['policy-rule-group-with-endpoint-constraints'],
-                            rp['provider-epg-id'],
-                            rp['consumer-epg-id']
-                        );
-                    }
-                });
-
-                return result;
-
-            }
-
-            /**
-             * Checks if exists object in returnValue.epgs and if not, creates one
-             * @param returnValue
-             * @param resolvedPolicyItem
-             * @param type
-             */
-            function processEpg(returnValue, resolvedPolicyItem, type) {
-                if (!returnValue.epgs.hasOwnProperty(resolvedPolicyItem[type + '-epg-id'])) {
-                    returnValue.epgs[resolvedPolicyItem[type + '-epg-id']] = {
-                        'provided-contracts': [],
-                        'consumed-contracts': [],
-                    };
-                }
-
-
-
-            }
-
-            /**
-             * Process policy-rule-group-with-endpoint-constraints from resolved-policy.
-             * Creates contracts and updates epgs with contract objects
-             * @param returnValue
-             * @param constraints
-             * @param providerEpgId
-             * @param consumerEpgId
-             */
-            function processConstraints(returnValue, constraints, providerEpgId, consumerEpgId) {
-                constraints.forEach(function (element) {
-                    element['policy-rule-group'].forEach(function (el) {
-                        var linkId = generateLinkId(el['contract-id'], providerEpgId, consumerEpgId);
-
-                        if (!returnValue.contracts.hasOwnProperty(linkId)) {
-                            returnValue.contracts[linkId] = {
-                                'contract-id': el['contract-id'],
-                                'linkId': linkId,
-                                'subjects': {},
-                                'type': '',
-                            };
-                        }
-
-                        if (!returnValue.contracts[linkId].subjects.hasOwnProperty(el['subject-name'])) {
-                            returnValue.contracts[linkId].subjects[el['subject-name']] = { 'resolved-rule': [] };
-                        }
-
-                        returnValue.contracts[linkId].subjects[el['subject-name']]['resolved-rule'] =
-                            returnValue.contracts[linkId].subjects[el['subject-name']]['resolved-rule'].concat(el['resolved-rule']);
-
-                        Object.keys(returnValue.contracts[linkId].subjects).forEach(function(key) {
-                            returnValue.contracts[linkId].type =
-                                getContractType(returnValue.contracts[linkId].subjects[key]) ? 'chain' : 'allow';
-                        })
-
-                        updateEpg(returnValue, returnValue.contracts[linkId], providerEpgId, 'provided');
-                        updateEpg(returnValue, returnValue.contracts[linkId], consumerEpgId, 'consumed');
-                    });
-                });
-            }
-
-            /**
-             * Updates epgobject with contract object
-             * @param returnValue
-             * @param contract
-             * @param epgId
-             * @param epgType
-             */
-            function updateEpg(returnValue, contract, epgId, epgType) {
-                returnValue.epgs[epgId][epgType + '-contracts'].push(contract);
-            }
-        }
-
-        /**
-         * Creates ResolvedPolicyList object
-         * @param data
-         * @returns {ResolvedPolicyList}
-         */
-        function createList(data) {
-            var obj = new ResolvedPolicyList();
-
-            if (data) {
-                obj.setData(data);
-            }
-
-            return obj;
-        }
-
-        /**
-         * creates linkId string from input parameters
-         * @param contractId
-         * @param providerEpgId
-         * @param consumerEpgId
-         * @returns {string}
-         */
-        function generateLinkId(contractId, providerEpgId, consumerEpgId) {
-            return contractId + '++' + providerEpgId + '++' + consumerEpgId;
-        }
-
-        function getContractType(subject) {
-            return subject['resolved-rule'].some(function(s) {
-                return s.action.some(function (a) {
-                    return a['action-definition-id'] === 'Action-Chain';
-                });
-            });
-        }
-    }
-
-    return ResolvedPolicyListService;
-});