mirror of https://github.com/apache/jclouds.git
Issue 158: Added operating system and password to virtual guest
This commit is contained in:
parent
c24ba815cf
commit
fd3cb496fd
|
@ -0,0 +1,137 @@
|
||||||
|
/**
|
||||||
|
* Licensed to jclouds, Inc. (jclouds) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. jclouds licenses this file
|
||||||
|
* to you 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 org.jclouds.softlayer.domain;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extends the SoftLayer_Software_Component data type to include operating system specific properties.
|
||||||
|
*
|
||||||
|
* @author Jason King
|
||||||
|
* @see <a href=
|
||||||
|
* "http://sldn.softlayer.com/reference/datatypes/SoftLayer_Software_Component_OperatingSystem"
|
||||||
|
* />
|
||||||
|
*/
|
||||||
|
public class OperatingSystem implements Comparable<OperatingSystem> {
|
||||||
|
|
||||||
|
// There are other properties
|
||||||
|
|
||||||
|
public static Builder builder() {
|
||||||
|
return new Builder();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Builder {
|
||||||
|
private int id = -1;
|
||||||
|
private Set<Password> passwords = Sets.newLinkedHashSet();
|
||||||
|
|
||||||
|
public Builder id(int id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder password(Password password) {
|
||||||
|
this.passwords.add(checkNotNull(password, "password"));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder passwords(Iterable<Password> passwords) {
|
||||||
|
this.passwords = ImmutableSet.<Password> copyOf(checkNotNull(passwords, "passwords"));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OperatingSystem build() {
|
||||||
|
return new OperatingSystem(id, passwords);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Builder fromOperatingSystem(OperatingSystem in) {
|
||||||
|
return OperatingSystem.builder()
|
||||||
|
.id(in.getId())
|
||||||
|
.passwords(in.getPasswords());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int id = -1;
|
||||||
|
private Set<Password> passwords = Sets.newLinkedHashSet();
|
||||||
|
|
||||||
|
// for deserializer
|
||||||
|
OperatingSystem() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public OperatingSystem(int id,Iterable<Password> passwords) {
|
||||||
|
this.id = id;
|
||||||
|
this.passwords = ImmutableSet.<Password> copyOf(checkNotNull(passwords, "passwords"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(OperatingSystem arg0) {
|
||||||
|
return new Integer(id).compareTo(arg0.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return An ID number identifying this Software Component (Software Installation)
|
||||||
|
*/
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return Username/Password pairs used for access to this Software Installation.
|
||||||
|
*/
|
||||||
|
public Set<Password> getPasswords() {
|
||||||
|
return passwords;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder toBuilder() {
|
||||||
|
return Builder.fromOperatingSystem(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
final int prime = 31;
|
||||||
|
int result = 1;
|
||||||
|
result = prime * result + (id ^ (id >>> 32));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj)
|
||||||
|
return true;
|
||||||
|
if (obj == null)
|
||||||
|
return false;
|
||||||
|
if (getClass() != obj.getClass())
|
||||||
|
return false;
|
||||||
|
OperatingSystem other = (OperatingSystem) obj;
|
||||||
|
if (id != other.id)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "OperatingSystem [id=" + id + ", passwords=" + passwords + "]";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,141 @@
|
||||||
|
/**
|
||||||
|
* Licensed to jclouds, Inc. (jclouds) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. jclouds licenses this file
|
||||||
|
* to you 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 org.jclouds.softlayer.domain;
|
||||||
|
|
||||||
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
import static com.google.common.base.Strings.emptyToNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Contains a password for a specific software component instance
|
||||||
|
*
|
||||||
|
* @author Jason King
|
||||||
|
* @see <a href= "http://sldn.softlayer.com/reference/datatypes/SoftLayer_Software_Component_Password"
|
||||||
|
* />
|
||||||
|
*/
|
||||||
|
public class Password implements Comparable<Password> {
|
||||||
|
public static Builder builder() {
|
||||||
|
return new Builder();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Builder {
|
||||||
|
private int id = -1;
|
||||||
|
private String username;
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
public Builder id(int id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder username(String username) {
|
||||||
|
this.username = username;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder password(String password) {
|
||||||
|
this.password = password;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Password build() {
|
||||||
|
return new Password(id, username, password);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Builder fromPassword(Password in) {
|
||||||
|
return Password.builder().id(in.getId())
|
||||||
|
.username(in.getUsername())
|
||||||
|
.password(in.getPassword());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int id = -1;
|
||||||
|
private String username;
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
// for deserializer
|
||||||
|
Password() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Password(int id, String username, String password) {
|
||||||
|
this.id = id;
|
||||||
|
this.username = checkNotNull(emptyToNull(username),"username cannot be null or empty:"+username);
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(Password arg0) {
|
||||||
|
return new Integer(id).compareTo(arg0.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return An id number for this specific username/password pair.
|
||||||
|
*/
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The username part of the username/password pair.
|
||||||
|
*/
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The password part of the username/password pair.
|
||||||
|
*/
|
||||||
|
public String getPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder toBuilder() {
|
||||||
|
return Builder.fromPassword(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
final int prime = 31;
|
||||||
|
int result = 1;
|
||||||
|
result = prime * result + (id ^ (id >>> 32));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj)
|
||||||
|
return true;
|
||||||
|
if (obj == null)
|
||||||
|
return false;
|
||||||
|
if (getClass() != obj.getClass())
|
||||||
|
return false;
|
||||||
|
Password other = (Password) obj;
|
||||||
|
if (id != other.id)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Password [id=" + id + ", username=" + username + ", password=**********]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -64,6 +64,7 @@ public class VirtualGuest implements Comparable<VirtualGuest> {
|
||||||
private String primaryBackendIpAddress;
|
private String primaryBackendIpAddress;
|
||||||
private String primaryIpAddress;
|
private String primaryIpAddress;
|
||||||
private BillingItemVirtualGuest billingItem;
|
private BillingItemVirtualGuest billingItem;
|
||||||
|
private OperatingSystem operatingSystem;
|
||||||
|
|
||||||
public Builder id(int id) {
|
public Builder id(int id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
@ -170,12 +171,17 @@ public class VirtualGuest implements Comparable<VirtualGuest> {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Builder operatingSystem(OperatingSystem operatingSystem) {
|
||||||
|
this.operatingSystem = operatingSystem;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public VirtualGuest build() {
|
public VirtualGuest build() {
|
||||||
return new VirtualGuest(accountId, createDate, dedicatedAccountHostOnly, domain,
|
return new VirtualGuest(accountId, createDate, dedicatedAccountHostOnly, domain,
|
||||||
fullyQualifiedDomainName, hostname, id, lastVerifiedDate, maxCpu,
|
fullyQualifiedDomainName, hostname, id, lastVerifiedDate, maxCpu,
|
||||||
maxCpuUnits, maxMemory, metricPollDate, modifyDate, notes,
|
maxCpuUnits, maxMemory, metricPollDate, modifyDate, notes,
|
||||||
privateNetworkOnly, startCpus, statusId, uuid, primaryBackendIpAddress,
|
privateNetworkOnly, startCpus, statusId, uuid, primaryBackendIpAddress,
|
||||||
primaryIpAddress,billingItem);
|
primaryIpAddress,billingItem,operatingSystem);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Builder fromVirtualGuest(VirtualGuest in) {
|
public static Builder fromVirtualGuest(VirtualGuest in) {
|
||||||
|
@ -200,7 +206,9 @@ public class VirtualGuest implements Comparable<VirtualGuest> {
|
||||||
.uuid(in.getUuid())
|
.uuid(in.getUuid())
|
||||||
.primaryBackendIpAddress(in.getPrimaryBackendIpAddress())
|
.primaryBackendIpAddress(in.getPrimaryBackendIpAddress())
|
||||||
.primaryIpAddress(in.getPrimaryIpAddress())
|
.primaryIpAddress(in.getPrimaryIpAddress())
|
||||||
.billingItem(in.getBillingItem());
|
.billingItem(in.getBillingItem())
|
||||||
|
.operatingSystem(in.getOperatingSystem());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,6 +260,7 @@ public class VirtualGuest implements Comparable<VirtualGuest> {
|
||||||
private String primaryIpAddress;
|
private String primaryIpAddress;
|
||||||
|
|
||||||
private BillingItemVirtualGuest billingItem;
|
private BillingItemVirtualGuest billingItem;
|
||||||
|
private OperatingSystem operatingSystem;
|
||||||
|
|
||||||
// for deserializer
|
// for deserializer
|
||||||
VirtualGuest() {
|
VirtualGuest() {
|
||||||
|
@ -262,7 +271,7 @@ public class VirtualGuest implements Comparable<VirtualGuest> {
|
||||||
String fullyQualifiedDomainName, String hostname, int id, Date lastVerifiedDate, int maxCpu,
|
String fullyQualifiedDomainName, String hostname, int id, Date lastVerifiedDate, int maxCpu,
|
||||||
String maxCpuUnits, int maxMemory, Date metricPollDate, Date modifyDate, String notes,
|
String maxCpuUnits, int maxMemory, Date metricPollDate, Date modifyDate, String notes,
|
||||||
boolean privateNetworkOnly, int startCpus, int statusId, String uuid, String primaryBackendIpAddress,
|
boolean privateNetworkOnly, int startCpus, int statusId, String uuid, String primaryBackendIpAddress,
|
||||||
String primaryIpAddress,BillingItemVirtualGuest billingItem) {
|
String primaryIpAddress,BillingItemVirtualGuest billingItem, OperatingSystem operatingSystem) {
|
||||||
this.accountId = accountId;
|
this.accountId = accountId;
|
||||||
this.createDate = createDate;
|
this.createDate = createDate;
|
||||||
this.dedicatedAccountHostOnly = dedicatedAccountHostOnly;
|
this.dedicatedAccountHostOnly = dedicatedAccountHostOnly;
|
||||||
|
@ -284,6 +293,7 @@ public class VirtualGuest implements Comparable<VirtualGuest> {
|
||||||
this.primaryBackendIpAddress = primaryBackendIpAddress;
|
this.primaryBackendIpAddress = primaryBackendIpAddress;
|
||||||
this.primaryIpAddress = primaryIpAddress;
|
this.primaryIpAddress = primaryIpAddress;
|
||||||
this.billingItem = billingItem;
|
this.billingItem = billingItem;
|
||||||
|
this.operatingSystem = operatingSystem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -441,6 +451,13 @@ public class VirtualGuest implements Comparable<VirtualGuest> {
|
||||||
return billingItem;
|
return billingItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return A guest's operating system.
|
||||||
|
*/
|
||||||
|
public OperatingSystem getOperatingSystem() {
|
||||||
|
return operatingSystem;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
final int prime = 31;
|
final int prime = 31;
|
||||||
|
@ -466,6 +483,7 @@ public class VirtualGuest implements Comparable<VirtualGuest> {
|
||||||
result = prime * result + statusId;
|
result = prime * result + statusId;
|
||||||
result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());
|
result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());
|
||||||
result = prime * result + ((billingItem == null) ? 0 : billingItem.hashCode());
|
result = prime * result + ((billingItem == null) ? 0 : billingItem.hashCode());
|
||||||
|
result = prime * result + ((operatingSystem == null) ? 0 : operatingSystem.hashCode());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -559,6 +577,11 @@ public class VirtualGuest implements Comparable<VirtualGuest> {
|
||||||
return false;
|
return false;
|
||||||
} else if (!billingItem.equals(other.billingItem))
|
} else if (!billingItem.equals(other.billingItem))
|
||||||
return false;
|
return false;
|
||||||
|
if (operatingSystem == null) {
|
||||||
|
if (other.operatingSystem != null)
|
||||||
|
return false;
|
||||||
|
} else if (!operatingSystem.equals(other.operatingSystem))
|
||||||
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -571,7 +594,7 @@ public class VirtualGuest implements Comparable<VirtualGuest> {
|
||||||
+ ", metricPollDate=" + metricPollDate + ", modifyDate=" + modifyDate + ", notes=" + notes
|
+ ", metricPollDate=" + metricPollDate + ", modifyDate=" + modifyDate + ", notes=" + notes
|
||||||
+ ", primaryBackendIpAddress=" + primaryBackendIpAddress + ", primaryIpAddress=" + primaryIpAddress
|
+ ", primaryBackendIpAddress=" + primaryBackendIpAddress + ", primaryIpAddress=" + primaryIpAddress
|
||||||
+ ", privateNetworkOnly=" + privateNetworkOnly + ", startCpus=" + startCpus + ", statusId=" + statusId
|
+ ", privateNetworkOnly=" + privateNetworkOnly + ", startCpus=" + startCpus + ", statusId=" + statusId
|
||||||
+ ", uuid=" + uuid + ", billingItem="+billingItem+"]";
|
+ ", uuid=" + uuid + ", billingItem="+billingItem+", operatingSystem="+operatingSystem+"]";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue