Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)

  • État Fermée
  • Pourcentage achevé
    100%
  • Type Évolution
  • Catégorie Services locaux → VM
  • Assignée à Personne
  • Système d'exploitation Freebox Server V7 (Delta)
  • Sévérité Basse
  • Priorité Très Basse
  • Basée sur la version 4.7.3
  • Due pour la version Non décidée
  • Échéance Non décidée
  • Votes 1
  • Privée
Concerne le projet: Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)
Ouverte par _fvt - 31/12/2022
Dernière modification par mmakassikis - 09/02/2023

FS#37547 - Freebox OS WebUI - Allow more than 4096 characters for cloud-init field

Bonjour,

Tout d’abord, merci pour cette Freebox delta et ses multiples fonctionnalités, notamment la partie VM très pratique pour du perso. (pihole, homebridge, …).

Contexte:
J’utilise le cloud-init sur les VM freebox pour préparer toute la VM, installation de docker, etc.
J’utilise aussi une write_files activity (bin+gz) pour écrire directement mon compose file a la création de la vm et enfin des runcmd pour démarrer le stack.

Le tout utilisant des docker-volumes cifs vers le CIFS de la freebox pour la persistence des données des conteneurs.

Tout ceci me permet de supprimer / recréer les VM sans me soucier de quoi que ce soit:
- Suppression de la VM et son disque
- Re-creation de la VM avec le cloud-init

⇒ Tout le stack docker compose est alors reparti en quelques secondes, sans avoir nécessité aucune autre manipulation.

Problème:
Le champ cloud-init dans les options des VM freebox est limité a 4096 caractères, ce qui est vraiment limite… Alors que cette limitation n’est pas présente côté API.

Question: Serait-il possible d’augmenter ce champ cloud-init, au moins jusqu’à 8192 ?

Merci d’avance et bonne journée,
Cordialement,
FV

Fermée par  mmakassikis
09.02.2023 09:30
Raison de la fermeture :  Résolu
Commentaires de fermeture :  

firmware 4.7.4

nbanba a commenté le 02.01.2023 16:54

Bonjour

Pour moi, le champ était limité à 32768 characteres tel que spécifié dans la doc de l'API, je cite :

cloudinit_userdata bool
When cloudinit is enabled, raw yaml to be passed in the user-data file. Maximum 32767 characters.

Mais suite à votre post, j'ai refais des tests avec l'API et j'arrive à envoyé un fichier bien plus gros comme cloudinit (plus de 60000 characteres, même plus de 65536 characteres ) :

$ wc -m cloudinit-userdata2.yml
68750 cloudinit-userdata2.yml

Je l'injecte depuis une ligne de commande bash en utilisant le programme fbxvm-ctrl :

fbxvm-ctrl 12 modify disk_type="qcow2" vcpus="2" memory="4096" disk_path="/FBX24T/box-vm/14RV-FSRV-43.qcow2" cd_path="/FBX24T/iso/debian-11.0.0-arm64-DVD-1.iso" os="debian" enable_screen="true" bind_usb_ports='"usb-external-type-c","usb-external-type-a"' enable_cloudinit="true" name="14RV-FSRV-12" enable_cloudinit="true" cloudinit_hostname="14RV-FSRV-12" cloudinit_userdata="./cloudinit-userdata2.yml"

L'injection dans la conf de la VM est bien OK, quand je récupère le json_vm_object après modification de la VM avec la commande précédente, je trouve bien dans le champ cloud-init-userdata de l'objet VM retourné par l'API les 168 clé ssh-rsa que j'ai mise dans le fichier cloudinit-userdata2.yml avant modification de la VM

