diff mbox series

[ndctl] monitor: removing the requirement of default config

Message ID 20190329110150.3725-1-qi.fuli@jp.fujitsu.com (mailing list archive)
State Accepted
Commit 401fa3cbc724ba87ccc4f828b52ba3d687c14170
Headers show
Series [ndctl] monitor: removing the requirement of default config | expand

Commit Message

QI Fuli March 29, 2019, 11:01 a.m. UTC
Removing the requirement of default configuration file.
If "-c, --config-file" option is not specified, default configuration
file should be dispensable.

Link: https://github.com/pmem/ndctl/issues/83
Signed-off-by: QI Fuli <qi.fuli@jp.fujitsu.com>

---
 ndctl/monitor.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Verma, Vishal L March 29, 2019, 5:37 p.m. UTC | #1
On Fri, 2019-03-29 at 20:01 +0900, QI Fuli wrote:
> Removing the requirement of default configuration file.
> If "-c, --config-file" option is not specified, default configuration
> file should be dispensable.
> 
> Link: https://github.com/pmem/ndctl/issues/83
> Signed-off-by: QI Fuli <qi.fuli@jp.fujitsu.com>
> 
> ---
>  ndctl/monitor.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/ndctl/monitor.c b/ndctl/monitor.c
> index 346a6df..6829a6b 100644
> --- a/ndctl/monitor.c
> +++ b/ndctl/monitor.c
> @@ -484,8 +484,11 @@ static int read_config_file(struct ndctl_ctx *ctx, struct monitor *_monitor,
>  
>  	f = fopen(config_file, "r");
>  	if (!f) {
> -		err(&monitor, "config-file: %s cannot be opened\n", config_file);
> -		rc = -errno;
> +		if (_monitor->config_file) {
> +			err(&monitor, "config-file: %s cannot be opened\n",
> +				config_file);
> +			rc = -errno;
> +		}
>  		goto out;
>  	}
>  
Hi Qi,

Thanks for the quick patch. However, this makes it so that the only way
in which a config file gets used is by explicitly specifying it with a
-c option, and that kind of makes a 'default' config file pointless..

The ideal scenario would be:
1. Check if default config exists
   a. if it does, use options from there
   b. if any cli options provided, use those to override the ones in
config file (if any)

2. If default config file is missing, only use cli options

3. If -c <file> provided, use that, but perform the same treatment as 1b
above, i.e. any cli options override anything in the config file from -c
as well.
qi.fuli@fujitsu.com April 1, 2019, 6:20 a.m. UTC | #2
> -----Original Message-----
> From: Verma, Vishal L [mailto:vishal.l.verma@intel.com]
> Sent: Saturday, March 30, 2019 2:37 AM
> To: linux-nvdimm@lists.01.org; Qi, Fuli/斉 福利 <qi.fuli@fujitsu.com>
> Subject: Re: [ndctl PATCH] monitor: removing the requirement of default
> config
> 
> 
> On Fri, 2019-03-29 at 20:01 +0900, QI Fuli wrote:
> > Removing the requirement of default configuration file.
> > If "-c, --config-file" option is not specified, default configuration
> > file should be dispensable.
> >
> > Link: https://github.com/pmem/ndctl/issues/83
> > Signed-off-by: QI Fuli <qi.fuli@jp.fujitsu.com>
> >
> > ---
> >  ndctl/monitor.c | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/ndctl/monitor.c b/ndctl/monitor.c
> > index 346a6df..6829a6b 100644
> > --- a/ndctl/monitor.c
> > +++ b/ndctl/monitor.c
> > @@ -484,8 +484,11 @@ static int read_config_file(struct ndctl_ctx *ctx,
> struct monitor *_monitor,
> >
> >  	f = fopen(config_file, "r");
> >  	if (!f) {
> > -		err(&monitor, "config-file: %s cannot be opened\n",
> config_file);
> > -		rc = -errno;
> > +		if (_monitor->config_file) {
> > +			err(&monitor, "config-file: %s cannot be
> opened\n",
> > +				config_file);
> > +			rc = -errno;
> > +		}
> >  		goto out;
> >  	}
> >
> Hi Qi,
> 
> Thanks for the quick patch. However, this makes it so that the only way
> in which a config file gets used is by explicitly specifying it with a
> -c option, and that kind of makes a 'default' config file pointless..
> 
> The ideal scenario would be:
> 1. Check if default config exists
>    a. if it does, use options from there
>    b. if any cli options provided, use those to override the ones in
> config file (if any)
> 
> 2. If default config file is missing, only use cli options
> 
> 3. If -c <file> provided, use that, but perform the same treatment as
> 1b
> above, i.e. any cli options override anything in the config file from
> -c
> as well.

Hi Vishal,

Thanks for your comment.
I think it might be misunderstood.

Current scenario is:
1. Check if "-c <file>" option is provided
  a. if it is, make the <file> as config_file
  b. if it is not, make default configuration file(/etc/ndctl/monitor.conf) as config_file
2. Try to read options from config_file
  a. if config_file cannot be opened, then check if "-c" option is provided
   (1) if it is, stop starting monitor (user may make a wrong <file> in "-c" option)
   (2) if it is not, finish read_config_file (default configuration file(/etc/ndctl/monitor.conf) is missing)
  b. if config_file can be opened successfully, merge the options from config_file with cli options

It is consistent with the ideal scenario as you mentioned.

Thanks,
QI Fuli
Verma, Vishal L April 1, 2019, 7:30 p.m. UTC | #3
On Mon, 2019-04-01 at 06:20 +0000, qi.fuli@fujitsu.com wrote:
> 
> Hi Vishal,
> 
> Thanks for your comment.
> I think it might be misunderstood.
> 
> Current scenario is:
> 1. Check if "-c <file>" option is provided
>   a. if it is, make the <file> as config_file
>   b. if it is not, make default configuration file(/etc/ndctl/monitor.conf) as config_file
> 2. Try to read options from config_file
>   a. if config_file cannot be opened, then check if "-c" option is provided
>    (1) if it is, stop starting monitor (user may make a wrong <file> in "-c" option)
>    (2) if it is not, finish read_config_file (default configuration file(/etc/ndctl/monitor.conf) is missing)
>   b. if config_file can be opened successfully, merge the options from config_file with cli options
> 
> It is consistent with the ideal scenario as you mentioned.

Hi Qi,

Looking at it in more detail, I see you're right.
I've applied the patch - thanks for the explanation.

> 
> Thanks,
> QI Fuli
diff mbox series

Patch

diff --git a/ndctl/monitor.c b/ndctl/monitor.c
index 346a6df..6829a6b 100644
--- a/ndctl/monitor.c
+++ b/ndctl/monitor.c
@@ -484,8 +484,11 @@  static int read_config_file(struct ndctl_ctx *ctx, struct monitor *_monitor,
 
 	f = fopen(config_file, "r");
 	if (!f) {
-		err(&monitor, "config-file: %s cannot be opened\n", config_file);
-		rc = -errno;
+		if (_monitor->config_file) {
+			err(&monitor, "config-file: %s cannot be opened\n",
+				config_file);
+			rc = -errno;
+		}
 		goto out;
 	}