Something to keep in mind regarding custom status functions.
While check_process_status via a PID file is very common it is possible to
determine the status by evaluating other commands.

It need only raise ComponentIsNotRunning() when it determines a component
is not running.

Example for Storm under supervisord

https://github.com/apache/ambari/blob/a8184e8b7f6d8d247ee2ef77303c6bce55ebca39/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/supervisord_service.py#L30

def supervisord_check_status(component_name):
  try:
    Execute(format("supervisorctl status storm-{component_name} | grep
RUNNING"))
  except Fail:
    raise ComponentIsNotRunning()


The command within Execute() can be modified as needed i.e. systemctl
status ntpd | grep -q \(running\)





On Tue, Jun 26, 2018 at 8:26 PM, <xiang....@sky-data.cn> wrote:

> Sure, it is a workaround which i have used.
>
> In my thought, use config['configurations'] directly could be cool, right?
>
> ----- Original Message -----
> From: "Steve Varnau" <steve.var...@esgyn.com>
> To: dev@ambari.apache.org
> Sent: Tuesday, June 26, 2018 11:45:22 PM
> Subject: RE: why status can not use config['configurations']
>
> Speaking as a novice, but it seems to me that you can write out the config
> value into a system config file (/etc/<service>/conf/...) when installing
> the service, and then the status function has to read the value from there.
>
> --Steve
>
> > -----Original Message-----
> > From: Dai Xiang <xiang....@sky-data.cn>
> > Sent: Monday, June 25, 2018 6:21 PM
> > To: dev@ambari.apache.org
> > Subject: Re: why status can not use config['configurations']
> >
> > On Mon, Jun 25, 2018 at 08:59:31AM -0500, David Quiroga wrote:
> > > If possible can you share more code. Hard to understand what is going
> on.
> > > Are you modifying an existing script or creating a custom one?
> >
> > I want to create a custom service and in status function, i want to
> > read config when install which is as
> > config['configurations']['ntpd']['deploy'].
> >
> > In install/start/stop function, this val can be got as expected,
> > but in status function can not, i tried to print it and it output
> > "agentConfigParams".
> >
> > So how can i get config when install?
> >
> > >
> > > On Mon, Jun 25, 2018 at 3:01 AM, <xiang....@sky-data.cn> wrote:
> > >
> > > > Hi!
> > > >
> > > > config = Script.get_config()
> > > > Then I want to use config['configurations']['ntpd']['deploy'] in
> status
> > > > function, but it says:
> > > >
> > > > Fail: Configuration parameter 'ntpd' was not found in configurations
> > > > dictionary!
> > > >
> > > > I also use config['configurations']['ntpd']['deploy'] in start and
> stop
> > > > function, both ok.
> > > >
> > > > And i try to print config in status funtion, it only prints
> > > > agentConfigParams.
> > > >
> > > > So how can i use config['configurations']['ntpd']['deploy']?
> > > >
> > > > Thanks.
> > > >
> > > >
> > > >
> > > >
> >
> > --
> > Best Regards
> > Dai Xiang
> --
> 戴翔
> 南京天数信息科技有限公司
> 电话: +86 1 3382776490
> 公司官网: www.sky-data.cn
> 免费使用天数润科智能计算平台 SkyDiscovery
>

Reply via email to