diff options
Diffstat (limited to 'src/main/java/org/onap/music/conductor')
4 files changed, 0 insertions, 793 deletions
diff --git a/src/main/java/org/onap/music/conductor/conditionals/JsonConditional.java b/src/main/java/org/onap/music/conductor/conditionals/JsonConditional.java deleted file mode 100644 index 4efcabea..00000000 --- a/src/main/java/org/onap/music/conductor/conditionals/JsonConditional.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * ============LICENSE_START========================================== - * org.onap.music - * =================================================================== - * Copyright (c) 2017 AT&T Intellectual Property - * =================================================================== - * 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.onap.music.conductor.conditionals; - -import java.io.Serializable; -import java.util.Map; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - -import io.swagger.annotations.ApiModel; - -@ApiModel(value = "JsonConditional", description = "Json model for insert or update into table based on some conditions") -@JsonIgnoreProperties(ignoreUnknown = true) -public class JsonConditional implements Serializable { - - private String primaryKey; - private String primaryKeyValue; - private String casscadeColumnName; - private Map<String,Object> tableValues; - private Map<String,Object> casscadeColumnData; - private Map<String,Map<String,String>> conditions; - - public Map<String, Object> getTableValues() { - return tableValues; - } - public void setTableValues(Map<String, Object> tableValues) { - this.tableValues = tableValues; - } - - public String getPrimaryKey() { - return primaryKey; - } - public String getPrimaryKeyValue() { - return primaryKeyValue; - } - public String getCasscadeColumnName() { - return casscadeColumnName; - } - - public Map<String, Object> getCasscadeColumnData() { - return casscadeColumnData; - } - - - - public void setPrimaryKey(String primaryKey) { - this.primaryKey = primaryKey; - } - public void setPrimaryKeyValue(String primaryKeyValue) { - this.primaryKeyValue = primaryKeyValue; - } - public Map<String, Map<String, String>> getConditions() { - return conditions; - } - public void setConditions(Map<String, Map<String, String>> conditions) { - this.conditions = conditions; - } - public void setCasscadeColumnName(String casscadeColumnName) { - this.casscadeColumnName = casscadeColumnName; - } - - public void setCasscadeColumnData(Map<String, Object> casscadeColumnData) { - this.casscadeColumnData = casscadeColumnData; - } - - - - - -}
\ No newline at end of file diff --git a/src/main/java/org/onap/music/conductor/conditionals/MusicConditional.java b/src/main/java/org/onap/music/conductor/conditionals/MusicConditional.java deleted file mode 100644 index 18fa8a18..00000000 --- a/src/main/java/org/onap/music/conductor/conditionals/MusicConditional.java +++ /dev/null @@ -1,379 +0,0 @@ -/* - * ============LICENSE_START========================================== - * org.onap.music - * =================================================================== - * Copyright (c) 2017 AT&T Intellectual Property - * =================================================================== - * Modifications Copyright (C) 2019 IBM. - * Modifications Copyright (c) 2019 Samsung - * =================================================================== - * 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.onap.music.conductor.conditionals; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.HashMap; -import java.util.Map; - -import org.codehaus.jettison.json.JSONObject; -import org.onap.music.datastore.MusicDataStoreHandle; -import org.onap.music.datastore.PreparedQueryObject; -import org.onap.music.eelf.logging.EELFLoggerDelegate; -import org.onap.music.eelf.logging.format.AppMessages; -import org.onap.music.eelf.logging.format.ErrorSeverity; -import org.onap.music.eelf.logging.format.ErrorTypes; -import org.onap.music.exceptions.MusicLockingException; -import org.onap.music.exceptions.MusicQueryException; -import org.onap.music.exceptions.MusicServiceException; -import org.onap.music.main.MusicCore; -import org.onap.music.main.MusicUtil; -import org.onap.music.main.ResultType; -import org.onap.music.main.ReturnType; -import org.onap.music.rest.RestMusicDataAPI; - -import com.datastax.driver.core.ColumnDefinitions; -import com.datastax.driver.core.DataType; -import com.datastax.driver.core.ResultSet; -import com.datastax.driver.core.Row; -import com.datastax.driver.core.TableMetadata; - -public class MusicConditional { - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RestMusicDataAPI.class); - - public static ReturnType conditionalInsert(String keyspace, String tablename, String casscadeColumnName, - Map<String, Object> casscadeColumnData, String primaryKey, Map<String, Object> valuesMap, - Map<String, String> status) throws Exception { - - Map<String, PreparedQueryObject> queryBank = new HashMap<>(); - TableMetadata tableInfo = null; - tableInfo = MusicDataStoreHandle.returnColumnMetadata(keyspace, tablename); - DataType primaryIdType = tableInfo.getPrimaryKey().get(0).getType(); - String primaryId = tableInfo.getPrimaryKey().get(0).getName(); - DataType casscadeColumnType = tableInfo.getColumn(casscadeColumnName).getType(); - String vector = String.valueOf(Thread.currentThread().getId() + System.currentTimeMillis()); - - PreparedQueryObject select = new PreparedQueryObject(); - select.appendQueryString("SELECT * FROM " + keyspace + "." + tablename + " where " + primaryId + " = ?"); - select.addValue(MusicUtil.convertToActualDataType(primaryIdType, primaryKey)); - queryBank.put(MusicUtil.SELECT, select); - - PreparedQueryObject update = new PreparedQueryObject(); - //casscade column values - Map<String, String> updateColumnvalues = getValues(true, casscadeColumnData, status); - Object formatedValues = MusicUtil.convertToActualDataType(casscadeColumnType, updateColumnvalues); - update.appendQueryString("UPDATE " + keyspace + "." + tablename + " SET " + casscadeColumnName + " =" - + casscadeColumnName + " + ? , vector_ts = ?" + " WHERE " + primaryId + " = ? "); - update.addValue(formatedValues); - update.addValue(MusicUtil.convertToActualDataType(DataType.text(), vector)); - update.addValue(MusicUtil.convertToActualDataType(primaryIdType, primaryKey)); - queryBank.put(MusicUtil.UPDATE, update); - - - //casscade column values - Map<String, String> insertColumnvalues = getValues(false, casscadeColumnData, status); - formatedValues = MusicUtil.convertToActualDataType(casscadeColumnType, insertColumnvalues); - PreparedQueryObject insert = extractQuery(valuesMap, tableInfo, tablename, keyspace, primaryId, primaryKey,casscadeColumnName,formatedValues); - queryBank.put(MusicUtil.INSERT, insert); - - - String key = keyspace + "." + tablename + "." + primaryKey; - String lockId; - try { - lockId = MusicCore.createLockReference(key); - } catch (MusicLockingException e) { - return new ReturnType(ResultType.FAILURE, e.getMessage()); - } - long leasePeriod = MusicUtil.getDefaultLockLeasePeriod(); - ReturnType lockAcqResult = MusicCore.acquireLockWithLease(key, lockId, leasePeriod); - - try { - if (lockAcqResult.getResult().equals(ResultType.SUCCESS)) { - ReturnType criticalPutResult = conditionalInsertAtomic(lockId, keyspace, tablename, primaryKey, - queryBank); - MusicCore.destroyLockRef(lockId); - if (criticalPutResult.getMessage().contains("insert")) - criticalPutResult - .setMessage("Insert values: "); - else if (criticalPutResult.getMessage().contains("update")) - criticalPutResult - .setMessage("Update values: " + updateColumnvalues); - return criticalPutResult; - - } else { - MusicCore.destroyLockRef(lockId); - return lockAcqResult; - } - } catch (Exception e) { - logger.error(EELFLoggerDelegate.applicationLogger, e); - MusicCore.destroyLockRef(lockId); - return new ReturnType(ResultType.FAILURE, e.getMessage()); - } - - } - - public static ReturnType conditionalInsertAtomic(String lockId, String keyspace, String tableName, - String primaryKey, Map<String, PreparedQueryObject> queryBank) { - - ResultSet results = null; - - try { - String fullyQualifiedKey = keyspace + "." + tableName + "." + primaryKey; - ReturnType lockAcqResult = MusicCore.acquireLock(fullyQualifiedKey, lockId); - if (lockAcqResult.getResult().equals(ResultType.SUCCESS)) { - try { - results = MusicDataStoreHandle.getDSHandle().executeQuorumConsistencyGet(queryBank.get(MusicUtil.SELECT)); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.applicationLogger, e); - return new ReturnType(ResultType.FAILURE, e.getMessage()); - } - if (results.all().isEmpty()) { - MusicDataStoreHandle.getDSHandle().executePut(queryBank.get(MusicUtil.INSERT), "critical"); - return new ReturnType(ResultType.SUCCESS, "insert"); - } else { - MusicDataStoreHandle.getDSHandle().executePut(queryBank.get(MusicUtil.UPDATE), "critical"); - return new ReturnType(ResultType.SUCCESS, "update"); - } - } else { - return new ReturnType(ResultType.FAILURE, - "Cannot perform operation since you are the not the lock holder"); - } - - } catch (Exception e) { - StringWriter sw = new StringWriter(); - e.printStackTrace(new PrintWriter(sw)); - String exceptionAsString = sw.toString(); - logger.error(EELFLoggerDelegate.applicationLogger, e); - return new ReturnType(ResultType.FAILURE, - "Exception thrown while doing the critical put, check sanctity of the row/conditions:\n" - + exceptionAsString); - } - - } - - public static ReturnType update(UpdateDataObject dataObj) - throws MusicLockingException, MusicQueryException, MusicServiceException { - - String key = dataObj.getKeyspace() + "." + dataObj.getTableName() + "." + dataObj.getPrimaryKeyValue(); - String lockId = MusicCore.createLockReference(key); - long leasePeriod = MusicUtil.getDefaultLockLeasePeriod(); - ReturnType lockAcqResult = MusicCore.acquireLockWithLease(key, lockId, leasePeriod); - - try { - - if (lockAcqResult.getResult().equals(ResultType.SUCCESS)) { - ReturnType criticalPutResult = updateAtomic(new UpdateDataObject().setLockId(lockId) - .setKeyspace(dataObj.getKeyspace()) - .setTableName( dataObj.getTableName()) - .setPrimaryKey(dataObj.getPrimaryKey()) - .setPrimaryKeyValue(dataObj.getPrimaryKeyValue()) - .setQueryBank(dataObj.getQueryBank()) - .setPlanId(dataObj.getPlanId()) - .setCascadeColumnValues(dataObj.getCascadeColumnValues()) - .setCascadeColumnName(dataObj.getCascadeColumnName())); - - MusicCore.destroyLockRef(lockId); - return criticalPutResult; - } else { - MusicCore.destroyLockRef(lockId); - return lockAcqResult; - } - - } catch (Exception e) { - MusicCore.destroyLockRef(lockId); - logger.error(EELFLoggerDelegate.applicationLogger, e); - return new ReturnType(ResultType.FAILURE, e.getMessage()); - - } - } - - public static ReturnType updateAtomic(UpdateDataObject dataObj) { - try { - String fullyQualifiedKey = dataObj.getKeyspace() + "." + dataObj.getTableName() + "." + dataObj.getPrimaryKeyValue(); - ReturnType lockAcqResult = MusicCore.acquireLock(fullyQualifiedKey, dataObj.getLockId()); - - if (lockAcqResult.getResult().equals(ResultType.SUCCESS)) { - Row row = MusicDataStoreHandle.getDSHandle().executeQuorumConsistencyGet(dataObj.getQueryBank().get(MusicUtil.SELECT)).one(); - - if(row != null) { - Map<String, String> updatedValues = cascadeColumnUpdateSpecific(row, dataObj.getCascadeColumnValues(), dataObj.getCascadeColumnName(), dataObj.getPlanId()); - JSONObject json = new JSONObject(updatedValues); - PreparedQueryObject update = new PreparedQueryObject(); - String vector_ts = String.valueOf(Thread.currentThread().getId() + System.currentTimeMillis()); - update.appendQueryString("UPDATE " + dataObj.getKeyspace() + "." + dataObj.getTableName() + " SET " + dataObj.getCascadeColumnName() + "['" + dataObj.getPlanId() - + "'] = ?, vector_ts = ? WHERE " + dataObj.getPrimaryKey() + " = ?"); - update.addValue(MusicUtil.convertToActualDataType(DataType.text(), json.toString())); - update.addValue(MusicUtil.convertToActualDataType(DataType.text(), vector_ts)); - update.addValue(MusicUtil.convertToActualDataType(DataType.text(), dataObj.getPrimaryKeyValue())); - try { - MusicDataStoreHandle.getDSHandle().executePut(update, "critical"); - } catch (Exception ex) { - logger.error(EELFLoggerDelegate.applicationLogger, ex); - return new ReturnType(ResultType.FAILURE, ex.getMessage()); - } - }else { - return new ReturnType(ResultType.FAILURE,"Cannot find data related to key: "+dataObj.getPrimaryKey()); - } - MusicDataStoreHandle.getDSHandle().executePut(dataObj.getQueryBank().get(MusicUtil.UPSERT), "critical"); - return new ReturnType(ResultType.SUCCESS, "update success"); - - } else { - return new ReturnType(ResultType.FAILURE, - "Cannot perform operation since you are the not the lock holder"); - } - - } catch (Exception e) { - StringWriter sw = new StringWriter(); - e.printStackTrace(new PrintWriter(sw)); - String exceptionAsString = sw.toString(); - logger.error(EELFLoggerDelegate.applicationLogger, e); - return new ReturnType(ResultType.FAILURE, - "Exception thrown while doing the critical put, check sanctity of the row/conditions:\n" - + exceptionAsString); - } - - } - - @SuppressWarnings("unchecked") - public static Map<String, String> getValues(boolean isExists, Map<String, Object> casscadeColumnData, - Map<String, String> status) { - - Map<String, String> returnMap = new HashMap<>(); - Object key = casscadeColumnData.get("key"); - String setStatus = ""; - Map<String, String> value = (Map<String, String>) casscadeColumnData.get("value"); - - if (isExists) - setStatus = status.get("exists"); - else - setStatus = status.get("nonexists"); - - value.put("status", setStatus); - JSONObject valueJson = new JSONObject(value); - returnMap.put(key.toString(), valueJson.toString()); - return returnMap; - - } - - public static PreparedQueryObject extractQuery(Map<String, Object> valuesMap, TableMetadata tableInfo, String tableName, - String keySpaceName,String primaryKeyName,String primaryKey,String casscadeColumn,Object casscadeColumnValues) throws Exception { - - PreparedQueryObject queryObject = new PreparedQueryObject(); - StringBuilder fieldsString = new StringBuilder("(vector_ts"+","); - StringBuilder valueString = new StringBuilder("(" + "?" + ","); - String vector = String.valueOf(Thread.currentThread().getId() + System.currentTimeMillis()); - String localPrimaryKey; - queryObject.addValue(vector); - if(casscadeColumn!=null && casscadeColumnValues!=null) { - fieldsString.append(casscadeColumn).append(" ,"); - valueString.append("?,"); - queryObject.addValue(casscadeColumnValues); - } - - int counter = 0; - for (Map.Entry<String, Object> entry : valuesMap.entrySet()) { - - fieldsString.append(entry.getKey()); - Object valueObj = entry.getValue(); - if (primaryKeyName.equals(entry.getKey())) { - localPrimaryKey = entry.getValue() + ""; - localPrimaryKey = localPrimaryKey.replace("'", "''"); - } - DataType colType = null; - try { - colType = tableInfo.getColumn(entry.getKey()).getType(); - } catch(NullPointerException ex) { - logger.error(EELFLoggerDelegate.errorLogger,ex.getMessage() +" Invalid column name : "+entry.getKey(), - AppMessages.INCORRECTDATA ,ErrorSeverity.CRITICAL, ErrorTypes.DATAERROR, ex); - } - - Object formattedValue = null; - try { - formattedValue = MusicUtil.convertToActualDataType(colType, valueObj); - } catch (Exception e) { - logger.error(EELFLoggerDelegate.errorLogger,e.getMessage(), e); - } - - valueString.append("?"); - queryObject.addValue(formattedValue); - - - if (counter == valuesMap.size() - 1) { - fieldsString.append(")"); - valueString.append(")"); - } else { - fieldsString.append(","); - valueString.append(","); - } - counter = counter + 1; - } - queryObject.appendQueryString("INSERT INTO " + keySpaceName + "." + tableName + " " - + fieldsString + " VALUES " + valueString); - return queryObject; - } - - public static Object getColValue(Row row, String colName, DataType colType) { - switch (colType.getName()) { - case VARCHAR: - return row.getString(colName); - case UUID: - return row.getUUID(colName); - case VARINT: - return row.getVarint(colName); - case BIGINT: - return row.getLong(colName); - case INT: - return row.getInt(colName); - case FLOAT: - return row.getFloat(colName); - case DOUBLE: - return row.getDouble(colName); - case BOOLEAN: - return row.getBool(colName); - case MAP: - return row.getMap(colName, String.class, String.class); - default: - return null; - } - } - - @SuppressWarnings("unchecked") - public static Map<String, String> cascadeColumnUpdateSpecific(Row row, Map<String, String> changeOfStatus, - String cascadeColumnName, String planId) { - - ColumnDefinitions colInfo = row.getColumnDefinitions(); - DataType colType = colInfo.getType(cascadeColumnName); - Object columnValue = getColValue(row, cascadeColumnName, colType); - - Map<String, String> finalValues = new HashMap<>(); - Map<String, String> values = (Map<String, String>) columnValue; - if (values != null && values.keySet().contains(planId)) { - String valueString = values.get(planId); - String tempValueString = valueString.replaceAll("\\{", "").replaceAll("\"", "").replaceAll("\\}", ""); - String[] elements = tempValueString.split(","); - for (String str : elements) { - String[] keyValue = str.split(":"); - if ((changeOfStatus.keySet().contains(keyValue[0].replaceAll("\\s", "")))) - keyValue[1] = changeOfStatus.get(keyValue[0].replaceAll("\\s", "")); - finalValues.put(keyValue[0], keyValue[1]); - } - } - return finalValues; - - } - -} diff --git a/src/main/java/org/onap/music/conductor/conditionals/RestMusicConditionalAPI.java b/src/main/java/org/onap/music/conductor/conditionals/RestMusicConditionalAPI.java deleted file mode 100644 index 584a9e47..00000000 --- a/src/main/java/org/onap/music/conductor/conditionals/RestMusicConditionalAPI.java +++ /dev/null @@ -1,205 +0,0 @@ -/* - * ============LICENSE_START========================================== - * org.onap.music - * =================================================================== - * Copyright (c) 2017 AT&T Intellectual Property - * =================================================================== - * Modifications Copyright (c) 2018 IBM - * =================================================================== - * 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.onap.music.conductor.conditionals; - -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; - -import javax.ws.rs.Consumes; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.ResponseBuilder; -import javax.ws.rs.core.Response.Status; - -import org.onap.music.datastore.MusicDataStoreHandle; -import org.onap.music.datastore.PreparedQueryObject; -import org.onap.music.eelf.logging.EELFLoggerDelegate; -import org.onap.music.eelf.logging.format.AppMessages; -import org.onap.music.eelf.logging.format.ErrorSeverity; -import org.onap.music.eelf.logging.format.ErrorTypes; -import org.onap.music.main.MusicUtil; -import org.onap.music.main.ResultType; -import org.onap.music.main.ReturnType; -import org.onap.music.response.jsonobjects.JsonResponse; -import org.onap.music.conductor.*; - -import com.datastax.driver.core.DataType; -import com.datastax.driver.core.TableMetadata; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiParam; - -@Path("/v2/conditional") -@Api(value = "Conditional Api", hidden = true) -public class RestMusicConditionalAPI { - private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RestMusicConditionalAPI.class); - private static final String XMINORVERSION = "X-minorVersion"; - private static final String XPATCHVERSION = "X-patchVersion"; - private static final String NS = "ns"; - private static final String VERSION = "v2"; - - @POST - @Path("/insert/keyspaces/{keyspace}/tables/{tablename}") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response insertConditional( - @ApiParam(value = "Major Version", required = true) - @PathParam("version") String version, - @ApiParam(value = "Minor Version", required = false) - @HeaderParam(XMINORVERSION) String minorVersion, - @ApiParam(value = "Patch Version", required = false) - @HeaderParam(XPATCHVERSION) String patchVersion, - @ApiParam(value = "AID", required = true) - @HeaderParam("aid") String aid, - @ApiParam(value = "Application namespace", required = true) - @HeaderParam(NS) String ns, - @ApiParam(value = "Authorization", required = true) - @HeaderParam("Authorization") String authorization, - @ApiParam(value = "Keyspace Name", required = true) - @PathParam("keyspace") String keyspace, - @ApiParam(value = "Table Name", required = true) - @PathParam("tablename") String tablename, - JsonConditional jsonObj) throws Exception { - ResponseBuilder response = - MusicUtil.buildVersionResponse(VERSION, minorVersion, patchVersion); - String primaryKey = jsonObj.getPrimaryKey(); - String primaryKeyValue = jsonObj.getPrimaryKeyValue(); - String casscadeColumnName = jsonObj.getCasscadeColumnName(); - Map<String, Object> tableValues = jsonObj.getTableValues(); - Map<String, Object> casscadeColumnData = jsonObj.getCasscadeColumnData(); - Map<String, Map<String, String>> conditions = jsonObj.getConditions(); - - if (primaryKey == null || primaryKeyValue == null || casscadeColumnName == null - || tableValues.isEmpty() || casscadeColumnData.isEmpty() || conditions.isEmpty()) { - logger.error(EELFLoggerDelegate.errorLogger, "", AppMessages.MISSINGINFO, ErrorSeverity.CRITICAL, - ErrorTypes.AUTHENTICATIONERROR); - return response.status(Status.UNAUTHORIZED).entity(new JsonResponse(ResultType.FAILURE) - .setError(String.valueOf("One or more input values missing")).toMap()).build(); - } - Map<String, Object> authMap = null; - Map<String, Object> valuesMap = new LinkedHashMap<>(); - for (Map.Entry<String, Object> entry : tableValues.entrySet()) { - valuesMap.put(entry.getKey(), entry.getValue()); - } - - Map<String, String> status = new HashMap<>(); - status.put("exists", conditions.get("exists").get("status")); - status.put("nonexists", conditions.get("nonexists").get("status")); - ReturnType out = null; - - out = MusicConditional.conditionalInsert(keyspace, tablename, - casscadeColumnName, casscadeColumnData,primaryKeyValue, valuesMap, status); - return response.status(Status.OK).entity(new JsonResponse( - out.getResult()).setMessage(out.getMessage()).toMap()) - .build(); - - } - - @SuppressWarnings("unchecked") - @PUT - @Path("/update/keyspaces/{keyspace}/tables/{tablename}") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response updateConditional( - @ApiParam(value = "Major Version", required = true) - @PathParam("version") String version, - @ApiParam(value = "Minor Version", required = false) - @HeaderParam(XMINORVERSION) String minorVersion, - @ApiParam(value = "Patch Version", required = false) - @HeaderParam(XPATCHVERSION) String patchVersion, - @ApiParam(value = "AID", required = true) - @HeaderParam("aid") String aid, - @ApiParam(value = "Application namespace", required = true) - @HeaderParam(NS) String ns, - @ApiParam(value = "Authorization", required = true) - @HeaderParam("Authorization") String authorization, - @ApiParam(value = "Major Version", required = true) - @PathParam("keyspace") String keyspace, - @ApiParam(value = "Major Version", required = true) - @PathParam("tablename") String tablename, - JsonConditional upObj) throws Exception { - ResponseBuilder response = MusicUtil.buildVersionResponse(VERSION, minorVersion, patchVersion); - - String primaryKey = upObj.getPrimaryKey(); - String primaryKeyValue = upObj.getPrimaryKeyValue(); - String casscadeColumnName = upObj.getCasscadeColumnName(); - Map<String, Object> casscadeColumnData = upObj.getCasscadeColumnData(); - Map<String, Object> tableValues = upObj.getTableValues(); - - if (primaryKey == null || primaryKeyValue == null || casscadeColumnName == null - || casscadeColumnData.isEmpty()) { - logger.error(EELFLoggerDelegate.errorLogger, "", AppMessages.MISSINGINFO, ErrorSeverity.CRITICAL, - ErrorTypes.AUTHENTICATIONERROR); - return response.status(Status.UNAUTHORIZED).entity(new JsonResponse(ResultType.FAILURE) - .setError(String.valueOf("One or more input values missing")).toMap()).build(); - - } - - Map<String,String> casscadeColumnValueMap = - (Map<String, String>) casscadeColumnData.get("value"); - TableMetadata tableInfo = null; - tableInfo = MusicDataStoreHandle.returnColumnMetadata(keyspace, tablename); - DataType primaryIdType = tableInfo.getPrimaryKey().get(0).getType(); - String primaryId = tableInfo.getPrimaryKey().get(0).getName(); - - PreparedQueryObject select = new PreparedQueryObject(); - select.appendQueryString("SELECT * FROM " + keyspace + "." - + tablename + " where " + primaryId + " = ?"); - select.addValue(MusicUtil.convertToActualDataType(primaryIdType, primaryKeyValue)); - - PreparedQueryObject upsert = - MusicConditional.extractQuery(tableValues, tableInfo, tablename, - keyspace, primaryKey, primaryKeyValue, null, null); - Map<String,PreparedQueryObject> queryBank = new HashMap<>(); - queryBank.put(MusicUtil.SELECT, select); - queryBank.put(MusicUtil.UPSERT, upsert); - String planId = casscadeColumnData.get("key").toString(); - ReturnType result = MusicConditional.update(new UpdateDataObject().setQueryBank(queryBank) - .setKeyspace(keyspace) - .setTableName(tablename) - .setPrimaryKey(primaryKey) - .setPrimaryKeyValue(primaryKeyValue) - .setPlanId(planId) - .setCascadeColumnName(casscadeColumnName) - .setCascadeColumnValues(casscadeColumnValueMap)); - if (result.getResult() == ResultType.SUCCESS) { - return response.status(Status.OK) - .entity(new JsonResponse(result.getResult()) - .setMessage(result.getMessage()).toMap()).build(); - } - return response.status(Status.BAD_REQUEST) - .entity(new JsonResponse(result.getResult()) - .setMessage(result.getMessage()).toMap()).build(); - - } - -}
\ No newline at end of file diff --git a/src/main/java/org/onap/music/conductor/conditionals/UpdateDataObject.java b/src/main/java/org/onap/music/conductor/conditionals/UpdateDataObject.java deleted file mode 100644 index 1ea8994e..00000000 --- a/src/main/java/org/onap/music/conductor/conditionals/UpdateDataObject.java +++ /dev/null @@ -1,119 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Samsung Electronics Co., Ltd. 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.music.conductor.conditionals; - -import java.util.Map; -import org.onap.music.datastore.PreparedQueryObject; - -public class UpdateDataObject { - - Map<String, PreparedQueryObject> queryBank; - String keyspace; - String tableName; - String primaryKey; - String primaryKeyValue; - String planId; - String cascadeColumnName; - Map<String, String> cascadeColumnValues; - String lockId; - - public Map<String, PreparedQueryObject> getQueryBank() { - return queryBank; - } - - public UpdateDataObject setQueryBank(Map<String, PreparedQueryObject> queryBank) { - this.queryBank = queryBank; - return this; - } - - public String getKeyspace() { - return keyspace; - } - - public UpdateDataObject setKeyspace(String keyspace) { - this.keyspace = keyspace; - return this; - } - - public String getTableName() { - return tableName; - } - - public UpdateDataObject setTableName(String tableName) { - this.tableName = tableName; - return this; - } - - public String getPrimaryKey() { - return primaryKey; - } - - public UpdateDataObject setPrimaryKey(String primaryKey) { - this.primaryKey = primaryKey; - return this; - } - - public String getPrimaryKeyValue() { - return primaryKeyValue; - } - - public UpdateDataObject setPrimaryKeyValue(String primaryKeyValue) { - this.primaryKeyValue = primaryKeyValue; - return this; - } - - public String getPlanId() { - return planId; - } - - public UpdateDataObject setPlanId(String planId) { - this.planId = planId; - return this; - } - - public String getCascadeColumnName() { - return cascadeColumnName; - } - - public UpdateDataObject setCascadeColumnName(String cascadeColumnName) { - this.cascadeColumnName = cascadeColumnName; - return this; - } - - public Map<String, String> getCascadeColumnValues() { - return cascadeColumnValues; - } - - public UpdateDataObject setLockId(String lockId) { - this.lockId=lockId; - return this; - } - - public String getLockId() { - return lockId; - } - - public UpdateDataObject setCascadeColumnValues(Map<String, String> cascadeColumnValues) { - this.cascadeColumnValues = cascadeColumnValues; - return this; - } - - -} |