aboutsummaryrefslogtreecommitdiffstats
path: root/components/model-catalog/blueprint-model/test-blueprint/resource-audit/Scripts/kotlin/cba/resource/audit/DeviceResourceDefinitions.kt
blob: ee99b04f97c27a78cc612b853a6e4abf68f341c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
 *  Copyright © 2019 IBM.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package cba.resource.audit

import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.resourceDefinitions
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes

const val SOURCE_SDNO = "SDN-O"
const val SOURCE_SDNC = "SDNC"
const val SOURCE_AAI = "AAI"

val deviceResourceDefinitions = BluePrintTypes.resourceDefinitions {
    // Port Speed Definitions
    resourceDefinition(name = "port-speed", description = "Port Speed") {
        property(type = "string", required = true)
        sources {
            sourceCapability(id = SOURCE_SDNO, description = "SDN-O Source") {
                definedProperties {
                    type(BluePrintConstants.SCRIPT_KOTLIN)
                    scriptClassReference("cba.resource.audit.processor.PortSpeedRAProcessor")
                    keyDependencies(arrayListOf("device-id"))
                }
            }
            sourceDb(id = SOURCE_SDNC, description = "SDNC Controller") {
                definedProperties {
                    endpointSelector("processor-db")
                    query("SELECT PORT_SPEED FROM XXXX WHERE DEVICE_ID = :device_id")
                    inputKeyMapping {
                        map("device_id", "\$device-id")
                    }
                    keyDependencies(arrayListOf("device-id"))
                }
            }
            sourceRest(id = SOURCE_AAI, description = "AAI Source") {
                definedProperties {
                    endpointSelector("aai")
                    urlPath("/vnf/\$device_id")
                    path(".\$port-speed")
                    inputKeyMapping {
                        map("device_id", "\$device-id")
                    }
                    keyDependencies(arrayListOf("device-id"))
                }
            }
        }
    }
}