Le fichier cloudinit-userdata2.yml fait 68 KB et voici son contenu (pour l'exemple ):

ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEA3FSyQwBI6Z+nCSjUUk8EEAnnkhXlukKoUPND/RRClWz2s5TCzIkd3Ou5+Cyz71X0XmazM3l5WgeErvtIwQMyT1KjNoMhoJMrJnWqQPOt5Q8zWd9qG7PBl9+eiH5qV7NZ mykey@host
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3I7VUf2l5gSn5uavROsc5HRDpZdQueUq5ozemNSj8T7enqKHOEaFoU2VoPgGEWC9RyzSQVeyD6s7APMcE82EtmW4skVEgEGSbDc1pvxzxtchBj78hJP6Cf5TCMFSXw+Fz5rF1dR23QDbN1mkHs7adr8GW4kSWqU7Q7NDwfIrJJtO7Hi42GyXtvEONHbiRPOe8stqUly7MvUoN+5kfjBM8Qqpfl2+FNhTYWpMfYdPUnE7u536WqzFmsaqJctz3gBxH9Ex7dFtrxR4qiqEr9Qtlu3xGn7Bw07/+i1D+ey3ONkZLN+LQ714cgj8fRS4Hj29SCmXp5Kt5/82cD/VN3NtHw== smoser@brickies
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3I7VUf2l5gSn5uavROsc5HRDpZdQueUq5ozemNSj8T7enqKHOEaFoU2VoPgGEWC9RyzSQVeyD6s7APMcE82EtmW4skVEgEGSbDc1pvxzxtchBj78hJP6Cf5TCMFSXw+Fz5rF1dR23QDbN1mkHs7adr8GW4kSWqU7Q7NDwfIrJJtO7Hi42GyXtvEONHbiRPOe8stqUly7MvUoN+5kfjBM8Qqpfl2+FNhTYWpMfYdPUnE7u536WqzFmsaqJctz3gBxH9Ex7dFtrxR4qiqEr9Qtlu3xGn7Bw07/+i1D+ey3ONkZLN+LQ714cgj8fRS4Hj29SCmXp5Kt5/82cD/VN3NtHw== smoser@brickies
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3I7VUf2l5gSn5uavROsc5HRDpZdQueUq5ozemNSj8T7enqKHOEaFoU2VoPgGEWC9RyzSQVeyD6s7APMcE82EtmW4skVEgEGSbDc1pvxzxtchBj78hJP6Cf5TCMFSXw+Fz5rF1dR23QDbN1mkHs7adr8GW4kSWqU7Q7NDwfIrJJtO7Hi42GyXtvEONHbiRPOe8stqUly7MvUoN+5kfjBM8Qqpfl2+FNhTYWpMfYdPUnE7u536WqzFmsaqJctz3gBxH9Ex7dFtrxR4qiqEr9Qtlu3xGn7Bw07/+i1D+ey3ONkZLN+LQ714cgj8fRS4Hj29SCmXp5Kt5/82cD/VN3NtHw== smoser@brickies
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3I7VUf2l5gSn5uavROsc5HRDpZdQueUq5ozemNSj8T7enqKHOEaFoU2VoPgGEWC9RyzSQVeyD6s7APMcE82EtmW4skVEgEGSbDc1pvxzxtchBj78hJP6Cf5TCMFSXw+Fz5rF1dR23QDbN1mkHs7adr8GW4kSWqU7Q7NDwfIrJJtO7Hi42GyXtvEONHbiRPOe8stqUly7MvUoN+5kfjBM8Qqpfl2+FNhTYWpMfYdPUnE7u536WqzFmsaqJctz3gBxH9Ex7dFtrxR4qiqEr9Qtlu3xGn7Bw07/+i1D+ey3ONkZLN+LQ714cgj8fRS4Hj29SCmXp5Kt5/82cD/VN3NtHw== smoser@brickies
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3I7VUf2l5gSn5uavROsc5HRDpZdQueUq5ozemNSj8T7enqKHOEaFoU2VoPgGEWC9RyzSQVeyD6s7APMcE82EtmW4skVEgEGSbDc1pvxzxtchBj78hJP6Cf5TCMFSXw+Fz5rF1dR23QDbN1mkHs7adr8GW4kSWqU7Q7NDwfIrJJtO7Hi42GyXtvEONHbiRPOe8stqUly7MvUoN+5kfjBM8Qqpfl2+FNhTYWpMfYdPUnE7u536WqzFmsaqJctz3gBxH9Ex7dFtrxR4qiqEr9Qtlu3xGn7Bw07/+i1D+ey3ONkZLN+LQ714cgj8fRS4Hj29SCmXp5Kt5/82cD/VN3NtHw== smoser@brickies
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3I7VUf2l5gSn5uavROsc5HRDpZdQueUq5ozemNSj8T7enqKHOEaFoU2VoPgGEWC9RyzSQVeyD6s7APMcE82EtmW4skVEgEGSbDc1pvxzxtchBj78hJP6Cf5TCMFSXw+Fz5rF1dR23QDbN1mkHs7adr8GW4kSWqU7Q7NDwfIrJJtO7Hi42GyXtvEONHbiRPOe8stqUly7MvUoN+5kfjBM8Qqpfl2+FNhTYWpMfYdPUnE7u536WqzFmsaqJctz3gBxH9Ex7dFtrxR4qiqEr9Qtlu3xGn7Bw07/+i1D+ey3ONkZLN+LQ714cgj8fRS4Hj29SCmXp5Kt5/82cD/VN3NtHw== smoser@brickies

<cut sinon je ne peux pas poster le message sur ce forum>
...
+ 160 clé ssh-rsa 
...
</cut sinon je ne peux pas poster le message sur ce forum>

- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3I7VUf2l5gSn5uavROsc5HRDpZdQueUq5ozemNSj8T7enqKHOEaFoU2VoPgGEWC9RyzSQVeyD6s7APMcE82EtmW4skVEgEGSbDc1pvxzxtchBj78hJP6Cf5TCMFSXw+Fz5rF1dR23QDbN1mkHs7adr8GW4kSWqU7Q7NDwfIrJJtO7Hi42GyXtvEONHbiRPOe8stqUly7MvUoN+5kfjBM8Qqpfl2+FNhTYWpMfYdPUnE7u536WqzFmsaqJctz3gBxH9Ex7dFtrxR4qiqEr9Qtlu3xGn7Bw07/+i1D+ey3ONkZLN+LQ714cgj8fRS4Hj29SCmXp5Kt5/82cD/VN3NtHw== smoser@brickies
8ssh_keys:
rsa_private: |
  -----BEGIN RSA PRIVATE KEY-----
  MIIBxwIBAAJhAKD0YSHy73nUgysO13XsJmd4fHiFyQ+00R7VVu2iV9Qcon2LZS/x
  1cydPZ4pQpfjEha6WxZ6o8ci/Ea/w0n+0HGPwaxlEG2Z9inNtj3pgFrYcRztfECb
  1j6HCibZbAzYtwIBIwJgO8h72WjcmvcpZ8OvHSvTwAguO2TkR6mPgHsgSaKy6GJo
  PUJnaZRWuba/HX0KGyhz19nPzLpzG5f0fYahlMJAyc13FV7K6kMBPXTRR6FxgHEg
  L0MPC7cdqAwOVNcPY6A7AjEA1bNaIjOzFN2sfZX0j7OMhQuc4zP7r80zaGc5oy6W
  p58hRAncFKEvnEq2CeL3vtuZAjEAwNBHpbNsBYTRPCHM7rZuG/iBtwp8Rxhc9I5w
  ixvzMgi+HpGLWzUIBS+P/XhekIjPAjA285rVmEP+DR255Ls65QbgYhJmTzIXQ2T9
  luLvcmFBC6l35Uc4gTgg4ALsmXLn71MCMGMpSWspEvuGInayTCL+vEjmNBT+FAdO
  W7D4zCpI43jRS9U06JVOeSc9CDk2lwiA3wIwCTB/6uc8Cq85D9YqpM10FuHjKpnP
  REPPOyrAspdeOAV+6VKRavstea7+2DZmSUgE
  -----END RSA PRIVATE KEY-----

rsa_public: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEAoPRhIfLvedSDKw7XdewmZ3h8eIXJD7TRHtVW7aJX1ByifYtlL/HVzJ09nilCl+MSFrpbFnqjxyL8Rr/DSf7QcY/BrGUQbZn2Kc22PemAWthxHO18QJvWPocKJtlsDNi3 smoser@localhost

dsa_private: |
  -----BEGIN DSA PRIVATE KEY-----
  MIIBuwIBAAKBgQDP2HLu7pTExL89USyM0264RCyWX/CMLmukxX0Jdbm29ax8FBJT
  pLrO8TIXVY5rPAJm1dTHnpuyJhOvU9G7M8tPUABtzSJh4GVSHlwaCfycwcpLv9TX
  DgWIpSj+6EiHCyaRlB1/CBp9RiaB+10QcFbm+lapuET+/Au6vSDp9IRtlQIVAIMR
  8KucvUYbOEI+yv+5LW9u3z/BAoGBAI0q6JP+JvJmwZFaeCMMVxXUbqiSko/P1lsa
  LNNBHZ5/8MOUIm8rB2FC6ziidfueJpqTMqeQmSAlEBCwnwreUnGfRrKoJpyPNENY
  d15MG6N5J+z81sEcHFeprryZ+D3Ge9VjPq3Tf3NhKKwCDQ0240aPezbnjPeFm4mH
  bYxxcZ9GAoGAXmLIFSQgiAPu459rCKxT46tHJtM0QfnNiEnQLbFluefZ/yiI4DI3
  8UzTCOXLhUA7ybmZha+D/csj15Y9/BNFuO7unzVhikCQV9DTeXX46pG4s1o23JKC
  /QaYWNMZ7kTRv+wWow9MhGiVdML4ZN4XnifuO5krqAybngIy66PMEoQCFEIsKKWv
  99iziAH0KBMVbxy03Trz
  -----END DSA PRIVATE KEY-----

dsa_public: ssh-dss AAAAB3NzaC1kc3MAAACBAM/Ycu7ulMTEvz1RLIzTbrhELJZf8Iwua6TFfQl1ubb1rHwUElOkus7xMhdVjms8AmbV1Meem7ImE69T0bszy09QAG3NImHgZVIeXBoJ/JzByku/1NcOBYilKP7oSIcLJpGUHX8IGn1GJoH7XRBwVub6Vqm4RP78C7q9IOn0hG2VAAAAFQCDEfCrnL1GGzhCPsr/uS1vbt8/wQAAAIEAjSrok/4m8mbBkVp4IwxXFdRuqJKSj8/WWxos00Ednn/ww5QibysHYULrOKJ1+54mmpMyp5CZICUQELCfCt5ScZ9GsqgmnI80Q1h3Xkwbo3kn7PzWwRwcV6muvJn4PcZ71WM+rdN/c2EorAINDTbjRo97NueM94WbiYdtjHFxn0YAAACAXmLIFSQgiAPu459rCKxT46tHJtM0QfnNiEnQLbFluefZ/yiI4DI38UzTCOXLhUA7ybmZha+D/csj15Y9/BNFuO7unzVhikCQV9DTeXX46pG4s1o23JKC/QaYWNMZ7kTRv+wWow9MhGiVdML4ZN4XnifuO5krqAybngIy66PMEoQ= smoser@localhost

no_ssh_fingerprints: false
ssh:
emit_keys_to_console: false

Comment injectez vous le userdata dans la VM ?
Visiblement je ne rencontre pas la limitation à 4096 caractères que vous rencontrez

Cordialement
nbanba

_fvt a commenté le 03.01.2023 09:23

Bonjour,

Je n'utilise pas l'API, je colles le contenu simplement via l'interface web de la Freebox, dans les propriétés de la VM il y a un champ cloud-init, et ce dernier est limité à 4096, je pense qu'il s'agit d'une limitation côté frontend donc…

En tout cas je ne connaissait pas le script bash fbxvm-ctrl il m'as l'air bien pratique, merci ;)

