Skip to content

Commit 9a8dffe

Browse files
chore: Version HdfsConfigOverrides
1 parent b079756 commit 9a8dffe

1 file changed

Lines changed: 91 additions & 73 deletions

File tree

  • rust/operator-binary/src/crd

rust/operator-binary/src/crd/mod.rs

Lines changed: 91 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -82,75 +82,26 @@ pub mod constants;
8282
pub mod security;
8383
pub mod storage;
8484

85-
#[derive(Clone, Debug, Default, Deserialize, JsonSchema, PartialEq, Serialize)]
86-
#[serde(rename_all = "camelCase")]
87-
pub struct HdfsConfigOverrides {
88-
#[serde(
89-
default,
90-
rename = "hdfs-site.xml",
91-
skip_serializing_if = "Option::is_none"
92-
)]
93-
pub hdfs_site_xml: Option<KeyValueConfigOverrides>,
94-
95-
#[serde(
96-
default,
97-
rename = "core-site.xml",
98-
skip_serializing_if = "Option::is_none"
99-
)]
100-
pub core_site_xml: Option<KeyValueConfigOverrides>,
101-
102-
#[serde(
103-
default,
104-
rename = "hadoop-policy.xml",
105-
skip_serializing_if = "Option::is_none"
106-
)]
107-
pub hadoop_policy_xml: Option<KeyValueConfigOverrides>,
108-
109-
#[serde(
110-
default,
111-
rename = "ssl-server.xml",
112-
skip_serializing_if = "Option::is_none"
113-
)]
114-
pub ssl_server_xml: Option<KeyValueConfigOverrides>,
115-
116-
#[serde(
117-
default,
118-
rename = "ssl-client.xml",
119-
skip_serializing_if = "Option::is_none"
120-
)]
121-
pub ssl_client_xml: Option<KeyValueConfigOverrides>,
122-
123-
#[serde(
124-
default,
125-
rename = "security.properties",
126-
skip_serializing_if = "Option::is_none"
127-
)]
128-
pub security_properties: Option<KeyValueConfigOverrides>,
129-
}
130-
131-
impl KeyValueOverridesProvider for HdfsConfigOverrides {
132-
fn get_key_value_overrides(&self, file: &str) -> BTreeMap<String, Option<String>> {
133-
let field = match file {
134-
HDFS_SITE_XML => self.hdfs_site_xml.as_ref(),
135-
CORE_SITE_XML => self.core_site_xml.as_ref(),
136-
HADOOP_POLICY_XML => self.hadoop_policy_xml.as_ref(),
137-
SSL_SERVER_XML => self.ssl_server_xml.as_ref(),
138-
SSL_CLIENT_XML => self.ssl_client_xml.as_ref(),
139-
JVM_SECURITY_PROPERTIES_FILE => self.security_properties.as_ref(),
140-
_ => None,
141-
};
142-
field
143-
.map(KeyValueConfigOverrides::as_product_config_overrides)
144-
.unwrap_or_default()
145-
}
146-
}
147-
148-
pub type NameNodeRoleType =
149-
Role<NameNodeConfigFragment, HdfsConfigOverrides, GenericRoleConfig, JavaCommonConfig>;
150-
pub type DataNodeRoleType =
151-
Role<DataNodeConfigFragment, HdfsConfigOverrides, GenericRoleConfig, JavaCommonConfig>;
152-
pub type JournalNodeRoleType =
153-
Role<JournalNodeConfigFragment, HdfsConfigOverrides, GenericRoleConfig, JavaCommonConfig>;
85+
pub type NameNodeRoleType = Role<
86+
NameNodeConfigFragment,
87+
v1alpha1::HdfsConfigOverrides,
88+
GenericRoleConfig,
89+
JavaCommonConfig,
90+
>;
91+
92+
pub type DataNodeRoleType = Role<
93+
DataNodeConfigFragment,
94+
v1alpha1::HdfsConfigOverrides,
95+
GenericRoleConfig,
96+
JavaCommonConfig,
97+
>;
98+
99+
pub type JournalNodeRoleType = Role<
100+
JournalNodeConfigFragment,
101+
v1alpha1::HdfsConfigOverrides,
102+
GenericRoleConfig,
103+
JavaCommonConfig,
104+
>;
154105

155106
type Result<T, E = Error> = std::result::Result<T, E>;
156107

