Thomas,


There are three classifications of errors that can occur with the fee extension 
to the check command:



1.       Syntax error – This should result in an error for the entire check 
command.

2.       Object (domain) name error (incorrect domain name, reserved domain 
name, blocked domain name, etc.) – This should result in returning avail=”0” 
for the associated fee:cd element for the object in the response.

3.       Crosscutting input element error (invalid currency, invalid command, 
invalid command period, invalid class, invalid command phase or invalid 
subphase – Since each of these input elements apply to all objects in the check 
command, an error with any of them will impact the ability to return a complete 
set of fee information.  My recommendation is to fast fail the processing of 
the fee information and return back avail=”0” for each of the objects in the 
response with an appropriate reason like “Invalid currency XXX”, “Invalid 
command XXX”, or “Invalid command XXX period YYY”.  I don’t believe that it 
will help to attempt to put a higher level avail attribute and reason for the 
entire fee check response extension, since the client would be expecting a fee 
result for each object in the check command on a successful response.  The 
check command should not fail based on a data issue, so I would apply that same 
approach with the fee extension to the check command.

a.       Since we’re extending the check command and response, I don’t believe 
that the processing should flag errors below the object level.  This means that 
if one command is valid and another command is invalid, the fee information is 
not available for the object.  The server will fast fail the processing of the 
fee extension in the event of a failure to one command, class, period, phase, 
subphase, or currency.  If there is an expectation that the server should not 
fast fail, then we should consider adding or moving the fee extension to the 
info command and response.



—

JG







James Gould

Distinguished Engineer

jgo...@verisign.com



703-948-3271

12061 Bluemont Way

Reston, VA 20190



VerisignInc.com <http://verisigninc.com/>



On 4/28/17, 8:48 AM, "Thomas Corte" <thomas.co...@knipp.de> wrote:



    Hello James,



    On 28/04/2017 14:32, Gould, James wrote:



    > Thomas,

    >

    > I don’t agree that failing the entire check command if someone passes 
invalid input in the fee extension, unless it is syntactically incorrect.  The 
point is to communicate whether the fee information is available for the given 
object and commands, and if it is return the fee information.



    Sure, but the current draft would require the following response for a

    <check> with a wrong currency "BLA", assuming that two domains with 3

    commands each were specified:



          <chkData xmlns="urn:ietf:params:xml:ns:fee-0.17">

            <currency>BLA</currency>

            <cd avail="false">

              <objID>example1.tld</objID>

              <command name="create" phase="open">

                <period unit="y">2</period>

                <reason>the selected currency is not supported (supported

    currency is "USD")</reason>

              </command>

              <command name="transfer" phase="open">

                <period unit="y">1</period>

                <reason>the selected currency is not supported (supported

    currency is "USD")</reason>

              </command>

              <command name="renew" phase="open">

                <period unit="y">1</period>

                <reason>the selected currency is not supported (supported

    currency is "USD")</reason>

              </command>

            </cd>

            <cd avail="false">

              <objID>example1.tld</objID>

              <command name="create" phase="open">

                <period unit="y">2</period>

                <reason>the selected currency is not supported (supported

    currency is "USD")</reason>

              </command>

              <command name="transfer" phase="open">

                <period unit="y">1</period>

                <reason>the selected currency is not supported (supported

    currency is "USD")</reason>

              </command>

              <command name="renew" phase="open">

                <period unit="y">1</period>

                <reason>the selected currency is not supported (supported

    currency is "USD")</reason>

              </command>

            </cd>

          </chkData>



    I.e. there is no shorter way to report the wrong currency (which should

    have prevented any further checks by the server whatsoever) than this.

    Note that the periods are there since the draft says "The <fee:period>

    element MUST be present in <check> responses."



    It gets a bit better by introducing the <choice> we discussed (see

    below), but even then the response would have to list each domain from

    the check, even though the error is independent from the domain name.

    Yet I'm aware that the only option to prevent this would be to introduce

    a framing element for the <cd> elements, which could then contain (yet

    another) reason for failure as an alternative for the <cd> children.



    > I agree that there should be a choice between inclusion of the commands 
or the reason in “objectCDType” to support returning either a successful list 
of commands or optionally providing a reason that the fee information is not 
available.  My recommendation for “objectCDType” is below:

    >

    >     <complexType name="objectCDType">

    >       <sequence>

    >         <element name="objID" type="fee:objectIdentifierType" />

    >         <choice minOccurs=”0”>

    >           <element name="command" type="fee:commandType"

    >             maxOccurs="unbounded" />

    >           <element name="reason" type="eppcom:reasonType”/>

    >         </choice>

    >       </sequence>

    >       <attribute name="avail" type="boolean" use=”required” />

    >     </complexType>

    >

    > The objectCDType can include the fee:objID, the fee:objID along with the 
commands, or the fee:objID along with the reason.  The “avail” flag is changed 
to required without a default to be explicit, which is consistent with how the 
“avail” flag works in the check response.  The reason leverages the 
“eppcom:reasonType” to support use of the optional “lang” attribute to be 
consistent with the check response.



    Agreed, this is what I had in mind.



    However, the question from the e-mail I sent yesterday remains - how to

    report "mixed" results (i.e., what value should "avail" have if fees are

    available for some nested commands, but not for others (see the example

    from my e-mail).



    Best regards,



    Thomas



    --

    ____________________________________________________________________

         |       |

         | knipp |            Knipp  Medien und Kommunikation GmbH

          -------                    Technologiepark

                                     Martin-Schmeißer-Weg 9

                                     44227 Dortmund

                                     Deutschland



         Dipl.-Informatiker          Tel:    +49 231 9703-0

         Thomas Corte                Fax:    +49 231 9703-200

         Stellvertretender Leiter    SIP:    thomas.co...@knipp.de

         Software-Entwicklung        E-Mail: thomas.co...@knipp.de



                                     Registereintrag:

                                     Amtsgericht Dortmund, HRB 13728



                                     Geschäftsführer:

                                     Dietmar Knipp, Elmar Knipp


_______________________________________________
regext mailing list
regext@ietf.org
https://www.ietf.org/mailman/listinfo/regext

Reply via email to