unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Michael Albinus <michael.albinus@gmx.de>
To: emacs-devel@gnu.org
Subject: Re: master 55eabe96c9: ; Improve manual for Tramp kubernetes method
Date: Mon, 24 Oct 2022 17:07:38 +0200	[thread overview]
Message-ID: <87a65l6z0l.fsf@gmx.de> (raw)
In-Reply-To: <m2o7u1cmls.fsf@fastmail.fm> (Filipp Gunbin's message of "Mon, 24 Oct 2022 17:39:11 +0300")

Filipp Gunbin <fgunbin@fastmail.fm> writes:

> Hi Michael,

Hi Filipp,

>> Can we automate this? I mean, when pod data are cached, and Tramp
>> detects a changed namespace, the cached data should be flushed?
>>
>> Tramp does something similar with other connection methods, for example
>> it checks "uname -sr" on remote hosts, and caches the result. Whenever a
>> new connection to a host is established, Tramp calls again "uname -sr",
>> and compares with the cached value. If the values differ, all cached
>> data for this connection are flushed.
>>
>> Is there a similar way to retieve (and cache) the current context and
>> namespace for pods?
>
> (I've actually wrote a message to emacs-devel about this, but then
> decided it's just simpler to advise resetting cache, and didn't send the
> message; maybe I should have asked first)

No problem that's what code review is good for :-)

> AFAIU, the general way would be to call "kubectl config view -o json",
> then calculate checksum of the output and cache it.  This would catch
> any change in context (namespace it just one case of many).

Yep, but I would recommend "kubectl config view --context=$(kubectl
config current-context) -o json". We don't need the information about
other context.

> However, there're two things to consider here:
>
> - "config view" command is not instantaneous: on my machine it's about
>   100ms, and calling it on each (say) host completion would be annoying.

I don't recommend it for hostname completion. I recommend it for opening
a connection; the cleanup shall happen in tramp-maybe-open-connection
via a hook.

If a user changes the context while there is an active connection in
Tramp, she will be lost. But this isn't an Emacs/Tramp specific
situation, so we don't need to care or document it.

> - Your example with uname is different in that if uname output changed,
>   it means that the host environment changed, perhaps without local user
>   knowing about it.  With kubectl, it's the local user which did some
>   change (locally), and I see no problem in requiring her/him to reset
>   Tramp cache after that.

Sure, but if we can this automate, it doesn't hurt. People tend to
forget to follow such recommendations for cleanup, and we will be blamed
with error reports about invalid cache entries then.

I'm just working on a patch, will show it to you for confirmation prior
commitment.

> Filipp

Best regards, Michael.



  reply	other threads:[~2022-10-24 15:07 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <166637666472.14803.2269230477358344016@vcs2.savannah.gnu.org>
     [not found] ` <20221021182424.F0E84C00B0F@vcs2.savannah.gnu.org>
2022-10-22  9:53   ` master 55eabe96c9: ; Improve manual for Tramp kubernetes method Michael Albinus
2022-10-24 14:39     ` Filipp Gunbin
2022-10-24 15:07       ` Michael Albinus [this message]
2022-10-24 15:33         ` Michael Albinus
2022-10-24 18:54           ` Michael Albinus
2022-10-24 23:42             ` Filipp Gunbin
2022-10-25 14:50               ` Michael Albinus
2022-10-25 15:43                 ` Yuri Khan
2022-10-25 15:48                   ` Robert Pluim
2022-10-25 16:02                     ` Yuri Khan
2022-10-25 16:45                       ` Michael Albinus
2022-10-25 17:29             ` Filipp Gunbin
2022-10-25 17:48               ` Michael Albinus
2022-10-25 18:41                 ` Filipp Gunbin
2022-10-25 20:14                 ` Filipp Gunbin
2022-10-26 12:01                   ` Michael Albinus
2022-10-24 20:41         ` Filipp Gunbin
2022-10-24 22:49           ` Filipp Gunbin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a65l6z0l.fsf@gmx.de \
    --to=michael.albinus@gmx.de \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).