2017 © Pedro Peláez
 

library netangels-cvds-api

A php library provides remote control for NetAngels cloud VDS hosting.

image

maestroprog/netangels-cvds-api

A php library provides remote control for NetAngels cloud VDS hosting.

  • Saturday, August 12, 2017
  • by maestroprog
  • Repository
  • 1 Watchers
  • 0 Stars
  • 0 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Работа с NetAngels CVDS API

Данная библиотека, написанная на PHP, позволяет работать с NetAngels Cloud VDS API., (*1)

Она позволяет выполнять почти все операции, описанные в документации., (*2)

Принцип работы

Библиотека поделена на классы для работы с разными типами ресурсов API:, (*3)

  • VmApi - реализует управление облачными VDS
  • DiskApi - реализует управление облачными дисками
  • VmsIpApi - получает информацию об IP адресах используемых облачными VDS
  • TariffsApi - позволяет получить список доступных тарифов
  • OsApi - даёт информацию о возможных образах операционных систем для создания облачных VDS

Основной класс Api содержит получение авторизационного токена, и даёт доступ к остальным API классам, (*4)

Сущности Vds и Disk инкапсулируют логику для работы с API, (*5)

Примеры

Для работы с API нужен специальный API ключ, получить его можно в панели NetAngels будучи авторизованным пользователем с подключенной услугой "Облачные VDS"., (*6)

  1. Инициализация библиотеки и получение авторизационного токена., (*7)

    define('API_KEY', '#Ваш API ключ#');
    
    try {
        $netAngelsApi = new \NetAngels\Api(new ApiKey(API_KEY));
    } catch (Exception $e) {
        echo '
    
    

    Не удалось получить авторизационный токен:' . $e->getMessage() . ', (*8)

    '; if ($prev = $e->getPrevious()) { echo '

    ' . nl2br($prev->getMessage()) . ', (*9)

    '; } }

    Далее переменная $netAngelsApi будет использована взеде., (*10)

    При создании нового объекта \NetAngels\Api происходит попытка получения авторизационного токена. Не все API методы требуют авторизационный токен, поэтому можно поймать исключение, и работать дальше с API без токена. API ресурсы, поддерживающе работу без токена: vm-tariffs, os-images, token (получение токена)., (*11)

  2. Создание облачной VDS, (*12)

    // в качестве примера выберем самый начальный тариф
    $tariff = $netAngelsApi->getTariffsApi()->getLowTariff();
    
    // получаем список возможных образов операционных систем, просматриваем его, и выбираем нужный образ
    $images = $netAngelsApi->getOsApi()->getList();
    
    // затем нужно выбрать образ диска с операционной системой
    // допустим, это будет образ с Debian 7 Wheezy LAMP, и архитектурой 64-битной
    $image = \NetAngels\ValueObject\VmImage::custom(2, 64);
    
    // также для облачной VDS потребуется диск, будем создавать SSD диск на 10ГБ
    $disk = new \NetAngels\Entity\SsdDisk($netAngelsApi, 10);
    
    // создаем обланую вдс на основе выбранного образа
    $requisites = (new \NetAngels\Entity\Vds($netAngelsApi,$tariff))->createByImage($image);
    

    После данных манипуляций в переменной $requisites будет находиться объект класса \NetAngels\ValueObject\VmRequisites; после создания новой облачной VDS данный объект хранит IP адрес созданной VDS; а если облачная VDS была создана на основе образа ОС, то этот объект будет хранить также реквизиты пользователей для доступа к данной VDS., (*13)

    Данный код, (*14)

    $users = $requisites->getUsers();
    var_dump($users);
    

    Выведет что-то вроде этого:, (*15)

    object(NetAngels\ValueObject\VmRequisites)[39]
      private 'ip' => string '91.226.83.194' (length=13)
      private 'users' => 
        array (size=2)
          0 => 
            object(NetAngels\ValueObject\VmUser)[41]
              private 'username' => string 'root' (length=4)
              private 'password' => string 'M*************y' (length=15)
          1 => 
            object(NetAngels\ValueObject\VmUser)[40]
              private 'username' => string 'web' (length=3)
              private 'password' => string 'r*************J' (length=15)
    
  3. Получение VDS по ID, (*16)

    $vds = $netAngelsApi->getVmApi()->getVds(777);
    

    В сущностях \Netangels\Entity\Vds и \Netangels\Entity\*Disk\ инкапсулировано API, поэтому операции можно производить прямо с ними:, (*17)

    // переименование VDS
    $vds = $vds->rename('Новое имя');
    // переменной $vds присваивается новый объект VDS с новым именем
    
    // меняем имя и тариф
    
    $vds = $netAngelsApi->getVmApi()->getVds(777)
        ->changeTariff($netAngelsApi->getTariffsApi()->getPowerfulTariff())
        ->rename('Супер-мощная VDS');
    
  4. Простенькая панель для включения/выключения VDS, (*18)

    Находится в примере, (*19)

The Versions

12/08 2017

dev-master

9999999-dev

A php library provides remote control for NetAngels cloud VDS hosting.

  Sources   Download

MIT

The Requires

  • php >=5.6
  • ext-curl *

 

12/08 2017

v1.0

1.0.0.0

A php library provides remote control for NetAngels cloud VDS hosting.

  Sources   Download

MIT

The Requires

  • php >=5.6
  • ext-curl *