Example usage for org.apache.commons.lang.builder ToStringStyle MULTI_LINE_STYLE

List of usage examples for org.apache.commons.lang.builder ToStringStyle MULTI_LINE_STYLE

Introduction

In this page you can find the example usage for org.apache.commons.lang.builder ToStringStyle MULTI_LINE_STYLE.

Prototype

ToStringStyle MULTI_LINE_STYLE

To view the source code for org.apache.commons.lang.builder ToStringStyle MULTI_LINE_STYLE.

Click Source Link

Document

The multi line toString style.

Usage

From source file:com.gemini.provision.security.openstack.SecurityProviderOpenStackImpl.java

/**
 * createSecurityGroupRule. Creates the security rule in the cloud. It is
 * expected that the security rule object has all the relevant required for
 * the creation.//  w  w w .jav  a2  s. com
 *
 * @param tenant - contains the auth information
 * @param env - contains the security group
 * @param securityGroup - the parent security group
 * @param securityRule - represents the rule to be created in the cloud. All
 * values must be available in the object. The cloud provider may not create
 * it with partial information
 * @return SUCCESS - if all goes well, AUTH_FAILURE - if the authentication
 * failed with the information in the tenant object, EXCEPTION - if the
 * cloud raised an exception CLOUD_FAILURE - if the creation did not succeed
 */
@Override
public ProvisioningProviderResponseType createSecurityGroupRule(GeminiTenant tenant, GeminiEnvironment env,
        GeminiSecurityGroup securityGroup, GeminiSecurityGroupRule securityRule) {
    //authenticate the session with the OpenStack installation
    OSClient os = OSFactory.builder().endpoint(env.getEndPoint())
            .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName())
            .authenticate();
    if (os == null) {
        Logger.error("Failed to authenticate Tenant: {}",
                ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE));
        return ProvisioningProviderResponseType.CLOUD_AUTH_FAILURE;
    }

    SecurityGroupRule r;
    try {
        r = os.networking().securityrule().create(Builders.securityGroupRule().tenantId(tenant.getTenantID())
                .securityGroupId(securityGroup.getCloudID())
                .direction(securityRule.getDirection().toString().toLowerCase())
                .ethertype(securityRule.getIpAddressType().toString())
                .portRangeMin(securityRule.getPortRangeMin()).portRangeMax(securityRule.getPortRangeMax())
                .protocol(securityRule.getProtocol().toString())
                //.remoteGroupId(securityRule.getRemoteGroupId())
                .remoteIpPrefix(securityRule.getRemoteIpPrefix()).build());
        securityRule.setCloudID(r.getId());
        securityRule.setProvisioned(true);
    } catch (NullPointerException | ClientResponseException ex) {
        Logger.error(
                "Cloud Exception {}: Could not create the security group rule in OpenStack. tenant: {} env: {} security group: {} security rule ID: {}",
                ex.toString(), tenant.getName(), env.getName(), securityGroup.getName(),
                securityRule.getCloudID());
        return ProvisioningProviderResponseType.CLOUD_EXCEPTION;
    }
    Logger.debug(
            "Successfully created security group rule Tenant: {} Env: {} security group {} security rule {}",
            tenant.getName(), env.getName(), securityGroup.getName(), securityRule.getName());
    return ProvisioningProviderResponseType.SUCCESS;
}

From source file:com.gemini.provision.network.openstack.NetworkProviderOpenStackImpl.java

@Override
public List<GeminiNetworkRouter> getEnvRouters(GeminiTenant tenant, GeminiEnvironment env) {
    //authenticate the session with the OpenStack installation
    OSClient os = OSFactory.builder().endpoint(env.getEndPoint())
            .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName())
            .authenticate();//from   www . ja v  a  2s. c o m
    if (os == null) {
        Logger.error("Failed to authenticate Tenant: {}",
                ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE));
        return null;
    }

    //get the list of routers from the cloud
    List<? extends Router> osRouters = os.networking().router().list();
    if (osRouters.isEmpty()) {
        Logger.debug("No routers found for Tenant: {}",
                ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE));
        return null;
    }

    //convert the Router to GeminiNetworkRouter 
    //TODO: change code to use Dozer Mapper
    List<GeminiNetworkRouter> routers = Collections.synchronizedList(new ArrayList());
    osRouters.stream().forEach(osRouter -> {
        GeminiNetworkRouter nRouter = new GeminiNetworkRouter();
        nRouter.setCloudID(osRouter.getId());
        nRouter.setName(osRouter.getName());
        String gID = osRouter.getExternalGatewayInfo().getNetworkId();
        if (!gID.isEmpty()) {
            //stream through envs, map to stream of GeminiNetwork objects, filter on 
            //the ID and then get the first object... note there will only be one
            //so we can use findOne or findAny
            GeminiNetwork gemGateway = tenant.getEnvironments().stream().map(GeminiEnvironment::getApplications)
                    .flatMap(List::stream).map(GeminiApplication::getNetworks).flatMap(List::stream)
                    .filter(n -> n.getCloudID().equals(gID)).findFirst().get();
            nRouter.setGateway(gemGateway);
        }

        //get the host routes
        List<? extends HostRoute> osHostRoutes = osRouter.getRoutes();
        osHostRoutes.stream().forEach(
                osHostRoute -> nRouter.addRoute(osHostRoute.getNexthop(), osHostRoute.getDestination()));

        //TODO: get the interfaces attached to the router
        //OPEN STACK DOES NOT HAVE THIS FUNCTIONALITY - THIS IS RIDICULOUS!!!!! WE HAVE TO CREATE IT EACH TIME

        //add it to the tenant
        routers.add(nRouter);
    });
    return routers;
}

From source file:edu.harvard.iq.dvn.ingest.statdataio.impl.plugins.sav.SAVFileReader.java

