Begin work on DBaaS classes.
This commit is contained in:
@@ -27,20 +27,89 @@ SOFTWARE.
|
|||||||
|
|
||||||
namespace HPCloud\Services;
|
namespace HPCloud\Services;
|
||||||
|
|
||||||
|
use \HPCloud\Services\DBaaS\Instance;
|
||||||
|
use \HPCloud\Services\DBaaS\Snapshot;
|
||||||
|
|
||||||
class DBaaS {
|
class DBaaS {
|
||||||
|
|
||||||
public static function newFromServiceCatalog($catalog, $token) {
|
/**
|
||||||
|
* The auth token for the current session.
|
||||||
|
*/
|
||||||
|
protected $token;
|
||||||
|
/**
|
||||||
|
* The base URL to the DBaaS for a given account.
|
||||||
|
*/
|
||||||
|
protected $url;
|
||||||
|
/**
|
||||||
|
* The tenant name.
|
||||||
|
*
|
||||||
|
* Typically, this is an email address.
|
||||||
|
*/
|
||||||
|
protected $projectId;
|
||||||
|
|
||||||
|
public static function newFromIdentity($identity) {
|
||||||
|
|
||||||
|
$endpoint = 'https://region-a.geo-1.dbaas-mysql.hpcloudsvc.com:443/v1.0/' . $identity->tenantId();
|
||||||
|
$dbaas = new DBaaS($identity->token(), $endpoint, $identity->tenantName());
|
||||||
|
|
||||||
|
return $dbaas;
|
||||||
|
/*
|
||||||
|
return self::newFromServiceCatalog(
|
||||||
|
$identity->serviceCatalog(),
|
||||||
|
$identity->token(),
|
||||||
|
$identity->tenantName()
|
||||||
|
);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __construct($token, $endpoint) {
|
public static function newFromServiceCatalog($catalog, $token, $projectId) {
|
||||||
|
// FIXME: Temporary until DBaaS lands in the service catalog.
|
||||||
|
$endpoint = 'https://region-a.geo-1.dbaas-mysql.hpcloudsvc.com:443/v1.0/';
|
||||||
|
return new DBaaS($token, $endpoint, $projectId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build a new DBaaS object.
|
||||||
|
*
|
||||||
|
* @param string $token
|
||||||
|
* The auth token from identity services.
|
||||||
|
* @param string $endpoint
|
||||||
|
* The endpoint URL, typically from IdentityServices.
|
||||||
|
* @param string $projectId
|
||||||
|
* The project ID. Typically, this is the tenant name.
|
||||||
|
*/
|
||||||
|
public function __construct($token, $endpoint, $projectId) {
|
||||||
|
$this->token = $token;
|
||||||
|
$this->url= $endpoint;
|
||||||
|
$this->projectId = $projectId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function instance() {
|
public function instance() {
|
||||||
|
return new Instance($this->token, $this->projectId, $this->url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function snapshot() {
|
public function snapshot() {
|
||||||
|
return new Snapshot($this->token, $this->projectId, $this->url);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the project ID for this session.
|
||||||
|
*
|
||||||
|
* @retval string
|
||||||
|
* The project ID.
|
||||||
|
*/
|
||||||
|
public function projectId() {
|
||||||
|
return $this->projectId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the endpoint URL to the DBaaS session.
|
||||||
|
*
|
||||||
|
* @retval string
|
||||||
|
* The URL.
|
||||||
|
*/
|
||||||
|
public function url() {
|
||||||
|
return $this->url;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
67
src/HPCloud/Services/DBaaS/Instance.php
Normal file
67
src/HPCloud/Services/DBaaS/Instance.php
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
/* ============================================================================
|
||||||
|
(c) Copyright 2012 Hewlett-Packard Development Company, L.P.
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge,publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
============================================================================ */
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
*
|
||||||
|
* This file contains the DBaaS Instance class.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace HPCloud\Services\DBaaS;
|
||||||
|
|
||||||
|
class Instance {
|
||||||
|
|
||||||
|
protected $token;
|
||||||
|
protected $projectId;
|
||||||
|
protected $url;
|
||||||
|
|
||||||
|
public function __construct($token, $projectId, $endpoint) {
|
||||||
|
$this->token = $token;
|
||||||
|
$this->projectId = $projectId;
|
||||||
|
$this->url = $endpoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function describe($instanceId) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function listInstances() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create($name, $flavor = 'medium', $port = NULL, $typeSpec = NULL) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete($instanceId) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function restart($instanceId) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reset the primary password on this instance.
|
||||||
|
*
|
||||||
|
* @retval string
|
||||||
|
* The new (autogenerated) password.
|
||||||
|
*/
|
||||||
|
public function resetPassword($instanceId) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
31
src/HPCloud/Services/DBaaS/InstanceDetails.php
Normal file
31
src/HPCloud/Services/DBaaS/InstanceDetails.php
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
/* ============================================================================
|
||||||
|
(c) Copyright 2012 Hewlett-Packard Development Company, L.P.
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge,publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
============================================================================ */
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
*
|
||||||
|
* This file contains the HPCloud::DBaaS::InstanceDetails class.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace HPCloud\Services\DBaaS;
|
||||||
|
|
||||||
|
class InstanceDetails {
|
||||||
|
}
|
||||||
54
src/HPCloud/Services/DBaaS/Snapshot.php
Normal file
54
src/HPCloud/Services/DBaaS/Snapshot.php
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
/* ============================================================================
|
||||||
|
(c) Copyright 2012 Hewlett-Packard Development Company, L.P.
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge,publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
============================================================================ */
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
*
|
||||||
|
* This file contains the DBaaS Snapshot class.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace HPCloud\Services\DBaaS;
|
||||||
|
|
||||||
|
class Snapshot {
|
||||||
|
|
||||||
|
protected $token;
|
||||||
|
protected $projectId;
|
||||||
|
protected $url;
|
||||||
|
|
||||||
|
public function __construct($token, $projectId, $endpoint) {
|
||||||
|
$this->token = $token;
|
||||||
|
$this->projectId = $projectId;
|
||||||
|
$this->url = $endpoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function listSnapshots($instanceId = NULL) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create($instanceId, $name) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete($snapshotId) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function fetch($snapshotId) {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
31
src/HPCloud/Services/DBaaS/SnapshotDetails.php
Normal file
31
src/HPCloud/Services/DBaaS/SnapshotDetails.php
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
/* ============================================================================
|
||||||
|
(c) Copyright 2012 Hewlett-Packard Development Company, L.P.
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge,publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
============================================================================ */
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
*
|
||||||
|
* This file contains the HPCloud::DBaaS::SnapshotDetails class.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace HPCloud\Services\DBaaS;
|
||||||
|
|
||||||
|
class SnapshotDetails {
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user