Netcup VCP Webservice
Aus netcup Wiki
SOAP WebService
Inhaltsverzeichnis |
Web Service Methods
WSDL: https://www.vservercontrolpanel.de/WSEndUser?wsdl
getVServers
Parameter:
loginName = Loginname password = Password
Return:
Strings []
startVServer
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
WebServiceSimpleResult
stopVServer
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
WebServiceSimpleResult
getVServerState
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
String [online|offline]
getVServerLoad
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
String load (1min, 5min, 15min)
getVServerUptime
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
String uptime in seconds
getVServerProcesses
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
String
getVServerIPs
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
String[]
getFirewall
Parameter:
loginName : Loginname password : Password vserverName : String
Return:
FilterObject[]
addFirewallRule
Parameter:
loginName : Loginname password : Password vserverName : String rule : FilterObject[]
Es empfiehlt sich möglichst viele Regeln auf einmal hinzuzufügen, da dies die Skriptlaufzeit erheblich reduziert.
Return:
WebServiceSimpleResult
deleteFirewallRule
Parameter:
loginName : Loginname password : Password vserverName : String rule : FilterObject[]
Es empfiehlt sich möglichst viele Regeln auf einmal zu löschen, da dies die Skriptlaufzeit erheblich reduziert.
Return:
WebServiceSimpleResult
Web Service Objects
WebServiceSimpleResult
success : boolean message : String
Sobald der Request erfogreich war, ist "success" wahr. Wenn "success" unwahr ist, so steht in der message eine entsprechende Fehlermeldung.
FilterObject
id : String (interne ID) direction : String (INPUT | OUTPUT) proto : String (any|tcp|udp|icmp) target : String (ACCEPT|REJECT|DROP) srcIP : String (IPv4 oder IPv6 IP) srcPort : String (1-65535) destIP : String (IPv4 oder IPv6 IP) destPort : String (1-65535) match : String (STATE|ICMP|LIMIT) matchValue : String ([NEW,ESTABLISGED,RELEATED]|ICMP Code|Limit value) srcPortRange : String (Wenn gesetzt, dann muss der Wert größer sein als srcPort) destPortRange : String (Wenn gesetzt, dann muss der Wert größer sein als destPort) sort : String valid : String (regel ist gültig)
Beim anlegen benötigte Parameter:
direction, target, srcIP oder destIP
Beim anlegen ungültige Parameter:
valid, id
PHP Klasse
<?php
ini_set('default_socket_timeout',360);
class VcpWebServiceEndUser {
private $wsdl_url = 'https://www.vservercontrolpanel.de/WSEndUser?wsdl';
private $soap_client;
private $loginname;
private $password;
public function getArrayFrom2DWebServiceStringArray($webServiceResultArray) {
$phpArray = array();
foreach ($webServiceResultArray->return as $globalArray) {
$phpArray[$globalArray->item[0]] = $globalArray->item[1];
}
return $phpArray;
}
function __construct($loginname, $password) {
$this->loginname = $loginname;
$this->password = $password;
$this->soap_client = new SOAPClient($this->wsdl_url, array('cache_wsdl' => 0));
// TODO error if no connection to soap server ...
}
/**
*
* @param String $vserverName needed
* @return String if action deleteVServer successfully started return actionId else return errorMessage
*/
public function getVServers() {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
);
$getVServerResult = $this->soap_client->getVServers($params);
return $getVServerResult->return;
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String
*/
public function getVServerState($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
$startVServerResult = $this->soap_client->getVServerState($params);
return $startVServerResult->return;
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String
*/
public function getVServerLoad($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
$startVServerResult = $this->soap_client->getVServerLoad($params);
return $startVServerResult->return;
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String
*/
public function getVServerUptime($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
$startVServerResult = $this->soap_client->getVServerUptime($params);
return $startVServerResult->return;
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String[]
*/
public function getVServerIPs($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
$startVServerResult = $this->soap_client->getVServerIPs($params);
return $startVServerResult->return;
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String if action deleteVServer successfully started return actionId else return errorMessage
*/
public function startVServer($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
$startVServerResult = $this->soap_client->startVServer($params);
if ($startVServerResult->return->success) {
return $startVServerResult->return->exceptionMessage;
} else {
if ($startVServerResult->return->exceptionMessage != NULL) {
return $startVServerResult->return->exceptionMessage;
} else {
return "undefined error";
}
}
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String if action deleteVServer successfully started return actionId else return errorMessage
*/
public function stopVServer($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
$stopVServerResult = $this->soap_client->stopVServer($params);
if ($stopVServerResult->return->success) {
return $stopVServerResult->return->exceptionMessage;
} else {
if ($stopVServerResult->return->exceptionMessage != NULL) {
return $stopVServerResult->return->exceptionMessage;
} else {
return "undefined error";
}
}
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String if action deleteVServer successfully started return actionId else return errorMessage
*/
public function getFirewall($vserverName) {
try {
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName
);
return$this->soap_client->getFirewall($params);
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
/**
*
* @param String $vserverName needed
* @return String if action deleteVServer successfully started return actionId else return errorMessage
*/
public function addFirewallRule($vserverName, $direction, $proto, $srcip, $srcport, $srcportrange, $destip, $destport, $destportrange, $match, $matchvalue, $target) {
try {
$rule_params = array(
'direction' => $direction, // string needed
'proto' => $proto, // string needed
'srcIP' => $srcip,
'srcPort' => $srcport,
'destIP' => $destip,
'destPort' => $destport,
'match' => $match,
'matchValue' => $matchvalue,
'srcPortRange' => $srcportrange,
'destPortRange' => $destportrange,
'target' => $target,
'valid' => false,
'id' => 0,
);
$params = array(
'loginName' => $this->loginname,
'password' => $this->password,
'vserverName' => $vserverName,
'rule' => array($rule_params),
);
return $this->soap_client->addFirewallRule($params);
} catch (Exception $e) {
return "Exception occured: " . $e->getMessage();
}
}
}
?>
PHP Anwendungsbeispiele
getVServers
$vcpWebServiceEndUser = new VcpWebServiceEndUser("<VCPLOGINNAME>", "<VCPLOGINPASSWORD>");
var_dump($vcpWebServiceEndUser->getVServers());