京东云

This commit is contained in:
“wanyongkang”
2024-05-28 17:04:50 +08:00
parent f644932afb
commit f3c7432100
672 changed files with 209344 additions and 6593 deletions

View File

@@ -0,0 +1,75 @@
<?php
namespace Jdcloud\Test\Disk;
use Jdcloud\Credentials\Credentials;
use Jdcloud\Result;
use Jdcloud\Disk\DiskClient;
use PHPUnit\Framework\TestCase;
use Jdcloud\Endpoint\EndpointProvider;
/**
* @covers Jdcloud\Disk\DiskClient
*/
class DiskClientTest extends TestCase
{
private function getCred(){
$ak = getenv('PHP_TEST_AK');
$sk = getenv('PHP_TEST_SK');
print("KEY" . $ak . " sk: " . $sk);
$cred = new Credentials($ak, $sk);
return $cred;
}
public function testDescribeDisks()
{
$fix_endpoint = EndpointProvider::patterns([
'*/*' => ['endpoint' => 'disk.cn-north-1.jdcloud-api.com']
]);
$client = new DiskClient([
'credentials' => $this->getCred(),
'version' => 'latest',
'endpoint_provider' => $fix_endpoint,
'scheme' => 'http'
]);
try{
$res = $client->describeDisks([
'regionId' => 'cn-north-1',
'pageNumber' => '1',
'pageSize' => '10',
'filters' => [
// [
// 'name' => 'diskType',
// 'values' => ['ssd', 'premium-hdd']
// ],
[
'name' => 'az',
'values' => ['cn-north-1a']
]
],
// 'tags' => [
// [
// 'key' => 'diskType',
// 'values' => ['ssd', 'premium-hdd']
// ],
// [
// 'key' => 'az',
// 'values' => ['cn-north-1']
// ]
// ]
]);
var_dump($res);
$this->assertNotNull($res);
$this->assertNotNull($res['requestId']);
$this->assertNotNull($res['result']);
$this->assertNotNull($res['result']['totalCount']);
}catch (\Jdcloud\Exception\JdcloudException $e) {
print("ERROR");
var_dump($e->getMessage());
$this->assertFalse(true);
}
}
}

View File

@@ -0,0 +1,89 @@
<?php
namespace Jdcloud\Test\Kms;
use Jdcloud\Credentials\Credentials;
use Jdcloud\Result;
use Jdcloud\Kms\KmsClient;
use PHPUnit\Framework\TestCase;
use Jdcloud\Endpoint\EndpointProvider;
/**
* @covers Jdcloud\Kms\KmsClient
*/
class KmsClientTest extends TestCase
{
private function getCred(){
$ak = getenv('PHP_TEST_AK');
$sk = getenv('PHP_TEST_SK');
print("KEY" . $ak . " sk: " . $sk);
$cred = new Credentials($ak, $sk);
return $cred;
}
public function testDescribeKeyDetail()
{
$fix_endpoint = EndpointProvider::patterns([
'*/*' => ['endpoint' => 'kms.cn-north-1.jdcloud-api.com']
]);
$client = new KmsClient([
'credentials' => $this->getCred(),
'version' => 'latest',
'endpoint_provider' => $fix_endpoint,
'scheme' => 'http'
]);
try{
$res = $client->describeKeyDetail([
'regionId' => 'cn-north-1',
'keyId' => 'gl2qchfl44k87orz'
]);
var_dump($res);
$this->assertNotNull($res);
$this->assertNotNull($res['requestId']);
$this->assertNotNull($res['result']);
$this->assertNotNull($res['result']['keyDetail']);
$this->assertNotNull($res['result']['keyDetail']['keyName']);
}catch (\Jdcloud\Exception\JdcloudException $e) {
print("ERROR");
var_dump($e->getMessage());
$this->assertFalse(true);
}
}
public function testDescribeKmss()
{
$fix_endpoint = EndpointProvider::patterns([
'*/*' => ['endpoint' => 'kms.cn-north-1.jdcloud-api.com']
]);
$client = new KmsClient([
'credentials' => $this->getCred(),
'version' => 'latest',
'endpoint_provider' => $fix_endpoint,
'scheme' => 'http'
]);
try{
$res = $client->describeKeyList([
'regionId' => 'cn-north-1',
'pageNumber' => '1',
'pageSize' => '10'
]);
var_dump($res);
$this->assertNotNull($res);
$this->assertNotNull($res['requestId']);
$this->assertNotNull($res['result']);
$this->assertNotNull($res['result']['keyList']);
}catch (\Jdcloud\Exception\JdcloudException $e) {
print("ERROR");
var_dump($e->getMessage());
$this->assertFalse(true);
}
}
}

