Coverage for ocp_resources/storage_map.py: 0%
18 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 ocp_resources.utils.constants import TIMEOUT_4MINUTES
2from ocp_resources.resource import NamespacedResource
5class StorageMap(NamespacedResource):
6 """
7 Migration Toolkit For Virtualization (MTV) StorageMap object.
9 Args:
10 source_provider_name (str): MTV Source Provider CR name.
11 source_provider_namespace (str): MTV Source Provider CR namespace.
12 destination_provider_name (str): MTV Destination Provider CR name.
13 destination_provider_namespace (str): MTV Destination Provider CR namespace.
14 mapping (dict): Storage Resources Mapping
15 Example:
16 [ { "destination" : { "storageClass": "nfs",
17 "accessMode": " ReadWriteMany",
18 "volumeMode": "Filesystem" },
19 "source" : { "id": "datastore-11" }},
21 { "destination" : { "storageClass": "hss",
22 "accessMode": " ReadWriteMany",
23 "volumeMode": "Block" },
24 "source" : { "name": "MyDatastore" }},
26 ]
28 """
30 api_group = NamespacedResource.ApiGroup.FORKLIFT_KONVEYOR_IO
32 def __init__(
33 self,
34 name=None,
35 namespace=None,
36 source_provider_name=None,
37 source_provider_namespace=None,
38 destination_provider_name=None,
39 destination_provider_namespace=None,
40 mapping=None,
41 client=None,
42 teardown=True,
43 yaml_file=None,
44 delete_timeout=TIMEOUT_4MINUTES,
45 **kwargs,
46 ):
47 super().__init__(
48 name=name,
49 namespace=namespace,
50 client=client,
51 teardown=teardown,
52 yaml_file=yaml_file,
53 delete_timeout=delete_timeout,
54 **kwargs,
55 )
56 self.mapping = mapping
57 self.source_provider_name = source_provider_name
58 self.source_provider_namespace = source_provider_namespace
59 self.destination_provider_name = destination_provider_name
60 self.destination_provider_namespace = destination_provider_namespace
62 @property
63 def map_to_dict(self):
64 return {
65 "spec": {
66 "map": self.mapping,
67 "provider": {
68 "source": {
69 "name": self.source_provider_name,
70 "namespace": self.source_provider_namespace,
71 },
72 "destination": {
73 "name": self.destination_provider_name,
74 "namespace": self.destination_provider_namespace,
75 },
76 },
77 }
78 }
80 def to_dict(self) -> None:
81 super().to_dict()
82 if not self.kind_dict and not self.yaml_file:
83 self.res.update(self.map_to_dict)