Package io.pravega.client.admin
Interface StreamManager
-
- All Superinterfaces:
java.lang.AutoCloseable
public interface StreamManager extends java.lang.AutoCloseable
Used to create, delete, and manage Streams and ReaderGroups.
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
checkScopeExists(java.lang.String scopeName)
Checks if a scope exists.boolean
checkStreamExists(java.lang.String scopeName, java.lang.String streamName)
Checks if a stream exists in scope.void
close()
Closes the stream manager.static StreamManager
create(ClientConfig clientConfig)
Creates a new instance of StreamManager.static StreamManager
create(java.net.URI controller)
Creates a new instance of StreamManager.boolean
createScope(java.lang.String scopeName)
Creates a new scope.boolean
createStream(java.lang.String scopeName, java.lang.String streamName, StreamConfiguration config)
Creates a new streamboolean
deleteScope(java.lang.String scopeName)
Deletes an existing scope.boolean
deleteScope(java.lang.String scopeName, boolean deleteStreams)
Deletes scope by listing and deleting all streams in scope.boolean
deleteStream(java.lang.String scopeName, java.lang.String toDelete)
Deletes the provided stream.StreamInfo
getStreamInfo(java.lang.String scopeName, java.lang.String streamName)
Get information about a given Stream,StreamInfo
.java.util.Iterator<java.lang.String>
listScopes()
Gets an iterator for all scopes.java.util.Iterator<Stream>
listStreams(java.lang.String scopeName)
Gets an iterator for all streams in scope.boolean
sealStream(java.lang.String scopeName, java.lang.String streamName)
Seal an existing stream.boolean
truncateStream(java.lang.String scopeName, java.lang.String streamName, StreamCut streamCut)
Truncate stream at given stream cut.boolean
updateStream(java.lang.String scopeName, java.lang.String streamName, StreamConfiguration config)
Change the configuration for an existing stream.
-
-
-
Method Detail
-
create
static StreamManager create(java.net.URI controller)
Creates a new instance of StreamManager.- Parameters:
controller
- The Controller URI.- Returns:
- Instance of Stream Manager implementation.
-
create
static StreamManager create(ClientConfig clientConfig)
Creates a new instance of StreamManager.- Parameters:
clientConfig
- Configuration for the client connection to Pravega.- Returns:
- Instance of Stream Manager implementation.
-
createStream
boolean createStream(java.lang.String scopeName, java.lang.String streamName, StreamConfiguration config)
Creates a new streamNote: This method is idempotent assuming called with the same name and config. This method may block.
- Parameters:
scopeName
- The name of the scope to create this stream in.streamName
- The name of the stream to be created.config
- The configuration the stream should use.- Returns:
- True if stream is created
-
updateStream
boolean updateStream(java.lang.String scopeName, java.lang.String streamName, StreamConfiguration config)
Change the configuration for an existing stream.Note: This method is idempotent assuming called with the same name and config. This method may block.
- Parameters:
scopeName
- The name of the scope to create this stream in.streamName
- The name of the stream who's config is to be changed.config
- The new configuration.- Returns:
- True if stream configuration is updated
-
truncateStream
boolean truncateStream(java.lang.String scopeName, java.lang.String streamName, StreamCut streamCut)
Truncate stream at given stream cut. This method may block.- Parameters:
scopeName
- The name of the scope to create this stream in.streamName
- The name of the stream who's config is to be changed.streamCut
- The stream cut to truncate at.- Returns:
- True if stream is truncated at given truncation stream cut.
-
sealStream
boolean sealStream(java.lang.String scopeName, java.lang.String streamName)
Seal an existing stream.- Parameters:
scopeName
- The name of the scope to create this stream in.streamName
- The name of the stream which has to be sealed.- Returns:
- True if stream is sealed
-
deleteStream
boolean deleteStream(java.lang.String scopeName, java.lang.String toDelete)
Deletes the provided stream. No more events may be written or read. Resources used by the stream will be freed.- Parameters:
scopeName
- The name of the scope to create this stream in.toDelete
- The name of the stream to be deleted.- Returns:
- True if stream is deleted
-
listScopes
java.util.Iterator<java.lang.String> listScopes()
Gets an iterator for all scopes.- Returns:
- Iterator to iterate over all scopes.
-
createScope
boolean createScope(java.lang.String scopeName)
Creates a new scope.- Parameters:
scopeName
- The name of the scope to create this stream in.- Returns:
- True if scope is created
-
checkScopeExists
boolean checkScopeExists(java.lang.String scopeName)
Checks if a scope exists.- Parameters:
scopeName
- The name of the scope to check.- Returns:
- True if scope exists.
-
listStreams
java.util.Iterator<Stream> listStreams(java.lang.String scopeName)
Gets an iterator for all streams in scope.- Parameters:
scopeName
- The name of the scope for which to list streams in.- Returns:
- Iterator of Stream to iterator over all streams in scope.
-
checkStreamExists
boolean checkStreamExists(java.lang.String scopeName, java.lang.String streamName)
Checks if a stream exists in scope.- Parameters:
scopeName
- The name of the scope to check the stream in.streamName
- The name of the stream to check.- Returns:
- True if stream exists.
-
deleteScope
boolean deleteScope(java.lang.String scopeName)
Deletes an existing scope. The scope must contain no stream. This is same as callingdeleteScope(String, boolean)
with deleteStreams flag set to false.- Parameters:
scopeName
- The name of the scope to delete.- Returns:
- True if scope is deleted
-
deleteScope
boolean deleteScope(java.lang.String scopeName, boolean deleteStreams) throws DeleteScopeFailedException
Deletes scope by listing and deleting all streams in scope. This method is not atomic and if new streams are added to the scope concurrently, the attempt to delete the scope may fail. Deleting scope is idempotent and failure to delete scope is retry-able.- Parameters:
scopeName
- The name of the scope to delete.deleteStreams
- To list and delete streams in scope before attempting to delete scope.- Returns:
- True if scope is deleted, false otherwise.
- Throws:
DeleteScopeFailedException
- is thrown if this method is unable to seal and delete a stream.
-
getStreamInfo
@Beta StreamInfo getStreamInfo(java.lang.String scopeName, java.lang.String streamName)
Get information about a given Stream,StreamInfo
. This includesStreamCut
s pointing to the current HEAD and TAIL of the Stream.- Parameters:
scopeName
- The scope of the stream.streamName
- The stream name.- Returns:
- stream information.
-
close
void close()
Closes the stream manager.- Specified by:
close
in interfacejava.lang.AutoCloseable
- See Also:
AutoCloseable.close()
-
-