Hi!
Thank you for your answer.
I started to explore the answers which are sent using the same rules I
suppose. But faced with some inconsistency.
Here is the example:

//OK[0,0,10,0,471,9,8,1,0,1,0,1,7||,0,0,0,1,6,3,5,3,4,3,3,1,0,2,1,1,[(1)
"java.util.ArrayList/4159755760",(2)
"org.ovirt.engine.core.common.action.ActionReturnValue/4163585948",(3)
"java.lang.String/2004016611",(4)"VAR__ACTION__RUN",(5)"VAR__TYPE__VM",(6)
"USER_NOT_AUTHORIZED_TO_PERFORM_ACTION",(7)"vm1",(8)
"org.ovirt.engine.core.common.errors.EngineFault/2377218566",(9)
"org.ovirt.engine.core.common.errors.EngineError/1938278732"
,(10)"ENGINE"],0,7]

1->"java.util.ArrayList/4159755760"

1->1 element

2->"org.ovirt.engine.core.common.action.ActionReturnValue/4163585948" (type
of one value)

0->correlationId(string)

description (string) (??)
endActionTryAgain (boolean)(??)


1->executeFailedMessages(arraylist)

3-> 3 elements

3-> string type

4->"VAR__ACTION__RUN"

3->string type

5->"VAR__TYPE__VM"

3-> string type

6->"USER_NOT_AUTHORIZED_TO_PERFORM_ACTION"


8->fault(enginefault)

9->engineError

471->type of error


internalVdsmTaskIdList(arraylist) (??)
isSynchronous(boolean) (??)
jobId(guid) (??)
returnValue(object) (??)
succeeded(boolean)  (??)
taskPlaceHolderIdList(arraylist) (??)
valid(boolean) (??)
0->validationMessages(arraylist) (??)
0->vdsmTaskIdList(arraylist) (??)



I sorted the field of ActionReturn Value but the provided values do not
really match them.

I would say that not sorted fields match better here. The two sequences I
am sure in are 6,3,5,3,4,3,3,1 and 471,9,8

The sorted fields of ActionReturnValue are:


correlationId
description
endActionTryAgain
executeFailedMessages
fault
internalVdsmTaskIdList
isSynchronous
jobId
returnValue
succeeded
taskPlaceHolderIdList
valid
validationMessages
vdsmTaskIdList



вт, 30 окт. 2018 г. в 17:03, Thomas Broyer <[email protected]>:

> The hash is a hash of the class, not the value. It's there to ensure that
> the client and server use the exact same classes, with the same fields, of
> the same types, in the same order.
> This means that the value is dependent on the version of oVirt that you're
> using, and only on the version of oVirt. IIRC, you should be able to find
> them in the serialization policy files, or of course in the JS files
> running in the browser (the hash is computed at compile-time, not at
> runtime, at least on the client-side, can't remember on the server)
> Whenever you update oVirt, the hashes *might* change, which means that
> the way the objects are serialized/deserialized has changed; this means
> you'll then need to update your proxy to account for the changes.
>
> On Tuesday, October 30, 2018 at 1:51:13 PM UTC+1, Anastasiya Ruzhanskaya
> wrote:
>>
>> Are there any ideas about this hash function?
>>
>> пн, 29 окт. 2018 г. в 11:38, Anastasiya Ruzhanskaya <
>> [email protected]>:
>>
>>> Hello!
>>> I am trying to build a proxy, which will intercept requests from oVirt
>>> and send errors if the action should not be performed. I just need to
>>> implement it in such a manner due to some legacy issues with using internal
>>> access control.
>>>
>>> I think that by importing some information from oVirt I can easily parse
>>> the message in order to find the action type and id of the object on which
>>> it is performed.
>>>
>>> The problem is with the answer: I need to send the valid answer.
>>> I created a user in oVirt which is a read-only user. So, I get the
>>> following answer:
>>>
>>>
>>> //OK[0,0,10,0,471,9,8,1,0,1,0,1,7,0,0,0,1,6,3,5,3,4,3,3,1,0,2,1,1,["java.util.ArrayList/4159755760","org.ovirt.engine.core.common.action.ActionReturnValue/4163585948","java.lang.String/2004016611","VAR__ACTION__SHUTDOWN","VAR__TYPE__VM","USER_NOT_AUTHORIZED_TO_PERFORM_ACTION","vm1","org.ovirt.engine.core.common.errors.EngineFault/2377218566","org.ovirt.engine.core.common.errors.EngineError/1938278732","ENGINE"],0,7]
>>>
>>> I think the answer should be always pretty the same (maybe only for some
>>> cases another one). The only thing which I find tricky here is how to
>>> generate a valid hash value?
>>>
>>> I found a function in sources of GWT but it accepts a serialization
>>> policy and the custom serializers (which is not appropriate for me as for
>>> incoming requests I will always look for action type and then object, and
>>> for answers I want just to generate this type errors, which I provided
>>> above, so I want to include to my proxy as minimum additional information
>>> as possible).
>>>
>>> So, I would like to find an easy way of generation this hash values
>>> (org.ovirt.engine.core.common.errors.EngineFault/2377218566). Or probably
>>> it is even possible not ti generate them at all?
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "GWT Users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected]
>>> .
>>> Visit this group at https://groups.google.com/group/google-web-toolkit.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "GWT Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/google-web-toolkit.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to