View File

@@ -0,0 +1,87 @@
<?php
namespace Jdcloud\Test\Monitor;
use Jdcloud\Credentials\Credentials;
use Jdcloud\Result;
use Jdcloud\Monitor\MonitorClient;
use PHPUnit\Framework\TestCase;
use Jdcloud\Endpoint\EndpointProvider;
/**
* @covers Jdcloud\Monitor\MonitorClient
*/
class MonitorClientTest extends TestCase
{
private function getCred(){
$ak = getenv('PHP_TEST_AK');
$sk = getenv('PHP_TEST_SK');
print("KEY" . $ak . " sk: " . $sk);
$cred = new Credentials($ak, $sk);
return $cred;
}
public function testdescribeMetrics()
{
$client = new MonitorClient([
'credentials' => $this->getCred(),
'version' => 'latest',
'scheme' => 'http'
]);
try{
$res = $client->describeMetrics([
'regionId' => 'cn-north-1',
'serviceCode' => 'vm',
]);
var_dump($res);
$this->assertNotNull($res);
$this->assertNotNull($res['requestId']);
$this->assertNotNull($res['result']);
$this->assertNotNull($res['result']['metrics']);
}catch (\Jdcloud\Exception\JdcloudException $e) {
print("ERROR");
var_dump($e->getMessage());
$this->assertFalse(true);
}
}
// public function testcreateAlarm()
// {
// $client = new MonitorClient([
// 'credentials' => $this->getCred(),
// 'version' => 'latest',
// 'scheme' => 'http'
// ]);
// try{
// $res = $client->createAlarm([
// 'regionId' => 'cn-north-1',
// 'clientToken' => 'dsf4safd6hjsfssdf567jaf',
// 'createAlarmSpec' => [
// 'serviceCode' => 'vm',
// 'resourceIds' => ['i-p1jsfkbki8'],
// 'metric' => 'cpu_util',
// 'period' => 2,
// 'calculation' => 'max',
// 'operation' => '==',
// 'serviceCode' => 'vm',
// 'threshold' => 100.0,
// 'times' => 1,
// ]
// ]);
// var_dump($res);
// $this->assertNotNull($res);
// $this->assertNotNull($res['requestId']);
// $this->assertNotNull($res['result']);
// }catch (\Jdcloud\Exception\JdcloudException $e) {
// print("ERROR");
// var_dump($e->getMessage());
// $this->assertFalse(true);
// }
// }
}

View File

@@ -0,0 +1,48 @@
<?php
namespace Jdcloud\Test\Mps;
use Jdcloud\Credentials\Credentials;
use Jdcloud\Result;
use Jdcloud\Mps\MpsClient;
use PHPUnit\Framework\TestCase;
use Jdcloud\Endpoint\EndpointProvider;
/**
* @covers Jdcloud\Mps\MpsClient
*/
class MpsClientTest extends TestCase
{
private function getCred(){
$ak = getenv('PHP_TEST_AK');
$sk = getenv('PHP_TEST_SK');
print("KEY" . $ak . " sk: " . $sk);
$cred = new Credentials($ak, $sk);
return $cred;
}
public function testDescribeMpss()
{
$client = new MpsClient([
'credentials' => $this->getCred(),
'version' => 'latest',
'scheme' => 'http'
]);
try{
$res = $client->listThumbnailTask([
'regionId' => 'cn-north-1'
]);
var_dump($res);
$this->assertNotNull($res);
$this->assertNotNull($res['requestId']);
$this->assertNotNull($res['result']);
$this->assertNotNull($res['result']['limit']);
}catch (\Jdcloud\Exception\JdcloudException $e) {
print("ERROR");
var_dump($e->getMessage());
$this->assertFalse(true);
}
}
}

