/* * Copyright (c) 2013 EMC Corporation * All Rights Reserved */ package com.emc.storageos.recoverpoint.responses; import java.io.Serializable; import java.util.List; /** * Parameters necessary to create/update a consistency group, given newly created volumes. * Need enough information to be able to export the volumes to the RPAs and to create the CG. * */ public class GetCGsResponse implements Serializable { private static final long serialVersionUID = 6619541304723730047L; // Name of the CG Group private String cgName; // CG ID private long cgId; // Top-level policy for the CG private GetPolicyResponse cgPolicy; // Overall health/state information private GetCGStateResponse cgState; // List of copies private List<GetCopyResponse> copies; // List of replication sets that make up this consistency group. private List<GetRSetResponse> rsets; public GetCGsResponse() { } public String getCgName() { return cgName; } public void setCgName(String cgName) { this.cgName = cgName; } public long getCgId() { return cgId; } public void setCgId(long cgId) { this.cgId = cgId; } public List<GetCopyResponse> getCopies() { return copies; } public void setCopies(List<GetCopyResponse> copies) { this.copies = copies; } public List<GetRSetResponse> getRsets() { return rsets; } public void setRsets(List<GetRSetResponse> rsets) { this.rsets = rsets; } public GetPolicyResponse getCgPolicy() { return cgPolicy; } public void setCgPolicy(GetPolicyResponse cgPolicy) { this.cgPolicy = cgPolicy; } public GetCGStateResponse getCgState() { return cgState; } public void setCgState(GetCGStateResponse cgState) { this.cgState = cgState; } // Various top-level state information of an RP CG public static enum GetCGStateResponse implements Serializable { UNKNOWN("0"), HEALTHY("1"), UNHEALTHY_PAUSED_OR_DISABLED("2"), UNHEALTHY_ERROR("3"), UNHEALTHY_ACCESSED("4"); private final String state; GetCGStateResponse(String state) { this.state = state; } public String getState() { return state; } private static final GetCGStateResponse[] copyOfValues = values(); public static String getGetCGStateResponseDisplayName(String state) { for (GetCGStateResponse stateValue : copyOfValues) { if (stateValue.getState().contains(state)) { return stateValue.name(); } } return GetCGStateResponse.UNKNOWN.name(); } } // The top-level CG policy objects public static class GetPolicyResponse implements Serializable { private static final long serialVersionUID = -7315028258346027172L; public Boolean synchronous; public Long rpoValue; public String rpoType; @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append("synchronous: " + synchronous); sb.append(", rpoValue: " + rpoValue); sb.append(", rpoType: " + rpoType); return sb.toString(); } } @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append("\ncgName: " + cgName); sb.append("\ncgId: " + cgId); sb.append("\ncgPolicy: " + cgPolicy); sb.append("\nstate: " + (cgState == null ? "None" : cgState.toString())); sb.append("\n---------------\n"); if (copies != null) { for (GetCopyResponse copy : copies) { sb.append(copy); sb.append("\n"); } } sb.append("\n---------------\n"); if (rsets != null) { for (GetRSetResponse rset : rsets) { sb.append(rset); sb.append("\n"); } } sb.append("\n---------------\n"); return sb.toString(); } }