void decodeRecordType2(BufferedInputStream stream) throws IOException {
    dbgLog.fine("***** decodeRecordType2(): start *****");
    if (stream == null) {
        throw new IllegalArgumentException("stream == null!");
    }//from w  ww  .j  a v a 2  s  . c o  m

    Map<String, String> variableLabelMap = new LinkedHashMap<String, String>();
    Map<String, List<String>> missingValueTable = new LinkedHashMap<String, List<String>>();
    List<Integer> printFormatList = new ArrayList<Integer>();

    String caseWeightVariableName = null;
    int caseWeightVariableIndex = 0;

    boolean lastVariableIsExtendable = false;
    boolean extendedVariableMode = false;
    boolean obs255 = false;

    String lastVariableName = null;
    String lastExtendedVariable = null;

    // this field repeats as many as the number of variables in
    // this sav file

    // (note that the above statement is not technically correct, this
    //  record repeats not just for every variable in the file, but for
    //  every OBS (8 byte unit); i.e., if a string is split into multiple
    //  OBS units, each one will have its own RT2 record -- L.A.).

    // Each field constists of a fixed (32-byte) segment and
    // then a few variable segments:
    // if the variable has a label (3rd INT4 set to 1), then there's 4 more
    // bytes specifying the length of the label, and then that many bytes
    // holding the label itself (no more than 256).
    // Then if there are optional missing value units (4th INT4 set to 1)
    // there will be 3 more OBS units attached = 24 extra bytes.

    int variableCounter = 0;
    int obsSeqNumber = 0;

    int j;

    dbgLog.fine("RT2: Reading " + OBSUnitsPerCase + " OBS units.");

    for (j = 0; j < OBSUnitsPerCase; j++) {

        dbgLog.fine("RT2: \n\n+++++++++++ " + j + "-th RT2 unit is to be decoded +++++++++++");
        // 2.0: read the fixed[=non-optional] 32-byte segment
        byte[] recordType2Fixed = new byte[LENGTH_RECORDTYPE2_FIXED];

        try {
            int nbytes = stream.read(recordType2Fixed, 0, LENGTH_RECORDTYPE2_FIXED);

            //printHexDump(recordType2Fixed, "recordType2 part 1");

            if (nbytes == 0) {
                throw new IOException("reading recordType2: no bytes read!");
            }

            int offset = 0;

            // 2.1: create int-view of the bytebuffer for the first 16-byte segment
            int rt2_1st_4_units = 4;
            ByteBuffer[] bb_record_type2_fixed_part1 = new ByteBuffer[rt2_1st_4_units];
            int[] recordType2FixedPart1 = new int[rt2_1st_4_units];
            for (int i = 0; i < rt2_1st_4_units; i++) {

                bb_record_type2_fixed_part1[i] = ByteBuffer.wrap(recordType2Fixed, offset,
                        LENGTH_SAV_INT_BLOCK);

                offset += LENGTH_SAV_INT_BLOCK;
                if (isLittleEndian) {
                    bb_record_type2_fixed_part1[i].order(ByteOrder.LITTLE_ENDIAN);
                }
                recordType2FixedPart1[i] = bb_record_type2_fixed_part1[i].getInt();
            }

            dbgLog.fine("recordType2FixedPart=" + ReflectionToStringBuilder.toString(recordType2FixedPart1,
                    ToStringStyle.MULTI_LINE_STYLE));

            // 1st ([0]) element must be 2 otherwise no longer Record Type 2
            if (recordType2FixedPart1[0] != 2) {
                dbgLog.info(j + "-th RT header value is no longet RT2! " + recordType2FixedPart1[0]);
                break;
                //throw new IOException("RT2 reading error: The current position is no longer Record Type 2");
            }
            dbgLog.fine("variable type[must be 2]=" + recordType2FixedPart1[0]);

            // 2.3 variable name: 8 byte(space[x20]-padded)
            // This field is located at the very end of the 32 byte
            // fixed-size RT2 header (bytes 24-31).
            // We are processing it now, so that
            // we can make the decision on whether this variable is part
            // of a compound variable:

            String RawVariableName = new String(
                    Arrays.copyOfRange(recordType2Fixed, 24, (24 + LENGTH_VARIABLE_NAME)), defaultCharSet);
            //offset +=LENGTH_VARIABLE_NAME;
            String variableName = null;
            if (RawVariableName.indexOf(' ') >= 0) {
                variableName = RawVariableName.substring(0, RawVariableName.indexOf(' '));
            } else {
                variableName = RawVariableName;
            }

            // 2nd ([1]) element: numeric variable = 0 :for string variable
            // this block indicates its datum-length, i.e, >0 ;
            // if -1, this RT2 unit is a non-1st RT2 unit for a string variable
            // whose value is longer than 8 character.

            boolean isNumericVariable = false;

            dbgLog.fine("variable type(0: numeric; > 0: String;-1 continue )=" + recordType2FixedPart1[1]);

            //OBSwiseTypelList.add(recordType2FixedPart1[1]);

            int HowManyRt2Units = 1;

            if (recordType2FixedPart1[1] == -1) {
                dbgLog.fine("this RT2 is an 8 bit continuation chunk of an earlier string variable");
                if (obs255) {
                    if (obsSeqNumber < 30) {
                        OBSwiseTypelList.add(recordType2FixedPart1[1]);
                        obsSeqNumber++;
                    } else {
                        OBSwiseTypelList.add(-2);
                        obs255 = false;
                        obsSeqNumber = 0;
                    }
                } else {
                    OBSwiseTypelList.add(recordType2FixedPart1[1]);
                }

                obsNonVariableBlockSet.add(j);
                continue;
            } else if (recordType2FixedPart1[1] == 0) {
                // This is a numeric variable
                extendedVariableMode = false;
                // And as such, it cannot be an extension of a
                // previous, long string variable.
                OBSwiseTypelList.add(recordType2FixedPart1[1]);
                variableCounter++;
                isNumericVariable = true;
                variableTypelList.add(recordType2FixedPart1[1]);
            } else if (recordType2FixedPart1[1] > 0) {

                // This looks like a regular string variable. However,
                // it may still be a part of a compound variable
                // (a String > 255 bytes that was split into 255 byte
                // chunks, stored as individual String variables).

                if (recordType2FixedPart1[1] == 255) {
                    obs255 = true;
                }

                if (lastVariableIsExtendable) {
                    String varNameBase = null;
                    if (lastVariableName.length() > 5) {
                        varNameBase = lastVariableName.substring(0, 5);
                    } else {
                        varNameBase = lastVariableName;
                    }

                    if (extendedVariableMode) {
                        if (variableNameIsAnIncrement(varNameBase, lastExtendedVariable, variableName)) {
                            OBSwiseTypelList.add(-1);
                            lastExtendedVariable = variableName;
                            // OK, we stay in the "extended variable" mode;
                            // but we can't move on to the next OBS (hence the commented out
                            // "continue" below:
                            //continue;
                            // see the next comment below for the explanation.
                            //
                            // Should we also set "extendable" flag to false at this point
                            // if it's shorter than 255 bytes, i.e. the last extended chunk?
                        } else {
                            extendedVariableMode = false;
                        }
                    } else {
                        if (variableNameIsAnIncrement(varNameBase, variableName)) {
                            OBSwiseTypelList.add(-1);
                            extendedVariableMode = true;
                            dbgLog.fine("RT2: in extended variable mode; variable " + variableName);
                            lastExtendedVariable = variableName;
                            // Before we move on to the next OBS unit, we need to check
                            // if this current extended variable has its own label specified;
                            // If so, we need to determine its length, then read and skip
                            // that many bytes.
                            // Hence the commented out "continue" below:
                            //continue;
                        }
                    }
                }

                if (!extendedVariableMode) {
                    // OK, this is a "real"
                    // string variable, and not a continuation chunk of a compound
                    // string.

                    OBSwiseTypelList.add(recordType2FixedPart1[1]);
                    variableCounter++;

                    if (recordType2FixedPart1[1] == 255) {
                        // This variable is 255 bytes long, i.e. this is
                        // either the single "atomic" variable of the
                        // max allowed size, or it's a 255 byte segment
                        // of a compound variable. So we will check
                        // the next variable and see if it is the continuation
                        // of this one.

                        lastVariableIsExtendable = true;
                    } else {
                        lastVariableIsExtendable = false;
                    }

                    if (recordType2FixedPart1[1] % LENGTH_SAV_OBS_BLOCK == 0) {
                        HowManyRt2Units = recordType2FixedPart1[1] / LENGTH_SAV_OBS_BLOCK;
                    } else {
                        HowManyRt2Units = recordType2FixedPart1[1] / LENGTH_SAV_OBS_BLOCK + 1;
                    }
                    variableTypelList.add(recordType2FixedPart1[1]);
                }
            }

            if (!extendedVariableMode) {
                // Again, we only want to do the following steps for the "real"
                // variables, not the chunks of split mega-variables:

                dbgLog.fine("RT2: HowManyRt2Units for this variable=" + HowManyRt2Units);

                lastVariableName = variableName;

                // caseWeightVariableOBSIndex starts from 1: 0 is used for does-not-exist cases
                if (j == (caseWeightVariableOBSIndex - 1)) {
                    caseWeightVariableName = variableName;
                    caseWeightVariableIndex = variableCounter;

                    smd.setCaseWeightVariableName(caseWeightVariableName);
                    smd.getFileInformation().put("caseWeightVariableIndex", caseWeightVariableIndex);
                }

                OBSIndexToVariableName.put(j, variableName);

                //dbgLog.fine("\nvariable name="+variableName+"<-");
                dbgLog.fine("RT2: " + j + "-th variable name=" + variableName + "<-");
                dbgLog.fine("RT2: raw variable: " + RawVariableName);

                variableNameList.add(variableName);
            }

            // 3rd ([2]) element: = 1 variable-label block follows; 0 = no label
            //
            dbgLog.fine("RT: variable label follows?(1:yes; 0: no)=" + recordType2FixedPart1[2]);
            boolean hasVariableLabel = recordType2FixedPart1[2] == 1 ? true : false;
            if ((recordType2FixedPart1[2] != 0) && (recordType2FixedPart1[2] != 1)) {
                throw new IOException("RT2: reading error: value is neither 0 or 1" + recordType2FixedPart1[2]);
            }

            // 2.4 [optional]The length of a variable label followed: 4-byte int
            // 3rd element of 2.1 indicates whether this field exists
            // *** warning: The label block is padded to a multiple of the 4-byte
            // NOT the raw integer value of this 4-byte block

            if (hasVariableLabel) {
                byte[] length_variable_label = new byte[4];
                int nbytes_2_4 = stream.read(length_variable_label);
                if (nbytes_2_4 == 0) {
                    throw new IOException("RT 2: error reading recordType2.4: no bytes read!");
                } else {
                    dbgLog.fine("nbytes_2_4=" + nbytes_2_4);
                }
                ByteBuffer bb_length_variable_label = ByteBuffer.wrap(length_variable_label, 0,
                        LENGTH_VARIABLE_LABEL);
                if (isLittleEndian) {
                    bb_length_variable_label.order(ByteOrder.LITTLE_ENDIAN);
                }
                int rawVariableLabelLength = bb_length_variable_label.getInt();

                dbgLog.fine("rawVariableLabelLength=" + rawVariableLabelLength);
                int variableLabelLength = getSAVintAdjustedBlockLength(rawVariableLabelLength);
                dbgLog.fine("RT2: variableLabelLength=" + variableLabelLength);

                // 2.5 [optional]variable label whose length is found at 2.4

                String variableLabel = "";

                if (rawVariableLabelLength > 0) {
                    byte[] variable_label = new byte[variableLabelLength];
                    int nbytes_2_5 = stream.read(variable_label);
                    if (nbytes_2_5 == 0) {
                        throw new IOException("RT 2: error reading recordType2.5: " + variableLabelLength
                                + " bytes requested, no bytes read!");
                    } else {
                        dbgLog.fine("nbytes_2_5=" + nbytes_2_5);
                    }
                    variableLabel = new String(Arrays.copyOfRange(variable_label, 0, rawVariableLabelLength),
                            defaultCharSet);
                    dbgLog.fine("RT2: variableLabel=" + variableLabel + "<-");

                    dbgLog.info(variableName + " => " + variableLabel);
                } else {
                    dbgLog.fine("RT2: defaulting to empty variable label.");
                }

                if (!extendedVariableMode) {
                    // We only have any use for this label if it's a "real" variable.
                    // Thinking about it, it doesn't make much sense for the "fake"
                    // variables that are actually chunks of large strings to store
                    // their own labels. But in some files they do. Then failing to read
                    // the bytes would result in getting out of sync with the RT record
                    // borders. So we always read the bytes, but only use them for
                    // the real variable entries.
                    /*String variableLabel = new String(Arrays.copyOfRange(variable_label,
                        0, rawVariableLabelLength),"US-ASCII");*/

                    variableLabelMap.put(variableName, variableLabel);
                }
            }

            if (extendedVariableMode) {
                // there's nothing else left for us to do in this iteration of the loop.
                // Once again, this was not a real variable, but a dummy variable entry
                // created for a chunk of a string variable longer than 255 bytes --
                // that's how SPSS stores them.
                continue;
            }

            // 4th ([3]) element: Missing value type code
            // 0[none], 1, 2, 3 [point-type],-2[range], -3 [range type+ point]

            dbgLog.fine("RT: missing value unit follows?(if 0, none)=" + recordType2FixedPart1[3]);
            boolean hasMissingValues = (validMissingValueCodeSet.contains(recordType2FixedPart1[3])
                    && (recordType2FixedPart1[3] != 0)) ? true : false;

            InvalidData invalidDataInfo = null;

            if (recordType2FixedPart1[3] != 0) {
                invalidDataInfo = new InvalidData(recordType2FixedPart1[3]);
                dbgLog.fine("RT: missing value type=" + invalidDataInfo.getType());
            }

            // 2.2: print/write formats: 4-byte each = 8 bytes

            byte[] printFormt = Arrays.copyOfRange(recordType2Fixed, offset, offset + LENGTH_PRINT_FORMAT_CODE);
            dbgLog.fine("printFrmt=" + new String(Hex.encodeHex(printFormt)));

            offset += LENGTH_PRINT_FORMAT_CODE;
            int formatCode = isLittleEndian ? printFormt[2] : printFormt[1];
            int formatWidth = isLittleEndian ? printFormt[1] : printFormt[2];
            int formatDecimalPointPosition = isLittleEndian ? printFormt[0] : printFormt[3];
            dbgLog.fine("RT2: format code{5=F, 1=A[String]}=" + formatCode);

            formatDecimalPointPositionList.add(formatDecimalPointPosition);

            if (!SPSSConstants.FORMAT_CODE_TABLE_SAV.containsKey(formatCode)) {
                throw new IOException("Unknown format code was found = " + formatCode);
            } else {
                printFormatList.add(formatCode);
            }

            byte[] writeFormt = Arrays.copyOfRange(recordType2Fixed, offset, offset + LENGTH_WRITE_FORMAT_CODE);

            dbgLog.fine("RT2: writeFrmt=" + new String(Hex.encodeHex(writeFormt)));
            if (writeFormt[3] != 0x00) {
                dbgLog.fine("byte-order(write format): reversal required");
            }

            offset += LENGTH_WRITE_FORMAT_CODE;

            if (!SPSSConstants.ORDINARY_FORMAT_CODE_SET.contains(formatCode)) {
                StringBuilder sb = new StringBuilder(
                        SPSSConstants.FORMAT_CODE_TABLE_SAV.get(formatCode) + formatWidth);
                if (formatDecimalPointPosition > 0) {
                    sb.append("." + formatDecimalPointPosition);
                }
                dbgLog.info("formattable[i] = " + variableName + " -> " + sb.toString());
                printFormatNameTable.put(variableName, sb.toString());

            }

            printFormatTable.put(variableName, SPSSConstants.FORMAT_CODE_TABLE_SAV.get(formatCode));

            // 2.6 [optional] missing values:4-byte each if exists
            // 4th element of 2.1 indicates the structure of this sub-field

            // Should we perhaps check for this for the "fake" variables too?
            //

            if (hasMissingValues) {
                dbgLog.fine("RT2: decoding missing value: type=" + recordType2FixedPart1[3]);
                int howManyMissingValueUnits = missingValueCodeUnits.get(recordType2FixedPart1[3]);
                //int howManyMissingValueUnits = recordType2FixedPart1[3] > 0 ? recordType2FixedPart1[3] :  0;

                dbgLog.fine("RT2: howManyMissingValueUnits=" + howManyMissingValueUnits);

                byte[] missing_value_code_units = new byte[LENGTH_SAV_OBS_BLOCK * howManyMissingValueUnits];
                int nbytes_2_6 = stream.read(missing_value_code_units);

                if (nbytes_2_6 == 0) {
                    throw new IOException("RT 2: reading recordType2.6: no byte was read");
                } else {
                    dbgLog.fine("nbytes_2_6=" + nbytes_2_6);
                }

                //printHexDump(missing_value_code_units, "missing value");

                if (isNumericVariable) {

                    double[] missingValues = new double[howManyMissingValueUnits];
                    //List<String> mvp = new ArrayList<String>();
                    List<String> mv = new ArrayList<String>();

                    ByteBuffer[] bb_missig_value_code = new ByteBuffer[howManyMissingValueUnits];

                    int offset_start = 0;

                    for (int i = 0; i < howManyMissingValueUnits; i++) {

                        bb_missig_value_code[i] = ByteBuffer.wrap(missing_value_code_units, offset_start,
                                LENGTH_SAV_OBS_BLOCK);

                        offset_start += LENGTH_SAV_OBS_BLOCK;
                        if (isLittleEndian) {
                            bb_missig_value_code[i].order(ByteOrder.LITTLE_ENDIAN);
                        }

                        ByteBuffer temp = bb_missig_value_code[i].duplicate();

                        missingValues[i] = bb_missig_value_code[i].getDouble();
                        if (Double.toHexString(missingValues[i]).equals("-0x1.ffffffffffffep1023")) {
                            dbgLog.fine("1st value is LOWEST");
                            mv.add(Double.toHexString(missingValues[i]));
                        } else if (Double.valueOf(missingValues[i]).equals(Double.MAX_VALUE)) {
                            dbgLog.fine("2nd value is HIGHEST");
                            mv.add(Double.toHexString(missingValues[i]));
                        } else {
                            mv.add(doubleNumberFormatter.format(missingValues[i]));
                        }
                        dbgLog.fine(i + "-th missing value=" + Double.toHexString(missingValues[i]));
                    }

                    dbgLog.fine("variableName=" + variableName);
                    if (recordType2FixedPart1[3] > 0) {
                        // point cases only
                        dbgLog.fine("mv(>0)=" + mv);
                        missingValueTable.put(variableName, mv);
                        invalidDataInfo.setInvalidValues(mv);
                    } else if (recordType2FixedPart1[3] == -2) {
                        dbgLog.fine("mv(-2)=" + mv);
                        // range
                        invalidDataInfo.setInvalidRange(mv);
                    } else if (recordType2FixedPart1[3] == -3) {
                        // mixed case
                        dbgLog.fine("mv(-3)=" + mv);
                        invalidDataInfo.setInvalidRange(mv.subList(0, 2));
                        invalidDataInfo.setInvalidValues(mv.subList(2, 3));
                        missingValueTable.put(variableName, mv.subList(2, 3));
                    }

                    dbgLog.fine("missing value=" + StringUtils.join(missingValueTable.get(variableName), "|"));
                    dbgLog.fine("invalidDataInfo(Numeric):\n" + invalidDataInfo);
                    invalidDataTable.put(variableName, invalidDataInfo);
                } else {
                    // string variable case
                    String[] missingValues = new String[howManyMissingValueUnits];
                    List<String> mv = new ArrayList<String>();
                    int offset_start = 0;
                    int offset_end = LENGTH_SAV_OBS_BLOCK;
                    for (int i = 0; i < howManyMissingValueUnits; i++) {

                        missingValues[i] = StringUtils.stripEnd(new String(
                                Arrays.copyOfRange(missing_value_code_units, offset_start, offset_end),
                                defaultCharSet), " ");
                        dbgLog.fine("missing value=" + missingValues[i] + "<-");

                        offset_start = offset_end;
                        offset_end += LENGTH_SAV_OBS_BLOCK;

                        mv.add(missingValues[i]);
                    }
                    invalidDataInfo.setInvalidValues(mv);
                    missingValueTable.put(variableName, mv);
                    invalidDataTable.put(variableName, invalidDataInfo);
                    dbgLog.fine(
                            "missing value(str)=" + StringUtils.join(missingValueTable.get(variableName), "|"));
                    dbgLog.fine("invalidDataInfo(String):\n" + invalidDataInfo);

                } // string case
                dbgLog.fine("invalidDataTable:\n" + invalidDataTable);
            } // if msv

        } catch (IOException ex) {
            //ex.printStackTrace();
            throw ex;
        } catch (Exception ex) {
            ex.printStackTrace();
            // should we be throwing some exception here?
        }
    } // j-loop

    if (j == OBSUnitsPerCase) {
        dbgLog.fine("RT2 metadata-related exit-chores");
        smd.getFileInformation().put("varQnty", variableCounter);
        varQnty = variableCounter;
        dbgLog.fine("RT2: varQnty=" + varQnty);

        smd.setVariableName(variableNameList.toArray(new String[variableNameList.size()]));
        smd.setVariableLabel(variableLabelMap);
        smd.setMissingValueTable(missingValueTable);
        smd.getFileInformation().put("caseWeightVariableName", caseWeightVariableName);

        dbgLog.info("sumstat:long case=" + Arrays.deepToString(variableTypelList.toArray()));

        smd.setVariableFormat(printFormatList);
        smd.setVariableFormatName(printFormatNameTable);

        dbgLog.info("<<<<<<");
        dbgLog.info("printFormatList = " + printFormatList);
        dbgLog.info("printFormatNameTable = " + printFormatNameTable);
        // dbgLog.info("formatCategoryTable = " + formatCategoryTable);
        dbgLog.info(">>>>>>");

        dbgLog.fine("RT2: OBSwiseTypelList=" + OBSwiseTypelList);

        // variableType is determined after the valueTable is finalized
    } else {
        dbgLog.info("RT2: attention! didn't reach the end of the OBS list!");
        throw new IOException("RT2: didn't reach the end of the OBS list!");
    }
    dbgLog.fine("***** decodeRecordType2(): end *****");
}

