Nouveau plugin : No-Ip Renew

Bonjour,

Avez-vous bien créé un équipement avec vos identifiants no-ip avant de procéder à un scan ?
Voyez-vous cet équipement ?

Oui tout est bien créé.
Je vois aussi mon équipement.

Vos dépendances se sont-elles bien installées ? Pas d’erreur ?
Pouvez-vous passer vos logs en mode « debug », retenter un scan, et partager vos logs ?

Dépendances : OK

Sans comprendre pourquoi (depuis que j’ai envoyé un post sur le forum je n’ai strictement rien fait…)
Cela fonctionne.
J’ai passé les logs en mode débug, j’ai lancé un scan et hop, ça fonctionne…

De la magie je vous dis! :smiley:

Etrange… mais bonne nouvelle :wink:

Étrange effectivement mais bonne nouvelle aussi! :wink:

Bonjour @hugoKs3

Nouvelle alerte depuis 2 jours

2021-03-01 03:20:26	noip	Erreur sur noip::autoCheck() : Le nom de l'équipement ne peut pas être vide : noip Object ( [id:protected] => [name:protected] => [logicalId:protected] => [generic_type:protected] => [object_id:protected] => [eqType_name:protected] => noip [isVisible:protected] => 0 [isEnable:protected] => 1 [configuration:protected] => Array ( [type] => domain [login] => xxxxxxxxxxxx@xxxxxxxxx [image] => plugins/noip/core/assets/domain_icon.png ) [timeout:protected] => 0 [category:protected] => [display:protected] => [order:protected] => 9999 [comment:protected] => [tags:protected] => [_debug:protected] => [_object:protected] => [_needRefreshWidget:protected] => 1 [_timeoutUpdated:protected] => [_batteryUpdated:protected] => [_changed:protected] => 1 )

Vous êtes de plus en plus nombreux à me reporter cette erreur depuis quelques jours (cf message de @Edhalis un peu plus haut).

Je ne vois pas, pour l’instant, d’où vient le pb sachant que le plugin n’a pas été mis à jour depuis plusieurs semaines…

Je manque un peu de temps en ce moment mais j’essaierai de regarder cette semaine.

Merci pour votre patience.

1 « J'aime »

Merci d’avoir pris le temps de me répondre !

J’ai également passé les logs en mode debug et la magie a fonctionné pour moi aussi !

Si besoin d’autres choses ou tests n’hésites pas ! J’aiderai dans la mesure de mes (maigres) compétences. ^^

Idem pour moi. J’ai eu ce message qq jours et je voulais regarder ce midi… passage en debug et boom plus de problèmes !
Let’s see tomorrow

Incompréhensible… faut vraiment que je regarde ce qui se passe :smiley:

Bonjour,

J’ai aussi ce message tous les jours (une fois par jour).
et pourtant, la commande info renew_statut ne passe pas en erreur.

Merci @Edhalis pour la solution !

Je ne comprends pas non plus pourquoi, mais passer les logs du plugin à « debug » a résolu le même problème pour moi aussi. Par contre dès que je remets les logs à « defaut » l’erreur se reproduit.
Je les garderai à « debug » du coup.

@hugoKs3 : Merci pour ce plugin bien pratique ! N’hésite pas à demander des diagnostics complémentaires si besoin de plus de détails.

[edit : typo]

Sylvain

Ca me grattait cette histoire de niveau de logs, alors j’ai cherché, et je crois que j’ai trouvé.
désolé @hugoKs3 j’ai un bug à te soumettre (et une correction à proposer :slight_smile: )