nbanba a commenté le 03.01.2023 09:51

Bonjour

Oui, ça à l'air une limitation côté frontend…

Le script fbxvm-ctrl est un script que je maintien.
Il est disponible sur mon dépot github sous licence GPLv3
vous pourrez le trouver ici :
https://github.com/nbanb/fbxvm-ctrl

Il utilise une librairy bash qui est disponnible ici :

https://github.com/nbanb/fbx-delta-nba_bash_api.sh

PS:
Je vais release d'ici 48h une nouvelle version de la library (+3000 lignes) qui inclue des fonctions frontend complètes permettant de :
- gérer les réservations DHCP (list, add, update, delete)
- gérer les redirections NAT (list, add update, delete)
- gérer les "prebuild vm distros" (distros fournies par Free mais que je n'utilise pas) et leur téléchargement dans le contexte des VM Freebox
- gérer les téléchargements HTTP(S) et FTP (add, update, monitor, get_log)
- créer des liens de téléchargement direct non authentifiés (list, add, del)
- gérer les taches (download tasks, filesystem tasks)
- gérer les fichiers depuis l'API (command supportée comme mkdir, ls, cp, mv, rename…)

Les fonctions frontend de la nouvelle library utilisent le même formalisme que le programme fbxvm-ctrl et ne demande pas plus d'external tools qu'aujourd'hui pour fonctionner (uniquement besoin de curl, openssl et websocat pour l'accès à la console des VM).

