// TODO didn't find a better way to keep other uni fields, PATCH method is not supported :(
$http({
method:'GET',
- url:"/restconf/config/mef-interfaces:mef-interfaces/unis/uni/" + id + "/"
+ url:"/restconf/operational/mef-interfaces:mef-interfaces/unis/uni/" + id + "/"
}).then(function successCallback(response) {
uni = response.data;
uni["uni"][0]["tenant-id"] = tenantid;
var unis;
$http({
method:'GET',
- url:"/restconf/config/mef-interfaces:mef-interfaces/unis/"
+ url:"/restconf/operational/mef-interfaces:mef-interfaces/unis/"
}).then(function successCallback(response) {
unis = response.data["unis"]["uni"];
if (unis != undefined){
}
}
}
- unis.forEach(function(u) {
- u.prettyID = u['uni-id'].split(":")[u['uni-id'].split(":").length - 1];
- });
- if (callback != undefined) {
+ var confMap = {}
+ $http({
+ method:'GET',
+ url:"/restconf/config/mef-interfaces:mef-interfaces/unis/"
+ }).then(function(response){
+ var confUnis = response.data["unis"]["uni"];
+ confUnis.forEach(function(u) {
+ confMap[u['uni-id']] = u;
+ });
+ }).finally(function(){
+ unis.forEach(function(u) {
+ u.prettyID = u['uni-id'].split(":")[u['uni-id'].split(":").length - 1];
+ // copy config fields like tenant-id
+ if (confMap[u['uni-id']]){
+ for (var attrname in confMap[u['uni-id']]) {
+ u[attrname] = confMap[u['uni-id']][attrname];
+ }
+ }
+ });
+ if (callback != undefined) {
callback(unis);
- }
+ }
+ });
}, function errorCallback(response) {
+ if (response.status == 404) {
+ callback([]);
+ }
console.log(response);
});
};
});
};
- svc.addIpUni = function(uniid, ipuni_id, ip_address, vlan, subnets, callback) {
+ svc.addIpUni = function(uniid, ipuni_id, ip_address, vlan, callback) {
var data = {"ip-uni":{
"ip-uni-id": ipuni_id,
- "ip-address": ip_address,
- "subnets":{
- "subnet":subnets
- }
+ "ip-address": ip_address
}};
if (vlan){
data["ip-uni"].vlan = vlan;
});
};
- svc.addIpUniSubnet = function(uniid, ipuniid, subnet, gateway,
- callback) {
+ svc.getAllIpUniSubnets = function(callback) {
+ $http({
+ method:'GET',
+ url : "/restconf/config/mef-interfaces:mef-interfaces/subnets/"
+ }).then(function successCallback(response) {
+ var raw_subnets = response.data["subnets"]["subnet"];
+ var subnets ={}
+ raw_subnets.forEach(function(sub){
+ if (subnets[sub["uni-id"]] == undefined) {
+ subnets[sub["uni-id"]] = {};
+ }
+ if (subnets[sub["uni-id"]][sub["ip-uni-id"]] == undefined) {
+ subnets[sub["uni-id"]][sub["ip-uni-id"]] = [];
+ }
+ subnets[sub["uni-id"]][sub["ip-uni-id"]].push(sub);
+ });
+ if (callback != undefined) {
+ callback(subnets);
+ }
+ }, function errorCallback(response) {
+ console.log(response);
+ });
+ };
+
+ svc.addIpUniSubnet = function(uniid, ipuniid, subnet, gateway, callback) {
var data = {
"subnet":
{
"subnet": subnet,
+ "uni-id":uniid,
+ "ip-uni-id":ipuniid,
"gateway": gateway
}
-
};
$http(
{
method : 'POST',
- url : "/restconf/config/mef-interfaces:mef-interfaces/unis/uni/"+uniid+"/ip-unis/ip-uni/"+ipuniid+"/subnets/",
+ url : "/restconf/config/mef-interfaces:mef-interfaces/subnets/",
data : data
}).then(function successCallback(response) {
if (callback != undefined) {
$http({
method:'DELETE',
- url:"/restconf/config/mef-interfaces:mef-interfaces/unis/uni/"+uniid+"/ip-unis/ip-uni/"+ipuni_id+"/subnets/subnet/"+subnet.replace("/","%2F")+"/"
+ url:"/restconf/config/mef-interfaces:mef-interfaces/subnets/subnet/"+uniid+"/"+ipuni_id+"/"+subnet.replace("/","%2F")+"/"
}).then(function successCallback(response) {
if (callback != undefined) {
callback();
svc.getIpUniSubnets = function(uniid, ipuni_id, callback) {
$http({
method:'GET',
- url:"/restconf/config/mef-interfaces:mef-interfaces/unis/uni/"+uniid+"/ip-unis/ip-uni/"+ipuni_id+"/subnets"
+ url:"/restconf/config/mef-interfaces:mef-interfaces/subnets/"
+ //subnet/"+uniid+"/ip-unis/ip-uni/"+ipuni_id+"/subnets"
}).then(function successCallback(response) {
subnets = response.data["subnets"]["subnet"];
+ subnets = subnets.filterByField('uni-id',uniid).filterByField('ip-uni-id',ipuni_id);
if (callback != undefined) {
callback(subnets);
}
};
$http({
method:'PUT',
- url:"/restconf/config/mef-services:mef-services/mef-service/" + svcid + "/ipvc/unis/uni/"+uni_id,
+ url:"/restconf/config/mef-services:mef-services/mef-service/" + svcid + "/ipvc/unis/uni/"+uni_id+"/"+ipuni_id,
data: data
}).then(function successCallback(response) {
if (callback != undefined) {
});
};
- svc.deleteIpvcUni = function(svcid, uni_id, callback) {
+ svc.deleteIpvcUni = function(svcid, uni_id, ipuni_id, callback) {
$http({
method:'DELETE',
- url:"/restconf/config/mef-services:mef-services/mef-service/" + svcid + "/ipvc/unis/uni/" + uni_id + "/"
+ url:"/restconf/config/mef-services:mef-services/mef-service/" + svcid + "/ipvc/unis/uni/" + uni_id +"/"+ipuni_id + "/"
}).then(function successCallback(response) {
if (callback != undefined) {
callback();