From source file:com.gemini.provision.security.openstack.SecurityProviderOpenStackImpl.java

/**
 * updateSecurityGroupRule - updates security rule information in the cloud.
 *
 * Currently OpenStack DOES NOT allow update of a security rule. This
 * function deletes the rule and recreates it with the updated information.
 *
 * @param tenant/*from w  w  w  .  j ava  2s.  c om*/
 * @param env
 * @param securityGroup
 * @param securityRule
 * @return
 */
@Override
public ProvisioningProviderResponseType updateSecurityGroupRule(GeminiTenant tenant, GeminiEnvironment env,
        GeminiSecurityGroup securityGroup, GeminiSecurityGroupRule securityRule) {
    //authenticate the session with the OpenStack installation
    OSClient os = OSFactory.builder().endpoint(env.getEndPoint())
            .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName())
            .authenticate();
    if (os == null) {
        Logger.error("Failed to authenticate Tenant: {}",
                ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE));
        return ProvisioningProviderResponseType.CLOUD_AUTH_FAILURE;
    }

    //since openstack doesn't allow update, we need to delete and re-create
    try {
        os.networking().securityrule().delete(securityRule.getCloudID());
    } catch (NullPointerException | ClientResponseException ex) {
        Logger.error(
                "Failed to delete security group rule Tenant: {} Env: {}, Security Group: {} security rule {}",
                tenant.getName(), env.getName(), securityGroup.getName(), securityRule.getName());
        return ProvisioningProviderResponseType.CLOUD_EXCEPTION;
    }
    SecurityGroupRule r;
    try {
        r = os.networking().securityrule().create(Builders.securityGroupRule().tenantId(tenant.getTenantID())
                .securityGroupId(securityGroup.getCloudID())
                .direction(securityRule.getDirection().toString().toLowerCase())
                .ethertype(securityRule.getIpAddressType().toString())
                .portRangeMin(securityRule.getPortRangeMin()).portRangeMax(securityRule.getPortRangeMax())
                .protocol(securityRule.getProtocol().toString())
                //.remoteGroupId(securityRule.getRemoteGroupId())
                .remoteIpPrefix(securityRule.getRemoteIpPrefix()).build());
        securityRule.setCloudID(r.getId());
        securityRule.setProvisioned(true);
    } catch (NullPointerException | ClientResponseException ex) {
        Logger.error(
                "Cloud Exception {}: Could not create the security group rule in OpenStack. tenant: {} env: {} security group: {} security rule ID: {}",
                ex.toString(), tenant.getName(), env.getName(), securityGroup.getName(),
                securityRule.getCloudID());
        return ProvisioningProviderResponseType.CLOUD_EXCEPTION;
    }

    Logger.debug(
            "Successfully updated security group rule Tenant: {} Env: {} security group {} security rule {}",
            tenant.getName(), env.getName(), securityGroup.getName(), securityRule.getName());
    return ProvisioningProviderResponseType.SUCCESS;
}

