diff options
author | 2019-04-19 02:10:02 +0800 | |
---|---|---|
committer | 2019-04-19 02:10:02 +0800 | |
commit | ef9c71ab1efce6e60eb5d8c89cf09c5182c48730 (patch) | |
tree | 6cddba6d92283b69954765ec0b00963f3aa8feb8 /artifactbroker/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/xacml/pdp/XacmlPdpArtifactForwarder.java | |
parent | e8697face7909927a9ddb418f116c76e3c6d8c8f (diff) |
enable merge sdc client part into Distribution release image
. update the defaultConfig.json file to include sdc client configuration
. update the DistriubtionActivator to enable parse sdc client and k8s plugin
. rename xacml pdp to k8s
. fix distribution run-time issue
Change-Id: If267f5c256b19ebdbe7b7b2869afcf2f570e4b24
Issue-ID: MULTICLOUD-576
Signed-off-by: liboNet <libo.zhu@intel.com>
Diffstat (limited to 'artifactbroker/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/xacml/pdp/XacmlPdpArtifactForwarder.java')
-rw-r--r-- | artifactbroker/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/xacml/pdp/XacmlPdpArtifactForwarder.java | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/artifactbroker/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/xacml/pdp/XacmlPdpArtifactForwarder.java b/artifactbroker/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/xacml/pdp/XacmlPdpArtifactForwarder.java deleted file mode 100644 index 4179fc7..0000000 --- a/artifactbroker/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/xacml/pdp/XacmlPdpArtifactForwarder.java +++ /dev/null @@ -1,205 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2018 Ericsson. 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.distribution.forwarding.xacml.pdp; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.reflect.TypeToken; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - - -import org.apache.http.HttpEntity; -import org.apache.http.NameValuePair; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.entity.UrlEncodedFormEntity; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.entity.FileEntity; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.message.BasicNameValuePair; -import org.apache.http.util.EntityUtils; - -import org.onap.policy.common.logging.flexlogger.FlexLogger; -import org.onap.policy.common.logging.flexlogger.Logger; -import org.onap.policy.common.parameters.ParameterService; -import org.onap.policy.distribution.forwarding.ArtifactForwarder; -import org.onap.policy.distribution.model.CloudArtifact; -import org.onap.policy.distribution.model.PolicyInput; -import org.onap.policy.distribution.model.VfModuleModel; -import org.onap.sdc.api.notification.IArtifactInfo; - - -/** - * Forwards policies to the XACML PDP. - */ -public class XacmlPdpArtifactForwarder implements ArtifactForwarder { - - private static final Logger LOGGER = FlexLogger.getLogger(XacmlPdpArtifactForwarder.class); - private static final String BASE_PATH = "http://localhost:8081/v1/rb/definition"; - private static final String CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT = "CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT"; - private Map<String, IArtifactInfo> artifactMap; - - private XacmlPdpArtifactForwarderParameterGroup configurationParameters = null; - - - - @Override - public void forward(PolicyInput policyInput) { - if (policyInput instanceof CloudArtifact) { - System.out.println("get a CloudArtifact !"); - CloudArtifact cloudArtifact = (CloudArtifact) policyInput; - artifactMap = cloudArtifact.getArtifactTypeMap(); - System.out.println("the artifactMap = " + artifactMap); - ArrayList<VfModuleModel> vfModuleModels = cloudArtifact.getVfModulePayload(); - System.out.println("the size of vfModule = " + vfModuleModels.size()); - - for (VfModuleModel vfModule : vfModuleModels) { - forwardAndUpload(vfModule); - } - } else { - System.out.println("NOT a CloudArtifact type !"); - return; - } - } - - private void forwardAndUpload(VfModuleModel vfModule) { - - System.out.println("before create type !"); - boolean definitionCreated = createDefinition(vfModule); - System.out.println(" after create type !"); - if (definitionCreated) { - uploadArtifact(vfModule); - } - } - - private boolean createDefinition(VfModuleModel vfModule) { - try { - HttpPost httpPost = new HttpPost(BASE_PATH); - httpPost.addHeader("Accept", "application/json"); - httpPost.addHeader("Content-Type", "application/json"); - - Gson gson = new GsonBuilder().enableComplexMapKeySerialization() - .create(); - - Map<String, Object> map = new LinkedHashMap<String, Object>(); - map.put("rb-name", vfModule.getVfModuleModelName()); - map.put("rb-version", vfModule.getVfModuleModelVersion()); - map.put("descritpion",vfModule.getVfModuleModelDescription()); - Map<String, String> labelMap = new LinkedHashMap<String, String>(); - labelMap.put("vnf_customization_uuid",vfModule.getVfModuleModelCustomizationUUID()); - map.put("labels", labelMap); - String json = gson.toJson(map); - - StringEntity entity = new StringEntity(json); - httpPost.setEntity(entity); - return invokeHttpPost("definition", httpPost); - } catch (Exception e) { - System.out.println("create definition error"); - return false; - } - - } - - private boolean uploadArtifact(VfModuleModel vfModule) { - String url = BASE_PATH + "/" + vfModule.getVfModuleModelName() + "/" - + vfModule.getVfModuleModelVersion() + "/content"; - HttpPost httpPost = new HttpPost(url); - httpPost.addHeader("content-type", "application/x-www-form-urlencoded;charset=utf-8"); - - List<String> artifacts = vfModule.getArtifacts(); - System.out.println("artifacts = " + artifacts); - - String cloudUuid = null; - IArtifactInfo cloudArtifact = null; - boolean found = false; - - for (String artifact: artifacts) { - if ( artifactMap.get(artifact) != null - && artifactMap.get(artifact).getArtifactType().equals("CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT")) { - cloudArtifact = artifactMap.get(artifact); - cloudUuid = cloudArtifact.getArtifactUUID(); - found = true; - break; - } - } - - if ( found == false ) { - System.out.println(" meets error , no CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT type found "); - return false; - } - String cloudArtifactPath = "/data/" + vfModule.getVfModuleModelCustomizationUUID() - + "/" + cloudArtifact.getArtifactName(); - File file = new File(cloudArtifactPath); - FileEntity entity = new FileEntity(file); - httpPost.setEntity(entity); - - return invokeHttpPost("uploading", httpPost); - } - - - @Override - public void configure(String parameterGroupName) { - configurationParameters = ParameterService.get(parameterGroupName); - } - - protected static boolean invokeHttpPost(String action, HttpPost httpPost) { - System.out.println("httpPost begin!"); - boolean ret = false; - - String errorMsg; - label1: { - try ( CloseableHttpClient httpClient = HttpClients.createDefault() ) { - System.out.println("result1") ; - CloseableHttpResponse closeableHttpResponse = httpClient.execute(httpPost); - System.out.println("result2") ; - String result = EntityUtils.toString(closeableHttpResponse.getEntity()); - System.out.println("result = {}" + result); - System.out.println("status = {}" + closeableHttpResponse.getStatusLine().getStatusCode()); - if ( closeableHttpResponse.getStatusLine().getStatusCode() != 200 ) { - System.out.println("exception: ret= " + closeableHttpResponse.getStatusLine().getStatusCode()); - } else { - ret = true; - } - - closeableHttpResponse.close(); - break label1; - } catch (IOException var) { - errorMsg = action + ":httpPostWithJSON connect faild"; - System.out.println("exception: POST_CONNECT_FAILD : {}" + errorMsg); - } - } - - System.out.println("httpPost end!"); - return ret; - } - -} |