LGTM, thanks

On Mon, 8 Jun 2015 at 11:19 Petr Pudlak <[email protected]> wrote:

> On Mon, Jun 08, 2015 at 07:14:54AM +0000, Helga Velroyen wrote:
> >On Fri, 5 Jun 2015 at 18:05 'Petr Pudlak' via ganeti-devel <
> >[email protected]> wrote:
> >
> >> If a communication failure occurred and the caller was not running on
> >> the master node, Transport assumed that this itself was the cause of
> >> the error condition.
> >>
> >> However, for communication with the metadata daemon we need to support
> >> non-master nodes as well.
> >>
> >> Add a parameter that allows to use the class on non-master nodes.
> >>
> >> Signed-off-by: Petr Pudlak <[email protected]>
> >> ---
> >>  lib/rpc/transport.py | 26 ++++++++++++++------------
> >>  1 file changed, 14 insertions(+), 12 deletions(-)
> >>
> >> diff --git a/lib/rpc/transport.py b/lib/rpc/transport.py
> >> index 88f30a9..3729c06 100644
> >> --- a/lib/rpc/transport.py
> >> +++ b/lib/rpc/transport.py
> >> @@ -64,7 +64,7 @@ class Transport:
> >>
> >>    """
> >>
> >> -  def __init__(self, address, timeouts=None):
> >> +  def __init__(self, address, timeouts=None, allow_non_master=None):
> >>      """Constructor for the Client class.
> >>
> >>      Arguments:
> >> @@ -98,7 +98,8 @@ class Transport:
> >>        # Try to connect
> >>        try:
> >>          utils.Retry(self._Connect, 1.0, self._ctimeout,
> >> -                    args=(self.socket, address, self._ctimeout))
> >> +                    args=(self.socket, address, self._ctimeout,
> >> +                          allow_non_master))
> >>        except utils.RetryTimeout:
> >>          raise errors.TimeoutError("Connect timed out")
> >>
> >> @@ -110,7 +111,7 @@ class Transport:
> >>        raise
> >>
> >>    @staticmethod
> >> -  def _Connect(sock, address, timeout):
> >> +  def _Connect(sock, address, timeout, allow_non_master):
> >>      sock.settimeout(timeout)
> >>      try:
> >>        sock.connect(address)
> >> @@ -119,15 +120,16 @@ class Transport:
> >>      except socket.error, err:
> >>        error_code = err.args[0]
> >>        if error_code in (errno.ENOENT, errno.ECONNREFUSED):
> >> -        # Verify if we're acutally on the master node before trying
> >>
> >
> >typo: actually
> >
> >
> >> -        # again.
> >> -        ss = ssconf.SimpleStore()
> >> -        try:
> >> -          master, myself = ssconf.GetMasterAndMyself(ss=ss)
> >> -        except ganeti.errors.ConfigurationError:
> >> -          raise errors.NoMasterError(address)
> >> -        if master != myself:
> >> -          raise errors.NoMasterError(address)
> >> +        if not allow_non_master:
> >> +          # Verify if we're acutally on the master node before trying
> >>
> >
> >typo: actually again :)
> >
> >
> >> +          # again.
> >> +          ss = ssconf.SimpleStore()
> >> +          try:
> >> +            master, myself = ssconf.GetMasterAndMyself(ss=ss)
> >> +          except ganeti.errors.ConfigurationError:
> >> +            raise errors.NoMasterError(address)
> >> +          if master != myself:
> >> +            raise errors.NoMasterError(address)
> >>          raise utils.RetryAgain()
> >>        elif error_code in (errno.EPERM, errno.EACCES):
> >>          raise errors.PermissionError(address)
> >> --
> >> 2.2.0.rc0.207.ga3a616c
> >>
> >>
> >Rest LGTM, thanks
>
> Thanks for catching it, the typo was in the original code and I just copied
> it, this is why it's here twice :). Interdiff:
>
> diff --git a/lib/rpc/transport.py b/lib/rpc/transport.py
> index 3729c06..0a70b8e 100644
> --- a/lib/rpc/transport.py
> +++ b/lib/rpc/transport.py
> @@ -121,7 +121,7 @@ class Transport:
>         error_code = err.args[0]
>         if error_code in (errno.ENOENT, errno.ECONNREFUSED):
>           if not allow_non_master:
> -          # Verify if we're acutally on the master node before trying
> +          # Verify if we're actually on the master node before trying
>             # again.
>             ss = ssconf.SimpleStore()
>             try:
>

Reply via email to