aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/music/datastore/jsonobjects/JsonKeySpace.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/music/datastore/jsonobjects/JsonKeySpace.java')
-rw-r--r--src/main/java/org/onap/music/datastore/jsonobjects/JsonKeySpace.java85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/main/java/org/onap/music/datastore/jsonobjects/JsonKeySpace.java b/src/main/java/org/onap/music/datastore/jsonobjects/JsonKeySpace.java
index f2232ffd..cada1c00 100644
--- a/src/main/java/org/onap/music/datastore/jsonobjects/JsonKeySpace.java
+++ b/src/main/java/org/onap/music/datastore/jsonobjects/JsonKeySpace.java
@@ -4,6 +4,8 @@
* ===================================================================
* Copyright (c) 2017 AT&T Intellectual Property
* ===================================================================
+ * Modifications Copyright (C) 2019 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
@@ -24,6 +26,16 @@ package org.onap.music.datastore.jsonobjects;
import java.util.Map;
+import javax.ws.rs.core.Response.Status;
+
+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.MusicQueryException;
+import org.onap.music.main.MusicUtil;
+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
@@ -32,6 +44,7 @@ import io.swagger.annotations.ApiModelProperty;
@ApiModel(value = "JsonTable", description = "Json model creating new keyspace")
@JsonIgnoreProperties(ignoreUnknown = true)
public class JsonKeySpace {
+ private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(JsonKeySpace.class);
private String keyspaceName;
private Map<String, Object> replicationInfo;
private String durabilityOfWrites;
@@ -73,6 +86,78 @@ public class JsonKeySpace {
this.keyspaceName = keyspaceName;
}
+ /**
+ * Will generate query to create Keyspacce.
+ *
+ * @throws MusicQueryException
+ */
+ @SuppressWarnings("deprecation")
+ public PreparedQueryObject genCreateKeyspaceQuery() throws MusicQueryException {
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("Came inside createKeyspace method");
+ }
+
+ String keyspaceName = this.getKeyspaceName();
+ String durabilityOfWrites = this.getDurabilityOfWrites();
+ String consistency = MusicUtil.EVENTUAL;
+
+ logger.info("genCreateKeyspaceQuery keyspaceName ::" + keyspaceName);
+ logger.info("genCreateKeyspaceQuery class :: " + this.getReplicationInfo().get("class"));
+ logger.info("genCreateKeyspaceQuery replication_factor :: " + this.getReplicationInfo().get("replication_factor"));
+ logger.info("genCreateKeyspaceQuery durabilityOfWrites :: " + durabilityOfWrites);
+
+ PreparedQueryObject queryObject = new PreparedQueryObject();
+
+ if(consistency.equalsIgnoreCase(MusicUtil.EVENTUAL) && this.getConsistencyInfo().get("consistency") != null) {
+ if(MusicUtil.isValidConsistency(this.getConsistencyInfo().get("consistency"))) {
+ queryObject.setConsistency(this.getConsistencyInfo().get("consistency"));
+ }else {
+ throw new MusicQueryException("Invalid Consistency type",Status.BAD_REQUEST.getStatusCode());
+ }
+ }
+
+ long start = System.currentTimeMillis();
+ Map<String, Object> replicationInfo = this.getReplicationInfo();
+ String repString = null;
+ try {
+ repString = "{" + MusicUtil.jsonMaptoSqlString(replicationInfo, ",") + "}";
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, e.getMessage(), AppMessages.MISSINGDATA,
+ ErrorSeverity.CRITICAL, ErrorTypes.DATAERROR);
+ }
+ queryObject.appendQueryString("CREATE KEYSPACE " + keyspaceName + " WITH replication = " + repString);
+ if (this.getDurabilityOfWrites() != null) {
+ queryObject.appendQueryString(" AND durable_writes = " + this.getDurabilityOfWrites());
+ }
+ queryObject.appendQueryString(";");
+ long end = System.currentTimeMillis();
+ logger.info(EELFLoggerDelegate.applicationLogger,
+ "Time taken for setting up query in create keyspace:" + (end - start));
+
+ return queryObject;
+ }
+
+ /**
+ * Will generate Query to drop a keyspace.
+ *
+ * @return
+ */
+ public PreparedQueryObject genDropKeyspaceQuery() {
+ if (logger.isDebugEnabled()) {
+ logger.debug("Coming inside genDropKeyspaceQuery method "+this.getKeyspaceName());
+ }
+ PreparedQueryObject queryObject = new PreparedQueryObject();
+ queryObject.appendQueryString("DROP KEYSPACE " + this.getKeyspaceName() + ";");
+
+ return queryObject;
+ }
+
+ @Override
+ public String toString() {
+ return "CassaKeyspaceObject [keyspaceName=" + keyspaceName + ", replicationInfo=" + replicationInfo
+ + "durabilityOfWrites=" + durabilityOfWrites + "]";
+ }
}