/*
* Copyright (c) 2016 EMC Corporation
* All Rights Reserved
*/
package com.emc.vipr.model.sys.recovery;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import java.util.ArrayList;
@XmlRootElement(name="recovery_precheck_status")
public class RecoveryPrecheckStatus {
@XmlType(name="recoveryPrecheckStatus_type")
public enum Status {
ALL_GOOD,
VAPP_IN_DR_OR_GEO,
NODE_UNREACHABLE,
CORRUPTED_NODE_COUNT_MORE_THAN_QUORUM,
CORRUPTED_NODE_FOR_OTHER_REASON,
RECOVERY_NEEDED
}
private Status status ;
private ArrayList<String> unavailables = new ArrayList<>();
private ArrayList<String> recoverables = new ArrayList<>();
@XmlElement(name="status")
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
/**
* dbsvc available node list
*/
@XmlElementWrapper(name="unavailable_nodes")
@XmlElement(name="unavailable_node")
public ArrayList<String> getUnavailables() {
if (unavailables == null) {
unavailables = new ArrayList<String>();
}
return unavailables;
}
/**
* dbsvc recoverable node list
*/
@XmlElementWrapper(name="recoverable_nodes")
@XmlElement(name="recoverable_node")
public ArrayList<String> getRecoverables() {
if (recoverables == null) {
recoverables = new ArrayList<>();
}
return recoverables;
}
public void setRecoverables (ArrayList<String> nodes) {
this.recoverables = nodes;
}
public void setUnavailables (ArrayList<String> nodes) {
this.unavailables = nodes;
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("status:");
sb.append(getStatus());
return sb.toString();
}
}