En gros cette nouvelle version de la librairy permettra de réécrire le programme fbxvm-ctrl en y ajoutant le support du NAT/DHCP, la gestion des download et la gestion des fichiers sur le stockage de la box.
Le but est de pouvoir utiliser les VM de la box comme des instances consommables (fully automated sandbox), créées automatiquement et à la demande pour un besoin donné puis détruite dès que le besoin n'existe plus.

Cordialement
nbanba

_fvt a commenté le 03.01.2023 10:19

Ah super, donc si je comprends bien du coup fbx-delta-nba_bash_api.sh contiendra aussi les fonctions de fbxvm-ctrl en plus des nouvelles que vous avez listées ? ça m'arrange d'avoir une seule lib / un seul outil a charger en effet.

nbanba a commenté le 03.01.2023 13:12

Bonjour
D ici peu, oui c est le but (1 seule lib, 1 seul programme pour VM exploitant la lib) mais je ne les aient pas encore toutes portées dans la lib
work is still in progress…

Après les dépôts github.com sont publics, toute aide reste bienvenue
Cordialement
nbanba

nbanba a commenté le 04.01.2023 13:54

Bonjour
Si vous êtes OSS118 sur github, d ici 24h j aurais release la nouvelle version de la librairie fbx-delta_bash_api.sh… Je viens de poster 1 tout petit script à sourcer (en mettant dedans les credentials de votre application pouvant se connecter à l api de la box, obtenus par l exécution de la fonction authorize_application de la lib) permettant d utiliser les fonctions frontend de la lib directement depuis le cmdline bash de votre pc
La nouvelle version de la lib (+3000lignes de code) sera publiée sous 24h.
Cordialement
nbanba

