+ Developer Guide Overview

From OSNEXUS Online Documentation Site
Revision as of 16:57, 8 February 2011 by Qadmin (Talk | contribs)

Jump to: navigation, search

QuantaStor was designed from the ground up so that you can develop your own applications to remotely manage your storage systems. That said, if all you need is a simple script to do some provisioning then you should be able to do everything you need just with the QuantaStor Remote Management CLI. The CLI is completely scriptable and has an xml output mode (--xml) so the output is easy to parse with any scripting language. For more advanced integrations we recommend using the QuantaStor WebServices interface directly. This interface allows you to communicate with the storage system using .NET on Windows and via various SOAP implementations on all platforms.

The QuantaStor Manager web interface and QuantaStor Remote Management CLI both manage the QuantaStor storage system via the QuantaStor WebServices / SOAP interface. A copy of the WebServices interface for QuantaStor is included with the SDK and is also included with every QuantaStor system and can be accessed via your web browser by simply entering this URL:

https://<QuantaStor-system-IP-address>:5151/osn.wsdl

For example, if your QuantaStor storage system has an IP address of 192.168.0.88, then you can access the WSDL [Services Definition Language)] file using this URL:

https://192.168.0.88:5151/osn.wsdl

In case you don't have a system handy, you can browse this copy but note you'll want to use the most recent version included with the [SDK] which is available from the downloads page.

What's in the SDK

The SDK includes a sample C# application that allows you to list and provision volumes in a storage system, some getting started documentation, the QuantaStor API/WSDL file, and a storage system simulator.

The QuantaStor Storage System Simulator runs on any Windows box and is installed automatically when you install the SDK package. You can run it from the Start menu in windows or you can run it on the command line with these arguments qs_service.exe --debug and it's up and running. From there you can manage the simulated storage system using the qs CLI or via your custom WebServices client application.

Supported Language / WebServices Compiler

  • C++ (all platforms) / gSOAP 2.7.x
  • Java (all platforms) / Apache Axis 1.4
  • Microsoft C# (Windows) / Microsoft VS WSDL Compiler
  • Microsoft VB (Windows) / Microsoft VS WSDL Compiler

There are other languages such as Python, Perl, PHP, and others that all have WebServices/SOAP implementations and should work fine with QuantaStor but we have as of yet not tested these out. (Note: QuantaStor storage systems utilize gSOAP and Axis internally)

PHP Integration

You can integrate QuantaStor with your web services via PHP using our SOAP/WebServices interface as well. First you'll want to download and install the PHP wsdl compiler [1]. Here's the series of commands to run to install this on an Ubuntu machine, this will vary a bit depending on your linux distro and you'll want to check the wsdl2php web site on sourceforge for the latest version of the compiler.

sudo -i
apt-get update
apt-get install php5-cli php-pear
wget http://superb-sea2.dl.sourceforge.net/project/wsdl2php/wsdl2php/wsdl2php-0.2.1-pear/wsdl2php-0.2.1-pear.tgz
pear install wsdl2php-0.2.1-pear.tgz

Now that you have wsdl2php installed you can compile the osn.wsdl file that is distributed with QuantaStor.

[File:[Service.php]]

C++ SDK System Requirements

You need a Windows system to install the SDK but once you have the included WSDL file you can copy that to any system to do your development from. The simulator only uses about 20M of RAM so you can run it on pretty much anything so the SDK system requirements are very minimal.

Compiling the sample .NET application

Async vs. Sync API calls

Task Monitoring

Event Polling & Registration

Custom Roles

Supported SOAP / WebServices Implementations

  • gSOAP (C++, all platforms)
  • Apache Axis (Java, all platforms)
  • .NET (C# & Visual Basic, Windows)