Java tutorial
/* * Copyright (c) 2015 Google, Inc. * * 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. */ package com.cloudera.director.google; import org.apache.commons.codec.binary.Base64; import java.io.IOException; import java.nio.charset.Charset; public final class TestFixture { private String projectId; private String jsonKey; private String sshPublicKey; private String userName; private boolean haltAfterAllocation; private TestFixture(String projectId, String jsonKey, String sshPublicKey, String userName, boolean haltAfterAllocation) { this.projectId = projectId; this.jsonKey = jsonKey; this.sshPublicKey = sshPublicKey; this.userName = userName; this.haltAfterAllocation = haltAfterAllocation; } public static TestFixture newTestFixture(boolean sshPublicKeyAndUserNameAreRequired) throws IOException { String projectId = TestUtils.readRequiredSystemProperty("GCP_PROJECT_ID"); String jsonKey = TestUtils.readFileIfSpecified(System.getProperty("JSON_KEY_PATH", "")); // If the path to a json key file was not provided, check if the key was passed explicitly. if (jsonKey == null) { String jsonKeyInline = System.getProperty("JSON_KEY_INLINE", ""); if (!jsonKeyInline.isEmpty()) { // If so, we must base64-decode it. jsonKey = new String(Base64.decodeBase64(jsonKeyInline)); } } String sshPublicKey = null; String userName = null; if (sshPublicKeyAndUserNameAreRequired) { sshPublicKey = TestUtils.readFile(TestUtils.readRequiredSystemProperty("SSH_PUBLIC_KEY_PATH"), Charset.defaultCharset()); userName = TestUtils.readRequiredSystemProperty("SSH_USER_NAME"); } boolean haltAfterAllocation = Boolean.parseBoolean(System.getProperty("HALT_AFTER_ALLOCATION", "false")); return new TestFixture(projectId, jsonKey, sshPublicKey, userName, haltAfterAllocation); } public String getProjectId() { return projectId; } public String getJsonKey() { return jsonKey; } public String getSshPublicKey() { return sshPublicKey; } public String getUserName() { return userName; } public boolean getHaltAfterAllocation() { return haltAfterAllocation; } }