Skip to content

Commit 1728f9d

Browse files
committed
refactor: pass TemplateManager as constructor dependency in TofuTemplateRenderer
- Change TofuTemplateRenderer to accept Arc<TemplateManager> in constructor - Remove template_manager parameter from render() method - Update all dependent files to use new constructor signature - Simplify RenderOpenTofuTemplatesStep by removing template_manager field - Improve encapsulation and follow dependency injection principles - All tests pass and maintain existing functionality
1 parent d1373f2 commit 1728f9d

File tree

4 files changed

+62
-68
lines changed

4 files changed

+62
-68
lines changed

src/bin/e2e_tests.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,6 @@ impl TestEnvironment {
142142
async fn render_provision_templates(&self) -> Result<()> {
143143
let step = RenderOpenTofuTemplatesStep::new(
144144
Arc::clone(&self.services.tofu_template_renderer),
145-
Arc::clone(&self.services.template_manager),
146145
);
147146
step.execute()
148147
.await

src/container.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ impl Services {
2727
pub fn new(config: &Config) -> Self {
2828
// Create template manager
2929
let template_manager = TemplateManager::new(config.templates_dir.clone());
30+
let template_manager = Arc::new(template_manager);
3031

3132
// Create OpenTofu client pointing to build/opentofu_subfolder directory
3233
let opentofu_client = OpenTofuClient::new(
@@ -44,8 +45,11 @@ impl Services {
4445
);
4546

4647
// Create provision template renderer
47-
let provision_renderer =
48-
TofuTemplateRenderer::new(config.build_dir.clone(), config.verbose);
48+
let provision_renderer = TofuTemplateRenderer::new(
49+
template_manager.clone(),
50+
config.build_dir.clone(),
51+
config.verbose,
52+
);
4953

5054
// Create configuration template renderer
5155
let configuration_renderer =
@@ -58,7 +62,7 @@ impl Services {
5862
ansible_client: Arc::new(ansible_client),
5963

6064
// Template related services
61-
template_manager: Arc::new(template_manager),
65+
template_manager: template_manager.clone(),
6266
tofu_template_renderer: Arc::new(provision_renderer),
6367
ansible_template_renderer: Arc::new(configuration_renderer),
6468
}

src/steps/template/render_opentofu_templates.rs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,18 @@ use std::sync::Arc;
22

33
use tracing::info;
44

5-
use crate::template::TemplateManager;
65
use crate::tofu::template_renderer::{ProvisionTemplateError, TofuTemplateRenderer};
76

87
/// Simple step that renders `OpenTofu` templates to the build directory
98
pub struct RenderOpenTofuTemplatesStep {
109
tofu_template_renderer: Arc<TofuTemplateRenderer>,
11-
template_manager: Arc<TemplateManager>,
1210
}
1311

1412
impl RenderOpenTofuTemplatesStep {
1513
#[must_use]
16-
pub fn new(
17-
tofu_template_renderer: Arc<TofuTemplateRenderer>,
18-
template_manager: Arc<TemplateManager>,
19-
) -> Self {
14+
pub fn new(tofu_template_renderer: Arc<TofuTemplateRenderer>) -> Self {
2015
Self {
2116
tofu_template_renderer,
22-
template_manager,
2317
}
2418
}
2519

@@ -32,9 +26,7 @@ impl RenderOpenTofuTemplatesStep {
3226
pub async fn execute(&self) -> Result<(), ProvisionTemplateError> {
3327
info!("📝 Stage 1: Rendering OpenTofu templates...");
3428

35-
self.tofu_template_renderer
36-
.render(&self.template_manager)
37-
.await?;
29+
self.tofu_template_renderer.render().await?;
3830

3931
info!("✅ Stage 1: OpenTofu templates rendered successfully");
4032

0 commit comments

Comments
 (0)