nbanba a commenté le 04.01.2023 19:28

Bonjour

Commit done !
Vous pouvez download la dernière version de la lib

Désolé, il n'y a pas encore de README avec les nouvelles fonctions mais voici 2 choses :

- description du commit
- liste de toutes les fonctions (sans descriptif pour le moment, désolé)

1) description du commit:

This is a huge commit, adding about 3000 lines of code to the previous version of this lib 

In this commit, I'm adding several support and particulary fontend function wich 
have an output directly usable by an end user.
The mindset of these new function is the same as "fbxvm-ctrl" program you can find 
on my public github repository  (https://github.com/nbanb/fbxvm-ctrl)
New frontend functions are "autonomous" as they have their own "check param" 
function and their own "param error" functions. 
All "param error" functions can be configured to display the name of the program 
and arguments switchs of the program which is calling them. 
All new categories of frontend functions are also including a listing function, 
when necessary one monitor function with a nice auto scalable progress bar, a 
function which can print 1 task (not the list) and another function which give a 
"brut" result which can be parsed by a computer or another script.
All new frontend function included error management and print error and detailed 
help when an error occurs in syntax or param and if error occurs at the API side 
(the API reply an error message), this message will be printed to the frontend 
standard output (stdout)  

In this commit, I'm also :

--> Adding support of FREEBOX_DEFAULT_URL and FREEBOX_LAN_URL and FREEBOX_WAN_URL
            - FREEBOX_WAN_URL preferred 
            - FREEBOX_LAN_URL will be use if FREEBOX_WAN_URL is not defined 
            - FREEBOX_DEFAULT_URL will be use if FREEBOX_WAN_URL and FREEBOX_LAN_URL are not defined 

--> Adding support of FREEBOX_DEFAULT_CACERT, FREEBOX_LAN_CACERT, FREEBOX_WAN_CACERT and
   FREEBOX_CA_BUNDLE which concatenate in a single CA certificate bundle all certificates of:
            - FREEBOX_DEFAULT_CACERT
            - FREEBOX_LAN_CACERT
            - FREEBOX_WAN_CACERT

--> Adding support for ILIADBOX, the ITALIAN FREEBOX which had the same API 
--> Adding ITALY parameter support which will use ILIADBOX_*_URL and ILIADBOX_*_CACERT

--> Adding support of ILIADBOX_DEFAULT_URL and ILIADBOX_LAN_URL and ILIADBOX_WAN_URL
            - ILIADBOX_WAN_URL preferred 
            - ILIADBOX_LAN_URL will be use if ILIADBOX_WAN_URL is not defined 
            - ILIADBOX_DEFAULT_URL will be use if ILIADBOX_WAN_URL and ILIADBOX_LAN_URL are not defined 

--> Adding support of ILIADBOX_DEFAULT_CACERT, ILIADBOX_LAN_CACERT,
 ILIADBOX_WAN_CACERT and  ILIADBOX_CA_BUNDLE which concatenate in a single CA 
certificate bundle all certificates of:
            - ILIADBOX_DEFAULT_CACERT
            - ILIADBOX_LAN_CACERT
            - ILIADBOX_WAN_CACERT


Some tasks (filesystem tasks, big download) can take hours and hours, really more 
than the login session timeout (~1800 seconds). 
So some of the frontend autonomous functions require a persistent login session.
 This part of the job is normally done by a frontend program which use functions
 from the library and ensure that the application still has a valid session opened.
 As librairy now contains frontend functions which can be used directly like an 
autonomous program by an end user, 
--> Adding support of auto re-login from librairy by library



OTHER IN THIS  COMMIT : 
--> Bug corrections of *BOX_CA_BUNDLE with websocat 
--> fbx-delta-nba_bash_api.sh started to be BIG => structurating the librairy 
--> Adding comments to guide user configuration of library
--> Adding comments for each groups of functions and for some functions
--> Moving changelog at the end of the library for an easier configuration



####################### NEW FUNCTIONS ############################################

NEW CORE FUNCTIONS : 

--> Adding core / call functions :
      - function for forcing a GET request with data-www-urlencode of parameters

--> Adding underlying functions for frontend functions :
      - function which colorize output depending on result
      - function which colorize json output depending on result and print json in 
        "pretty-json" format to have a json human readable format

--> Adding underlying functions for testing network parameters validity
      - function to check mac address syntaxe
      - function to check ethernet port 
      - function to check ip address syntaxe
      - function to check if ip is an rfc1918 ip address

--> Adding underlying functions for CA Certificate management
      - function which create a bundle CA Certificate file in shared memory
      - function which delete the bundle CA Certificate file in shared memory

--> Adding functions for managing autologin  and auto-relogin in librairy :
      - function which publish _APP_ID and _APP_ENCRYPTED_TOKEN to subshell 
        env at first login
      - function which logout the API
      - function which check the session status
      - function which get encrypted credential from environment and login with 
        those credentials
      - function which re-login if the session is disconnected




NEW VM FUNCTIONS - FRONTEND :

--> Adding functions for managing Freebox VM prebuild distros:
      - function which list VM prebuild distro and export result to subshell
      - function which add and monitor download of VM prebuild distro
      - function which manage help / error and validate VM distro parameters



NEW NETWORK FUNCTIONS - FRONTEND :

--> Adding functions for managing DHCP static leases:
      - function which list DHCP static leases and usage status
      - function which add a DHCP static leases
      - function which modify a DHCP static leases
      - function which delete a DHCP static leases
      - function which manage help / error and validate DHCP parameters

--> Adding functions for managing incoming NAT redirection (WAN --> LAN):
      - function which list incoming NAT redirections
      - function which add an incoming NAT redirection
      - function which modify an incoming NAT redirection
      - function which delete an incoming NAT redirection
      - function which enable an incoming NAT redirection
      - function which disable an incoming NAT redirection
      - function which manage help / error and validate NAT redirection parameters



NEW FILESYSTEM FUNCTIONS - FRONTEND :

--> Adding functions for managing filesystem tasks:
      - function which list all filesystem tasks
      - function which modify a filesystem tasks
      - function which delete a filesystem tasks
      - function which show a particular filesystem tasks (pretty human readable output)
      - function which get a particular filesystem tasks (json output)
      - function which get a hash result on 'hash' filesystem action tasks
      - function which monitor a filesystem tasks (including progress bar)
      - function which manage help / error and validate filesystem task parameters

--> Adding functions for managing filesystem actions:
      - function list_fs_file: list content of a path / directory of freebox storage
      - function ls_fs: CACHE & list content of a path on freebox storage ('ls' style)
      - function which copy a file/dir on freebox storage
      - function which move a file/dir on freebox storage 
      - function which delete / remove a file/dir on freebox storage 
      - f unction which rename a file/dir on freebox storage 
      - function which create directory on freebox storage 
      - function which hash a file of freebox storage (md5 sha1 sha256 sha512) 
      - function which archive files or dir (.tar .zip .7z .tar.gz .tar.bz2 .tar.xz .iso .cpio) 
      - function which extract archive on freebox storage (.tar .zip .7z .tar.gz .tar.bz2 .tar.xz .iso .cpio)  
      - function which manage help / error and validate filesystem action parameters



DOWNLOAD FUNCTIONS - FRONTEND :

--> Adding functions for managing unauthentified share link (download links):
      - function which list all share link
      - function which add a share link                       
      - function which delete a share link                       
      - function which show a particular share link (pretty human readable output)
      - function which get a particular share link (json output)
      - function which manage help / error and validate share link task parameters

--> Adding functions for managing HTTP(S) / FTP download tasks:
      - function which list all download tasks
      - function which show a particular download task (pretty human readable output)
      - function which add a download task but do not urlencode params
      - function which add a download task and urlencode params
      - function which update a download task (io_priority, start, pause)
      - 2 functions which monitor a download task (scripting function & frontend advanced function) 
      - function which print a download task log
      - function which delete a download task
      - function which manage help / error and validate download task parameters

--> Adding other download function : 
      - function for making a direct download  from Freebox storage 
        (API authentified call, direction : server executing the direct 
        downloadl function <------- freebox)


Enjoy and don't hesitate to ask for help !
nbanba

2) liste des 102 fonctions de la lib (sans descriptif pour le moment, désolé mais le code inclus le descriptif des fonctions + changelog + des readme quand nécessaires)