Mon diagnostic :
Dans
public function executeNoIpScript($login, $password, $renew) {
on ne passe le parametre loglevel=2 à noip-renew.py … que si le debug du plugin est activé, sinon loglevel=0

Or l’invocation de noip-renew.py ne fonctionne pas avec le paramètre 0 dans mon cas (mais fonctionne bien avec 2) :
avec « 0 » :
sudo python3 /var/www/html/plugins/noip/resources/noip-renew.py xxx@gmail.com "yyy" 7 0 0

  • aucune ligne ne sort
  • le fichier /var/www/html/plugins/noip/data/output.json est quasiment vide :
    {"msg": "No hosts or host table rows not found"}
  • c’est exactement ce que j’ai observé en rajoutant quelques logs à la main dans executeNoIpScript

avec « 2 » :
sudo python3 /var/www/html/plugins/noip/resources/noip-renew.py xxx@gmail.com "yyy" 7 0 2

  • des infos sont écrites dans la console
  • Le fichier /var/www/html/plugins/noip/data/output.json contient mes infos :
    [{"hostname": "xxx.servehttp.com", "expirationdays": 23, "renewed": "ok"}]

En creusant j’ai trouvé qu’une instruction de pause était conditionnée au debug, alors qu’on sait que selenium est capricieux sur les temps de chargement :
dans
def login(self):
j’ai remplacé :

if self.debug > 1:
     time.sleep(1)
     self.browser.save_screenshot("/var/www/html/plugins/noip/data/debug2.png")

par

time.sleep(1)
if self.debug > 1:
     self.browser.save_screenshot("/var/www/html/plugins/noip/data/debug2.png")

et maintenant tout fonctionne même avec les logs à « defaut » :slight_smile:

A intégrer dans une prochaine version du plugin ?

[edit : formatage]

2 « J'aime »

Bravo !!!
Je venais de faire un hack degueulasse pour forcer le mode debug dans le script python afin de contourner le probleme. (et je viens de mettre a jour beta et stable).

Mais ta proposition est beaucoup plus elegante. Je l’integre de ce pas !

Merci pour ton temps

Je viens d’integrer le fix propose par @Sylvain_N dans la version beta et stable.
Merci encore !

1 « J'aime »

Bonjour,

Merci pour ce partage, un plug-in qui m’a l’air bien utile.
Parcontre je n’arrive pas le mettre en marche.
L’installation c’est bien passé une fois les dépendances relancés en installation.
J’ai créée mon objet Compte NoIP. Pas de soucis.
Là où cela bloque c’est pour les Domaines.
Lorsque je fais scanner j’ai au final cette erreur :

[MySQL] Error code : 23000 (1062). Duplicate entry 'xxxxxxxxx.ddns.net-15' for key 'unique' : INSERT INTO `eqLogic` SET `id` = :id, `name` = :name, `logicalId` = :logicalId, `generic_type` = :generic_type, `object_id` = :object_id, `eqType_name` = :eqType_name, `isVisible` = :isVisible, `isEnable` = :isEnable, `configuration` = :configuration, `timeout` = :timeout, `category` = :category, `display` = :display, `order` = :order, `comment` = :comment, `tags` = :tags

Lorsque ce que je regarde les logs, il me trace bien mes trois domaines avec les bon délais d’expirations.

J’ai fais ma première tentative hier sans succès. Suite à la MaJ du plugin je viens de retenter le scan idem.
Désintallation du plug-in et reinstalation, création de l’objet Compte NoIP ok, et même erreur lord du scan des domaines.
Si quelqu’un à une idée…

Log installation
Launch install of noip dependencies
-- Current OS version :
Description:	Raspbian GNU/Linux 10 (buster)
-- Updating repo...
Réception de :1 http://raspbian.raspberrypi.org/raspbian buster InRelease [15,0 kB]
Réception de :2 http://archive.raspberrypi.org/debian buster InRelease [32,8 kB]
Atteint :3 https://deb.nodesource.com/node_12.x buster InRelease
Atteint :4 http://packages.microsoft.com/repos/code stable InRelease
47,8 ko réceptionnés en 2s (31,0 ko/s)
Lecture des listes de paquets…
-- Installation of python3 and dependencies
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
build-essential est déjà la version la plus récente (12.6).
python-dev est déjà la version la plus récente (2.7.16-1).
python3 est déjà la version la plus récente (3.7.3-1).
Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
lxplug-volume
Veuillez utiliser « sudo apt autoremove » pour le supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
-- Installed version of Python :
Python 3.7.3
Your version of python is compatible with this plugin.
-- Installation of pip for python3 and necessary libraries
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
python-requests est déjà la version la plus récente (2.21.0-1).
python3-dev est déjà la version la plus récente (3.7.3-1).
python3-pip est déjà la version la plus récente (18.1-5+rpt1).
Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
lxplug-volume
Veuillez utiliser « sudo apt autoremove » pour le supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
-- Installation of chromium
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
chromium-chromedriver est déjà la version la plus récente (86.0.4240.197-rpt1).
Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
lxplug-volume
Veuillez utiliser « sudo apt autoremove » pour le supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
chromium-browser est déjà la version la plus récente (86.0.4240.197-rpt1).
Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
lxplug-volume
Veuillez utiliser « sudo apt autoremove » pour le supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
-- Installed version of pip :
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
-- Installation of python library 'selenium' with command pip3
Requirement already satisfied: selenium in /usr/local/lib/python3.7/dist-packages (3.141.0)
Requirement already satisfied: urllib3 in /usr/lib/python3/dist-packages (from selenium) (1.24.1)
-- Installation of dependencies is done !

Log

[2021-03-02 22:08:37][INFO] : syncNoIp
[2021-03-02 22:08:37][INFO] : Lancement script No-Ip : sudo python3 /var/www/html/plugins/noip/core/class/…/…/resources/noip-renew.py xxxxxxx@xxxxx.xx « ##### » 7 0 2
[2021/03/02 22:08:40] - Debug level: 2
[2021/03/02 22:08:40] - Opening Sign In - No-IP
[2021/03/02 22:08:43] - Logging in…
[2021/03/02 22:08:50] - Opening Sign In - No-IP
[2021/03/02 22:08:53] - xxxxdomaine1xxxx.ddns.net expires in 28 days
[2021/03/02 22:08:53] - xxxxdomaine2xxxx.no-ip.org expires in 26 days
[2021/03/02 22:08:53] - xxxxdomaine3xxxx*.ddns.net expires in 17 days
[2021/03/02 22:08:54] - Confirmed hosts: 0
[2021-03-02 22:08:54][DEBUG] : [PI][NOIP] file content: [{« hostname »: « xxxxdomaine1xxxx.ddns.net », « expirationdays »: 28, « renewed »: « ok »}, {« hostname »: « xxxxdomaine2xxxx.no-ip.org », « expirationdays »: 26, « renewed »: « ok »}, {« hostname »: « xxxxdomaine3xxxx.ddns.net », « expirationdays »: 17, « renewed »: « ok »}]
[2021-03-02 22:08:54][INFO] : Domaine créé : xxxxdomaine1xxxx.ddns.net

Très étrange…
Le plugin est sensé détecter si un domaine est déjà enregistré avec le même nom…
Vos noms de domaine ont-ils un caractère particulier ?
Bloque-t-il toujours sur le même ?
En voyez-vous au moins un dans la liste des domaines ?

Ils ont bien des noms différents, que de l’alphanumérique sans accents. Il y a juste deux fois un point « .ddns.net » et un tiret en plus pour le deuxiéme « .no-ip.org » mais je pense que c’est du standard.

Aucun apparait dans la liste cela bloque dès le traitement du premier.

Bon, je me suis connecté à la base mySQL et j’ai trouvé dans la table eqLogic deux des trois domaines.
Je les ai supprimés et refait un Scanner et cela fonctionne maintenant.
J’ai du mettre le bordel en désinstallant/réinstallant le plug in et en recréant l’objet compte pas tout à fait avec le même nom.

Merci encore pour le partage de ce plug in

Merci pour l’update @F_yann. Content de voir que tu as resolu ton probleme.
Ce comportement est tout de meme etrange… Je me demande si il y a pas un pb dans la methode « uninstall » plugin qui ne ferait pas un bon nettoyage. Je vais regarder ca.

Vous avez bien utilise le bouton « Supprimer » sur la page de config du plugin pour le desinstaller ?