All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.cloudslang.content.couchbase.factory.buckets.BucketsHelper Maven / Gradle / Ivy

There is a newer version: 0.1.2
Show newest version
/*******************************************************************************
 * (c) Copyright 2017 Hewlett-Packard Development Company, L.P.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Apache License v2.0 which accompany this distribution.
 *
 * The Apache License is available at
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 *******************************************************************************/
package io.cloudslang.content.couchbase.factory.buckets;

import io.cloudslang.content.couchbase.entities.couchbase.AuthType;
import io.cloudslang.content.couchbase.entities.inputs.InputsWrapper;

import java.util.HashMap;
import java.util.Map;

import static io.cloudslang.content.couchbase.entities.constants.Constants.ErrorMessages.INPUTS_COMBINATION_ERROR_MESSAGE;
import static io.cloudslang.content.couchbase.entities.constants.Constants.Miscellaneous.AMPERSAND;
import static io.cloudslang.content.couchbase.entities.constants.Constants.Miscellaneous.EQUAL;
import static io.cloudslang.content.couchbase.entities.constants.Inputs.BucketInputs.*;
import static io.cloudslang.content.couchbase.utils.InputsUtil.setOptionalMapEntry;
import static io.cloudslang.content.couchbase.utils.InputsUtil.getPayloadString;
import static io.cloudslang.content.httpclient.HttpClientInputs.AUTH_TYPE;
import static io.cloudslang.content.httpclient.HttpClientInputs.PROXY_PORT;
import static java.lang.String.valueOf;
import static org.apache.commons.lang3.StringUtils.isNotBlank;

/**
 * Created by TusaM
 * 4/14/2017.
 */
public class BucketsHelper {
    private static final String NAME = "name";

    public String getCreateBucketPayload(InputsWrapper wrapper) {
        return getPayloadString(getPayloadMap(wrapper), EQUAL, AMPERSAND, true);
    }

    private Map getPayloadMap(InputsWrapper wrapper) {
        Map payloadMap = new HashMap<>();

        setOptionalMapEntry(payloadMap, PROXY_PORT, valueOf(wrapper.getBucketInputs().getProxyPort()),
                isNotBlank(valueOf(wrapper.getBucketInputs().getProxyPort())));
        setOptionalMapEntry(payloadMap, SASL_PASSWORD, wrapper.getBucketInputs().getSaslPassword(),
                isNotBlank(wrapper.getBucketInputs().getSaslPassword()));

        validateAuthType(payloadMap, wrapper.getBucketInputs().getAuthType());

        payloadMap.put(AUTH_TYPE, wrapper.getBucketInputs().getAuthType());
        payloadMap.put(BUCKET_TYPE, wrapper.getBucketInputs().getBucketType());
        payloadMap.put(CONFLICT_RESOLUTION_TYPE, wrapper.getBucketInputs().getConflictResolutionType());
        payloadMap.put(EVICTION_POLICY, wrapper.getBucketInputs().getEvictionPolicy());
        payloadMap.put(FLUSH_ENABLED, wrapper.getBucketInputs().getFlushEnabled());
        payloadMap.put(NAME, wrapper.getBucketInputs().getBucketName());
        payloadMap.put(PARALLEL_DB_VIEW_COMPACTION, wrapper.getBucketInputs().getParallelDBAndViewCompaction());
        payloadMap.put(RAM_QUOTA_DB, valueOf(wrapper.getBucketInputs().getRamQuotaMB()));
        payloadMap.put(REPLICA_INDEX, valueOf(wrapper.getBucketInputs().getReplicaIndex()));
        payloadMap.put(REPLICA_NUMBER, valueOf(wrapper.getBucketInputs().getReplicaNumber()));
        payloadMap.put(THREADS_NUMBER, valueOf(wrapper.getBucketInputs().getThreadsNumber()));

        return payloadMap;
    }

    private void validateAuthType(Map getPayloadMap, String authType) {
        if (AuthType.SASL.getValue().equals(authType) && !getPayloadMap.containsKey(SASL_PASSWORD)) {
            throw new RuntimeException(INPUTS_COMBINATION_ERROR_MESSAGE);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy