Fix license headers
[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 AT&T 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 }