• Leigh Stoller's avatar
    Commit functioning XML interface. At present, only isadmin people will · 51310e62
    Leigh Stoller authored
    see this new page. That allows me to inflict pain on testbed
    developers while we work out any kinks. These new pages implement an
    XML interface to experiment creation.
    
    Some new files:
    
    beginexp_html.php3: A wrapper for the actual beginexp form. This page
    includes the form, and then invokes the XMLRPC backend page.
    
    beginexp_form.html: The original form code, split out from beginexp
    and turned into a module that can be included into another file.  It
    is slightly reorganized to make it easier to include as a module.  The
    idea is that the plab_ez form will be recast in this model, reducing
    some redundant complexity.
    
    beginexp_xml.php3: The XML backend. The idea is that the html page
    packages up the form arguments as an XMLRPC message, and invokes this
    page with the XML goo encoded in the URL. It also passes along the
    uid/cookie so that the authentication happens properly (https of
    course). The page decodes the URL into PHP datatypes, and does much of
    the same argument checking that beginexp used to do. Errors are stored
    up in the same manner, but instead of spitting back html, it now spits
    back a "structure", encoded in XML so that the _html page can put up a
    new form. Basically, all output is sent back via an XML encoded
    structure and displayed in a form that the invoking script deems
    appropriate.
    
    This gives us a pure XMLRPC interface, which we wrap with a form interface
    so that it looks just like it did before.
    
    The next step is to provide an alternate front end, but that will require
    some certificate stuff that I have not worked out yet.
    
    Oh, one more item. The syntax check stuff has been altered a bit.
    Instead of invoking the beginexp page, which meant a zillion special
    tests, I now invoke nscheck.php3 directly from the button. Took a few
    extra lines of Javascript to do this, so watch out for problems there
    too.
    51310e62
nscheck.php3 3.19 KB