aboutsummaryrefslogtreecommitdiffstats
path: root/resource-assignment/provider/src/main/java/org/openecomp/sdnc/util/vrf/VrfUtil.java
blob: 2b90027c60c365ef5c160f155e411e0840b23989 (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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*-
 * ============LICENSE_START=======================================================
 * openECOMP : SDN-C
 * ================================================================================
 * Copyright (C) 2017 ONAP Intellectual Property. All rights
 * reserved.
 * ================================================================================
 * 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.
 * ============LICENSE_END=========================================================
 */

package org.openecomp.sdnc.util.vrf;

public class VrfUtil {

    public static String createVrfInstanceName(
            String serviceInstanceId,
            String vpnId,
            String siteType,
            String routeGroup) {
        if (vpnId == null || vpnId.trim().length() == 0)
            return null;

        String ss = "VPN-" + vpnId;
        if (siteType != null && siteType.equalsIgnoreCase("hub"))
            ss += "-HUB";
        if (siteType != null && siteType.equalsIgnoreCase("spoke"))
            ss += "-SP-" + serviceInstanceId;
        if (routeGroup != null && routeGroup.trim().length() > 0)
            ss += "-RG-" + routeGroup;

        return ss;
    }

    public static VpnParam parseVrfInstanceName(String vrfInstanceName) {
        VpnParam vpnParam = new VpnParam();

        int i1 = vrfInstanceName.indexOf("-HUB");
        if (i1 > 0)
            vpnParam.siteType = "HUB";

        int i2 = vrfInstanceName.indexOf("-SP-");
        if (i2 > 0)
            vpnParam.siteType = "SPOKE";

        int i3 = vrfInstanceName.indexOf("-RG-");
        if (i3 > 0)
            vpnParam.routeGroupName = vrfInstanceName.substring(i3 + 4);

        int i4 = vrfInstanceName.length();
        if (i1 > 0)
            i4 = i1;
        else if (i2 > 0)
            i4 = i2;
        else if (i3 > 0)
            i4 = i3;
        vpnParam.vpnId = vrfInstanceName.substring(4, i4);

        if (i2 > 0 && i3 < 0)
            vpnParam.spokeServiceInstanceId = vrfInstanceName.substring(i2 + 4);
        if (i2 > 0 && i3 > 0)
            vpnParam.spokeServiceInstanceId = vrfInstanceName.substring(i2 + 4, i3);

        return vpnParam;
    }
}