/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.storageos.db.client.model; import com.emc.storageos.db.client.upgrade.CustomMigrationCallback; import com.emc.storageos.db.client.upgrade.callbacks.ComputeImageServerMigration; import com.emc.storageos.model.valid.EnumType; /** * Model/ColumnFamily to represent ComputeImageServer * * @author kumara4 * */ @Cf("ComputeImageServer") public class ComputeImageServer extends DataObject { public static enum ComputeImageServerStatus { AVAILABLE, NOT_AVAILABLE } private String imageServerIp; private String imageServerUser; private String imageServerPassword; private String tftpBootDir; private String imageDir; private String imageServerSecondIp; private String imageServerHttpPort="44491"; private Integer sshPort = 22; private Integer sshTimeoutMs = 20000; private Integer imageImportTimeoutMs = 1800000; private Integer osInstallTimeoutMs = 3600000; private Integer jobPollingIntervalMs = 60000; private StringSet computeImages; private StringSet failedComputeImages; private String computeImageServerStatus = ComputeImageServerStatus.NOT_AVAILABLE.name(); @CustomMigrationCallback(callback = ComputeImageServerMigration.class) @Name("imageServerIp") public String getImageServerIp() { return imageServerIp; } public void setImageServerIp(String imageServerIp) { this.imageServerIp = imageServerIp; setChanged("imageServerIp"); } @Name("imageServerUser") public String getImageServerUser() { return imageServerUser; } public void setImageServerUser(String imageServerUser) { this.imageServerUser = imageServerUser; setChanged("imageServerUser"); } @Encrypt @Name("imageServerPassword") public String getImageServerPassword() { return imageServerPassword; } public void setImageServerPassword(String imageServerPassword) { this.imageServerPassword = imageServerPassword; setChanged("imageServerPassword"); } @Name("tftpBootDir") public String getTftpBootDir() { return tftpBootDir; } public void setTftpBootDir(String tftpBootDir) { String s = tftpBootDir.trim(); if (!s.endsWith("/")) { this.tftpBootDir = s + "/"; } else { this.tftpBootDir = s; } setChanged("tftpBootDir"); } @Name("imageDir") public String getImageDir() { return imageDir; } public void setImageDir(String imageDir) { String s = imageDir.trim(); if (s.length() > 0 && !s.endsWith("/")) { this.imageDir = s + "/"; } else { this.imageDir = s; } setChanged("imageDir"); } @Name("imageServerSecondIp") public String getImageServerSecondIp() { return imageServerSecondIp; } public void setImageServerSecondIp(String imageServerSecondIp) { this.imageServerSecondIp = imageServerSecondIp; setChanged("imageServerSecondIp"); } @Name("imageServerHttpPort") public String getImageServerHttpPort() { return imageServerHttpPort; } public void setImageServerHttpPort(String imageServerHttpPort) { this.imageServerHttpPort = imageServerHttpPort; setChanged("imageServerHttpPort"); } @Name("sshTimeoutMs") public Integer getSshTimeoutMs() { return sshTimeoutMs; } public void setSshTimeoutMs(Integer sshTimeoutMs) { this.sshTimeoutMs = sshTimeoutMs; setChanged("sshTimeoutMs"); } @Name("imageImportTimeoutMs") public Integer getImageImportTimeoutMs() { return imageImportTimeoutMs; } public void setImageImportTimeoutMs(Integer imageImportTimeoutMs) { this.imageImportTimeoutMs = imageImportTimeoutMs; setChanged("imageImportTimeoutMs"); } @Name("osInstallTimeoutMs") public Integer getOsInstallTimeoutMs() { return osInstallTimeoutMs; } public void setOsInstallTimeoutMs(Integer osInstallTimeoutMs) { this.osInstallTimeoutMs = osInstallTimeoutMs; setChanged("osInstallTimeoutMs"); } @Name("jobPollingIntervalMs") public Integer getJobPollingIntervalMs() { return jobPollingIntervalMs; } public void setJobPollingIntervalMs(Integer jobPollingIntervalMs) { this.jobPollingIntervalMs = jobPollingIntervalMs; setChanged("jobPollingIntervalMs"); } @Name("sshPort") public Integer getSshPort() { return sshPort; } public void setSshPort(Integer sshPort) { this.sshPort = sshPort; setChanged("sshPort"); } /** * @return the computeImage */ @RelationIndex(cf = "RelationIndex", type = ComputeImage.class) @IndexByKey @Name("computeImages") public StringSet getComputeImages() { return computeImages; } /** * @param computeImages * the computeImages to set */ public void setComputeImages(StringSet computeImages) { this.computeImages = computeImages; setChanged("computeImages"); } @EnumType(ComputeImageServerStatus.class) @Name("computeImageServerStatus") public String getComputeImageServerStatus() { return computeImageServerStatus; } public void setComputeImageServerStatus(String computeImageServerStatus) { this.computeImageServerStatus = computeImageServerStatus; setChanged("computeImageServerStatus"); } /** * @return the failedComputeImages */ @Name("failedComputeImages") public StringSet getFailedComputeImages() { return failedComputeImages; } /** * @param failedComputeImages the failedComputeImages to set */ public void setFailedComputeImages(StringSet failedComputeImages) { this.failedComputeImages = failedComputeImages; } }