Refresh root unexpected lists behavior

Hi,

I’ve a question about refreshObject. I’m using an old version of genieacs (1.1.0). I want to upgrade to last version (1.2.3) but it seems that refreshObject doesn’t react same way.

On new version, when I perform a refreshObject on root of my data model (empty objectName “” in refreshObject request), data model is refreshed except arrays. It works only the first time but after that, a refreshObject on root clears these arrays. Maybe I forget something… Is it a expected behavior with new versions ? Is it a provisioning update to do between old and new version ?

Sample :

Before refreshObject on root (v 1.2.3):

InternetGatewayDevice
My_custom_key
My_array_key_name
0
key: “value”,

1
key: “value”,
….

After :

InternetGatewayDevice
My_custom_key
My_array_key_name

Refresh object request :

POST: http://myinstance:7557/devices/FFFFFF-FAKEDEVICE-GEWY40300594/tasks?connection_request
{
“name”: “refreshObject”,
“objectName”: “”
}

Thanks

It’s likely that this is a client issue whose effects only become apparent in v1.2. Look at the GetParameterNamesResponse message from the CPE and confirm the parameters are being reported correctly.

Hi @zaidka ,

Thanks for your response. Sorry for this big delay, we had to work on other subjects last year but we’ll resume this task now ! :slight_smile:

We use easycwmp on CPE. We update Genieacs to the last version (1.2.8) and you are right, GetParameterNamesResponse doesn’t report these keys.
GetParameterNames request nextLevel is “1”, is it normal ?

<cwmp:GetParameterNames>
            <ParameterPath>InternetGatewayDevice.</ParameterPath>
            <NextLevel>1</NextLevel>
        </cwmp:GetParameterNames>

My data model format is like this :

InternetGatewayDevice
    Custom_Object
        Key1 : "value"
        MyArray1
            1
                 Subkey1: "value",
                 Subkey2: "value",

All Custom_Object keys are updated but MyArray1 values are not updates and these keys are not in GetParameterNames

Edit (4th Jan) :

My problem seems to be come from session.ts, particularly this condition :

if (est < Math.pow(2, Math.max(0, 8 - path.length))) {
  nextLevel = true;
  syncState.gpn.delete(path);
} else {
  nextLevel = false;
  for (const p of sessionContext.deviceData.paths.find(
    path,
    false,
    true,
    99
  ))
  syncState.gpn.delete(p);
}

When I removed first condition block, my problem is resolved and all parameters are refreshed. Can I have some explanation of this part of code ? Can it be a problem in the future to remove condition like I did ?