Package cz.xtf.junit5.extensions
Class OpenShiftRecorderService
- java.lang.Object
-
- cz.xtf.junit5.extensions.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,BeforeAllCallbacketc. One example of such classes isOpenShiftRecorderHandlerwhich 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 viaOpenShiftRecorderannotation. 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.
-
-
Constructor Summary
Constructors Constructor Description OpenShiftRecorderService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidinitFilters(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 aBeforeAllCallback.beforeAll(ExtensionContext)implementationvoidrecordState(org.junit.jupiter.api.extension.ExtensionContext context)Retrieves resources identified by filtersprotected voidsaveBCs(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.BuildConfig> masterFilter, ResourcesFilterBuilder<io.fabric8.openshift.api.model.BuildConfig> buildsFilter)protected voidsaveBuildLogs(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.Build> masterFilter, ResourcesFilterBuilder<io.fabric8.openshift.api.model.Build> buildsFilter)protected voidsaveBuilds(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.Build> masterFilter, ResourcesFilterBuilder<io.fabric8.openshift.api.model.Build> buildsFilter)protected voidsaveConfigMaps(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.ConfigMap> masterFilter)protected voidsaveDCs(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.DeploymentConfig> masterFilter)protected voidsaveEvents(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Event> masterFilter, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Event> buildsFilter)protected voidsaveISs(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.ImageStream> masterFilter, ResourcesFilterBuilder<io.fabric8.openshift.api.model.ImageStream> buildsFilter)protected voidsavePodLogs(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Pod> masterFilter, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Pod> buildsFilter)protected voidsavePods(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Pod> masterFilter, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Pod> buildsFilter)protected voidsaveRoutes(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.Route> masterFilter)protected voidsaveSecrets(org.junit.jupiter.api.extension.ExtensionContext context)protected voidsaveServices(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.Service> masterFilter)protected voidsaveStatefulSets(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.kubernetes.api.model.apps.StatefulSet> masterFilter)voidupdateFilters(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 aBeforeEachCallback.beforeEach(ExtensionContext)implementation
-
-
-
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 aBeforeAllCallback.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 aBeforeEachCallback.beforeEach(ExtensionContext)implementation- Parameters:
context- The test execution context
-
recordState
public void recordState(org.junit.jupiter.api.extension.ExtensionContext context) throws IOExceptionRetrieves 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
-
saveISs
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) throws IOException- Throws:
IOException
-
saveBCs
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) throws IOException- Throws:
IOException
-
saveBuilds
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) 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
-
saveRoutes
protected void saveRoutes(org.junit.jupiter.api.extension.ExtensionContext context, ResourcesFilterBuilder<io.fabric8.openshift.api.model.Route> 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
-
savePods
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) 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)
-
saveEvents
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) throws IOException- Throws:
IOException
-
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)
-
-