/******************************************************************************* * Copyright (c) 2016 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Pivotal, Inc. - initial API and implementation *******************************************************************************/ package org.springframework.ide.eclipse.boot.dash.cloudfoundry.client; import java.net.URI; import org.cloudfoundry.client.lib.HttpProxyConfiguration; import org.eclipse.core.runtime.Assert; import org.springframework.ide.eclipse.boot.core.BootActivator; import org.springframework.ide.eclipse.boot.dash.cloudfoundry.CloudFoundryTargetProperties; import org.springframework.ide.eclipse.boot.dash.cloudfoundry.client.CFCredentials.CFCredentialType; /** * All the parameters needed to create a CF client. * * @author Kris De Volder */ public class CFClientParams { private final String apiUrl; private final String username; private CFCredentials credentials; private final boolean isSelfSigned; private final boolean skipSslValidation; private String orgName; // optional private String spaceName; //optional public CFClientParams(String apiUrl, String username, CFCredentials credentials, boolean isSelfSigned, String orgName, String spaceName, boolean skipSslValidation ) { Assert.isNotNull(apiUrl, "apiUrl is required"); Assert.isNotNull(credentials, "credentials required"); if (credentials.getType()==CFCredentialType.PASSWORD) { Assert.isNotNull(username, "username is required"); } this.apiUrl = apiUrl; this.username = username; this.credentials = credentials; this.isSelfSigned = isSelfSigned; this.skipSslValidation = skipSslValidation; this.orgName = orgName; this.spaceName = spaceName; } public CFClientParams(CloudFoundryTargetProperties targetProperties) throws Exception { this( targetProperties.getUrl(), targetProperties.getUsername(), targetProperties.getCredentials(), targetProperties.isSelfsigned(), targetProperties.getOrganizationName(), targetProperties.getSpaceName(), targetProperties.skipSslValidation() ); } public CFCredentials getCredentials() { return credentials; } public String getUsername() { return username; } public boolean isSelfsigned() { return isSelfSigned; } public boolean skipSslValidation() { return skipSslValidation; } public HttpProxyConfiguration getProxyConf() { return null; } public String getApiUrl() { return apiUrl; } public String getOrgName() { return orgName; } public void setOrgName(String orgName) { this.orgName = orgName; } public String getSpaceName() { return spaceName; } public void setSpaceName(String spaceName) { this.spaceName = spaceName; } public String getHost() { try { URI uri = new URI(getApiUrl()); return uri.getHost(); } catch (Exception e) { BootActivator.log(e); } return null; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((apiUrl == null) ? 0 : apiUrl.hashCode()); result = prime * result + (isSelfSigned ? 1231 : 1237); result = prime * result + ((orgName == null) ? 0 : orgName.hashCode()); result = prime * result + ((credentials == null) ? 0 : credentials.hashCode()); result = prime * result + ((spaceName == null) ? 0 : spaceName.hashCode()); result = prime * result + ((username == null) ? 0 : username.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; CFClientParams other = (CFClientParams) obj; if (apiUrl == null) { if (other.apiUrl != null) return false; } else if (!apiUrl.equals(other.apiUrl)) return false; if (isSelfSigned != other.isSelfSigned) return false; if (orgName == null) { if (other.orgName != null) return false; } else if (!orgName.equals(other.orgName)) return false; if (credentials == null) { if (other.credentials != null) return false; } else if (!credentials.equals(other.credentials)) return false; if (spaceName == null) { if (other.spaceName != null) return false; } else if (!spaceName.equals(other.spaceName)) return false; if (username == null) { if (other.username != null) return false; } else if (!username.equals(other.username)) return false; return true; } }