org.elasticsearch.snapshots.SnapshotState Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of elasticsearch Show documentation
Show all versions of elasticsearch Show documentation
Elasticsearch - Open Source, Distributed, RESTful Search Engine
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
package org.elasticsearch.snapshots;
/**
* Represents the state that a snapshot can be in
*/
public enum SnapshotState {
/**
* Snapshot process has started
*/
IN_PROGRESS((byte) 0, false, false),
/**
* Snapshot process completed successfully
*/
SUCCESS((byte) 1, true, true),
/**
* Snapshot failed
*/
FAILED((byte) 2, true, false),
/**
* Snapshot was partial successful
*/
PARTIAL((byte) 3, true, true),
/**
* Snapshot is incompatible with the current version of the cluster
*/
INCOMPATIBLE((byte) 4, true, false);
private final byte value;
private final boolean completed;
private final boolean restorable;
SnapshotState(byte value, boolean completed, boolean restorable) {
this.value = value;
this.completed = completed;
this.restorable = restorable;
}
/**
* Returns code that represents the snapshot state
*
* @return code for the state
*/
public byte value() {
return value;
}
/**
* Returns true if snapshot completed (successfully or not)
*
* @return true if snapshot completed, false otherwise
*/
public boolean completed() {
return completed;
}
/**
* Returns true if snapshot can be restored (at least partially)
*
* @return true if snapshot can be restored, false otherwise
*/
public boolean restorable() {
return restorable;
}
/**
* Generate snapshot state from code
*
* @param value the state code
* @return state
*/
public static SnapshotState fromValue(byte value) {
return switch (value) {
case 0 -> IN_PROGRESS;
case 1 -> SUCCESS;
case 2 -> FAILED;
case 3 -> PARTIAL;
case 4 -> INCOMPATIBLE;
default -> throw new IllegalArgumentException("No snapshot state for value [" + value + "]");
};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy