Dig every values of a CPE

Anybody know a way to dig every object and get every value of an ONU ?

It would help to build provisioning script for new devices if we could just get the whole config easily.

Can you please describe in further detail what you are trying to accomplish? Are you trying to refresh the entire data model of a CPE?

there’s the declare() function mentioned in the documentation with the “path” parameter … but I also fail to see the point of doing so. building a provision script with potentially hundred or thousands of parameter when in reality only a few dozens are really needed is not exactly optimal.

as akcoder said, I suggest to elaborate on the why.

Yes, the entire data model of a CPE, get every values of every parameters. The reason to do so is to see the whole config of the CPE to help to identify which of those parameter’s value are necessary to change from the default config.

It’s not something I would always do but something I would like to do in labs for new devices, see every config options are available in the TR tree. When I download the whole config in CSV, all parameters seems there but not every values and sometime, without the value, the purpose of the parameter isn’t obvious while looking only the name. The value associated with it would help to know what is the purpose of the parameter.

Something like “show run” or “show config” or “display config” or downloading the whole xml/json/txt config, but through the ACS server for a CPE.

perhaps you already know this, but I did something similar while trying to catch where a parameter is stored. What I did was to download the config from the CPE admin page as xml, make the changes then download a second copy as xml.

then I used the diff command to see differences.

If memory serves I was trying to figure out where Huawei stores information related to WiFi coverage which does not seem to have obvious parameters associated.

I hope it helps.

1 Like

I know but it not what I want.

I would like to be able to download the csv from GenieACS device page
made change in the WebUI, or CLI, of the CPE
download again the csv again to compare both

But the csv miss so much stuff because GenieACS don’t dig the whole TR tree, don’t go dig all the object, parameters and values. That a pain to dig everything manually from the GenieACS GUI.

ok then, if I had to do something like that, I would create a preset/provision just for this purpose alone, sitting on CONNECTION REQUEST, and I would experiment with declare() using * , that way I could fire the provision from the UI.

the provision could have some lines like this:

let values = declare( "InternetGatewayDevice.*.*.*.*.*.*", {path: Date.now( ), value: Date.now( )} );

then send values to an extension to write it down to the filesystem using a unique filename perhaps using devid, timestamp and a random number just in case node makes something funny.

Thanks Rudy, I will try that.

I would take a different approach and use the web GUI to refresh InternetGatewayDevice. This will load all the parameters and sub-params underneath it.

1 Like

I tough that a refresh was only sending a single next level, not dig the whole tree. That really nice.

But it lead to the following error:
too_many_commits Too many commit iterations

I will try every sub-object of InternetGatewayDevice.

Thanks Akcoder

This can happen if you have dueling presets/provision scripts.

I usually take the same approach and refresh each param individually, well the ones I think might prove useful.

A getparametervalue = Device. Or InternetGatewayDevice.
Should be enough. GenieACS should just need to cache the response and done you have the whole tree and all values. And