blob: d92b3f2ae84fea85623f7503e9bbdc2a1a936e1b [file] [log] [blame]
Andrea Campanella362b7d32018-12-11 18:57:12 +01001import {
2 getConnectivityServices,
3 getSipDetail,
4 getSips,
5} from './dcs'
6import {
7 getDevices,
8 getPorts,
9} from './onos'
10
11
12/**
13 * Provide onos port list along with sip uuid.
14 * @returns {Promise<*[]>}
15 */
16export function getResources() {
17
18 return Promise.all([getDevices(), getSips()])
19 .then(([devices, sips]) => {
20 if(!devices || !sips){
21 throw new Error('Device not found')
22 }
23 const promisePorts = Promise.all(devices.map(device => {
24 return getPorts(device.id)
25 }))
26 const promiseSipDetails = Promise.all(sips.map(sip => {
27 return getSipDetail(sip.uuid)
28 }))
29 return Promise.all([promisePorts, promiseSipDetails, getConnectivityServices()])
30 })
31 .then(([deviceDetails, sipDetails, connectivityService]) => {
32
33 const sipIdMap = sipDetails.reduce((_sipIdMap, sipDetail) => {
34 _sipIdMap[sipDetail.name.filter(kv => kv["value-name"] === "onos-cp")[0].value] = sipDetail.uuid
35 return _sipIdMap
36 }, {})
37 console.log(sipIdMap)
38
39 deviceDetails.forEach(deviceDetail => {
40 deviceDetail.ports.forEach(port => {
41 const key = `${port.element}/${port.port}`
42 if(sipIdMap[key]) {
43 port.sipId = sipIdMap[key]
44 }
45 })
46 })
47
48 return [ deviceDetails || [], connectivityService || [] ]
49 })
50 .catch(err => {
51 console.error(err)
52 })
53
54}