From source file:com.gemini.provision.network.openstack.NetworkProviderOpenStackImpl.java

@Override
public ProvisioningProviderResponseType createRouter(GeminiTenant tenant, GeminiEnvironment env,
        GeminiNetworkRouter newRouter) {
    //authenticate the session with the OpenStack installation
    OSClient os = OSFactory.builder().endpoint(env.getEndPoint())
            .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName())
            .authenticate();/*from  w w  w .  j  a va 2  s .  c  o m*/
    if (os == null) {
        Logger.error("Failed to authenticate Tenant: {}",
                ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE));
        return ProvisioningProviderResponseType.CLOUD_AUTH_FAILURE;
    }

    //see if this already exists
    List<? extends Router> existingRoutes = os.networking().router().list();
    if (existingRoutes.stream().anyMatch(r -> r.getName().equals(newRouter.getName()))) {
        Logger.error("Failed to add Router, already exists: Tenant: {} Environment: {}, Router: {}",
                tenant.getName(), env.getName(),
                ToStringBuilder.reflectionToString(newRouter, ToStringStyle.MULTI_LINE_STYLE));
        return ProvisioningProviderResponseType.OBJECT_EXISTS;
    }

    //create the router
    Router createdRouter = os.networking().router()
            .create(Builders.router().tenantId(tenant.getTenantID()).name(newRouter.getName())
                    .adminStateUp(true).externalGateway(newRouter.getGateway().getCloudID()).build());
    if (createdRouter == null) {
        Logger.error("Failed to add Router, cloud provider failure: Tenant: {} Environment: {}, Router: {}",
                tenant.getName(), env.getName(),
                ToStringBuilder.reflectionToString(newRouter, ToStringStyle.MULTI_LINE_STYLE));
        return ProvisioningProviderResponseType.CLOUD_FAILURE;
    }

    //now add the host routes
    newRouter.getRoutes()
            .forEach((k, v) -> os.networking().router().update(createdRouter.toBuilder().route(k, v).build()));

    //now attach the interfaces
    newRouter.getInterfaces().forEach(s -> os.networking().router().attachInterface(createdRouter.getId(),
            AttachInterfaceType.SUBNET, s.getCloudID()));

    Logger.debug("Successfully added router - Tenant: {} Environment: {} Router: {}", tenant.getName(),
            env.getName(), ToStringBuilder.reflectionToString(newRouter, ToStringStyle.MULTI_LINE_STYLE));
    return ProvisioningProviderResponseType.SUCCESS;
}

