Ajout des fonctionnalités de base des images, sans gestion la d'erreurs
This commit is contained in:
parent
37e02d62c4
commit
b39f5c1cd4
1 changed files with 194 additions and 1 deletions
|
@ -1 +1,194 @@
|
|||
|
||||
<?php
|
||||
ini_set('display_errors', 1);
|
||||
date_default_timezone_set("Europe/Paris");
|
||||
|
||||
class Image {
|
||||
|
||||
protected $oidentity;
|
||||
//protected $plugins;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param $openstack
|
||||
*
|
||||
* @param $options
|
||||
*
|
||||
**/
|
||||
public function __construct($ostack, $options){ //, $apiP
|
||||
$this->oidentity = $ostack->imagesV2($options);
|
||||
//$this->plugins = $apiP;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Details about an image
|
||||
*
|
||||
* @param array $opt
|
||||
* options for the image creation
|
||||
*
|
||||
**/
|
||||
public function create_image(array $opt){
|
||||
// VOIR SI MAUVAIS TYPE
|
||||
$options = Array();
|
||||
if(isset($opt['name'])){ // string, rendre le nom obligatoire
|
||||
$options['name'] = $opt['name'];
|
||||
}
|
||||
if(isset($opt['id'])){ // UUID : nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
|
||||
$options['id'] = $opt['id'];
|
||||
}
|
||||
if(isset($opt['visibility'])){ // public, private
|
||||
$options['visibility'] = $opt['visibility'];
|
||||
}
|
||||
if(isset($opt['tags'])){ // list
|
||||
$options['tags'] = $opt['tags'];
|
||||
}
|
||||
if(isset($opt['containerFormat'])){ // string : ami, ari, aki, bare, ovf, ova, docker
|
||||
$options['containerFormat'] = $opt['containerFormat'];
|
||||
}
|
||||
if(isset($opt['diskFormat'])){ // string : ami, ari, aki, vhd, vmdk, raw, qcow2, vdi, iso
|
||||
$options['diskFormat'] = $opt['diskFormat'];
|
||||
}
|
||||
if(isset($opt['minDisk'])){ //int
|
||||
$options['minDisk'] = $opt['minDisk'];
|
||||
}
|
||||
if(isset($opt['minRam'])){ // int
|
||||
$options['minRam'] = $opt['minRam'];
|
||||
}
|
||||
if(isset($opt['protected'])){ // boolean
|
||||
$options['protected'] = $opt['protected'];
|
||||
}
|
||||
if(isset($opt['properties'])){ // type dict ?
|
||||
$options['properties'] = $opt['properties'];
|
||||
}
|
||||
|
||||
$image = $this->oidentity->createImage($options);
|
||||
|
||||
return $image;
|
||||
}
|
||||
|
||||
/*
|
||||
* List images
|
||||
*/
|
||||
public function list_images(){
|
||||
$service = $this->oidentity;
|
||||
$images = $service->listImages();
|
||||
return $images;
|
||||
}
|
||||
|
||||
/**
|
||||
* Details about an image
|
||||
*
|
||||
* @param string $id
|
||||
* identifier of the image
|
||||
*
|
||||
**/
|
||||
public function image_details($id){
|
||||
$service = $this->oidentity;
|
||||
$image = $service->getImage($id);
|
||||
return $image;
|
||||
}
|
||||
|
||||
/**
|
||||
* Details about an image
|
||||
*
|
||||
* @param string $id
|
||||
* id of the image
|
||||
*
|
||||
* @param array $opt
|
||||
* options for the image creation
|
||||
**/
|
||||
public function update_image($id, array $opt){
|
||||
$service = $this->oidentity;
|
||||
$image = $service->getImage($id);
|
||||
$options = Array();
|
||||
|
||||
// Voir vérification des types
|
||||
if(isset($opt['name'])){ //string
|
||||
$options['name'] = $opt['name'];
|
||||
}
|
||||
if(isset($opt['minDisk'])){ //int
|
||||
$options['minDisk'] = $opt['minDisk'];
|
||||
}
|
||||
if(isset($opt['minRam'])){ // int
|
||||
$options['minRam'] = $opt['minRam'];
|
||||
}
|
||||
if(isset($opt['protected'])){ // boolean
|
||||
$options['protected'] = $opt['protected'];
|
||||
}
|
||||
if(isset($opt['visibility'])){ // public, private
|
||||
$options['visibility'] = $opt['visibility'];
|
||||
}
|
||||
if(isset($opt['tags'])){ // list
|
||||
$options['tags'] = $opt['tags'];
|
||||
}
|
||||
$image->update($options);
|
||||
|
||||
return $image;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete an image
|
||||
*
|
||||
* @param string $id
|
||||
* identifier of the image
|
||||
**/
|
||||
public function delete_image($id){
|
||||
$service = $this->oidentity;
|
||||
$service->getImage($id)->delete();
|
||||
}
|
||||
|
||||
/**
|
||||
* Resactive an image
|
||||
*
|
||||
* @param string $id
|
||||
* identifier of the image
|
||||
**/
|
||||
public function reactivate_image($id){
|
||||
$service = $this->oidentity;
|
||||
$image = $service->getImage($id);
|
||||
$image->reactivate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Desactive an image
|
||||
*
|
||||
* @param string $id
|
||||
* identifier of the image
|
||||
**/
|
||||
public function desactivate_image($id){
|
||||
$service = $this->oidentity;
|
||||
$image = $service->getImage($id);
|
||||
$image->deactivate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload an image
|
||||
*
|
||||
* @param string $id
|
||||
* identifier of the image
|
||||
*
|
||||
* @param string $file_name
|
||||
* path of the image
|
||||
**/
|
||||
public function upload_image($id, $file_name){
|
||||
$service = $this->oidentity;
|
||||
$image = $service->getImage($id);
|
||||
$stream = \GuzzleHttp\Psr7\stream_for(fopen($file_name, 'r')); // A VOIR
|
||||
$image->uploadData($stream);
|
||||
}
|
||||
|
||||
/**
|
||||
* Download an image
|
||||
*
|
||||
* @param string $id
|
||||
* identifier of the image
|
||||
*/
|
||||
public function download_image($id){
|
||||
$service = $this->oidentity;
|
||||
$image = $service->getImage($id);
|
||||
$stream = $image->downloadData();
|
||||
return $stream;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
Loading…
Add table
Reference in a new issue