1 define(['app/gbp/gbp.module'], function(gbp) {
\r
3 gbp.register.factory('GBPRestangular', function(Restangular, ENV) {
\r
4 return Restangular.withConfig(function(RestangularConfig) {
\r
5 RestangularConfig.setBaseUrl(ENV.getBaseURL("MD_SAL"));
\r
9 gbp.register.factory('GBPConstants', function() {
\r
10 var c = { colors: {}, strings: {}};
\r
12 c.strings.flood = 'flood';
\r
13 c.strings.bridge = 'bridge';
\r
14 c.strings.l3ctx = 'l3ctx';
\r
15 c.strings.subnet = 'subnet';
\r
17 c.strings.config = 'CONFIG';
\r
18 c.strings.oper = 'OPERATIONAL';
\r
19 c.strings.l2l3 = 'L2L3';
\r
20 c.strings.mock = 'MOCK';
\r
21 c.strings.sigmaTopoDefaultText = 'SIGMATOPODEFAULTTEXT';
\r
22 c.strings.sigmaTopoDefault = 'SIGMATOPODEFAULTTEXT';
\r
24 c.colors[c.strings.flood] = '#DF0101';
\r
25 c.colors[c.strings.bridge] = '#0080FF';
\r
26 c.colors[c.strings.l3ctx] = '#3ADF00';
\r
27 c.colors[c.strings.subnet] = '#FF9933';
\r
28 c.colors[c.strings.sigmaTopoDefaultText] = '#fff';
\r
30 c.colors[c.strings.flood+'-'+c.strings.bridge] = '#6666FF';
\r
31 c.colors[c.strings.bridge+'-'+c.strings.l3ctx] = '#6666FF';
\r
33 c.colors[c.strings.subnet+'-'] = '#6666FF';
\r
38 gbp.register.factory('MockServices', function() {
\r
42 ms.mockTopoData = function() {
\r
44 nodeRaw = [0, 1, 2, 3],
\r
45 linkRaw = [[0, 1], [2, 3], [3, 0], [0, 3]],
\r
46 nodes = nodeRaw.map(function(data) {
\r
49 'label': 'LABEL'+data,
\r
53 'color': GBPConstants.colors[GBPConstants.strings.sigmaTopoDefault]
\r
56 links = linkRaw.map(function(data) {
\r
59 source: 'n' + data[0],
\r
60 target: 'n' + data[1],
\r
61 color: GBPConstants.colors[GBPConstants.strings.sigmaTopoDefault]
\r
67 return {nodes: nodes, links: links};
\r
73 gbp.register.factory('TopologyDataLoaders', function(GBPRestangular, GBPConstants) {
\r
76 tdl.getSubjectsBetweenEndpointGroups = function(storage, tenantId, successCbk, errorCbk) {
\r
77 var restObj = GBPRestangular.one('restconf').one('operations'),
\r
78 rpcRes = 'ui-backend:get-subjects-between-endpoint-groups',
\r
79 reqData = { "input": { "tenant-id": tenantId }};
\r
82 reqData.input['from-oper-data'] = {};
\r
85 restObj.post(rpcRes, reqData).then(function(data) {
\r
86 // console.info('got data', data.output);
\r
93 //Policies are representing links in PGN topology
\r
94 tdl.getGroupRulesBetweenEndpointGroups = function(successCbk, errorCbk) {
\r
95 var restObj = GBPRestangular.one('restconf').one('operations'),
\r
96 rpcRes = 'pgn-application:get-group-rules-between-endpoint-groups',
\r
97 reqData = { "input": { "endpoint-group-pair":[] }};
\r
99 restObj.post(rpcRes, reqData).then(function(data) {
\r
100 successCbk(data); //set topology links
\r
106 //Groups are representing nodes in PGN topology
\r
107 tdl.getEndpointGroups = function(successCbk, errorCbk) {
\r
108 var tenantId = getId(idTypes.tenant),
\r
109 restObj = GBPRestangular.one('restconf').one('operations'),
\r
110 rpcRes = 'pgn-application:get-endpoint-groups',
\r
113 "endpoint-group-id":[
\r
115 "pgn-application:tenant-id": tenantId
\r
121 restObj.post(rpcRes, reqData).then(function(data) {
\r
122 successCbk(data); //set topology nodes
\r
129 tdl.getEpgTopo = function(data){
\r
130 var epgData = data.output['endpoint-group-pair-with-subject'],
\r
133 setNode = function(obj){
\r
135 'id': 'n' + nodes.length,
\r
136 'label': obj.name || obj.id,
\r
139 'x': Math.random(),
\r
140 'y': Math.random(),
\r
141 'color': GBPConstants.colors[GBPConstants.strings.sigmaTopoDefault]
\r
144 nodes.push(nodeObj);
\r
147 setEdge = function(sourceId, destId, data) {
\r
149 'id': 'e' + edges.length,
\r
150 'source': sourceId,
\r
152 'color': GBPConstants.colors[GBPConstants.strings.sigmaTopoDefault],
\r
154 // 'type': 'curve',
\r
160 getObjByProp = function(val, prop, list) {
\r
161 return list.filter(function(i){
\r
162 return i[prop] === val;
\r
167 epgData.forEach(function(e){
\r
168 var cepgnId = null,
\r
171 if ( !getObjByProp(e['consumer-endpoint-group-id'],'name', nodes).length ) {
\r
174 name: e['consumer-endpoint-group-id']
\r
176 cepgnId = setNode(objCepg);
\r
178 cepgnId = getObjByProp(e['consumer-endpoint-group-id'],'name', nodes)[0].id;
\r
180 if ( !getObjByProp(e['provider-endpoint-group-id'],'name', nodes).length ) {
\r
183 name: e['provider-endpoint-group-id']
\r
185 pepgnId = setNode(objPepg);
\r
187 pepgnId = getObjByProp(e['provider-endpoint-group-id'],'name', nodes)[0].id;
\r
189 if ( cepgnId && pepgnId ) {
\r
190 setEdge(cepgnId, pepgnId, e['ui-subject']);
\r
202 tdl.getL2L3 = function(storage, tenantId, successCbk, errorCbk) {
\r
206 getL2L3Label = function(node) {
\r
207 return node.name || node.id;
\r
209 getSubnetLabel = function(node) {
\r
210 return node['ip-prefix'] || node.id;
\r
212 getNodeColor = function(src) {
\r
213 return GBPConstants.colors[src] || GBPConstants.colors[GBPConstants.strings.sigmaTopoDefault];
\r
215 getLinkColor = function(from, to) {
\r
216 return GBPConstants.colors[from+'-'+to] || GBPConstants.colors[GBPConstants.strings.sigmaTopoDefault];
\r
218 getNodes = function(data, srcDesc, getLabelCbk) {
\r
219 var nodes = data.map(function(elem) {
\r
222 'label': getLabelCbk(elem),
\r
225 'x': Math.random(),
\r
226 'y': Math.random(),
\r
227 'color': getNodeColor(srcDesc)
\r
236 getLinks = function(data, srcNodes, targetNodes, fromDesc, toDesc) {
\r
237 var findByUUID = function(array, uuid) {
\r
238 return array.filter(function(elem) {
\r
239 return elem.uuid === uuid;
\r
243 var links = data.map(function(elem) {
\r
245 src = findByUUID(srcNodes, elem.id),
\r
246 trg = findByUUID(targetNodes, elem.parent);
\r
253 'color': getLinkColor(fromDesc, toDesc)
\r
259 }).filter(function(elem) {
\r
260 return elem !== null;
\r
266 restObj = GBPRestangular.one('restconf').one(storage).one('policy:tenants').one('tenant').one(tenantId);
\r
268 restObj.get().then(function(data) {
\r
269 var l2FloodNodes = getNodes(data.tenant[0]['l2-flood-domain'] || [], GBPConstants.strings.flood, getL2L3Label),
\r
270 l2BridgeNodes = getNodes(data.tenant[0]['l2-bridge-domain'] || [], GBPConstants.strings.bridge, getL2L3Label),
\r
271 l3ContextNodes = getNodes(data.tenant[0]['l3-context'] || [], GBPConstants.strings.l3ctx, getL2L3Label),
\r
272 subnetNodes = getNodes(data.tenant[0]['subnet'] || [], GBPConstants.strings.subnet, getSubnetLabel),
\r
273 l2FloodLinks = getLinks(data.tenant[0]['l2-flood-domain'] || [], l2FloodNodes, l2BridgeNodes, GBPConstants.strings.flood, GBPConstants.strings.bridge),
\r
274 l2BridgeLinks = getLinks(data.tenant[0]['l2-bridge-domain'] || [], l2BridgeNodes, l3ContextNodes, GBPConstants.strings.bridge, GBPConstants.strings.l3ctx),
\r
275 subnetLinks = getLinks(data.tenant[0]['subnet'] || [], subnetNodes, l2BridgeNodes.concat(l2FloodNodes).concat(l3ContextNodes), GBPConstants.strings.subnet, ''),
\r
276 allNodes = l2BridgeNodes.concat(l2FloodNodes).concat(l3ContextNodes).concat(subnetNodes),
\r
277 allLinks = l2BridgeLinks.concat(l2FloodLinks).concat(subnetLinks);
\r
279 successCbk(allNodes, allLinks);
\r
281 errorCbk(res.data, res.status);
\r
289 gbp.register.factory('TopoServices', function(TopologyDataLoaders, MockServices, GBPConstants) {
\r
297 var transformPGNTopoNodes = function(data) {
\r
298 return data.output['endpoint-group'].map(function(d) {
\r
302 sgt: d['security-group-tag']
\r
307 var transformPGNTopoLinks = function(data) {
\r
308 return data.output['endpoint-group-pair-with-rules'].map(function(d) {
\r
310 source: d['provider-group-id'],
\r
311 target: d['consumer-group-id'],
\r
312 policy: d['group-rule'][0]['action-ref'].map(function(r) {
\r
320 'epg' : GBPConstants.colors[GBPConstants.strings.sigmaTopoDefault]
\r
323 legends[GBPConstants.strings.empty] = {};
\r
324 legends[GBPConstants.strings.config] = gbpLegend;
\r
325 legends[GBPConstants.strings.oper] = gbpLegend;
\r
326 legends[GBPConstants.strings.mock] = gbpLegend;
\r
327 legends[GBPConstants.strings.l2l3] = {
\r
328 'l2-flood': GBPConstants.colors[GBPConstants.strings.flood],
\r
329 'l2-bridge': GBPConstants.colors[GBPConstants.strings.bridge],
\r
330 'l3-context': GBPConstants.colors[GBPConstants.strings.l3ctx],
\r
331 'subnet': GBPConstants.colors[GBPConstants.strings.subnet],
\r
332 'link': GBPConstants.colors[GBPConstants.strings.subnet+'-']
\r
335 loaders[GBPConstants.strings.empty] = function(successCbk, errorCbk) {
\r
336 successCbk([], []);
\r
339 loaders[GBPConstants.strings.config] = function(successCbk, errorCbk, args) {
\r
340 var storage = args.storage || 'config',
\r
341 tenantId = args.tenantId;
\r
344 TopologyDataLoaders.getSubjectsBetweenEndpointGroups(false, tenantId, function(data){
\r
345 var topo = TopologyDataLoaders.getEpgTopo(data);
\r
346 successCbk(topo.nodes, topo.links);
\r
351 loaders[GBPConstants.strings.oper] = function(successCbk, errorCbk, args) {
\r
352 var storage = args.storage || 'config',
\r
353 tenantId = args.tenantId;
\r
355 TopologyDataLoaders.getSubjectsBetweenEndpointGroups(true, tenantId, function(data){
\r
356 var topo = TopologyDataLoaders.getEpgTopo(data);
\r
357 successCbk(topo.nodes, topo.links);
\r
362 loaders[GBPConstants.strings.l2l3] = function(successCbk, errorCbk, args) {
\r
363 var storage = args.storage || 'config',
\r
364 tenantId = args.tenantId;
\r
366 if(storage && tenantId) {
\r
367 TopologyDataLoaders.getL2L3(storage, tenantId, successCbk, errorCbk);
\r
369 //different kind of error
\r
374 loaders[GBPConstants.strings.mock] = function(successCbk, errorCbk) {
\r
375 var data = MockServices.mockTopoData();
\r
376 successCbk(data.nodes, data.links);
\r
379 ts.getConsProvLabel = function(edge, topo){
\r
383 topo.nodes.forEach(function(n){
\r
385 if ( edge.source === n.id ) {
\r
389 if ( edge.target === n.id ) {
\r
394 return provName + ':' + conName;
\r
397 ts.getLegend = function(type) {
\r
398 if(type === null || legends.hasOwnProperty(type) === false) {
\r
399 type = GBPConstants.strings.empty;
\r
402 return legends[type];
\r
405 ts.loadTopology = function(type, successCbk, errorCbk, args) {
\r
406 if(type === null || loaders.hasOwnProperty(type) === false) {
\r
407 type = GBPConstants.strings.empty;
\r
410 loaders[type](successCbk, errorCbk, args);
\r
416 gbp.register.factory('GPBServices', function(GBPRestangular) {
\r
420 s.getDefinitions = function(successCbk, errorCbk) {
\r
421 var restObj = GBPRestangular.one('restconf').one('operational').one('policy:subject-feature-definitions');
\r
423 restObj.get().then(function(data) {
\r
424 if(data['subject-feature-definitions']) {
\r
425 var classifiersDefs = data['subject-feature-definitions']['classifier-definition'] || [],
\r
426 actionsDefs = data['subject-feature-definitions']['action-definition'] || [];
\r
427 successCbk(classifiersDefs, actionsDefs);
\r
436 s.getUUIDnumber = function() {
\r
437 var d = new Date().getTime();
\r
438 return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
\r
439 var r = (d + Math.random()*16)%16 | 0;
\r
440 d = Math.floor(d/16);
\r
441 return (c=='x' ? r : (r&0x3|0x8)).toString(16);
\r
445 s.createRestObj = function(storage) {
\r
446 storage = storage || 'config';
\r
447 restObj = GBPRestangular.one('restconf').one(storage);
\r
452 s.send = function(restObj, reqData, successCbk, errorCbk) {
\r
453 restObj.customPUT(reqData).then(function(data) {
\r
456 errorCbk(res.data, res.status);
\r
460 s.post = function(restObj, reqData, successCbk, errorCbk) {
\r
461 restObj.customPOST(reqData).then(function(data) {
\r
464 errorCbk(res.data, res.status);
\r
468 s.delete = function(restObj, successCbk, errorCbk) {
\r
469 restObj.remove().then(function(data) {
\r
472 errorCbk(res.data, res.status);
\r
476 s.load = function(restObj, transformCallback, successCbk, errorCbk) {
\r
477 restObj.get().then(function(data) {
\r
478 var objs = transformCallback(data) || [];
\r
481 errorCbk(res.data, res.status);
\r
485 s.stripNullValues = function(obj) {
\r
486 Object.keys(obj).forEach(function(k) {
\r
487 if(obj[k] === null) {
\r
495 s.removeEmptyElementsFromList = function(list) {
\r
496 return list.filter(function(e) {
\r
501 s.createParamObj = function(name, type, value) {
\r
502 var obj = { name: name };
\r
504 obj[type+'-value'] = value;
\r
509 s.getInstanceParamValue = function(param) {
\r
510 return param['int-value'] || param['string-value'] || param['range-value'];
\r
513 s.getDefinitionObjParams = function(defObj, id) {
\r
514 var obj = defObj.filter(function(def) {
\r
515 return def.id === id;
\r
517 params = (obj && obj.parameter) ? obj.parameter : [];
\r
527 gbp.register.factory('GBPTenantServices', function(GPBServices) {
\r
531 var Tenant = function(id, name, description) {
\r
532 this.id = id || GPBServices.getUUIDnumber();
\r
533 this.name = name || null;
\r
534 this.description = description || null;
\r
537 var createBaseRestObj = function() {
\r
539 .createRestObj().one('policy:tenants');
\r
542 var createRestObj = function(pathObj) {
\r
543 return createBaseRestObj().one('tenant').one(pathObj.tenantId);
\r
546 var transformCallback = function(rawData) {
\r
547 // return rawData.map(function(rawObj){
\r
548 // return new Tenant(rawObj.id, rawObj.name, rawObj.description);
\r
550 return rawData.tenants.tenant;
\r
553 var createData = function(obj) {
\r
554 return { tenant : [ GPBServices.stripNullValues(obj) ] };
\r
557 s.createPathObj = function(tenantId) {
\r
563 s.createObj = function() {
\r
564 return new Tenant();
\r
567 s.send = function(path, obj, successCbk, errorCbk) {
\r
568 var restObj = createRestObj(path),
\r
569 reqData = createData(obj);
\r
571 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
574 s.modify = function(path, obj, successCbk, errorCbk) {
\r
575 var restObj = createRestObj(path),
\r
576 reqData = createData(obj);
\r
578 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
581 s.delete = function(path, successCbk, errorCbk) {
\r
582 var restObj = createRestObj(path);
\r
584 GPBServices.delete(restObj, successCbk, errorCbk);
\r
587 s.load = function(successCbk, errorCbk) {
\r
588 var restObj = createBaseRestObj();
\r
589 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
596 gbp.register.factory('GBPContractServices', function(GPBServices) {
\r
600 var Contract = function(id, description, parent) {
\r
601 this.id = id || GPBServices.getUUIDnumber();
\r
602 this.description = description || null;
\r
603 this.parent = parent || null;
\r
606 var createBaseRestObj = function(pathObj) {
\r
607 return GPBServices.createRestObj().one('policy:tenants').one('tenant').one(pathObj.tenantId);
\r
610 var createRestObj = function(pathObj) {
\r
611 return createBaseRestObj(pathObj).one('contract').one(pathObj.contractId);
\r
614 var transformCallback = function(rawData) {
\r
615 // return rawData.map(function(rawObj){
\r
616 // return new Contract(rawObj.id, rawObj.description);
\r
618 return rawData.tenant[0].contract;
\r
621 var createData = function(obj) {
\r
622 return { contract : [ GPBServices.stripNullValues(obj) ] };
\r
625 s.createPathObj = function(tenantId, contractId) {
\r
627 tenantId: tenantId,
\r
628 contractId: contractId
\r
632 s.createObj = function() {
\r
633 return new Contract();
\r
636 s.send = function(path, obj, successCbk, errorCbk) {
\r
637 var restObj = createRestObj(path),
\r
638 reqData = createData(obj);
\r
640 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
643 s.delete = function(path, successCbk, errorCbk) {
\r
644 var restObj = createRestObj(path);
\r
646 GPBServices.delete(restObj, successCbk, errorCbk);
\r
649 s.load = function(path, successCbk, errorCbk) {
\r
650 var restObj = createBaseRestObj(path);
\r
652 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
659 gbp.register.factory('GBPClauseServices', function(GPBServices) {
\r
663 var Clause = function(name, subjectRefs) {
\r
664 this.name = name || null;
\r
665 this['subject-refs'] = subjectRefs || [];
\r
668 var createBaseRestObj = function(pathObj) {
\r
669 return GPBServices.createRestObj()
\r
670 .one('policy:tenants').one('tenant').one(pathObj.tenantId)
\r
671 .one('contract').one(pathObj.contractId);
\r
674 var createRestObj = function(pathObj) {
\r
675 return createBaseRestObj(pathObj).one('clause').one(pathObj.clauseId);
\r
678 var transformCallback = function(rawData) {
\r
680 clauseData = rawData.contract[0].clause;
\r
683 data = clauseData.map(function(elem) {
\r
684 if(elem.hasOwnProperty('subject-refs') === false) {
\r
685 elem['subject-refs'] = [];
\r
694 var createData = function(obj) {
\r
695 var o = GPBServices.stripNullValues(obj);
\r
697 if(o['subject-refs']) {
\r
698 o['subject-refs'] = GPBServices.removeEmptyElementsFromList(o['subject-refs']);
\r
701 return { clause : [ o ] };
\r
704 s.createPathObj = function(tenantId, contractId, clauseId) {
\r
706 tenantId: tenantId,
\r
707 contractId: contractId,
\r
712 s.createObj = function() {
\r
713 return new Clause();
\r
716 s.send = function(path, obj, successCbk, errorCbk) {
\r
717 var restObj = createRestObj(path),
\r
718 reqData = createData(obj);
\r
720 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
723 s.delete = function(path, successCbk, errorCbk) {
\r
724 var restObj = createRestObj(path);
\r
726 GPBServices.delete(restObj, successCbk, errorCbk);
\r
729 s.load = function(path, successCbk, errorCbk) {
\r
730 var restObj = createBaseRestObj(path);
\r
732 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
739 gbp.register.factory('GBPSubjectServices', function(GPBServices) {
\r
743 var Subject = function(name, order) {
\r
744 this.name = name || null;
\r
745 this.order = order || null;
\r
748 var createBaseRestObj = function(pathObj) {
\r
749 return GPBServices.createRestObj()
\r
750 .one('policy:tenants').one('tenant').one(pathObj.tenantId)
\r
751 .one('contract').one(pathObj.contractId);
\r
754 var createRestObj = function(pathObj) {
\r
755 return createBaseRestObj(pathObj).one('subject').one(pathObj.subjectId);
\r
758 var transformCallback = function(rawData) {
\r
759 // return rawData.map(function(rawObj){
\r
760 // return new Subject(rawObj.name, rawObj.order);
\r
762 return rawData.contract[0].subject;
\r
765 var createData = function(obj) {
\r
766 return { subject : [ GPBServices.stripNullValues(obj) ] };
\r
769 s.createPathObj = function(tenantId, contractId, subjectId) {
\r
771 tenantId: tenantId,
\r
772 contractId: contractId,
\r
773 subjectId: subjectId
\r
777 s.createObj = function() {
\r
778 return new Subject();
\r
781 s.send = function(path, obj, successCbk, errorCbk) {
\r
782 var restObj = createRestObj(path),
\r
783 reqData = createData(obj);
\r
785 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
788 s.delete = function(path, successCbk, errorCbk) {
\r
789 var restObj = createRestObj(path);
\r
791 GPBServices.delete(restObj, successCbk, errorCbk);
\r
794 s.load = function(path, successCbk, errorCbk) {
\r
795 var restObj = createBaseRestObj(path);
\r
797 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
804 gbp.register.factory('GBPRuleServices', function(GPBServices) {
\r
808 var Rule = function(name, order) {
\r
809 this.name = name || null;
\r
810 this.order = order || null;
\r
813 var createBaseRestObj = function(pathObj) {
\r
814 return GPBServices.createRestObj()
\r
815 .one('policy:tenants').one('tenant')
\r
816 .one(pathObj.tenantId).one('contract').one(pathObj.contractId)
\r
817 .one('subject').one(pathObj.subjectId);
\r
820 var createRestObj = function(pathObj) {
\r
821 return createBaseRestObj(pathObj).one('rule').one(pathObj.ruleId);
\r
824 var transformCallback = function(rawData) {
\r
825 // return rawData.map(function(rawObj){
\r
826 // return new Rule(rawObj.name, rawObj.order);
\r
828 return rawData.subject[0].rule;
\r
831 var createData = function(obj) {
\r
832 return { rule : [ GPBServices.stripNullValues(obj) ] };
\r
835 s.createPathObj = function(tenantId, contractId, subjectId, ruleId) {
\r
837 tenantId: tenantId,
\r
838 contractId: contractId,
\r
839 subjectId: subjectId,
\r
844 s.createObj = function() {
\r
848 s.send = function(path, obj, successCbk, errorCbk) {
\r
849 var restObj = createRestObj(path),
\r
850 reqData = createData(obj);
\r
852 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
855 s.delete = function(path, successCbk, errorCbk) {
\r
856 var restObj = createRestObj(path);
\r
858 GPBServices.delete(restObj, successCbk, errorCbk);
\r
861 s.load = function(path, successCbk, errorCbk) {
\r
862 var restObj = createBaseRestObj(path);
\r
864 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
871 gbp.register.factory('GBPClassifierRefsServices', function(GPBServices) {
\r
875 var ClassifierRef = function(name, direction, instanceName, connectionTracking) {
\r
876 this.name = name || null;
\r
877 this.direction = direction || null;
\r
878 this['instance-name'] = instanceName || null;
\r
879 this['connection-tracking'] = connectionTracking || null;
\r
882 var createBaseRestObj = function(pathObj) {
\r
883 return GPBServices.createRestObj()
\r
884 .one('policy:tenants').one('tenant')
\r
885 .one(pathObj.tenantId).one('contract').one(pathObj.contractId)
\r
886 .one('subject').one(pathObj.subjectId)
\r
887 .one('rule').one(pathObj.ruleId);
\r
890 var createRestObj = function(pathObj) {
\r
891 return createBaseRestObj(pathObj).one('classifier-ref').one(pathObj.classifierRefId);
\r
894 var transformCallback = function(rawData) {
\r
895 // return rawData.map(function(rawObj){
\r
896 // return new ClassifierRef(rawObj.name, rawObj.direction, rawObj['instance-name']);
\r
898 return rawData.rule[0]['classifier-ref'];
\r
901 var createData = function(obj) {
\r
902 return { 'classifier-ref' : [ GPBServices.stripNullValues(obj) ] };
\r
905 s.createPathObj = function(tenantId, contractId, subjectId, ruleId, classifierRefId) {
\r
907 tenantId: tenantId,
\r
908 contractId: contractId,
\r
909 subjectId: subjectId,
\r
911 classifierRefId: classifierRefId
\r
915 s.createObj = function() {
\r
916 return new ClassifierRef();
\r
919 s.send = function(path, obj, successCbk, errorCbk) {
\r
920 var restObj = createRestObj(path),
\r
921 reqData = createData(obj);
\r
923 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
926 s.delete = function(path, successCbk, errorCbk) {
\r
927 var restObj = createRestObj(path);
\r
929 GPBServices.delete(restObj, successCbk, errorCbk);
\r
932 s.load = function(path, successCbk, errorCbk) {
\r
933 var restObj = createBaseRestObj(path);
\r
935 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
942 gbp.register.factory('GBPActionRefsServices', function(GPBServices) {
\r
946 var ActionRef = function(name, order, instanceName) {
\r
947 this.name = name || null;
\r
948 this.order = order || null;
\r
951 var createBaseRestObj = function(pathObj) {
\r
952 return GPBServices.createRestObj()
\r
953 .one('policy:tenants').one('tenant')
\r
954 .one(pathObj.tenantId).one('contract').one(pathObj.contractId)
\r
955 .one('subject').one(pathObj.subjectId)
\r
956 .one('rule').one(pathObj.ruleId);
\r
959 var createRestObj = function(pathObj) {
\r
960 return createBaseRestObj(pathObj).one('action-ref').one(pathObj.actionRefId);
\r
963 var transformCallback = function(rawData) {
\r
964 // return rawData.map(function(rawObj){
\r
965 // return new ActionRef(rawObj.name, rawObj.order);
\r
967 return rawData.rule[0]['action-ref'];
\r
970 var createData = function(obj) {
\r
971 return { 'action-ref' : [ GPBServices.stripNullValues(obj) ] };
\r
974 s.createPathObj = function(tenantId, contractId, subjectId, ruleId, actionRefId) {
\r
976 tenantId: tenantId,
\r
977 contractId: contractId,
\r
978 subjectId: subjectId,
\r
980 actionRefId: actionRefId
\r
984 s.createObj = function() {
\r
985 return new ActionRef();
\r
988 s.send = function(path, obj, successCbk, errorCbk) {
\r
989 var restObj = createRestObj(path),
\r
990 reqData = createData(obj);
\r
992 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
995 s.delete = function(path, successCbk, errorCbk) {
\r
996 var restObj = createRestObj(path);
\r
998 GPBServices.delete(restObj, successCbk, errorCbk);
\r
1001 s.load = function(path, successCbk, errorCbk) {
\r
1002 var restObj = createBaseRestObj(path);
\r
1004 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1011 gbp.register.factory('GBPL2FloodDomainServices', function(GPBServices) {
\r
1015 var L2FloodDomain = function(id, name, description, parent) {
\r
1016 this.id = id || GPBServices.getUUIDnumber();
\r
1017 this.name = name || null;
\r
1018 this.description = description || null;
\r
1019 this.parent = parent || null;
\r
1022 var createBaseRestObj = function(pathObj) {
\r
1023 return GPBServices.createRestObj()
\r
1024 .one('policy:tenants').one('tenant').one(pathObj.tenantId);
\r
1027 var createRestObj = function(pathObj) {
\r
1028 return createBaseRestObj(pathObj).one('l2-flood-domain').one(pathObj.l2FloodDomain);
\r
1031 var transformCallback = function(rawData) {
\r
1032 // return rawData.map(function(rawObj){
\r
1033 // return new L2FloodDomain(rawObj.id, rawObj.name, rawObj.description, rawObj.parent);
\r
1035 return rawData.tenant[0]['l2-flood-domain'];
\r
1038 var createData = function(obj) {
\r
1039 return { 'l2-flood-domain' : [ GPBServices.stripNullValues(obj) ] };
\r
1042 s.createPathObj = function(tenantId, l2FloodDomain) {
\r
1044 tenantId: tenantId,
\r
1045 l2FloodDomain: l2FloodDomain
\r
1049 s.createObj = function() {
\r
1050 return new L2FloodDomain();
\r
1053 s.send = function(path, obj, successCbk, errorCbk) {
\r
1054 var restObj = createRestObj(path),
\r
1055 reqData = createData(obj);
\r
1057 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
1060 s.delete = function(path, successCbk, errorCbk) {
\r
1061 var restObj = createRestObj(path);
\r
1063 GPBServices.delete(restObj, successCbk, errorCbk);
\r
1066 s.load = function(path, successCbk, errorCbk) {
\r
1067 var restObj = createBaseRestObj(path);
\r
1069 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1076 gbp.register.factory('GBPL2BridgeDomainServices', function(GPBServices) {
\r
1080 var L2BridgeDomain = function(id, name, description, parent) {
\r
1081 this.id = id || GPBServices.getUUIDnumber();
\r
1082 this.name = name || null;
\r
1083 this.description = description || null;
\r
1084 this.parent = parent || null;
\r
1087 var createBaseRestObj = function(pathObj) {
\r
1088 return GPBServices.createRestObj()
\r
1089 .one('policy:tenants').one('tenant')
\r
1090 .one(pathObj.tenantId);
\r
1093 var createRestObj = function(pathObj) {
\r
1094 return createBaseRestObj(pathObj).one('l2-bridge-domain').one(pathObj.l2BridgeDomain);
\r
1097 var transformCallback = function(rawData) {
\r
1098 // return rawData.map(function(rawObj){
\r
1099 // return new L2BridgeDomain(rawObj.id, rawObj.name, rawObj.description, rawObj.parent);
\r
1101 return rawData.tenant[0]['l2-bridge-domain'];
\r
1104 var createData = function(obj) {
\r
1105 return { 'l2-bridge-domain' : [ GPBServices.stripNullValues(obj) ] };
\r
1108 s.createPathObj = function(tenantId, l2BridgeDomain) {
\r
1110 tenantId: tenantId,
\r
1111 l2BridgeDomain: l2BridgeDomain
\r
1115 s.createObj = function() {
\r
1116 return new L2BridgeDomain();
\r
1119 s.send = function(path, obj, successCbk, errorCbk) {
\r
1120 var restObj = createRestObj(path),
\r
1121 reqData = createData(obj);
\r
1123 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
1126 s.delete = function(path, successCbk, errorCbk) {
\r
1127 var restObj = createRestObj(path);
\r
1129 GPBServices.delete(restObj, successCbk, errorCbk);
\r
1132 s.load = function(path, successCbk, errorCbk) {
\r
1133 var restObj = createBaseRestObj(path);
\r
1135 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1142 gbp.register.factory('GBPL3ContextServices', function(GPBServices) {
\r
1146 var L3Context = function(id, name, description) {
\r
1147 this.id = id || GPBServices.getUUIDnumber();
\r
1148 this.name = name || null;
\r
1149 this.description = description || null;
\r
1152 var createBaseRestObj = function(pathObj) {
\r
1153 return GPBServices.createRestObj()
\r
1154 .one('policy:tenants').one('tenant').one(pathObj.tenantId);
\r
1157 var createRestObj = function(pathObj) {
\r
1158 return createBaseRestObj(pathObj).one('l3-context').one(pathObj.l3Context);
\r
1161 var transformCallback = function(rawData) {
\r
1162 // return rawData.map(function(rawObj){
\r
1163 // return new L3Context(rawObj.id, rawObj.name, rawObj.description);
\r
1165 return rawData.tenant[0]['l3-context'];
\r
1168 var createData = function(obj) {
\r
1169 return { 'l3-context' : [ GPBServices.stripNullValues(obj) ] };
\r
1172 s.createPathObj = function(tenantId, l3Context) {
\r
1174 tenantId: tenantId,
\r
1175 l3Context: l3Context
\r
1179 s.createObj = function() {
\r
1180 return new L3Context();
\r
1183 s.send = function(path, obj, successCbk, errorCbk) {
\r
1184 var restObj = createRestObj(path),
\r
1185 reqData = createData(obj);
\r
1187 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
1190 s.delete = function(path, successCbk, errorCbk) {
\r
1191 var restObj = createRestObj(path);
\r
1193 GPBServices.delete(restObj, successCbk, errorCbk);
\r
1196 s.load = function(path, successCbk, errorCbk) {
\r
1197 var restObj = createBaseRestObj(path);
\r
1199 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1206 gbp.register.factory('GBPSubnetServices', function(GPBServices) {
\r
1210 var Subnet = function(id, name, description, parent, ipPrefix, virtualRouterIp) {
\r
1211 this.id = id || GPBServices.getUUIDnumber();
\r
1212 this.name = name || null;
\r
1213 this.description = description || null;
\r
1214 this.parent = parent || null;
\r
1215 this['ip-prefix'] = ipPrefix || null;
\r
1216 this['virtual-router-ip'] = virtualRouterIp || null;
\r
1219 var createBaseRestObj = function(pathObj) {
\r
1220 return GPBServices.createRestObj()
\r
1221 .one('policy:tenants').one('tenant').one(pathObj.tenantId);
\r
1224 var createRestObj = function(pathObj) {
\r
1225 return createBaseRestObj(pathObj).one('subnet').one(pathObj.subnet);
\r
1228 var transformCallback = function(rawData) {
\r
1229 // return rawData.map(function(rawObj){
\r
1230 // return new L3Context(rawObj.id, rawObj.name, rawObj.description);
\r
1232 return rawData.tenant[0]['subnet'];
\r
1235 var createData = function(obj) {
\r
1236 return { 'subnet' : [ GPBServices.stripNullValues(obj) ] };
\r
1239 s.createPathObj = function(tenantId, subnet) {
\r
1241 tenantId: tenantId,
\r
1246 s.createObj = function() {
\r
1247 return new Subnet();
\r
1250 s.send = function(path, obj, successCbk, errorCbk) {
\r
1251 var restObj = createRestObj(path),
\r
1252 reqData = createData(obj);
\r
1254 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
1257 s.delete = function(path, successCbk, errorCbk) {
\r
1258 var restObj = createRestObj(path);
\r
1260 GPBServices.delete(restObj, successCbk, errorCbk);
\r
1263 s.load = function(path, successCbk, errorCbk) {
\r
1264 var restObj = createBaseRestObj(path);
\r
1266 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1273 gbp.register.factory('GBPGatewayServices', function(GPBServices) {
\r
1277 var Gateway = function(gateway) {
\r
1278 this.gateway = gateway || null;
\r
1281 var createBaseRestObj = function(pathObj) {
\r
1282 return GPBServices.createRestObj()
\r
1283 .one('policy:tenants').one('tenant').one(pathObj.tenantId).one('subnet').one(pathObj.subnetId);
\r
1286 var createRestObj = function(pathObj) {
\r
1287 return createBaseRestObj(pathObj).one('gateways').one(pathObj.gateway);
\r
1290 var transformCallback = function(rawData) {
\r
1291 // return rawData.map(function(rawObj){
\r
1292 // return new L3Context(rawObj.id, rawObj.name, rawObj.description);
\r
1294 return rawData.subnet[0]['gateways'];
\r
1297 var createData = function(obj) {
\r
1298 return { 'gateways' : [ GPBServices.stripNullValues(obj) ] };
\r
1301 s.createPathObj = function(tenantId, subnetId, gateway) {
\r
1303 tenantId: tenantId,
\r
1304 subnetId: subnetId,
\r
1309 s.createObj = function() {
\r
1310 return new Gateway();
\r
1313 s.send = function(path, obj, successCbk, errorCbk) {
\r
1314 var restObj = createRestObj(path),
\r
1315 reqData = createData(obj);
\r
1317 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
1320 s.delete = function(path, successCbk, errorCbk) {
\r
1321 var restObj = createRestObj(path);
\r
1323 GPBServices.delete(restObj, successCbk, errorCbk);
\r
1326 s.load = function(path, successCbk, errorCbk) {
\r
1327 var restObj = createBaseRestObj(path);
\r
1329 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1336 gbp.register.factory('GBPPrefixServices', function(GPBServices) {
\r
1340 var Prefix = function(prefix) {
\r
1341 this.prefix = prefix || null;
\r
1344 var createBaseRestObj = function(pathObj) {
\r
1345 return GPBServices.createRestObj()
\r
1346 .one('policy:tenants').one('tenant').one(pathObj.tenantId).one('subnet').one(pathObj.subnetId).one('gateways').one(pathObj.gatewayId);
\r
1349 var createRestObj = function(pathObj) {
\r
1350 return createBaseRestObj(pathObj).one('prefixes').one(pathObj.prefixId);
\r
1353 var transformCallback = function(rawData) {
\r
1354 // return rawData.map(function(rawObj){
\r
1355 // return new L3Context(rawObj.id, rawObj.name, rawObj.description);
\r
1357 return rawData.gateways[0].prefixes;
\r
1360 var createData = function(obj) {
\r
1361 return { 'prefixes' : [ GPBServices.stripNullValues(obj) ] };
\r
1364 s.createPathObj = function(tenantId, subnetId, gatewayId, prefixId) {
\r
1366 tenantId: tenantId,
\r
1367 subnetId: subnetId,
\r
1368 gatewayId: gatewayId,
\r
1369 prefixId: prefixId ? prefixId.replace("/", "%2F") : prefixId
\r
1373 s.createObj = function() {
\r
1374 return new Prefix();
\r
1377 s.send = function(path, obj, successCbk, errorCbk) {
\r
1378 var restObj = createRestObj(path),
\r
1379 reqData = createData(obj);
\r
1381 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
1384 s.delete = function(path, successCbk, errorCbk) {
\r
1385 var restObj = createRestObj(path);
\r
1387 GPBServices.delete(restObj, successCbk, errorCbk);
\r
1390 s.load = function(path, successCbk, errorCbk) {
\r
1391 var restObj = createBaseRestObj(path);
\r
1393 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1400 gbp.register.factory('GBPClassifierInstanceServices', function(GPBServices) {
\r
1404 var ClassifierService = function(name, classifierDefId) {
\r
1405 this.name = name || null;
\r
1406 this['classifier-definition-id'] = classifierDefId || null;
\r
1407 this['parameter-value'] = [];
\r
1410 var createBaseRestObj = function(pathObj) {
\r
1411 return GPBServices.createRestObj()
\r
1412 .one('policy:tenants').one('tenant').one(pathObj.tenantId).one('subject-feature-instances');
\r
1415 var createRestObj = function(pathObj) {
\r
1416 return createBaseRestObj(pathObj).one('classifier-instance').one(pathObj.classfierInstanceId);
\r
1419 var transformCallback = function(rawData) {
\r
1420 return rawData['subject-feature-instances']['classifier-instance'];
\r
1423 var createData = function(obj) {
\r
1424 return { 'classifier-instance' : [ GPBServices.stripNullValues(obj) ] };
\r
1427 s.createPathObj = function(tenantId, classfierInstanceId) {
\r
1429 tenantId: tenantId,
\r
1430 classfierInstanceId: classfierInstanceId
\r
1434 s.createObj = function() {
\r
1435 return new ClassifierService();
\r
1438 s.send = function(path, obj, successCbk, errorCbk) {
\r
1439 var restObj = createRestObj(path),
\r
1440 reqData = createData(obj);
\r
1442 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
1445 s.delete = function(path, successCbk, errorCbk) {
\r
1446 var restObj = createRestObj(path);
\r
1448 GPBServices.delete(restObj, successCbk, errorCbk);
\r
1451 s.load = function(path, successCbk, errorCbk) {
\r
1452 var restObj = createBaseRestObj(path);
\r
1454 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1461 gbp.register.factory('GBPActionInstanceServices', function(GPBServices) {
\r
1465 var ActionService = function(name, actionDefId) {
\r
1466 this.name = name || null;
\r
1467 this['action-definition-id'] = actionDefId || null;
\r
1468 this['parameter-value'] = [];
\r
1471 var createBaseRestObj = function(pathObj) {
\r
1472 return GPBServices.createRestObj()
\r
1473 .one('policy:tenants').one('tenant').one(pathObj.tenantId).one('subject-feature-instances');
\r
1476 var createRestObj = function(pathObj) {
\r
1477 return createBaseRestObj(pathObj).one('action-instance').one(pathObj.actionInstanceId);
\r
1480 var transformCallback = function(rawData) {
\r
1481 return rawData['subject-feature-instances']['action-instance'];
\r
1484 var createData = function(obj) {
\r
1485 return { 'action-instance' : [ GPBServices.stripNullValues(obj) ] };
\r
1488 s.createPathObj = function(tenantId, actionInstanceId) {
\r
1490 tenantId: tenantId,
\r
1491 actionInstanceId: actionInstanceId
\r
1495 s.createObj = function() {
\r
1496 return new ActionService();
\r
1499 s.send = function(path, obj, successCbk, errorCbk) {
\r
1500 var restObj = createRestObj(path),
\r
1501 reqData = createData(obj);
\r
1503 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
1506 s.delete = function(path, successCbk, errorCbk) {
\r
1507 var restObj = createRestObj(path);
\r
1509 GPBServices.delete(restObj, successCbk, errorCbk);
\r
1512 s.load = function(path, successCbk, errorCbk) {
\r
1513 var restObj = createBaseRestObj(path);
\r
1515 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1518 s.getDefinitions = function(successCbk, errorCbk) {
\r
1519 var restObj = GBPRestangular.one('restconf').one('operational').one('policy:subject-feature-definitions');
\r
1521 restObj.get().then(function(data) {
\r
1522 successCbk(data['subject-feature-definitions']['action-definition']);
\r
1523 }, function(res) {
\r
1532 gbp.register.factory('GBPEpgServices', function(GPBServices) {
\r
1536 var EPG = function(name, description, intraGroupPolicy, networkDomain, id, parent) {
\r
1537 this.id = id || GPBServices.getUUIDnumber();
\r
1538 this.name = name || null;
\r
1539 this.description = description || null;
\r
1540 this['intra-group-policy'] = intraGroupPolicy || null;
\r
1541 this['network-domain'] = networkDomain || null;
\r
1542 this.parent = parent || null;
\r
1545 var createBaseRestObj = function(pathObj) {
\r
1546 return GPBServices.createRestObj()
\r
1547 .one('policy:tenants').one('tenant').one(pathObj.tenantId);
\r
1550 var createRestObj = function(pathObj) {
\r
1551 return createBaseRestObj(pathObj).one('endpoint-group').one(pathObj.epgId);
\r
1554 var transformCallback = function(rawData) {
\r
1555 return rawData.tenant[0]['endpoint-group'];
\r
1558 var createData = function(obj) {
\r
1559 return { 'endpoint-group' : [ GPBServices.stripNullValues(obj) ] };
\r
1562 s.createPathObj = function(tenantId, epgId) {
\r
1564 tenantId: tenantId,
\r
1569 s.createObj = function() {
\r
1573 s.send = function(path, obj, successCbk, errorCbk) {
\r
1574 var restObj = createRestObj(path),
\r
1575 reqData = createData(obj);
\r
1577 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
1580 s.delete = function(path, successCbk, errorCbk) {
\r
1581 var restObj = createRestObj(path);
\r
1583 GPBServices.delete(restObj, successCbk, errorCbk);
\r
1586 s.load = function(path, successCbk, errorCbk) {
\r
1587 var restObj = createBaseRestObj(path);
\r
1589 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1596 gbp.register.factory('GBPConNamedSelServices', function(GPBServices) {
\r
1600 var ConsumerNamedSelector = function(name, contract) {
\r
1601 this.name = name || null;
\r
1602 this.contract = contract || [];
\r
1605 var createBaseRestObj = function(pathObj) {
\r
1606 return GPBServices.createRestObj()
\r
1607 .one('policy:tenants').one('tenant').one(pathObj.tenantId).one('endpoint-group').one(pathObj.epgId);
\r
1610 var createRestObj = function(pathObj) {
\r
1611 return createBaseRestObj(pathObj).one('consumer-named-selector').one(pathObj.cnsId);
\r
1614 var transformCallback = function(rawData) {
\r
1616 consumerData = rawData['endpoint-group'][0]['consumer-named-selector'];
\r
1618 if(consumerData) {
\r
1619 data = consumerData.map(function(elem) {
\r
1620 if(elem.hasOwnProperty('contract') === false) {
\r
1621 elem.contract = [];
\r
1630 var createData = function(obj) {
\r
1631 var o = GPBServices.stripNullValues(obj);
\r
1634 o.contract = GPBServices.removeEmptyElementsFromList(o.contract);
\r
1637 return { 'consumer-named-selector' : [ o ] };
\r
1640 s.createPathObj = function(tenantId, epgId, cnsId) {
\r
1642 tenantId: tenantId,
\r
1648 s.createObj = function() {
\r
1649 return new ConsumerNamedSelector();
\r
1652 s.send = function(path, obj, successCbk, errorCbk) {
\r
1653 var restObj = createRestObj(path),
\r
1654 reqData = createData(obj);
\r
1656 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
1659 s.delete = function(path, successCbk, errorCbk) {
\r
1660 var restObj = createRestObj(path);
\r
1662 GPBServices.delete(restObj, successCbk, errorCbk);
\r
1665 s.load = function(path, successCbk, errorCbk) {
\r
1666 var restObj = createBaseRestObj(path);
\r
1668 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1676 gbp.register.factory('GBPProNamedSelServices', function(GPBServices) {
\r
1680 var ProviderNamedSelector = function(name, contract) {
\r
1681 this.name = name || null;
\r
1682 this.contract = contract || [];
\r
1685 var createBaseRestObj = function(pathObj) {
\r
1686 return GPBServices.createRestObj()
\r
1687 .one('policy:tenants').one('tenant').one(pathObj.tenantId).one('endpoint-group').one(pathObj.epgId);
\r
1690 var createRestObj = function(pathObj) {
\r
1691 return createBaseRestObj(pathObj).one('provider-named-selector').one(pathObj.cnsId);
\r
1694 var transformCallback = function(rawData) {
\r
1696 provderData = rawData['endpoint-group'][0]['provider-named-selector'];
\r
1699 data = provderData.map(function(elem) {
\r
1700 if(elem.hasOwnProperty('contract') === false) {
\r
1701 elem.contract = [];
\r
1710 var createData = function(obj) {
\r
1711 var o = GPBServices.stripNullValues(obj);
\r
1714 o.contract = GPBServices.removeEmptyElementsFromList(o.contract);
\r
1717 return { 'provider-named-selector' : [ o ] };
\r
1720 s.createPathObj = function(tenantId, epgId, cnsId) {
\r
1722 tenantId: tenantId,
\r
1728 s.createObj = function() {
\r
1729 return new ProviderNamedSelector();
\r
1732 s.send = function(path, obj, successCbk, errorCbk) {
\r
1733 var restObj = createRestObj(path),
\r
1734 reqData = createData(obj);
\r
1736 GPBServices.send(restObj, reqData, successCbk, errorCbk);
\r
1739 s.delete = function(path, successCbk, errorCbk) {
\r
1740 var restObj = createRestObj(path);
\r
1742 GPBServices.delete(restObj, successCbk, errorCbk);
\r
1745 s.load = function(path, successCbk, errorCbk) {
\r
1746 var restObj = createBaseRestObj(path);
\r
1748 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1755 gbp.register.factory('GBPEndpointServices', function(GPBServices) {
\r
1759 var Endpoint = function(tenantId) {
\r
1760 this.tenant = tenantId || null;
\r
1761 this['network-containment'] = null;
\r
1762 this['endpoint-group'] = null;
\r
1763 this['endpoint-groups'] = [];
\r
1764 this.condition = [];
\r
1765 this['l2-context'] = null;
\r
1766 this['mac-address'] = null;
\r
1767 this['l3-address'] = [];
\r
1770 var createRestObj = function() {
\r
1771 return GPBServices.createRestObj('operations');
\r
1774 var transformCallback = function(rawData) {
\r
1775 return rawData.endpoints.endpoint;
\r
1778 var createBaseData = function(obj) {
\r
1779 var o = GPBServices.stripNullValues(obj);
\r
1782 o.condition = GPBServices.removeEmptyElementsFromList(o.condition);
\r
1785 if(o['endpoint-groups']) {
\r
1786 o['endpoint-groups'] = GPBServices.removeEmptyElementsFromList(o['endpoint-groups']);
\r
1789 if(o['l3-address']) {
\r
1790 o['l3-address'] = GPBServices.removeEmptyElementsFromList(o['l3-address']);
\r
1796 var createSendData = function(obj) {
\r
1797 var o = createBaseData(obj);
\r
1798 return { 'input': o };
\r
1801 var createDeleteData = function(obj) {
\r
1804 'l3': obj['l3-address'],
\r
1807 'l2-context': obj['l2-context'],
\r
1808 'mac-address': obj['mac-address']
\r
1817 s.createObj = function(tenantId) {
\r
1818 return new Endpoint(tenantId);
\r
1821 s.send = function(path, obj, successCbk, errorCbk) {
\r
1822 var restObj = createRestObj().one('endpoint:register-endpoint'),
\r
1823 reqData = createSendData(obj);
\r
1825 GPBServices.post(restObj, reqData, successCbk, errorCbk);
\r
1828 s.delete = function(path, obj, successCbk, errorCbk) {
\r
1829 var restObj = createRestObj(path).one('endpoint:unregister-endpoint'),
\r
1830 reqData = createDeleteData(obj);
\r
1831 GPBServices.post(restObj, reqData, successCbk, errorCbk);
\r
1834 s.load = function(path, successCbk, errorCbk) {
\r
1835 var restObj = GPBServices.createRestObj('operational').one('endpoint:endpoints');
\r
1837 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1844 gbp.register.factory('GBPEndpointL3Services', function(GPBServices) {
\r
1848 var EndpointL3 = function(tenantId) {
\r
1849 this.tenant = tenantId || null;
\r
1850 this['endpoint-group'] = null;
\r
1851 this['endpoint-groups'] = [];
\r
1852 this.condition = [];
\r
1853 this['l3-context'] = null;
\r
1854 this['ip-prefix'] = null;
\r
1855 this['endpoint-l2-gateways'] = [];
\r
1856 this['endpoint-l3-gateways'] = [];
\r
1859 var createRestObj = function() {
\r
1860 return GPBServices.createRestObj('operations');
\r
1863 var transformCallback = function(rawData) {
\r
1864 return rawData.endpoints['endpoint-l3-prefix'];
\r
1867 var createBaseData = function(obj) {
\r
1868 var o = GPBServices.stripNullValues(obj);
\r
1871 o.condition = GPBServices.removeEmptyElementsFromList(o.condition);
\r
1874 if(o['endpoint-groups']) {
\r
1875 o['endpoint-groups'] = GPBServices.removeEmptyElementsFromList(o['endpoint-groups']);
\r
1878 if(o['endpoint-l2-gateways']) {
\r
1879 o['endpoint-l2-gateways'] = GPBServices.removeEmptyElementsFromList(o['endpoint-l2-gateways']);
\r
1882 if(o['endpoint-l3-gateways']) {
\r
1883 o['endpoint-l3-gateways'] = GPBServices.removeEmptyElementsFromList(o['endpoint-l3-gateways']);
\r
1889 var createSendData = function(obj) {
\r
1890 var o = createBaseData(obj);
\r
1891 return { 'input': o };
\r
1894 var createDeleteData = function(obj) {
\r
1899 'l3-context': obj['l3-context'],
\r
1900 'ip-prefix': obj['ip-prefix']
\r
1903 'l2': obj['endpoint-l2-gateways'],
\r
1904 'l3': obj['endpoint-l3-gateways']
\r
1911 s.createObj = function(tenantId) {
\r
1912 return new EndpointL3(tenantId);
\r
1915 s.send = function(path, obj, successCbk, errorCbk) {
\r
1916 var restObj = createRestObj().one('endpoint:register-l3-prefix-endpoint'),
\r
1917 reqData = createSendData(obj);
\r
1919 GPBServices.post(restObj, reqData, successCbk, errorCbk);
\r
1922 s.delete = function(path, obj, successCbk, errorCbk) {
\r
1923 var restObj = createRestObj(path).one('endpoint:unregister-endpoint'),
\r
1924 reqData = createDeleteData(obj);
\r
1926 GPBServices.post(restObj, reqData, successCbk, errorCbk);
\r
1929 s.load = function(path, successCbk, errorCbk) {
\r
1930 var restObj = GPBServices.createRestObj('operational').one('endpoint:endpoints');
\r
1932 GPBServices.load(restObj, transformCallback, successCbk, errorCbk);
\r
1939 gbp.register.factory('PGNServices', function(GBPRestangular) {
\r
1943 var idGetter = {};
\r
1949 pathAction: 'PATHACTION',
\r
1950 accessAction: 'ACCESSACTION'
\r
1953 idGetter[idTypes.tenant] = function() {
\r
1957 idGetter[idTypes.uuid] = function() {
\r
1961 idGetter[idTypes.l3ctx] = function() {
\r
1965 idGetter[idTypes.pathAction] = function() {
\r
1969 idGetter[idTypes.accessAction] = function() {
\r
1973 var getId = function(type) {
\r
1974 if(idGetter.hasOwnProperty(type)) {
\r
1975 return id = idGetter[type]();
\r
1977 throw "Cannot get idGetter for type " + type;
\r
1981 s.addReplaceEndpointGroup = function(successCbk, errorCbk, groupName, sgt, description) {
\r
1982 var tenantId = getId(idTypes.tenant),
\r
1983 uuid = getId(idTypes.uuid),
\r
1984 restObj = GBPRestangular.one('restconf').one('operations'),
\r
1985 rpcRes = 'pgn-application:create-or-replace-endpoint-groups',
\r
1989 "endpoint-group":[
\r
1991 "pgn-application:tenant-id": tenantID,
\r
1992 "pgn-application:id":uuid,
\r
1993 "pgn-application:security-group-tag":sgt,
\r
1994 "pgn-application:name":groupName,
\r
1995 "pgn-application:description":description
\r
2001 restObj.post(rpcRes, reqData).then(function(data) {
\r
2003 }, function(res) {
\r
2008 s.deleteEndpointGroup = function(successCbk, errorCbk, uuid) {
\r
2009 var tenantId = getId(idTypes.tenant),
\r
2010 restObj = GBPRestangular.one('restconf').one('operations'),
\r
2011 rpcRes = 'pgn-application:delete-endpoint-groups',
\r
2014 "endpoint-group":[
\r
2016 "pgn-application:tenant-id": tenantId,
\r
2017 "pgn-application:id":uuid
\r
2023 restObj.post(rpcRes, reqData).then(function(data) {
\r
2025 }, function(res) {
\r
2030 s.getActions = function(successCbk, errorCbk) {
\r
2031 var tenantId = getId(idTypes.tenant),
\r
2032 pathActionId = getId(idTypes.pathAction),
\r
2033 accessActionId = getId(idTypes.accessAction),
\r
2034 restObj = GBPRestangular.one('restconf').one('config').one('policy:tenants', tenantId).one('subject-feature-instances');
\r
2036 restObj.get().then(function(data) {
\r
2037 successCbk(data); //TODO fill actions
\r
2038 }, function(res) {
\r
2043 s.applyPolicy = function(successCbk, errorCbk, providerId, consumerId, pathSelRule, accessCtrlRule) {
\r
2044 var restObj = GBPRestangular.one('restconf').one('operations'),
\r
2045 rpcRes = 'pgn-application:wire-endpoint-groups',
\r
2046 actionRefName = (pathSelRule ? pathSelRule : '') + (accessCtrlRule ? accessCtrlRule : ''),
\r
2049 "endpoint-group-pair-with-rules": {
\r
2050 "pgn-application:provider-tenant-id": tenantID,
\r
2051 "pgn-application:consumer-tenant-id": tenantID,
\r
2052 "pgn-application:provider-group-id":providerId,
\r
2053 "pgn-application:consumer-group-id":consumerId,
\r
2054 "pgn-application:group-rule": [
\r
2056 "action-ref": [pathSelRule, accessCtrlRule].map(function(r) {
\r
2057 return { "name":r };
\r
2059 "name":actionRefName
\r
2066 restObj.post(rpcRes, reqData).then(function(data) {
\r
2067 successCbk(data); //TODO reload policies
\r
2068 }, function(res) {
\r
2073 s.deletePolicy = function(successCbk, errorCbk, providerId, consumerId) {
\r
2074 var tenantId = getId(idTypes.tenant),
\r
2075 restObj = GBPRestangular.one('restconf').one('operations'),
\r
2076 rpcRes = 'pgn-application:unwire-endpoint-groups',
\r
2080 "endpoint-group-pair":[
\r
2082 "pgn-application:provider-tenant-id": tenantId,
\r
2083 "pgn-application:consumer-tenant-id": tenantId,
\r
2084 "pgn-application:provider-group-id":providerId,
\r
2085 "pgn-application:consumer-group-id":consumerId
\r
2091 restObj.post(rpcRes, reqData).then(function(data) {
\r
2092 successCbk(data); //TODO reload policies
\r
2093 }, function(res) {
\r
2098 s.addEndPoint = function(successCbk, errorCbk, ipAddress, groupId) {
\r
2099 var l3ctxId = getId(idTypes.l3ctx),
\r
2100 tenantId = getId(idTypes.tenant),
\r
2101 restObj = GBPRestangular.one('restconf').one('operations'),
\r
2102 rpcRes = 'endpoint:register-endpoint',
\r
2105 "endpoint-group": groupId,
\r
2108 "ip-address": ipAddress,
\r
2109 "l3-context": l3ctxId
\r
2112 "tenant": tenantId
\r
2116 restObj.post(rpcRes, reqData).then(function(data) {
\r
2118 }, function(res) {
\r
2123 s.getUUIDnumber = function() {
\r
2124 var d = new Date().getTime();
\r
2125 return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
\r
2126 var r = (d + Math.random()*16)%16 | 0;
\r
2127 d = Math.floor(d/16);
\r
2128 return (c=='x' ? r : (r&0x3|0x8)).toString(16);
\r
2135 gbp.register.factory('DesignGbpFactory', function(){
\r
2139 dvf.setMainClass = function(){
\r
2140 if ( $('.gbpWrapper').length ) {
\r
2141 $('.gbpWrapper').closest('.col-xs-12').addClass('gbpGlobalWrapper');
\r