@@ -286,6 +237,69 @@ pub mod versioned {
286237
/// Configuration to control HDFS topology (rack) awareness feature
287238
pub rack_awareness: Option<Vec<TopologyLabel>>,
288239
}
240+
241+
#[derive(Clone, Debug, Default, Deserialize, JsonSchema, PartialEq, Serialize)]
242+
#[serde(rename_all = "camelCase")]
243+
pub struct HdfsConfigOverrides {
244+
#[serde(
245+
default,
246+
rename = "hdfs-site.xml",
247+
skip_serializing_if = "Option::is_none"
248+
)]
249+
pub hdfs_site_xml: Option<KeyValueConfigOverrides>,
250+
251+
#[serde(
252+
default,
253+
rename = "core-site.xml",
254+
skip_serializing_if = "Option::is_none"
255+
)]
256+
pub core_site_xml: Option<KeyValueConfigOverrides>,
257+
258+
#[serde(
259+
default,
260+
rename = "hadoop-policy.xml",
261+
skip_serializing_if = "Option::is_none"
262+
)]
263+
pub hadoop_policy_xml: Option<KeyValueConfigOverrides>,
264+
265+
#[serde(
266+
default,
267+
rename = "ssl-server.xml",
268+
skip_serializing_if = "Option::is_none"
269+
)]
270+
pub ssl_server_xml: Option<KeyValueConfigOverrides>,
271+
272+
#[serde(
273+
default,
274+
rename = "ssl-client.xml",
275+
skip_serializing_if = "Option::is_none"
276+
)]
277+
pub ssl_client_xml: Option<KeyValueConfigOverrides>,
278+
279+
#[serde(
280+
default,
281+
rename = "security.properties",
282+
skip_serializing_if = "Option::is_none"
283+
)]
284+
pub security_properties: Option<KeyValueConfigOverrides>,
285+
}
286+
}
287+
288+
impl KeyValueOverridesProvider for v1alpha1::HdfsConfigOverrides {
289+
fn get_key_value_overrides(&self, file: &str) -> BTreeMap<String, Option<String>> {
290+
let field = match file {
291+
HDFS_SITE_XML => self.hdfs_site_xml.as_ref(),
292+
CORE_SITE_XML => self.core_site_xml.as_ref(),
293+
HADOOP_POLICY_XML => self.hadoop_policy_xml.as_ref(),
294+
SSL_SERVER_XML => self.ssl_server_xml.as_ref(),
295+
SSL_CLIENT_XML => self.ssl_client_xml.as_ref(),
296+
JVM_SECURITY_PROPERTIES_FILE => self.security_properties.as_ref(),
297+
_ => None,
298+
};
299+
field
300+
.map(KeyValueConfigOverrides::as_product_config_overrides)
301+
.unwrap_or_default()
302+
}
289303
}
290304

291305
impl HasStatusCondition for v1alpha1::HdfsCluster {
@@ -331,23 +345,27 @@ impl v1alpha1::HdfsCluster {
331345
pub fn namenode_rolegroup(
332346
&self,
333347
role_group: &str,
334-
) -> Option<&RoleGroup<NameNodeConfigFragment, JavaCommonConfig, HdfsConfigOverrides>> {
348+
) -> Option<&RoleGroup<NameNodeConfigFragment, JavaCommonConfig, v1alpha1::HdfsConfigOverrides>>
349+
{
335350
self.spec.name_nodes.as_ref()?.role_groups.get(role_group)
336351
}
337352

338353
/// Get a reference to the datanode [`RoleGroup`] struct if it exists.
339354
pub fn datanode_rolegroup(
340355
&self,
341356
role_group: &str,
342-
) -> Option<&RoleGroup<DataNodeConfigFragment, JavaCommonConfig, HdfsConfigOverrides>> {
357+
) -> Option<&RoleGroup<DataNodeConfigFragment, JavaCommonConfig, v1alpha1::HdfsConfigOverrides>>
358+
{
343359
self.spec.data_nodes.as_ref()?.role_groups.get(role_group)
344360
}
345361

346362
/// Get a reference to the journalnode [`RoleGroup`] struct if it exists.
347363
pub fn journalnode_rolegroup(
348364
&self,
349365
role_group: &str,
350-
) -> Option<&RoleGroup<JournalNodeConfigFragment, JavaCommonConfig, HdfsConfigOverrides>> {
366+
) -> Option<
367+
&RoleGroup<JournalNodeConfigFragment, JavaCommonConfig, v1alpha1::HdfsConfigOverrides>,
368+
> {
351369
self.spec
352370
.journal_nodes
353371
.as_ref()?
@@ -600,7 +618,7 @@ impl v1alpha1::HdfsCluster {
600618
Vec<PropertyNameKind>,
601619
Role<
602620
impl Configuration<Configurable = v1alpha1::HdfsCluster>,
603-
HdfsConfigOverrides,
621+
v1alpha1::HdfsConfigOverrides,
604622
GenericRoleConfig,
605623
JavaCommonConfig,
606624
>,

0 commit comments

Comments
 (0)