+sub write_ceph_config {
+ my ($filename, $cfg) = @_;
+
+ my $out = '';
+
+ my $cond_write_sec = sub {
+ my $re = shift;
+
+ foreach my $section (keys %$cfg) {
+ next if $section !~ m/^$re$/;
+ $out .= "[$section]\n";
+ foreach my $key (sort keys %{$cfg->{$section}}) {
+ $out .= "\t $key = $cfg->{$section}->{$key}\n";
+ }
+ $out .= "\n";
+ }
+ };
+
+ &$cond_write_sec('global');
+ &$cond_write_sec('client');
+
+ &$cond_write_sec('mds');
+ &$cond_write_sec('mon');
+ &$cond_write_sec('osd');
+ &$cond_write_sec('mgr');
+
+ &$cond_write_sec('mds\..*');
+ &$cond_write_sec('mon\..*');
+ &$cond_write_sec('osd\..*');
+ &$cond_write_sec('mgr\..*');
+
+ return $out;
+}
+