From source file:com.gemini.provision.security.openstack.SecurityProviderOpenStackImpl.java

@Override
public ProvisioningProviderResponseType deleteSecurityGroupRule(GeminiTenant tenant, GeminiEnvironment env,
        GeminiSecurityGroup securityGroup, GeminiSecurityGroupRule securityRule) {
    //authenticate the session with the OpenStack installation
    OSClient os = OSFactory.builder().endpoint(env.getEndPoint())
            .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName())
            .authenticate();// w  ww.j a v a 2  s .  co  m
    if (os == null) {
        Logger.error("Failed to authenticate Tenant: {}",
                ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE));
        return ProvisioningProviderResponseType.CLOUD_AUTH_FAILURE;
    }

    //since openstack doesn't allow update, we need to delete and re-create
    try {
        os.networking().securityrule().delete(securityRule.getCloudID());
    } catch (NullPointerException | ClientResponseException ex) {
        Logger.error(
                "Failed to delete security group rule Exception {} Tenant: {} Env: {}, Security Group: {} security rule {}",
                ex.toString(), tenant.getName(), env.getName(), securityGroup.getName(),
                securityRule.getName());
        return ProvisioningProviderResponseType.CLOUD_EXCEPTION;
    }
    Logger.debug(
            "Successfully deleted security group rule Tenant: {} Env: {} security group {} security rule {}",
            tenant.getName(), env.getName(), securityGroup.getName(), securityRule.getName());
    return ProvisioningProviderResponseType.SUCCESS;
}

