RE: [ndctl PATCH] ndctl, list: emit alarm_enable_ and clarify misc list items

2018-08-07 Thread Qi, Fuli
Hi Vishal,

Thanks for your comments.

> -Original Message-
> From: Verma, Vishal L [mailto:vishal.l.ve...@intel.com]
> Sent: Wednesday, August 8, 2018 5:15 AM
> To: linux-nvdimm@lists.01.org; Qi, Fuli/斉 福利 
> Subject: Re: [ndctl PATCH] ndctl, list: emit alarm_enable_ and clarify 
> misc
> list items
> 
> 
> On Wed, 2018-08-08 at 00:35 +0900, QI Fuli wrote:
> > This patch adds alarm_enable_ to list. Therefore, users can
> > know
> 
> Hi Qi,
> 
> Thanks, I was meaning to do this work but you beat me to it :) I just have a 
> few
> nits, see below. But otherwise this looks good.
> 
> > if the "ndclt inject-smart ---alarm=on/off" works or not.
> 
> s/ndclt/ndctl/
> 
> >
> > Users may confuse "alarm_enable" with "alarm_flag" and "media_temperature"
> > with "ctrl_temperature", this patch also used to clarify these items.
> 
> I'm not sure it is a good idea to change these names since they've been 
> released
> for quite some time, and users/scripts might be depending on them, which this 
> change
> will break. Let's just add a new field for
> alarm_enabled_* for each smart field, but not change any of the existing ones 
> for
> now.
> 
Ok, I will make a v2 patch which only includes adding alarm_enable_.

Thanks,
QI

> >
> > Signed-off-by: QI Fuli 
> > ---
> >  ndctl/util/json-smart.c | 45
> > ++---
> >  1 file changed, 38 insertions(+), 7 deletions(-)
> >
> > diff --git a/ndctl/util/json-smart.c b/ndctl/util/json-smart.c index
> > 6a1f294..a0677a6 100644
> > --- a/ndctl/util/json-smart.c
> > +++ b/ndctl/util/json-smart.c
> > @@ -39,34 +39,61 @@ static void smart_threshold_to_json(struct ndctl_dimm 
> > *dimm,
> > unsigned int temp;
> > double t;
> >
> > +   jobj = json_object_new_boolean(true);
> > +   if (jobj)
> > +   json_object_object_add(jhealth,
> > +   "alarm_enable_media_temperature", jobj);
> 
> Lets reword all instances to alarm_enabled_* Since it is showing the status 
> of the
> alarm.
> 
> > temp = ndctl_cmd_smart_threshold_get_temperature(cmd);
> > t = ndctl_decode_smart_temperature(temp);
> > jobj = json_object_new_double(t);
> > if (jobj)
> > json_object_object_add(jhealth,
> > -   "temperature_threshold", jobj);
> > +   "media_temperature_threshold", jobj);
> > +   } else {
> > +   jobj = json_object_new_boolean(false);
> > +   if (jobj)
> > +   json_object_object_add(jhealth,
> > +   "alarm_enable_media_temperature", jobj);
> > }
> >
> > if (alarm_control & ND_SMART_CTEMP_TRIP) {
> > unsigned int temp;
> > double t;
> >
> > +   jobj = json_object_new_boolean(true);
> > +   if (jobj)
> > +   json_object_object_add(jhealth,
> > +   "alarm_enable_ctrl_temperature", jobj);
> > temp = ndctl_cmd_smart_threshold_get_ctrl_temperature(cmd);
> > t = ndctl_decode_smart_temperature(temp);
> > jobj = json_object_new_double(t);
> > if (jobj)
> > json_object_object_add(jhealth,
> > -   "controller_temperature_threshold", jobj);
> > +   "ctrl_temperature_threshold", jobj);
> > +   } else {
> > +   jobj = json_object_new_boolean(false);
> > +   if (jobj)
> > +   json_object_object_add(jhealth,
> > +   "alarm_enable_ctrl_temperature", jobj);
> > }
> >
> > if (alarm_control & ND_SMART_SPARE_TRIP) {
> > unsigned int spares;
> >
> > +   jobj = json_object_new_boolean(true);
> > +   if (jobj)
> > +   json_object_object_add(jhealth,
> > +   "alarm_enable_spares", jobj);
> > spares = ndctl_cmd_smart_threshold_get_spares(cmd);
> > jobj = json_object_new_int(spares);
> > if (jobj)
> > json_object_object_add(jhealth,
> > "spares_threshold", jobj);
> > +

Re: [ndctl PATCH] ndctl, list: emit alarm_enable_ and clarify misc list items

2018-08-07 Thread Verma, Vishal L


On Wed, 2018-08-08 at 00:35 +0900, QI Fuli wrote:
> This patch adds alarm_enable_ to list. Therefore, users can know

Hi Qi,

Thanks, I was meaning to do this work but you beat me to it :)
I just have a few nits, see below. But otherwise this looks good.

