- All Implemented Interfaces:
ClusterState.Custom,Diffable<ClusterState.Custom>,NamedDiffable<ClusterState.Custom>,NamedWriteable,VersionedNamedWriteable,Writeable,ChunkedToXContent
Cluster state secrets are initially loaded on each node from the cluster_secrets chunk in the
reserved state file on disk. The format of that chunk is defined by SecureClusterStateSettings.
Once the cluster is running, changes to cluster secrets are propagated by the master node
that watches for changes of the reserved state settings file.
Since the master node should always have settings on disk, we don't need to
persist this class to saved cluster state, either on disk or in the cloud. Therefore,
we have defined this ClusterState.Custom as a private custom object. Additionally,
we don't want to ever write this class's secrets out in a client response, so
toXContentChunked(ToXContent.Params) returns an empty iterator.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable
Writeable.Reader<V>, Writeable.Writer<V> -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe name of the cluster secrets chunk used in the settings state file.static final StringThe name for this data classFields inherited from interface org.elasticsearch.common.xcontent.ChunkedToXContent
EMPTY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleancontainsSecureSettings(SecureSettings settings) booleanThe minimal version of the recipient this object can be sent to.longReturns the name of the writeable objectinthashCode()booleanReturnstrueiff thisClusterState.Customis private to the cluster and should never be sent to a client.static NamedDiff<ClusterState.Custom> toString()Iterator<? extends ToXContent> toXContentChunked(ToXContent.Params params) Serialize thisClusterState.Customfor diagnostic purposes, exposed by thevoidwriteTo(StreamOutput out) Write this into the StreamOutput.Methods inherited from class org.elasticsearch.cluster.AbstractNamedDiffable
diff, get, readDiffFromMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.elasticsearch.common.xcontent.ChunkedToXContent
isFragment, toXContentChunked, toXContentChunkedV8Methods inherited from interface org.elasticsearch.common.io.stream.VersionedNamedWriteable
supportsVersion
-
Field Details
-
NAME
The name of the cluster secrets chunk used in the settings state file.- See Also:
-
TYPE
The name for this data classThis name will be used to identify this
NamedWriteablein cluster state. SeegetWriteableName().- See Also:
-
-
Constructor Details
-
ClusterSecrets
-
ClusterSecrets
- Throws:
IOException
-
-
Method Details
-
getSettings
-
getVersion
public long getVersion() -
isPrivate
public boolean isPrivate()Description copied from interface:ClusterState.CustomReturnstrueiff thisClusterState.Customis private to the cluster and should never be sent to a client. The default isfalse;- Specified by:
isPrivatein interfaceClusterState.Custom
-
toXContentChunked
Description copied from interface:ClusterState.CustomSerialize thisClusterState.Customfor diagnostic purposes, exposed by theGET _cluster/state
API etc. The XContent representation does not need to be 100% faithful since we never reconstruct a cluster state from its XContent representation, but the more faithful it is the more useful it is for diagnostics.- Specified by:
toXContentChunkedin interfaceChunkedToXContent- Specified by:
toXContentChunkedin interfaceClusterState.Custom- Returns:
- iterator over chunks of
ToXContent
-
getWriteableName
Description copied from interface:VersionedNamedWriteableReturns the name of the writeable object- Specified by:
getWriteableNamein interfaceNamedWriteable- Specified by:
getWriteableNamein interfaceVersionedNamedWriteable
-
getMinimalSupportedVersion
Description copied from interface:VersionedNamedWriteableThe minimal version of the recipient this object can be sent to. SeeVersionedNamedWriteable.supportsVersion(TransportVersion)for the default serialization check.- Specified by:
getMinimalSupportedVersionin interfaceVersionedNamedWriteable
-
writeTo
Description copied from interface:WriteableWrite this into the StreamOutput.- Specified by:
writeToin interfaceWriteable- Throws:
IOException
-
readDiffFrom
- Throws:
IOException
-
containsSecureSettings
-
toString
-
equals
-
hashCode
public int hashCode()
-