From source file:com.likethecolor.alchemy.api.entity.DisambiguatedAlchemyEntityTest.java

@Test
public void testToString_Formatted() {
    final ToStringStyle style = ToStringStyle.MULTI_LINE_STYLE;
    final String census = "http://census.org/resource/Israel";
    final String ciaFactbook = "http://www4.wiwiss.fu-berlin.de/factbook/resource/Israel";
    final String crunchbase = "http://crunchbase.com/resource/Israel";
    final String dbPedia = "http://dbpedia.org/resource/Israel";
    final String freebase = "http://rdf.freebase.com/ns/guid.9202a8c04000641f800000000001e2be";
    final Double latitude = 31.0D;
    final Double longitude = 35.0D;
    final String geo = latitude + " " + longitude;
    final String geonames = "http://geonames.com/Israel";
    final String musicBrainz = "http://musicbrainz.com/Israel";
    final String name = "Israel";
    final String opencyc = "http://sw.opencyc.org/concept/Mx4rvViP55wpEbGdrcN5Y29ycA";
    final String semanticCrunchbase = "http://semanticcrunchbase.com/concept/Mx4rvViP55wpEbGdrcN5Y29ycA";
    final String umbel = "http://umbel.org/umbel/ne/wikipedia/Israel";
    final String website = "http://www.knesset.gov.il/";
    final String yago = "http://mpii.de/yago/resource/Israel";
    final List<String> subtypes = new ArrayList<String>();
    subtypes.add("Location");
    subtypes.add("Country");
    subtypes.add("GovernmentalJurisdiction");

    final DisambiguatedAlchemyEntity entity = new DisambiguatedAlchemyEntity();
    entity.setCensus(census);//  ww w.  j  a va  2s .  c  om
    entity.setCIAFactbook(ciaFactbook);
    entity.setCrunchbase(crunchbase);
    entity.setDBPedia(dbPedia);
    entity.setFreebase(freebase);
    entity.setGeo(geo);
    entity.setGeonames(geonames);
    entity.setMusicBrainz(musicBrainz);
    entity.setName(name);
    entity.setOpencyc(opencyc);
    entity.setSemanticCrunchbase(semanticCrunchbase);
    entity.setUmbel(umbel);
    entity.setWebsite(website);
    entity.setYago(yago);
    for (String subtype : subtypes) {
        entity.addSubtype(subtype);
    }

    final String expectedString = new ToStringBuilder(entity, style).append("census", census)
            .append("CIA Factbook", ciaFactbook).append("crunchbase", crunchbase).append("dbpedia", dbPedia)
            .append("freebase", freebase).append("geo", geo).append("geonames", geonames)
            .append("latitude", latitude).append("longitude", longitude).append("musicBrainz", musicBrainz)
            .append("name", name).append("opencyc", opencyc).append("semanticCrunchbase", semanticCrunchbase)
            .append("subtype count", subtypes.size()).append("subtypes", subtypes).append("umbel", umbel)
            .append("website", website).append("yago", yago).toString();

    final String actualString = entity.toString(style);

    assertEquals(expectedString, actualString);
}