View File

@@ -0,0 +1,156 @@
<?php
namespace Jdcloud\Test;
use Jdcloud\JdcloudClientInterface;
use Jdcloud\Exception\JdcloudException;
use Jdcloud\MockHandler;
use Jdcloud\Result;
use Jdcloud\Sdk;
use Jdcloud\Api\Service;
/**
* @internal
*/
trait UsesServiceTrait
{
private $_mock_handler;
/**
* Creates an instance of the Jdcloud SDK for a test
*
* @param array $args
*
* @return Sdk
*/
private function getTestSdk(array $args = [])
{
return new Sdk($args + [
'region' => 'cn-north-1',
'version' => 'latest',
'retries' => 0
]);
}
/**
* Creates an instance of a service client for a test
*
* @param string $service
* @param array $args
*
* @return JdcloudClientInterface
*/
private function getTestClient($service, array $args = [])
{
// Disable network access. If the INTEGRATION envvar is set, then this
// disabling is not done.
if (!isset($_SERVER['INTEGRATION'])
&& !isset($args['handler'])
&& !isset($args['http_handler'])
) {
$this->_mock_handler = $args['handler'] = new MockHandler([]);
}
return $this->getTestSdk($args)->createClient($service);
}
/**
* Queues up mock Result objects for a client
*
* @param JdcloudClientInterface $client
* @param Result[]|array[] $results
* @param callable $onFulfilled Callback to invoke when the return value is fulfilled.
* @param callable $onRejected Callback to invoke when the return value is rejected.
*
* @return JdcloudClientInterface
*/
private function addMockResults(
JdcloudClientInterface $client,
array $results,
callable $onFulfilled = null,
callable $onRejected = null
) {
foreach ($results as &$res) {
if (is_array($res)) {
$res = new Result($res);
}
}
$this->_mock_handler = new MockHandler($results, $onFulfilled, $onRejected);
$client->getHandlerList()->setHandler($this->_mock_handler);
return $client;
}
private function mockQueueEmpty()
{
return 0 === count($this->_mock_handler);
}
/**
* Creates a mock CommandException with a given error code
*
* @param string $code
* @param string $type
* @param string|null $message
*
* @return JdcloudException
*/
private function createMockJdcloudException(
$code = null,
$type = null,
$message = null
) {
$code = $code ?: 'ERROR';
$type = $type ?: 'Jdcloud\Exception\JdcloudException';
$client = $this->getMockBuilder('Jdcloud\JdcloudClientInterface')
->setMethods(['getApi'])
->getMockForAbstractClass();
$client->expects($this->any())
->method('getApi')
->will($this->returnValue(
new Service(
[
'metadata' => [
'endpointPrefix' => 'foo',
'apiVersion' => 'version'
]
],
function () { return []; }
)));
return new $type(
$message ?: 'Test error',
$this->getMockBuilder('Jdcloud\CommandInterface')->getMock(),
[
'message' => $message ?: 'Test error',
'code' => $code
]
);
}
/**
* Verifies an operation alias returns the expected types
*
* @param JdcloudClientInterface $client
* @param string $operation
* @param array $params
*/
private function verifyOperationAlias(
$client,
$operation,
$params
) {
$this->addMockResults($client, [new Result()]);
$output = $client->{$operation}($params);
if (substr($operation, -5) === 'Async') {
$this->assertFalse($this->mockQueueEmpty());
$this->assertInstanceOf('GuzzleHttp\\Promise\\PromiseInterface', $output);
$output = $output->wait();
$this->assertTrue($this->mockQueueEmpty());
}
$this->assertInstanceOf(Result::class, $output);
$this->assertTrue($this->mockQueueEmpty());
}
}

View File

