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

1from ocp_resources.utils.constants import TIMEOUT_4MINUTES 

2from ocp_resources.resource import NamespacedResource 

3 

4 

5class StorageMap(NamespacedResource): 

6 """ 

7 Migration Toolkit For Virtualization (MTV) StorageMap object. 

8 

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" }}, 

20 

21 { "destination" : { "storageClass": "hss", 

22 "accessMode": " ReadWriteMany", 

23 "volumeMode": "Block" }, 

24 "source" : { "name": "MyDatastore" }}, 

25 

26 ] 

27 

28 """ 

29 

30 api_group = NamespacedResource.ApiGroup.FORKLIFT_KONVEYOR_IO 

31 

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 

61 

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 } 

79 

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)