Coverage for ocp_resources/catalog_source.py: 0%
20 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-30 10:48 +0200
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-30 10:48 +0200
1from typing import Any, Dict
2from ocp_resources.resource import MissingRequiredArgumentError, NamespacedResource
5class CatalogSource(NamespacedResource):
6 """
7 https://olm.operatorframework.io/docs/concepts/crds/catalogsource/
8 """
10 api_group = NamespacedResource.ApiGroup.OPERATORS_COREOS_COM
12 def __init__(
13 self,
14 source_type: str = "",
15 image: str = "",
16 display_name: str = "",
17 publisher: str = "",
18 update_strategy_registry_poll_interval: str = "",
19 **kwargs: Any,
20 ) -> None:
21 """
22 Args:
23 source_type (str): Name of the source type.
24 image (str): Image index for the catalog.
25 display_name (str): Display name for the catalog in the web console and CLI.
26 publisher (str): Name of the publisher.
27 update_strategy_registry_poll_interval (str, optional): Time interval between checks of the latest
28 catalog_source version.
29 """
30 super().__init__(**kwargs)
31 self.source_type = source_type
32 self.image = image
33 self.display_name = display_name
34 self.publisher = publisher
35 self.update_strategy_registry_poll_interval = update_strategy_registry_poll_interval
37 def to_dict(self) -> None:
38 super().to_dict()
39 if not self.kind_dict and not self.yaml_file:
40 if not all([self.source_type, self.image, self.display_name, self.publisher]):
41 raise MissingRequiredArgumentError(argument="'source_type', 'image', 'display_name' and 'publisher'")
43 self.res["spec"] = {
44 "sourceType": self.source_type,
45 "image": self.image,
46 "displayName": self.display_name,
47 "publisher": self.publisher,
48 }
49 _spec: Dict[str, Any] = self.res["spec"]
51 if self.update_strategy_registry_poll_interval:
52 _spec["updateStrategy"] = {"registryPoll": {"interval": self.update_strategy_registry_poll_interval}}