@@ -0,0 +1,199 @@
<?php
namespace Jdcloud\Test\Vm;
use Jdcloud\Credentials\Credentials;
use Jdcloud\Result;
use Jdcloud\Vm\VmClient;
use PHPUnit\Framework\TestCase;
use Jdcloud\Endpoint\EndpointProvider;
use GuzzleHttp\Promise;
/**
* @covers Jdcloud\Vm\VmClient
*/
class VmClientTest extends TestCase
{
private function getCred(){
$ak = getenv('PHP_TEST_AK');
$sk = getenv('PHP_TEST_SK');
print("KEY" . $ak . " sk: " . $sk);
$cred = new Credentials($ak, $sk);
return $cred;
}
public function testDescribeInstances()
{
$vm = new VmClient([
'credentials' => $this->getCred(),
'version' => 'latest',
'scheme' => 'http'
]);
try{
$res = $vm->describeInstances([
'regionId' => 'cn-north-1',
]);
var_dump($res);
$this->assertNotNull($res);
$this->assertNotNull($res['requestId']);
$this->assertNotNull($res['result']);
$this->assertNotNull($res['result']['instances']);
}catch (\Jdcloud\Exception\JdcloudException $e) {
print("ERROR");
var_dump($e->getMessage());
$this->assertFalse(true);
}
}
public function testdescribeInstanceTypes()
{
$vm = new VmClient([
'credentials' => $this->getCred(),
'version' => 'latest',
// 'debug' => [
// 'logfn' => function ($msg) { echo $msg . "\n"; },
// 'stream_size' => 0,
// 'scrub_auth' => true,
// 'http' => true,
// 'auth_headers' => [
// 'X-My-Secret-Header' => '[XXX]',
// ],
// 'auth_strings' => [
// '/SuperSecret=[A-Za-z0-9]{20}/i' => 'SuperSecret=[REDACTED]',
// ],
// ],
'scheme' => 'http'
]);
try{
$res = $vm->describeInstanceTypes([
'Filters' => 'cn-north-1',
'regionId' => 'cn-north-1',
]);
var_dump($res);
$this->assertNotNull($res);
$this->assertNotNull($res['requestId']);
$this->assertNotNull($res['result']);
$this->assertNotNull($res['result']['specificInstanceTypes']);
}catch (\Jdcloud\Exception\JdcloudException $e) {
print("ERROR");
var_dump($e->getMessage());
$this->assertFalse(true);
}
}
public function testdescribeInstanceTypesAsync()
{
$vm = new VmClient([
'credentials' => $this->getCred(),
'version' => 'latest',
'scheme' => 'http'
]);
try{
$promise = $vm->describeInstanceTypesAsync([
'regionId' => 'cn-north-1',
]);
// $promise->then(
// function ($res) {
// echo "The promise was fulfilled";
// var_dump($res);
// $this->assertNotNull($res);
// $this->assertNotNull($res['requestId']);
// $this->assertNotNull($res['result']);
// },
// function ($reason) {
// echo "The promise was rejected";
// var_dump($reason);
// }
// );
$results = $promise->wait();
var_dump($results);
$this->assertNotNull($results);
$this->assertNotNull($results['requestId']);
$this->assertNotNull($results['result']);
$this->assertNotNull($results['result']['instanceTypes']);
}catch (\Jdcloud\Exception\JdcloudException $e) {
print("ERROR");
var_dump($e->getMessage());
$this->assertFalse(true);
}
}
public function testDescribeInstance()
{
$vm = new VmClient([
'credentials' => $this->getCred(),
'version' => 'latest',
'scheme' => 'http'
]);
try{
$res = $vm->describeInstance([
'instanceId' => 'i-blrvxfiytm',
'regionId' => 'cn-north-1',
]);
var_dump($res);
$this->assertNotNull($res);
$this->assertNotNull($res['requestId']);
$this->assertNotNull($res['result']);
$this->assertNotNull($res['result']['instance']);
$this->assertNotNull($res['result']['instance']['instanceId']);
}catch (\Jdcloud\Exception\JdcloudException $e) {
print("ERROR");
var_dump($e->getMessage());
$this->assertFalse(true);
}
}
// public function testCreateInstances()
// {
// $vm = new VmClient([
// 'credentials' => $this->getCred(),
// 'version' => 'latest',
// 'scheme' => 'http'
// ]);
// try{
// $res = $vm->createInstances([
// 'regionId' => 'cn-north-1',
// 'instanceSpec' => [
// 'az' => 'cn-north-1a',
// 'imageId' => '8e187a0a-ea7c-4ad1-ba32-f21e52fb8926',
// 'instanceType' => 'g.n2.medium',
// 'name' => 'phpcreate',
// 'primaryNetworkInterface' => [
// 'networkInterface' => [
// 'subnetId' => 'subnet-ll47yy373i'
// ]
// ],
// 'systemDisk' => [
// 'diskCategory' => 'local'
// ]
// ]
// ]);
// print_r($res);
// print("Request Id: ". $res['requestId']. "\n");
// print_r($res['result']);
// $this->assertNotNull($res);
// $this->assertNotNull($res['requestId']);
// $this->assertNotNull($res['result']);
// }catch (\Jdcloud\Exception\JdcloudException $e) {
// print("Detail Message: " . $e->getMessage(). "\n");
// print("Request Id: ". $e->getJdcloudRequestId(). "\n");
// print("Error Type: ". $e->getJdcloudErrorType(). "\n");
// print("Error Code: " . $e->getJdcloudErrorCode(). "\n");
// print("Error Detail Status: ". $e->getJdcloudErrorStatus(). "\n");
// print("Error Detail Message: ". $e->getJdcloudErrorMessage(). "\n");
// $this->assertFalse(true);
// }
// }
}

