Skip to content

Instantly share code, notes, and snippets.

@boxbilling
Created February 11, 2012 16:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save boxbilling/1801871 to your computer and use it in GitHub Desktop.
Save boxbilling/1801871 to your computer and use it in GitHub Desktop.
Custom server manager class for BoxBilling
<?php
/**
* BoxBilling
*
* LICENSE
*
* This source file is subject to the license that is bundled
* with this package in the file LICENSE.txt
* It is also available through the world-wide-web at this URL:
* http://www.boxbilling.com/LICENSE.txt
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@boxbilling.com so we can send you a copy immediately.
*
* @copyright Copyright (c) 2010-2012 BoxBilling (http://www.boxbilling.com)
* @license http://www.boxbilling.com/LICENSE.txt
* @version $Id$
*/
class Server_Manager_Custom extends Server_Manager
{
/**
* Method is called just after obejct contruct is complete.
* Add required parameters checks here.
*/
public function init()
{
}
/**
* Return server manager parameters.
* @return type
*/
public static function getForm()
{
return array(
'label' => 'Custom Server Manager',
);
}
/**
* Returns link to account management page
*
* @return string
*/
public function getLoginUrl()
{
return 'http://www.google.com?q=cpanel';
}
/**
* Returns link to reseller account management
* @return string
*/
public function getResellerLoginUrl()
{
return 'http://www.google.com?q=whm';
}
/**
* This method is called to check if configuration is correct
* and class can connect to server
*
* @return boolean
*/
public function testConnection()
{
return TRUE;
}
/**
* MEthods retrieves information from server, assignes new values to
* cloned Server_Account object and returns it.
* @param Server_Account $a
* @return Server_Account
*/
public function synchronizeAccount(Server_Account $a)
{
$this->getLog()->info('Synchronizing account with server '.$a->getUsername());
$new = clone $a;
//@example - retrieve username from server and set it to cloned object
//$new->setUsername('newusername');
return $new;
}
/**
* Create new account on server
*
* @param Server_Account $a
*/
public function createAccount(Server_Account $a)
{
if($a->getReseller()) {
$this->getLog()->info('Creating reseller hosting account');
} else {
$this->getLog()->info('Creating shared hosting account');
}
}
/**
* Suspend account on server
* @param Server_Account $a
*/
public function suspendAccount(Server_Account $a)
{
if($a->getReseller()) {
$this->getLog()->info('Suspending reseller hosting account');
} else {
$this->getLog()->info('Suspending shared hosting account');
}
}
/**
* Unsuspend account on server
* @param Server_Account $a
*/
public function unsuspendAccount(Server_Account $a)
{
if($a->getReseller()) {
$this->getLog()->info('Unsuspending reseller hosting account');
} else {
$this->getLog()->info('Unsuspending shared hosting account');
}
}
/**
* Cancel account on server
* @param Server_Account $a
*/
public function cancelAccount(Server_Account $a)
{
if($a->getReseller()) {
$this->getLog()->info('Canceling reseller hosting account');
} else {
$this->getLog()->info('Canceling shared hosting account');
}
}
/**
* Change account package on server
* @param Server_Account $a
* @param Server_Package $p
*/
public function changeAccountPackage(Server_Account $a, Server_Package $p)
{
if($a->getReseller()) {
$this->getLog()->info('Updating reseller hosting account');
} else {
$this->getLog()->info('Updating shared hosting account');
}
$p->getName();
$p->getQuota();
$p->getBandwidth();
$p->getMaxSubdomains();
$p->getMaxParkedDomains();
$p->getMaxDomains();
$p->getMaxFtp();
$p->getMaxSql();
$p->getMaxPop();
$p->getCustomValue('param_name');
}
/**
* Change account username on server
* @param Server_Account $a
* @param type $new - new account username
*/
public function changeAccountUsername(Server_Account $a, $new)
{
if($a->getReseller()) {
$this->getLog()->info('Changing reseller hosting account username');
} else {
$this->getLog()->info('Changing shared hosting account username');
}
}
/**
* Change account domain on server
* @param Server_Account $a
* @param type $new - new domain name
*/
public function changeAccountDomain(Server_Account $a, $new)
{
if($a->getReseller()) {
$this->getLog()->info('Changing reseller hosting account domain');
} else {
$this->getLog()->info('Changing shared hosting account domain');
}
}
/**
* Change account password on server
* @param Server_Account $a
* @param type $new - new password
*/
public function changeAccountPassword(Server_Account $a, $new)
{
if($a->getReseller()) {
$this->getLog()->info('Changing reseller hosting account password');
} else {
$this->getLog()->info('Changing shared hosting account password');
}
}
/**
* Change account IP on server
* @param Server_Account $a
* @param type $new - account IP
*/
public function changeAccountIp(Server_Account $a, $new)
{
if($a->getReseller()) {
$this->getLog()->info('Changing reseller hosting account ip');
} else {
$this->getLog()->info('Changing shared hosting account ip');
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment