cs-image-system-tf-ebs-instance-plugin 0.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
File without changes
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: 2026 Mykel Alvis <mykelalvis@infrastructurebuilder.org>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,8 @@
1
+ # SPDX-FileCopyrightText: 2026 Mykel Alvis <mykelalvis@infrastructurebuilder.org>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ import logging
6
+
7
+ log = logging.getLogger(__name__)
8
+
@@ -0,0 +1,74 @@
1
+ # SPDX-FileCopyrightText: 2026 Mykel Alvis <mykelalvis@infrastructurebuilder.org>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ import logging
6
+ from cs_image_system.base.basic.abstract_plugin_metadata import AbstractPluginMetadata
7
+ from cs_image_system.base.protocols.plugin_metadata import PluginMetadataProtocol
8
+ from .tf_instance_builder import TofuInstanceBuilder, TofuVersionChecker
9
+ from .tf_instance_models import TOFU, TofuInstanceBuilderModel
10
+ from .tf_storage_builder import (
11
+ TofuEbsStorageBuilder,
12
+ TofuEfsStorageBuilder,
13
+ TofuS3StorageBuilder,
14
+ TofuStorageBuilder,
15
+ TofuStorageVersionChecker,
16
+ )
17
+ from .tf_storage_models import (
18
+ TF_AWS,
19
+ TF_AWS_EBS,
20
+ TF_AWS_EFS,
21
+ TF_AWS_S3,
22
+ TofuEbsStorageBuilderModel,
23
+ TofuEfsStorageBuilderModel,
24
+ TofuS3StorageBuilderModel,
25
+ TofuStorageBuilderModel,
26
+ )
27
+
28
+ log = logging.getLogger(__name__)
29
+
30
+
31
+ class TFEbsTofuTypes(AbstractPluginMetadata, PluginMetadataProtocol):
32
+ """Tofu instance AND storage builders in one registration.
33
+
34
+ Storages live in the same plugin as instances so the two generate together
35
+ and instance terraform can bind directly to the storage resources.
36
+ Classification of each artifact comes from its csis_classifier()
37
+ (INSTANCE_BUILDER vs STORAGE_BUILDER), not from the entry-point group.
38
+ """
39
+ def __init__(self) -> None:
40
+ super().__init__( "1", "3.13",
41
+ {TOFU: [
42
+ TofuInstanceBuilderModel,
43
+ TofuInstanceBuilder,
44
+ TofuVersionChecker
45
+ ],
46
+ TF_AWS: [
47
+ TofuStorageBuilderModel,
48
+ TofuStorageBuilder,
49
+ TofuStorageVersionChecker
50
+ ],
51
+ TF_AWS_EBS: [
52
+ TofuEbsStorageBuilderModel,
53
+ TofuEbsStorageBuilder,
54
+ ],
55
+ TF_AWS_EFS: [
56
+ TofuEfsStorageBuilderModel,
57
+ TofuEfsStorageBuilder,
58
+ ],
59
+ TF_AWS_S3: [
60
+ TofuS3StorageBuilderModel,
61
+ TofuS3StorageBuilder,
62
+ ]},
63
+ {TofuInstanceBuilderModel: TofuInstanceBuilder,
64
+ TofuStorageBuilderModel: TofuStorageBuilder,
65
+ TofuEbsStorageBuilderModel: TofuEbsStorageBuilder,
66
+ TofuEfsStorageBuilderModel: TofuEfsStorageBuilder,
67
+ TofuS3StorageBuilderModel: TofuS3StorageBuilder,
68
+ }
69
+ )
70
+
71
+
72
+ def initialize():
73
+ log.debug("Initializing TF EBS tofu provider (instances + storages)")
74
+ return TFEbsTofuTypes()