View File

@@ -0,0 +1,80 @@
<?php
namespace Jdcloud\Test\Vpc;
use Jdcloud\Credentials\Credentials;
use Jdcloud\Result;
use Jdcloud\Vpc\VpcClient;
use PHPUnit\Framework\TestCase;
use Jdcloud\Endpoint\EndpointProvider;
/**
* @covers Jdcloud\Vpc\VpcClient
*/
class VpcClientTest extends TestCase
{
private function getCred(){
$ak = getenv('PHP_TEST_AK');
$sk = getenv('PHP_TEST_SK');
print("KEY" . $ak . " sk: " . $sk);
$cred = new Credentials($ak, $sk);
return $cred;
}
public function testModifyVpc()
{
$client = new VpcClient([
'credentials' => $this->getCred(),
'version' => 'latest',
'scheme' => 'http'
]);
try{
$res = $client->modifyVpc([
'regionId' => 'cn-north-1',
'vpcId' => 'vpc-ouzf97gizz',
'description' => date("Y/m/d")
]);
var_dump($res);
$this->assertNotNull($res);
$this->assertNotNull($res['requestId']);
}catch (\Jdcloud\Exception\JdcloudException $e) {
print("ERROR");
var_dump($e->getMessage());
$this->assertFalse(true);
}
}
// public function testDescribeVpcs()
// {
// $fix_endpoint = EndpointProvider::patterns([
// '*/*' => ['endpoint' => 'vpc.cn-north-1.jdcloud-api.com']
// ]);
// $client = new VpcClient([
// 'credentials' => $this->getCred(),
// 'version' => 'latest',
// 'endpoint_provider' => $fix_endpoint,
// 'scheme' => 'http'
// ]);
// try{
// $res = $client->describeVpcs([
// 'regionId' => 'cn-north-1',
// 'pageNumber' => '1',
// 'pageSize' => '10'
// ]);
// var_dump($res);
// $this->assertNotNull($res);
// $this->assertNotNull($res['requestId']);
// $this->assertNotNull($res['result']);
// $this->assertNotNull($res['result']['totalCount']);
// }catch (\Jdcloud\Exception\JdcloudException $e) {
// print("ERROR");
// var_dump($e->getMessage());
// $this->assertFalse(true);
// }
// }
}

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="Full Composer Test Suite">
<directory>./Disk/</directory>
<directory>./Kms/</directory>
</testsuite>
</testsuites>
</phpunit>