[CCSDK-6] Populate seed code
[ccsdk/sli/adaptors.git] / resource-assignment / provider / src / main / java / org / openecomp / sdnc / ra / alloc / AffinityAllocationRule.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * openECOMP : SDN-C
4  * ================================================================================
5  * Copyright (C) 2017 ONAP Intellectual Property. All rights
6  *                                              reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  * 
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  * 
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.openecomp.sdnc.ra.alloc;
23
24 import org.openecomp.sdnc.ra.comp.AllocationRule;
25 import org.openecomp.sdnc.ra.comp.ServiceData;
26 import org.openecomp.sdnc.ra.equip.data.EquipmentData;
27 import org.openecomp.sdnc.rm.data.AllocationAction;
28 import org.openecomp.sdnc.rm.data.AllocationRequest;
29 import org.openecomp.sdnc.rm.data.LimitAllocationRequest;
30 import org.slf4j.Logger;
31 import org.slf4j.LoggerFactory;
32
33 public class AffinityAllocationRule implements AllocationRule {
34
35         @SuppressWarnings("unused")
36         private static final Logger log = LoggerFactory.getLogger(AffinityAllocationRule.class);
37
38         @Override
39         public AllocationRequest buildAllocationRequest(
40                 String resourceUnionId,
41                 String resourceSetId,
42                 String endPointPosition,
43                 ServiceData serviceData,
44                 EquipmentData equipmentData,
45                 boolean checkOnly,
46                 boolean change) {
47                 String affinityLink = (String) equipmentData.data.get("affinity-link");
48                 if (affinityLink == null)
49                         affinityLink = "1";
50
51                 long serviceSpeed = (Long) serviceData.data.get("service-speed-kbps");
52
53                 LimitAllocationRequest ar = new LimitAllocationRequest();
54                 ar.resourceSetId = resourceSetId;
55                 ar.resourceUnionId = resourceUnionId;
56                 ar.resourceShareGroupList = null;
57                 ar.resourceName = "Bandwidth";
58                 ar.assetId = equipmentData.equipmentId + "-" + affinityLink;
59                 ar.missingResourceAction = AllocationAction.Succeed_Allocate;
60                 ar.expiredResourceAction = AllocationAction.Succeed_Allocate;
61                 ar.replace = true;
62                 ar.strict = false;
63                 ar.checkLimit = Long.MAX_VALUE;
64                 ar.checkCount = 0;
65                 ar.allocateCount = serviceSpeed;
66                 return ar;
67         }
68 }