add_dhcp_static_lease
add_dl_task_api
add_freebox_api
add_fw_redir
add_share_link
app_login_freebox
archive_fs_file
authorize_application
call_freebox_api
call_freebox_api2
call_freebox-ws_api
check_and_feed_dhcp_param
check_and_feed_dl_param
check_and_feed_fs_param
check_and_feed_fs_task_param
check_and_feed_fw_redir_param
check_and_feed_share_link_param
check_and_feed_vm_prebuild_distros_param
_check_freebox_api
check_if_ip
check_if_mac
check_if_port
check_if_rfc1918
check_login_freebox
_check_success
check_tool
check_tool_exit
colorize_output
colorize_output_pretty_json
cp_fs_file
del_bundle_cert_file
del_dhcp_static_lease
del_dl_task_api
del_freebox_api
del_fs_file
del_fs_task
del_fw_redir
del_share_link
dis_fw_redir
dl_task_log_api
dl_vm_prebuild_distros
dump_json_keys_values
ena_fw_redir
enc_dl_task_api
extract_fs_file
full_vm_detail
get_freebox_api
get_fs_task
get_json_value_for_key
get_share_link
hash_fs_file
hash_fs_task
list_dhcp_static_lease
list_dl_task_api
list_fs_file
list_fs_task_api
list_fw_redir
list_share_link
list_vm_prebuild_distros
local_direct_dl_api
login_fbx
login_fbx2
login_freebox
logout_freebox
ls_fs
mk_bundle_cert_file
mkdir_fs_file
mon_fs_task_api
monitor_dl_task_adv_api
monitor_dl_task_api
mv_fs_file
param_dhcp_err
param_download_err
param_fs_err
param_fs_task_err
param_fw_redir_err
param_share_link_err
param_vm_prebuild_distros_err
_parse_and_cache_json
_parse_array
_parse_json
_parse_object
_parse_value
print_term_line
progress
reboot_freebox
relogin_freebox
rename_fs_file
rm_fs_file
show_dl_task_api
show_fs_task
show_share_link
status_freebox
_throw
_tokenize_json
update_freebox_api
upd_dhcp_static_lease
upd_dl_task_api
upd_fs_task
upd_fw_redir
vm_resource
wrprogress

