[Geoserver-devel] GeoFence REST interface doubt

Hi,

I have a doubt about GeoFence REST interface behavior:
http://docs.geoserver.org/stable/en/user/community/geofence-server/rest.html

The result of the following request:

  curl -u admin:geoserver -H 'Accept: application/json' 'http://localhost/geoserver/geofence/rest/rules?page=0&entries=10

will be something like this:

    {
        "count": 10,
        "rules": [
            {
                "access": "ALLOW",
                "id": 14,
                "layer": null,
                "priority": 0,
                "request": null,
                "roleName": "ADMIN",
                "service": null,
                "userName": null,
                "workspace": "topp"
            },
            (...)
         ]
    }

So basically I requested GeoFence rules with pagination. When using pagination we need to know the total number of existing rules,
so I had the expectation the result above will contain the rules for the requested page and the total number of rules.

The thing is that the 'count' returned is actually the number of rules returned ... which in my opinion is useless and misleading.

Is this the expected behavior or bug ?

In my opinion when fetching rules with pagination we should get the rules for the current page and the total of rules.

Regards,

Nuno Oliveira

--

GeoServer Professional Services from the experts!
Visit http://goo.gl/it488V for more information.

Nuno Miguel Carvalho Oliveira
@nmcoliveira
Software Engineer

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003
Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono
da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate
nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e
-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo
anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of
the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree
June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying,
distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender does not give any warranty or accept liability as the content,
accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which
arise as a result of e-mail transmission, viruses, etc.

Hi Nuno,

the "count" field in the response just contains the size of the returned list indeed:
   https://github.com/geoserver/geoserver/blob/master/src/community/geofence-server/src/main/java/org/geoserver/geofence/rest/xml/JaxbRuleList.java#L34

I guess you have to call count()
   https://github.com/geoserver/geoserver/blob/master/src/community/geofence-server/src/main/java/org/geoserver/geofence/rest/RulesRestController.java#L91-L92
on your own to get the total number of rules matching your filter.

   Cheers,
   Emanuele

Alle 00:58:45 di Thursday 28 July 2016, Nuno Oliveira ha scritto:

Hi,

I have a doubt about GeoFence REST interface behavior:
http://docs.geoserver.org/stable/en/user/community/geofence-server/rest.htm
l

The result of the following request:

  curl -u admin:geoserver -H 'Accept: application/json'
'http://localhost/geoserver/geofence/rest/rules?page=0&entries=10

will be something like this:

    {
        "count": 10,
        "rules": [
            {
                "access": "ALLOW",
                "id": 14,
                "layer": null,
                "priority": 0,
                "request": null,
                "roleName": "ADMIN",
                "service": null,
                "userName": null,
                "workspace": "topp"
            },
            (...)
         ]
    }

So basically I requested GeoFence rules with pagination. When using
pagination we need to know the total number of existing rules, so I had
the expectation the result above will contain the rules for the requested
page and the total number of rules.

The thing is that the 'count' returned is actually the number of rules
returned ... which in my opinion is useless and misleading.

Is this the expected behavior or bug ?

In my opinion when fetching rules with pagination we should get the rules
for the current page and the total of rules.

Regards,

Nuno Oliveira

--

GeoServer Professional Services from the experts!
Visit http://goo.gl/NWWaa2 for more information.

Ing. Emanuele Tajariol
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 380 2116282

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

Hi,

Thanks for the feedback Emanuele.

Sorry I didn't make it clear, I know about the count entry point,
my point is should not the total count be already returned with
the rules list if we are using pagination :slight_smile:

Cheers,

Nuno Oliveira

Le jeudi 28 juillet 2016 à 10:30 +0200, Emanuele Tajariol a écrit :

Hi Nuno,

the "count" field in the response just contains the size of the returned list indeed:
   https://github.com/geoserver/geoserver/blob/master/src/community/geofence-server/src/main/java/org/geoserver/geofence/rest/xml/JaxbRule
List.java#L34

I guess you have to call count()
   https://github.com/geoserver/geoserver/blob/master/src/community/geofence-server/src/main/java/org/geoserver/geofence/rest/RulesRestCon
troller.java#L91-L92
on your own to get the total number of rules matching your filter.

   Cheers,
   Emanuele

Alle 00:58:45 di Thursday 28 July 2016, Nuno Oliveira ha scritto:
> Hi,
>
> I have a doubt about GeoFence REST interface behavior:
> http://docs.geoserver.org/stable/en/user/community/geofence-server/rest.htm
> l
>
> The result of the following request:
>
> curl -u admin:geoserver -H 'Accept: application/json'
> 'http://localhost/geoserver/geofence/rest/rules?page=0&entries=10
>
> will be something like this:
>
> {
> "count": 10,
> "rules": [
> {
> "access": "ALLOW",
> "id": 14,
> "layer": null,
> "priority": 0,
> "request": null,
> "roleName": "ADMIN",
> "service": null,
> "userName": null,
> "workspace": "topp"
> },
> (...)
> ]
> }
>
> So basically I requested GeoFence rules with pagination. When using
> pagination we need to know the total number of existing rules, so I had
> the expectation the result above will contain the rules for the requested
> page and the total number of rules.
>
> The thing is that the 'count' returned is actually the number of rules
> returned ... which in my opinion is useless and misleading.
>
> Is this the expected behavior or bug ?
>
> In my opinion when fetching rules with pagination we should get the rules
> for the current page and the total of rules.
>
> Regards,
>
> Nuno Oliveira

--

GeoServer Professional Services from the experts!
Visit http://goo.gl/NWWaa2 for more information.

Ing. Emanuele Tajariol
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 380 2116282

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

--

GeoServer Professional Services from the experts!
Visit http://goo.gl/it488V for more information.

Nuno Miguel Carvalho Oliveira
@nmcoliveira
Software Engineer

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003
Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono
da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate
nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e
-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo
anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of
the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree
June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying,
distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender does not give any warranty or accept liability as the content,
accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which
arise as a result of e-mail transmission, viruses, etc.