org.apache.storm.daemon.nimbus

## Class TopoCache

- java.lang.Object
- - org.apache.storm.daemon.nimbus.TopoCache

-     public class TopoCache
      extends Object

  Cache topologies and topology confs from the blob store. Makes reading this faster because it can skip deserialization in many cases.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static org.slf4j.Logger` | `LOG`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TopoCache(BlobStore store, Map<String,Object> conf)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addTopoConf(String topoId, Subject who, Map<String,Object> topoConf)` Add a new topology config.
    `void` | `addTopology(String topoId, Subject who, StormTopology topo)` Add a new topology.
    `void` | `clear()` Clear all entries from the Cache.
    `void` | `deleteTopoConf(String topoId, Subject who)` Delete a topology conf when we are done.
    `void` | `deleteTopology(String topoId, Subject who)` Delete a topology when we are done.
    `Map<String,Object>` | `readTopoConf(String topoId, Subject who)` Read a topology conf.
    `StormTopology` | `readTopology(String topoId, Subject who)` Read a topology.
    `void` | `updateTopoConf(String topoId, Subject who, Map<String,Object> topoConf)` Update an existing topology conf.
    `void` | `updateTopology(String topoId, Subject who, StormTopology topo)` Update an existing topology .

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### LOG

          public static final org.slf4j.Logger LOG

  - ### Constructor Detail

    - #### TopoCache

          public TopoCache(BlobStore store,
                           Map<String,Object> conf)

  - ### Method Detail

    - #### readTopology

          public StormTopology readTopology(String topoId,
                                            Subject who)
                                     throws KeyNotFoundException,
                                            AuthorizationException,
                                            IOException

      Read a topology.

      Parameters:
        `topoId` - the id of the topology to read
        `who` - who to read it as
      Returns:
        the deserialized topology.
      Throws:
        `IOException` - on any error while reading the blob.
        `AuthorizationException` - if who is not allowed to read the blob
        `KeyNotFoundException` - if the blob could not be found

    - #### deleteTopology

          public void deleteTopology(String topoId,
                                     Subject who)
                              throws AuthorizationException,
                                     KeyNotFoundException

      Delete a topology when we are done.

      Parameters:
        `topoId` - the id of the topology
        `who` - who is deleting it
      Throws:
        `AuthorizationException` - if who is not allowed to delete the blob
        `KeyNotFoundException` - if the blob could not be found

    - #### addTopology

          public void addTopology(String topoId,
                                  Subject who,
                                  StormTopology topo)
                           throws AuthorizationException,
                                  KeyAlreadyExistsException,
                                  IOException

      Add a new topology.

      Parameters:
        `topoId` - the id of the topology
        `who` - who is doing it
        `topo` - the topology itself
      Throws:
        `AuthorizationException` - if who is not allowed to add a topology
        `KeyAlreadyExistsException` - if the topology already exists
        `IOException` - on any error interacting with the blob store

    - #### updateTopology

          public void updateTopology(String topoId,
                                     Subject who,
                                     StormTopology topo)
                              throws AuthorizationException,
                                     KeyNotFoundException,
                                     IOException

      Update an existing topology .

      Parameters:
        `topoId` - the id of the topology
        `who` - who is doing it
        `topo` - the new topology to save
      Throws:
        `AuthorizationException` - if who is not allowed to update a topology
        `KeyNotFoundException` - if the topology is not found in the blob store
        `IOException` - on any error interacting with the blob store

    - #### readTopoConf

          public Map<String,Object> readTopoConf(String topoId,
                                                 Subject who)
                                          throws KeyNotFoundException,
                                                 AuthorizationException,
                                                 IOException

      Read a topology conf.

      Parameters:
        `topoId` - the id of the topology to read the conf for
        `who` - who to read it as
      Returns:
        the deserialized config.
      Throws:
        `IOException` - on any error while reading the blob.
        `AuthorizationException` - if who is not allowed to read the blob
        `KeyNotFoundException` - if the blob could not be found

    - #### deleteTopoConf

          public void deleteTopoConf(String topoId,
                                     Subject who)
                              throws AuthorizationException,
                                     KeyNotFoundException

      Delete a topology conf when we are done.

      Parameters:
        `topoId` - the id of the topology
        `who` - who is deleting it
      Throws:
        `AuthorizationException` - if who is not allowed to delete the topo conf
        `KeyNotFoundException` - if the topo conf is not found in the blob store

    - #### addTopoConf

          public void addTopoConf(String topoId,
                                  Subject who,
                                  Map<String,Object> topoConf)
                           throws AuthorizationException,
                                  KeyAlreadyExistsException,
                                  IOException

      Add a new topology config.

      Parameters:
        `topoId` - the id of the topology
        `who` - who is doing it
        `topoConf` - the topology conf itself
      Throws:
        `AuthorizationException` - if who is not allowed to add a topology conf
        `KeyAlreadyExistsException` - if the toplogy conf already exists in the blob store
        `IOException` - on any error interacting with the blob store.

    - #### updateTopoConf

          public void updateTopoConf(String topoId,
                                     Subject who,
                                     Map<String,Object> topoConf)
                              throws AuthorizationException,
                                     KeyNotFoundException,
                                     IOException

      Update an existing topology conf.

      Parameters:
        `topoId` - the id of the topology
        `who` - who is doing it
        `topoConf` - the new topology conf to save
      Throws:
        `AuthorizationException` - if who is not allowed to update the topology conf
        `KeyNotFoundException` - if the topology conf is not found in the blob store
        `IOException` - on any error interacting with the blob store.

    - #### clear

          public void clear()

      Clear all entries from the Cache. This typically happens right after becoming a leader, just to be sure nothing has changed while we were not the leader.

Copyright © 2021 The Apache Software Foundation. All rights reserved.