be075b4818c861497a79340b712235fab5eacfec
[vid.git] /
1 package org.onap.simulator.presetGenerator.presets.aai;
2
3 import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
4 import static org.apache.commons.lang3.RandomStringUtils.randomNumeric;
5
6 import com.google.common.collect.ImmutableMap;
7 import java.util.Collections;
8 import java.util.List;
9 import java.util.Map;
10 import java.util.UUID;
11 import org.onap.simulator.presetGenerator.presets.BasePresets.BaseAAIPreset;
12 import org.springframework.http.HttpMethod;
13
14 public class PresetAAIGetCloudOwnersByCloudRegionId extends BaseAAIPreset {
15     public static final String SOME_LEGACY_REGION = "some legacy region";
16     public static final String JUST_ANOTHER_REGION = "just another region";
17     public static final String MY_REGION = "my region";
18     public static final String LCP_REGION_TEXT = "lcpRegionText";
19     public static final String ATT_AIC = "irma-aic";
20     public static final String MDT_1 = "mdt1";
21     public static final String ATT_NC = "att-nc";
22     public static final String hvf3 = "hvf3";
23     public static final String olson3 = "olson3";
24     public static final String olson5B = "olson5b";
25     public static final String ATT_SABABA = "att-sababa";
26     public static final String AAIAIC_25 = "JANET25";
27     public static final String ONE = "One";
28     public static final String hvf6 = "hvf6";
29     private final String cloudRegionId;
30     private final String cloudOwner;
31
32     //Since there is a cache of cloudRegionToCloudOwner, we can't have 2 preset of same cloud region that return different cloud owner.
33     //So all the preset instance must be declared here, for conflicts prevention.
34     public static final PresetAAIGetCloudOwnersByCloudRegionId PRESET_SOME_LEGACY_REGION_TO_ATT_AIC =
35             new PresetAAIGetCloudOwnersByCloudRegionId(SOME_LEGACY_REGION, ATT_AIC);
36
37     public static final PresetAAIGetCloudOwnersByCloudRegionId PRESET_JUST_ANOTHER_REGION_TO_ATT_AIC =
38             new PresetAAIGetCloudOwnersByCloudRegionId(JUST_ANOTHER_REGION, ATT_AIC);
39
40     public static final PresetAAIGetCloudOwnersByCloudRegionId PRESET_MDT1_TO_ATT_NC =
41             new PresetAAIGetCloudOwnersByCloudRegionId(MDT_1, ATT_NC);
42
43     public static final PresetAAIGetCloudOwnersByCloudRegionId PRESET_RDM3_TO_ATT_NC =
44             new PresetAAIGetCloudOwnersByCloudRegionId(olson3, ATT_NC);
45
46     public static final PresetAAIGetCloudOwnersByCloudRegionId PRESET_MTN3_TO_ATT_SABABA =
47             new PresetAAIGetCloudOwnersByCloudRegionId(hvf3, ATT_SABABA);
48
49     public static final PresetAAIGetCloudOwnersByCloudRegionId PRESET_AAIAIC25_TO_ATT_AIC =
50             new PresetAAIGetCloudOwnersByCloudRegionId(AAIAIC_25, ATT_AIC);
51
52     public static final PresetAAIGetCloudOwnersByCloudRegionId PRESET_ONE_TO_ATT_AIC =
53             new PresetAAIGetCloudOwnersByCloudRegionId(ONE, ATT_AIC);
54
55     public static final PresetAAIGetCloudOwnersByCloudRegionId PRESET_MTN6_TO_ATT_AIC =
56             new PresetAAIGetCloudOwnersByCloudRegionId(hvf6, ATT_AIC);
57
58     public static final PresetAAIGetCloudOwnersByCloudRegionId PRESET_MY_REGION_TO_ATT_AIC =
59             new PresetAAIGetCloudOwnersByCloudRegionId(MY_REGION, ATT_AIC);
60
61     public static final PresetAAIGetCloudOwnersByCloudRegionId PRESET_LCP_REGION_TEXT_TO_ATT_AIC =
62             new PresetAAIGetCloudOwnersByCloudRegionId(LCP_REGION_TEXT, ATT_AIC);
63
64     private PresetAAIGetCloudOwnersByCloudRegionId(String cloudRegionId, String cloudOwnerResult) {
65         this.cloudRegionId = cloudRegionId;
66         this.cloudOwner = cloudOwnerResult;
67     }
68
69     @Override
70     public Object getResponseBody() {
71         return "" +
72                 "{" +
73                 "  \"cloud-region\": [{" +
74                 "      \"cloud-owner\": \"" + cloudOwner + "\"," +
75                 "      \"cloud-region-id\": \"" + cloudRegionId + "\"," +
76                 "      \"cloud-region-version\": \"2.5\"," +
77                 "      \"identity-url\": \"http://" + randomAlphabetic(5) + ":5000/v2.0\"," +
78                 "      \"complex-name\": \"" + cloudRegionId + "\"," +
79                 "      \"resource-version\": \"" + randomNumeric(5) + "\"," +
80                 "      \"relationship-list\": {" +
81                 "        \"relationship\": [{" +
82                 "            \"related-to\": \"pserver\"," +
83                 "            \"relationship-label\": \"org.onap.relationships.inventory.LocatedIn\"," +
84                 "            \"related-link\": \"/aai/v12/cloud-infrastructure/pservers/pserver/" + randomAlphabetic(5) + "\"," +
85                 "            \"relationship-data\": [{" +
86                 "                \"relationship-key\": \"pserver.hostname\"," +
87                 "                \"relationship-value\": \"" + randomAlphabetic(5) + "\"" +
88                 "              }" +
89                 "            ]," +
90                 "            \"related-to-property\": [{" +
91                 "                \"property-key\": \"pserver.pserver-name2\"" +
92                 "              }" +
93                 "            ]" +
94                 "          }, {" +
95                 "            \"related-to\": \"l3-network\"," +
96                 "            \"relationship-label\": \"org.onap.relationships.inventory.Uses\"," +
97                 "            \"related-link\": \"/aai/v12/network/l3-networks/l3-network/" + UUID.randomUUID() + "\"," +
98                 "            \"relationship-data\": [{" +
99                 "                \"relationship-key\": \"l3-network.network-id\"," +
100                 "                \"relationship-value\": \"" + UUID.randomUUID() + "\"" +
101                 "              }" +
102                 "            ]," +
103                 "            \"related-to-property\": [{" +
104                 "                \"property-key\": \"l3-network.network-name\"," +
105                 "                \"property-value\": \"" + randomAlphabetic(5) + "\"" +
106                 "              }" +
107                 "            ]" +
108                 "          }" +
109                 "        ]" +
110                 "      }" +
111                 "    }" +
112                 "  ]" +
113                 "}";
114     }
115
116     @Override
117     public HttpMethod getReqMethod() {
118         return HttpMethod.GET;
119     }
120
121     @Override
122     public String getReqPath() {
123         return getRootPath() + "/cloud-infrastructure/cloud-regions";
124     }
125
126     @Override
127     public Map<String, List> getQueryParams() {
128         return ImmutableMap.of("cloud-region-id", Collections.singletonList(cloudRegionId));
129     }
130 }