Class OpenShiftRecorderService


  • public class OpenShiftRecorderService
    extends Object
    Record OpenShift isolated state relative to a test. Provides an API and implementation for setting filtered resources and recording their state upon request. This service class can typically be used by classes that implement JUnit extension lifecycle interfaces, e.g.: TestWatcher, BeforeAllCallback etc. One example of such classes is OpenShiftRecorderHandler which initializes (and updates) filters or records OCP state when handling different JUnit events. State recording is about downloading several resources logs from OCP. Resources are filtered by name provided via OpenShiftRecorder annotation. Names are turned into regexes by adding .* as a suffix. If no name is provided, resources in namespaces (BM and master) are filtered automatically by recording which resources are seen before test and so on.

    Recorded resources:

    • pods states
    • deployment configs states
    • builds states
    • build configs states
    • image streams states
    • stateful sets states
    • routes states
    • services states
    • secrets states
    • logs of pods
    • logs of builds
    • events

    Use JUnitConfig.recordDir() ()} to set the directory of records.

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void initFilters​(org.junit.jupiter.api.extension.ExtensionContext context)
      Initialize filters by collecting information OCP resources which are relevant for the current test execution context (e.g.: called by a BeforeAllCallback.beforeAll(ExtensionContext) implementation
      void recordState​(org.junit.jupiter.api.extension.ExtensionContext context)
      Retrieves resources identified by filters
      protected void saveBCs​(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.BuildConfig> masterFilter, ResourcesFilterBuilder<io.fabric8.openshift.api.model.BuildConfig> buildsFilter)  
      protected void saveBuildLogs​(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.Build> masterFilter, ResourcesFilterBuilder<io.fabric8.openshift.api.model.Build> buildsFilter)  
      protected void saveBuilds​(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.Build> masterFilter, ResourcesFilterBuilder<io.fabric8.openshift.api.model.Build> buildsFilter)  
      protected void saveConfigMaps​(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.ConfigMap> masterFilter)  
      protected void saveDCs​(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.DeploymentConfig> masterFilter)  
      protected void saveEvents​(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Event> masterFilter, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Event> buildsFilter)  
      protected void saveISs​(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.ImageStream> masterFilter, ResourcesFilterBuilder<io.fabric8.openshift.api.model.ImageStream> buildsFilter)  
      protected void savePodLogs​(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Pod> masterFilter, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Pod> buildsFilter)  
      protected void savePods​(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Pod> masterFilter, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Pod> buildsFilter)  
      protected void saveRoutes​(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.Route> masterFilter)  
      protected void saveSecrets​(org.junit.jupiter.api.extension.ExtensionContext context)  
      protected void saveServices​(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Service> masterFilter)  
      protected void saveStatefulSets​(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.apps.StatefulSet> masterFilter)  
      void updateFilters​(org.junit.jupiter.api.extension.ExtensionContext context)
      Update filters by adding information OCP resources which are relevant for the current test execution context (e.g.: called by a BeforeEachCallback.beforeEach(ExtensionContext) implementation
    • Constructor Detail

      • OpenShiftRecorderService

        public OpenShiftRecorderService()
    • Method Detail

      • initFilters

        public void initFilters​(org.junit.jupiter.api.extension.ExtensionContext context)
        Initialize filters by collecting information OCP resources which are relevant for the current test execution context (e.g.: called by a BeforeAllCallback.beforeAll(ExtensionContext) implementation
        Parameters:
        context - The test execution context
      • updateFilters

        public void updateFilters​(org.junit.jupiter.api.extension.ExtensionContext context)
        Update filters by adding information OCP resources which are relevant for the current test execution context (e.g.: called by a BeforeEachCallback.beforeEach(ExtensionContext) implementation
        Parameters:
        context - The test execution context
      • recordState

        public void recordState​(org.junit.jupiter.api.extension.ExtensionContext context)
                         throws IOException
        Retrieves resources identified by filters
        Throws:
        IOException
      • saveStatefulSets

        protected void saveStatefulSets​(org.junit.jupiter.api.extension.ExtensionContext context,
                                        ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.apps.StatefulSet> masterFilter)
                                 throws IOException
        Throws:
        IOException
      • saveSecrets

        protected void saveSecrets​(org.junit.jupiter.api.extension.ExtensionContext context)
                            throws IOException
        Throws:
        IOException
      • saveServices

        protected void saveServices​(org.junit.jupiter.api.extension.ExtensionContext context,
                                    ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Service> masterFilter)
                             throws IOException
        Throws:
        IOException
      • saveConfigMaps

        protected void saveConfigMaps​(org.junit.jupiter.api.extension.ExtensionContext context,
                                      ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.ConfigMap> masterFilter)
                               throws IOException
        Throws:
        IOException
      • saveDCs

        protected void saveDCs​(org.junit.jupiter.api.extension.ExtensionContext context,
                               ResourcesFilterBuilder<io.fabric8.openshift.api.model.DeploymentConfig> masterFilter)
                        throws IOException
        Throws:
        IOException
      • savePodLogs

        protected void savePodLogs​(org.junit.jupiter.api.extension.ExtensionContext context,
                                   ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Pod> masterFilter,
                                   ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Pod> buildsFilter)
      • saveBuildLogs

        protected void saveBuildLogs​(org.junit.jupiter.api.extension.ExtensionContext context,
                                     ResourcesFilterBuilder<io.fabric8.openshift.api.model.Build> masterFilter,
                                     ResourcesFilterBuilder<io.fabric8.openshift.api.model.Build> buildsFilter)