From source file:com.gemini.provision.network.openstack.NetworkProviderOpenStackImpl.java

@Override
public ProvisioningProviderResponseType updateRouter(GeminiTenant tenant, GeminiEnvironment env,
        GeminiNetworkRouter routerToBeUpdated) {
    //authenticate the session with the OpenStack installation
    OSClient os = OSFactory.builder().endpoint(env.getEndPoint())
            .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName())
            .authenticate();/*from  www.  j  a  va  2  s.c o m*/
    if (os == null) {
        Logger.error("Failed to authenticate Tenant: {}",
                ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE));
        return ProvisioningProviderResponseType.CLOUD_AUTH_FAILURE;
    }

    //see if this already exists
    Router existingRouter = os.networking().router().get(routerToBeUpdated.getCloudID());
    if (existingRouter == null) {
        Logger.error("Failed to update Router, it does not exist: Tenant: {} Environment: {}, Router: {}",
                tenant.getName(), env.getName(),
                ToStringBuilder.reflectionToString(routerToBeUpdated, ToStringStyle.MULTI_LINE_STYLE));
        return ProvisioningProviderResponseType.OBJECT_NOT_FOUND;
    }

    //first update the non-array/list items
    os.networking().router().update(existingRouter.toBuilder().name(routerToBeUpdated.getName())
            //.adminStateUp(routerToBeUpdated.)
            .externalGateway(routerToBeUpdated.getGateway().getCloudID()).name(routerToBeUpdated.getName())
            .build());

    //now add the host routes
    routerToBeUpdated.getRoutes()
            .forEach((k, v) -> os.networking().router().update(existingRouter.toBuilder().route(k, v).build()));

    //now attach the interfaces
    routerToBeUpdated.getInterfaces().forEach(s -> os.networking().router()
            .attachInterface(existingRouter.getId(), AttachInterfaceType.SUBNET, s.getCloudID()));

    Logger.debug("Successfully updated router - Tenant: {} Environment: {} Router: {}", tenant.getName(),
            env.getName(),
            ToStringBuilder.reflectionToString(routerToBeUpdated, ToStringStyle.MULTI_LINE_STYLE));
    return ProvisioningProviderResponseType.SUCCESS;
}

