Package csw.testkit

Class AlarmTestKit

java.lang.Object
csw.testkit.AlarmTestKit
All Implemented Interfaces:
EmbeddedRedis, RedisStore

public final class AlarmTestKit extends Object implements RedisStore
AlarmTestKit supports starting Alarm server using embedded redis internally (sentinel + master) and registering it with location service

Example:


   private val testKit = AlarmTestKit()

   // starting alarm server (start sentinel and master on default ports specified in configuration file)
   // it will also register AlarmService with location service
   testKit.startAlarmService()

   // stopping alarm server
   testKit.shutdownAlarmService()

 
  • Constructor Details

    • AlarmTestKit

      public AlarmTestKit()
  • Method Details

    • apply

      public static AlarmTestKit apply(akka.actor.typed.ActorSystem<akka.actor.typed.SpawnProtocol.Command> actorSystem, io.lettuce.core.RedisClient redisClient, TestKitSettings testKitSettings)
      Create a AlarmTestKit

      When the test has completed you should shutdown the alarm service with shutdownAlarmService().

      Parameters:
      actorSystem - (undocumented)
      redisClient - (undocumented)
      testKitSettings - (undocumented)
      Returns:
      handle to AlarmTestKit which can be used to start and stop alarm service
    • create

      public static AlarmTestKit create(akka.actor.typed.ActorSystem<akka.actor.typed.SpawnProtocol.Command> actorSystem)
      Java API to create a EventTestKit

      Parameters:
      actorSystem - (undocumented)
      Returns:
      handle to EventTestKit which can be used to start and stop event service
    • create

      public static AlarmTestKit create(TestKitSettings testKitSettings)
      Java API to create a AlarmTestKit

      Parameters:
      testKitSettings - custom testKitSettings
      Returns:
      handle to AlarmTestKit which can be used to start and stop alarm service
    • create

      public static AlarmTestKit create(io.lettuce.core.RedisClient redisClient)
      Java API to create a EventTestKit

      Parameters:
      redisClient - (undocumented)
      Returns:
      handle to EventTestKit which can be used to start and stop event service
    • untypedSystem

      public akka.actor.ActorSystem untypedSystem()
      Specified by:
      untypedSystem in interface RedisStore
    • ec

      public scala.concurrent.ExecutionContext ec()
      Specified by:
      ec in interface RedisStore
    • system

      public akka.actor.typed.ActorSystem<akka.actor.typed.SpawnProtocol.Command> system()
      Specified by:
      system in interface RedisStore
    • timeout

      public akka.util.Timeout timeout()
      Specified by:
      timeout in interface RedisStore
    • masterId

      protected String masterId()
      Specified by:
      masterId in interface RedisStore
    • connection

      protected Connection.TcpConnection connection()
      Specified by:
      connection in interface RedisStore
    • locationService

      public csw.location.api.scaladsl.LocationService locationService()
    • startAlarmService

      public csw.location.api.scaladsl.RegistrationResult startAlarmService(int sentinelPort, int serverPort)
      Scala API to Start Alarm service

      It will start redis sentinel and redis server on provided ports and then register's Alarm service with location service

      Parameters:
      sentinelPort - (undocumented)
      serverPort - (undocumented)
      Returns:
      (undocumented)
    • startAlarmService

      public void startAlarmService(Optional<Object> sentinelPort, Optional<Object> serverPort)
      Java API to Start Alarm service

      It will start redis sentinel and redis server on provided ports and then register's Alarm service with location service

      Parameters:
      sentinelPort - (undocumented)
      serverPort - (undocumented)
    • shutdownAlarmService

      public void shutdownAlarmService()
      Shutdown Alarm service

      When the test has completed, make sure you shutdown Alarm service. This will terminate actor system and stop redis sentinel and redis server.

    • initAlarms

      public akka.Done initAlarms(com.typesafe.config.Config config, boolean reset)
      Loads data for all alarms in alarm store i.e. metadata of alarms for e.g. subsystem, component, name, etc. and status of alarms for e.g. acknowledgement status, latch status, etc.

      Parameters:
      config - represents the data for all alarms to be loaded in alarm store
      reset - the alarm store before loading the data
      Returns:
      Done when data is loaded successfully in alarm store or fails with ConfigParseException
    • getCurrentSeverity

      public FullAlarmSeverity getCurrentSeverity(Key.AlarmKey alarmKey)
      Fetches the severity of the given alarm from the alarm store

      Parameters:
      alarmKey - represents a unique alarm in alarm store
      Returns:
      the alarm severity or fails with KeyNotFoundException