> if the "ndclt inject-smart ---alarm=on/off" works or not.

s/ndclt/ndctl/

> 
> Users may confuse "alarm_enable" with "alarm_flag" and "media_temperature"
> with "ctrl_temperature", this patch also used to clarify these items.

I'm not sure it is a good idea to change these names since they've been
released for quite some time, and users/scripts might be depending on
them, which this change will break. Let's just add a new field for
alarm_enabled_* for each smart field, but not change any of the
existing ones for now.

> 
> Signed-off-by: QI Fuli 
> ---
>  ndctl/util/json-smart.c | 45 ++---
>  1 file changed, 38 insertions(+), 7 deletions(-)
> 
> diff --git a/ndctl/util/json-smart.c b/ndctl/util/json-smart.c
> index 6a1f294..a0677a6 100644
> --- a/ndctl/util/json-smart.c
> +++ b/ndctl/util/json-smart.c
> @@ -39,34 +39,61 @@ static void smart_threshold_to_json(struct ndctl_dimm 
> *dimm,
>   unsigned int temp;
>   double t;
>  
> + jobj = json_object_new_boolean(true);
> + if (jobj)
> + json_object_object_add(jhealth,
> + "alarm_enable_media_temperature", jobj);

Lets reword all instances to alarm_enabled_*
Since it is showing the status of the alarm.

>   temp = ndctl_cmd_smart_threshold_get_temperature(cmd);
>   t = ndctl_decode_smart_temperature(temp);
>   jobj = json_object_new_double(t);
>   if (jobj)
>   json_object_object_add(jhealth,
> - "temperature_threshold", jobj);
> + "media_temperature_threshold", jobj);
> + } else {
> + jobj = json_object_new_boolean(false);
> + if (jobj)
> + json_object_object_add(jhealth,
> + "alarm_enable_media_temperature", jobj);
>   }
>  
>   if (alarm_control & ND_SMART_CTEMP_TRIP) {
>   unsigned int temp;
>   double t;
>  
> + jobj = json_object_new_boolean(true);
> + if (jobj)
> + json_object_object_add(jhealth,
> + "alarm_enable_ctrl_temperature", jobj);
>   temp = ndctl_cmd_smart_threshold_get_ctrl_temperature(cmd);
>   t = ndctl_decode_smart_temperature(temp);
>   jobj = json_object_new_double(t);
>   if (jobj)
>   json_object_object_add(jhealth,
> - "controller_temperature_threshold", jobj);
> + "ctrl_temperature_threshold", jobj);
> + } else {
> + jobj = json_object_new_boolean(false);
> + if (jobj)
> + json_object_object_add(jhealth,
> + "alarm_enable_ctrl_temperature", jobj);
>   }
>  
>   if (alarm_control & ND_SMART_SPARE_TRIP) {
>   unsigned int spares;
>  
> + jobj = json_object_new_boolean(true);
> + if (jobj)
> + json_object_object_add(jhealth,
> + "alarm_enable_spares", jobj);
>   spares = ndctl_cmd_smart_threshold_get_spares(cmd);
>   jobj = json_object_new_int(spares);
>   if (jobj)
>   json_object_object_add(jhealth,
>   "spares_threshold", jobj);
> + } else {
> + jobj = json_object_new_boolean(false);
> + if (jobj)
> + json_object_object_add(jhealth,
> + "alarm_enable_spares", jobj);
>   }
>  
>   out:
> @@ -118,7 +145,8 @@ struct json_object *util_dimm_health_to_json(struct 
> ndctl_dimm *dimm)
>  
>   jobj = json_object_new_double(t);
>   if (jobj)
> - json_object_object_add(jhealth, "temperature_celsius", 
> jobj);
> + json_object_object_add(jhealth,
> + "media_temperature_celsius", jobj);
>   }
>  
>   if (flags & ND_SMART_CTEMP_VALID) {
> @@ -128,7 +156,7 @@ struct json_object *util_dimm_health_to_json(struct 
> ndctl_dimm *dimm)
>   jobj = json_object_new_double(t);
>   if (jobj)
>   json_object_object_add(jhealth,
> - "controller_temperature_celsius", jobj);
> + "ctrl_temperature_celsius", jobj);
>   }
>  
>   if (flags & ND_SMART_SPARES_VALID) {
> @@ -147,15 +175,18 @@ struct json_object 

[ndctl PATCH] ndctl, list: emit alarm_enable_ and clarify misc list items

2018-08-07 Thread QI Fuli
This patch adds alarm_enable_ to list. Therefore, users can know
if the "ndclt inject-smart ---alarm=on/off" works or not.

Users may confuse "alarm_enable" with "alarm_flag" and "media_temperature"
with "ctrl_temperature", this patch also used to clarify these items.

Signed-off-by: QI Fuli 
---
 ndctl/util/json-smart.c | 45 ++---
 1 file changed, 38 insertions(+), 7 deletions(-)

diff --git a/ndctl/util/json-smart.c b/ndctl/util/json-smart.c
index 6a1f294..a0677a6 100644
--- a/ndctl/util/json-smart.c
+++ b/ndctl/util/json-smart.c
@@ -39,34 +39,61 @@ static void smart_threshold_to_json(struct ndctl_dimm *dimm,
unsigned int temp;
double t;
 
+   jobj = json_object_new_boolean(true);
+   if (jobj)
+   json_object_object_add(jhealth,
+   "alarm_enable_media_temperature", jobj);
temp = ndctl_cmd_smart_threshold_get_temperature(cmd);
t = ndctl_decode_smart_temperature(temp);
jobj = json_object_new_double(t);
if (jobj)
json_object_object_add(jhealth,
-   "temperature_threshold", jobj);
+   "media_temperature_threshold", jobj);
+   } else {
+   jobj = json_object_new_boolean(false);
+   if (jobj)
+   json_object_object_add(jhealth,
+   "alarm_enable_media_temperature", jobj);
}
 
