ExtremeCloud IQ- Site Engine & Extreme Management Center

Expand all | Collapse all

How call OneFabric Connect WebServices function from a php script?

  • 1.  How call OneFabric Connect WebServices function from a php script?

    Posted 07-19-2017 11:55
    HI, I'm trying to made a php script (I'm not a php programmer), that execute a web services that in my example is:
    password@192.168.30.34:8443/axis/services/NACWebService/addIPToEndSystemGroup?endSystemGroup=Distributed_IPS&ipAddress=192.168.10.78&description=ck_infected&reauthenticate=true&removeFromOtherGroups=true" target="_blank" rel="nofollow noreferrer noopener">https://root:password@192.168.30.34:8443/axis/services/NACWebService/addIPToEndSystemGroup?endSystem...

    If I execute this web services from a web browser, it works correctly.
    Then I want to execute the same command with a php script.
    I've follow the examples that are in the OneFabric Connect WebServices pdf document, and my php code is the following:

    $login = 'root';
    $password = 'password';

    try {
    $client = new SoapClient(
    'https://' . urlencode($login) . ':' . urlencode($password) . '@192.168.30.34:8443/axis/services/NACWebService?wsdl',
    array(
    'login' => $login,
    'password' => $password,
    'authentication' => SOAP_AUTHENTICATION_DIGEST
    )
    );

    $response = $client->addIPToEndSystemGroup(array("endSystemGroup" => "Distributed_IPS","ipAddress" => "192.168.10.78","description" => "ck infected","reauthenticate" => true,"removeFromOtherGroups" => true));
    print_r($response);

    } catch (Exception $e) {
    printf("Error:sendSms: %s\n",$e->__toString());
    print($client->__getLastResponse());
    return false;
    }

    ?>

    The problem is that this script end with an error that is the following:
    root@extrememanagement.demo.com:~/scripts$ php test3.php
    Error:sendSms: SoapFault exception: [Client] looks like we got no XML document in /root/scripts/test3.php:16
    Stack trace:
    #0 /root/scripts/test3.php(16): SoapClient->__call('addIPToEndSyste...', Array)
    #1 /root/scripts/test3.php(16): SoapClient->addIPToEndSystemGroup(Array)
    #2 {main}
    root@extrememanagement.demo.com:~/scripts$

    I've made a search on google for this error, but seams that must be correct changing same setting on the server side....

    Is there someone that know how to execute this web services from the php script?

    Thanks



  • 2.  RE: How call OneFabric Connect WebServices function from a php script?

    Posted 07-20-2017 11:19
    Hi, below the output of the php script if I enable the trace option in the SoapClient:
    SoapFault exception: [Client] looks like we got no XML document in /root/scripts/Distributed_IPS.php:37
    Stack trace:
    #0 /root/scripts/Distributed_IPS.php(37): SoapClient->__call('addIPToEndSyste...', Array)
    #1 /root/scripts/Distributed_IPS.php(37): SoapClient->addIPToEndSystemGroup(Array)
    #2 {main}
    code:
    POST /services/NACWebService HTTP/1.1

    Host: 192.168.30.34:8443

    Connection: Keep-Alive

    User-Agent: PHP-SOAP/5.5.9-1ubuntu4.21

    Content-Type: text/xml; charset=utf-8

    SOAPAction: "urn:addIPToEndSystemGroup"

    Content-Length: 534

    code:




    code:
    HTTP/1.1 200 OK

    Expires: 0

    Expires: 0

    Cache-Control: no-cache, no-store, must-revalidate

    Cache-Control: no-cache, no-store, must-revalidate

    X-Powered-By: JSP/2.3

    Set-Cookie: JSESSIONID=i8_RbyDv3bVVInElOP9AGNfyU3ygMHXVgIWB208A.extrememanagement; path=/

    Server: ExtremeManagementCenter

    Pragma: no-cache

    Pragma: no-cache

    Date: Thu, 20 Jul 2017 13:10:28 GMT

    Connection: keep-alive

    Server-Version: 8.0.0

    Content-Type: text/html;charset=ISO-8859-1

    Content-Length: 11663



    code:


                var aboutWindow = window.open ( url, "About", "top=" + cornerY + ",left=" + cornerX +&nbs
                var newWindow = window.open ( url, title, "top=" + cornerY + ",left=" + cornerX + ",
                    background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #3F3F3F), color
                    background-image: -moz-linear-gradient(center bottom, #3F3F3F 0%, #383838 50%, #434343 51%,&nbs
                    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3f3f3f', endColorstr='#555555',GradientType=0 )
                    /* We use the inset of the box shadow to create a subtle inner gl
                  


    root@extrememanagement.demo.com" target="_blank" rel="nofollow noreferrer noopener">root@extrememanagement.demo.com:~/scripts$

    Seems that the server return the html page for the login where asks for username and password....


  • 3.  RE: How call OneFabric Connect WebServices function from a php script?

    Posted 07-20-2017 11:34
    I don't have a php environment to test this but I would use a simple HTTP GET request instead of a SOAP request. Could you please try something like this (like I said, untested):

    $username = "some-username";
    $password = "some-password";
    $remote_url = 'https://192.168.30.34:8443/axis/services/NACEndSystemWebService/addIPToEndSystemGroup?endSystemGroup...;

    $opts = array(
    'http'=>array(
    'method'=>"GET",
    'header' => "Authorization: Basic " . base64_encode("$username:$password")
    )
    );

    $context = stream_context_create($opts);

    // Open the file using the HTTP headers set above
    $file = file_get_contents($remote_url, false, $context);

    print($file);

    ?>

    Code was taken from and adjusted in regards to the NetSight URL:
    https://stackoverflow.com/questions/7732634/making-a-http-get-request-with-http-basic-authentication


  • 4.  RE: How call OneFabric Connect WebServices function from a php script?

    Posted 07-20-2017 11:50
    Hi Kurt,
    thanks for your answer.
    With the simple HTTP GET request as you suggest, it works.
    But I'm trying to use the method suggested from the Extreme Networks documentation and in this documentation they use the SOAP request.
    Regards,
    Antonio


  • 5.  RE: How call OneFabric Connect WebServices function from a php script?

    Posted 07-20-2017 11:54
    Hi Antonio,

    perfect. Forget SOAP 😉 go ahead and use this working option, we've been using it for years and it is also supported by engineering.

    Where did you find the reference to using SOAP for this?


  • 6.  RE: How call OneFabric Connect WebServices function from a php script?

    Posted 07-20-2017 12:01
    Hi Kurt,

    I've found the examples in the document "OneFabric Connect WebServices" that I've downloaded from the Extreme Networks site (if you want to have a look, you can download it from https://extrcdn.extremenetworks.com/wp-content/uploads/2015/05/OneFabric_Connect_API_Reference_Guide... )
    Do you know if there is a more recent documentation?