Maintenant il faut que j'écrive le README et que je mette l'output des frontend functions et les exemples dedans puis que je porte les fonctions de fbxvm-ctrl dans la lib (et que j'ajoute les nouvelles fonctionnalités des nouvelles fonctions au programme fbxvm-ctrl … Oui, il y a du boulot, mais je m'y met !)

Cordialement
nbanba

_fvt a commenté le 10.01.2023 13:11

Hello,

Super, je vais jeter un oeil quand je peux je vois qu'il y aeu beaucoup de boulot ! (mais je ne suis pas OSS118 haha).

J'aimerais par contre laisser ce case à l'équipe freebox pour le but côté interface Web qui n'autorise que 4096 chars :).

nbanba a commenté le 10.01.2023 13:31

Bonjour
Oui la lib à beaucoup évoluée, je publierai le nouveau README quand il sera prêt.

Je ne sais pas si vous avez la possibilité d'éditer le titre et de rajouter un truc comme:
Allow more than 4096 characters for cloud-init field in freeboxOS webui

Cordialement
nbanba

_fvt a commenté le 10.01.2023 13:36

C'est fait :)

nbanba a commenté le 10.01.2023 13:40

impec ;)

Chargement...

Activer les raccourcis clavier

Liste des tâches

Détails de la tâche

Édition de la tâche