/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package models.datatable;
import models.ComputeImageTypes;
import util.ComputeImageUtils;
import util.datatable.DataTable;
import com.emc.storageos.model.compute.ComputeImageRestRep;
public class ComputeImagesDataTable extends DataTable {
public ComputeImagesDataTable() {
addColumn("name").setRenderFunction("renderLink");
addColumn("imageName");
addColumn("imageType");
addColumn("discoveryStatus").setRenderFunction("render.discoveryStatusIcon");
sortAll();
setDefaultSort("name", "asc");
}
public static class ComputeImagesInfo {
public String id;
public String name;
public String imageName;
public String imageType;
public String imageUrl;
public String computeImageStatus;
public String discoveryStatus;
public ComputeImagesInfo() {
}
public ComputeImagesInfo(ComputeImageRestRep computeImage) {
this.id = computeImage.getId().toString();
this.name = computeImage.getName();
this.imageName = computeImage.getImageName();
this.imageType = ComputeImageTypes.getDisplayValue(computeImage.getImageType());
this.imageUrl = computeImage.getImageUrl();
this.computeImageStatus = computeImage.getComputeImageStatus();
String displayStatus = computeImage.getComputeImageStatus();
ComputeImageRestRep cirr = ComputeImageUtils.getComputeImage(id);
if (displayStatus.equalsIgnoreCase("AVAILABLE") && cirr.getFailedImageServers().size() == 0) {
this.discoveryStatus = "COMPLETE";
} else if (displayStatus.equalsIgnoreCase("AVAILABLE") && cirr.getFailedImageServers().size() > 0) {
this.discoveryStatus = "PARTIAL_SUCCESS";
} else if (displayStatus.equalsIgnoreCase("NOT_AVAILABLE")) {
this.discoveryStatus = "ERROR";
} else {
this.discoveryStatus = displayStatus;
}
}
}
}