Florian,
I greatly appreciate the comments.

About the bash/sh. I prefer bash since I can use some neat things like REGEX 
directly.  I'm developing on CentOS 5.3 and testing also on CentOS 5.2. I 
don't have CentOS 5 installed currently but by the end of the week I will have 
:)

If it is your or project's desire to use /bin/sh. I don't mind I can do it.

replication_aware - this was a first think I think of, thanks for the 
suggestion already implemented
passwd/password - fixed
whitespaces - sorry but the script was not very well indented and I need it 
indented in order to work. I'll try to clean this up for you. I understand 
what is the problem you are facing.

I keep my stuff in git, currently preparing all of my project to be published 
with it. I have a mercurial clone of the agents. And I'll switch to it for the 
linux-ha projects, soon (hopefully by the middle of next week).


I have updated my git version of the mysql RA.

I have also updated the mercurial repo but I still have whitespaces  there. 
I'll clean those up and publish the whole mercurial repo.

Marian 



On Monday 22 February 2010 21:47:36 Florian Haas wrote:
> On 02/22/2010 04:14 AM, Marian Marinov wrote:
> > Florian,
> > I made significant changes to the mysql RA but I feel that it will be
> > very hard to make it work only with promote/demote functions.
> >
> > [...]
> >
> > I'm stuck with this. My RA which I use in production is almost entirely
> > implemented in the notify function but I really think that this is not
> > the way a public RA should be implemented.
> >
> > So if you have any suggestions I'll be happy to hear them.
> 
> Let's get a few issues out of the way first, so we can then tackle the
> actual master/slave capability.
> 
> > --- a/heartbeat/mysql       Tue Feb 09 13:07:37 2010 +0100
> > +++ b/heartbeat/mysql       Mon Feb 22 19:46:51 2010 +0100
> > @@ -1,24 +1,21 @@
> > -#!/bin/sh
> > +#!/bin/bash
> 
> While I'm not the type to bust out in "we must be portable" chants and
> demand that no bashisms be ever used, you used some fairly intricate
> bash features in the RA. Have you double-checked that this stuff works
> as expected on "legacy" platforms such as RHEL/CentOS 5?
> 
> > -#   OCF_RESKEY_test_passwd
> > +#   OCF_RESKEY_test_password
> 
> Please don't. You're breaking existing installations. You may think that
> "passwd" is stupid and "password" is much better, and I'd agree, but
> compatibility wins.
> 
> > +#  OCF_RESKEY_replication_aware
> > +#   OCF_RESKEY_replication_user
> > +#   OCF_RESKEY_replication_pass
> 
> I'd say OCF_RESKEY_replication_aware is superfluous. Check for the
> OCF_RESKEY_CRM_meta_master_max envar instead. If it's present and
> greater than zero, then the resource is configured as a master/slave,
> which automatically means it should be "replication aware".
> 
> Plus, just so users don't get needlessly confused, make that
> "replication_passwd" please.
> 
> > -: ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/resource.d/heartbeat}
> > -. ${OCF_FUNCTIONS_DIR}/.ocf-shellfuncs
> > +. ${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs
> 
> Please rebase your RA on the current standard, which is the one with the
> configurable $OCF_FUNCTIONS_DIR.
> 
> > +:
> > ${OCF_RESKEY_replication_aware_default=${OCF_RESKEY_replication_aware}}
> > +: ${OCF_RESKEY_replication_user_default=${OCF_RESKEY_replication_user}}
> > +: ${OCF_RESKEY_replication_pass_default=${OCF_RESKEY_replication_pass}}
> 
> Whoa, you got those exactly backwards. :)
> 
> > -   usage: $0 (start|stop|validate-all|meta-data|monitor)
> > +   usage: $0 (start|stop|validate-all|meta-data|monitor|notify)
> 
> Missing promote|demote.
> 
> > -<shortdesc lang="en">Manages a MySQL database instance</shortdesc>
> > +<shortdesc lang="en">MySQL resource agent</shortdesc>
> 
> Again, please rebase your patch to the current upstream.
> 
> > -<action name="monitor" depth="0" timeout="30" interval="10" />
> > +<action name="monitor" depth="0"  timeout="20" interval="20"
> > start-delay="0" role="Slave" /> +<action name="monitor" depth="0" 
> > timeout="20" interval="10" start-delay="0" role="Master" />
> 
> Adding monitor ops for Master and Slave is fine, but don't remove the
> one bound to no role.
> 
> > -   ocf_log err "mysqld binary $OCF_RESKEY_binary does not exist or is not
> > executable"; -      return $OCF_ERR_INSTALLED;
> > +           ocf_log err "mysqld binary $OCF_RESKEY_binary does not exist or 
> > is not
> > executable"; +              return $OCF_ERR_INSTALLED;
> 
> The patch seems to have quite a few of these whitespace-only changes.
> Can you fix those so we see only the functional changes?
> 
> > My latest version can be found here:
> >     http://hydra.azilian.net/gitweb/?p=linux-ha/.git;a=summary
> 
> Upstream uses mercurial. Any particular reason for keeping your stuff in
> a git repo instead? It would be tremendously helpful if we could get
> your patch, in "hg export" format, with the above cleanups. That way we
> would have everything non-essential out of the way and we could focus on
> the actual code review. Thanks!
> 
> Cheers,
> Florian
> 

-- 
Best regards,
Marian Marinov

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Linux-HA mailing list
Linux-HA@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to