From source file:com.likethecolor.alchemy.api.entity.AlchemyEntityTest.java

@Test
public void testToString_Formatted() {
    final ToStringStyle style = ToStringStyle.MULTI_LINE_STYLE;
    final String census = "http://census.org/resource/Israel";
    final String ciaFactbook = "http://www4.wiwiss.fu-berlin.de/factbook/resource/Israel";
    final String crunchbase = "http://crunchbase.com/resource/Israel";
    final String dbPedia = "http://dbpedia.org/resource/Israel";
    final String freebase = "http://rdf.freebase.com/ns/guid.9202a8c04000641f800000000001e2be";
    final Double latitude = 31.0D;
    final Double longitude = 35.0D;
    final String geo = latitude + " " + longitude;
    final String geonames = "http://geonames.com/Israel";
    final String musicBrainz = "http://musicbrainz.com/Israel";
    final String name = "Israel";
    final String opencyc = "http://sw.opencyc.org/concept/Mx4rvViP55wpEbGdrcN5Y29ycA";
    final String type = "Country";
    final String text = "Israel";
    final String semanticCrunchbase = "http://semanticcrunchbase.com/concept/Mx4rvViP55wpEbGdrcN5Y29ycA";
    final String umbel = "http://umbel.org/umbel/ne/wikipedia/Israel";
    final String website = "http://www.knesset.gov.il/";
    final String yago = "http://mpii.de/yago/resource/Israel";
    final List<String> subtypes = new ArrayList<String>();
    subtypes.add("Location");
    subtypes.add("Country");
    subtypes.add("GovernmentalJurisdiction");

    final AlchemyEntity entity = new AlchemyEntity();
    entity.setCensus(census);//from  w ww  . ja  va 2 s.com
    entity.setCIAFactbook(ciaFactbook);
    entity.setCrunchbase(crunchbase);
    entity.setDBPedia(dbPedia);
    entity.setFreebase(freebase);
    entity.setGeo(geo);
    entity.setGeonames(geonames);
    entity.setMusicBrainz(musicBrainz);
    entity.setName(name);
    entity.setOpencyc(opencyc);
    entity.setSemanticCrunchbase(semanticCrunchbase);
    entity.setText(text);
    entity.setType(type);
    entity.setUmbel(umbel);
    entity.setWebsite(website);
    entity.setYago(yago);
    for (String subtype : subtypes) {
        entity.addSubtype(subtype);
    }

    final DisambiguatedAlchemyEntity disambiguatedAlchemyEntity = entity.getDisambiguatedAlchemyEntity();

    final String expectedString = new ToStringBuilder(entity, style).append("text", text).append("type", type)
            .append(disambiguatedAlchemyEntity.toString(style)).toString();

    final String actualString = entity.toString(style);

    assertEquals(expectedString, actualString);
}

From source file:com.gemini.provision.network.openstack.NetworkProviderOpenStackImpl.java

@Override
public ProvisioningProviderResponseType deleteRouter(GeminiTenant tenant, GeminiEnvironment env,
        GeminiNetworkRouter routerToBeDeleted) {
    //authenticate the session with the OpenStack installation
    //authenticate the session with the OpenStack installation
    OSClient os = OSFactory.builder().endpoint(env.getEndPoint())
            .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName())
            .authenticate();//from  w w w  .ja va2s . c o  m
    if (os == null) {
        Logger.error("Failed to authenticate Tenant: {}",
                ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE));
        return ProvisioningProviderResponseType.CLOUD_AUTH_FAILURE;
    }

    //see if this already exists
    Router existingRouter = os.networking().router().get(routerToBeDeleted.getCloudID());
    if (existingRouter == null) {
        Logger.error("Failed to delete Router, it does not exist: Tenant: {} Environment: {}, Router: {}",
                tenant.getName(), env.getName(),
                ToStringBuilder.reflectionToString(routerToBeDeleted, ToStringStyle.MULTI_LINE_STYLE));
        return ProvisioningProviderResponseType.OBJECT_NOT_FOUND;
    }

    //now delete the router
    if (!os.networking().router().delete(existingRouter.getId()).isSuccess()) {
        Logger.error(
                "Failed to delete Router, failure in Cloud Provider: Tenant: {} Environment: {}, Router: {}",
                tenant.getName(), env.getName(),
                ToStringBuilder.reflectionToString(routerToBeDeleted, ToStringStyle.MULTI_LINE_STYLE));
        return ProvisioningProviderResponseType.CLOUD_FAILURE;
    } else {
        Logger.debug("Successfully deleted Router: Tenant: {} Environment: {}, Router: {}", tenant.getName(),
                env.getName(),
                ToStringBuilder.reflectionToString(routerToBeDeleted, ToStringStyle.MULTI_LINE_STYLE));
        return ProvisioningProviderResponseType.SUCCESS;
    }
}