if (alarm_control & ND_SMART_CTEMP_TRIP) {
unsigned int temp;
double t;
 
+   jobj = json_object_new_boolean(true);
+   if (jobj)
+   json_object_object_add(jhealth,
+   "alarm_enable_ctrl_temperature", jobj);
temp = ndctl_cmd_smart_threshold_get_ctrl_temperature(cmd);
t = ndctl_decode_smart_temperature(temp);
jobj = json_object_new_double(t);
if (jobj)
json_object_object_add(jhealth,
-   "controller_temperature_threshold", jobj);
+   "ctrl_temperature_threshold", jobj);
+   } else {
+   jobj = json_object_new_boolean(false);
+   if (jobj)
+   json_object_object_add(jhealth,
+   "alarm_enable_ctrl_temperature", jobj);
}
 
if (alarm_control & ND_SMART_SPARE_TRIP) {
unsigned int spares;
 
+   jobj = json_object_new_boolean(true);
+   if (jobj)
+   json_object_object_add(jhealth,
+   "alarm_enable_spares", jobj);
spares = ndctl_cmd_smart_threshold_get_spares(cmd);
jobj = json_object_new_int(spares);
if (jobj)
json_object_object_add(jhealth,
"spares_threshold", jobj);
+   } else {
+   jobj = json_object_new_boolean(false);
+   if (jobj)
+   json_object_object_add(jhealth,
+   "alarm_enable_spares", jobj);
}
 
  out:
@@ -118,7 +145,8 @@ struct json_object *util_dimm_health_to_json(struct 
ndctl_dimm *dimm)
 
jobj = json_object_new_double(t);
if (jobj)
-   json_object_object_add(jhealth, "temperature_celsius", 
jobj);
+   json_object_object_add(jhealth,
+   "media_temperature_celsius", jobj);
}
 
if (flags & ND_SMART_CTEMP_VALID) {
@@ -128,7 +156,7 @@ struct json_object *util_dimm_health_to_json(struct 
ndctl_dimm *dimm)
jobj = json_object_new_double(t);
if (jobj)
json_object_object_add(jhealth,
-   "controller_temperature_celsius", jobj);
+   "ctrl_temperature_celsius", jobj);
}
 
if (flags & ND_SMART_SPARES_VALID) {
@@ -147,15 +175,18 @@ struct json_object *util_dimm_health_to_json(struct 
ndctl_dimm *dimm)
 
jobj = json_object_new_boolean(temp_flag);
if (jobj)
-   json_object_object_add(jhealth, "alarm_temperature", 
jobj);
+   json_object_object_add(jhealth,
+   "alarm_flag_media_temperature", jobj);
 
jobj = json_object_new_boolean(ctrl_temp_flag);
if (jobj)
-   json_object_object_add(jhealth, 
"alarm_controller_temperature", jobj);
+   json_object_object_add(jhealth,
+   "alarm_flag_ctrl_temperature", jobj);