New configuration / command line handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi list, ceph devs,

I've been doing some toying with Ceph lately in my spare time and one
of the things I'm doing is trying to refactor some of the
configuration handling / argument parsing. I had some trouble finding
specific runtime options and configuration settings, so I thought this
was a good way to get to know the code somewhat better :-) Because
boost was already used in some places, and some tests also used
boost::program_options, I've created a new config framework based on
this. This framework allows for more advanced configuration files in
the future, beter command line handling, and reduces the amount of
code in argument parsing somewhat. I also created a different observer
system, where different parts of the code base can subscribe to
changes in specific parameters and get notified on changes.

To allow somewhat of a smoother transition and backwards
compatibility, I've made the new configuration class inherit from the
one one (md_config_t) and switched all references (like g_conf) to the
new class. There were also some small changes in files with references
directly to md_config_t, like pidfile_write. Global_init and
common_init were duplicated such that it 'injects' the new
configuration class in the ceph_context object. Most config entries
are read directly from the md_config_t class (e.g. g_conf->pid_file),
so it will take some more changes to allow my configuration framework
to function properly.

Of course it's an extremely long long long way from ready, but maybe
you're interested. Maybe you think this is not needed at all... I'd
love to have some feedback on it either way.

Anyway, let me know if you want to check it out and I'll push my
branch to github for you to pull.


- Roald
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux