108 lines
2.3 KiB
PHP
108 lines
2.3 KiB
PHP
<?php
|
|
ini_set('display_errors', 1);
|
|
date_default_timezone_set("Europe/Paris");
|
|
//require '../vendor/autoload.php';
|
|
|
|
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;
|
|
}
|
|
|
|
public function create_image(array $opt){
|
|
$service = $openstack->imagesV2();
|
|
|
|
// OPTIONS A VOIR
|
|
$image = $service->createImage([
|
|
'name' => $opt[name],
|
|
'tags' => ['{tag1}', '{tag2}'], // A VOIR
|
|
'containerFormat' => $opt[containerFormat],
|
|
'diskFormat' => $opt[diskFormat],
|
|
'visibility' => $opt[visibility],
|
|
'minDisk' => 10,
|
|
'protected' => true,
|
|
'minRam' => 10,
|
|
]);
|
|
|
|
return $image;
|
|
}
|
|
|
|
/*
|
|
* List images
|
|
*/
|
|
public function list_images(){
|
|
$images = $this->oidentity->listImages();
|
|
return $images;
|
|
}
|
|
|
|
|
|
public function image_details($id){
|
|
$service = $openstack->imagesV2();
|
|
$image = $service->getImage($id);
|
|
return $image;
|
|
}
|
|
|
|
|
|
public function update_image($id, array $opt){
|
|
$service = $openstack->imagesV2();
|
|
|
|
//OPTIONS A VOIR
|
|
$image = $service->getImage($id);
|
|
$image->update([
|
|
'minDisk' => 1,
|
|
'minRam' => 1,
|
|
'name' => $opt[name],
|
|
'protected' => false,
|
|
'visibility' => $opt[visibility],
|
|
]);
|
|
|
|
return $image;
|
|
}
|
|
|
|
// RETOUR A VOIR
|
|
public function delete_image($name){
|
|
$openstack->imagesV2()->getImage($name)->delete();
|
|
}
|
|
|
|
// RETOUR A VOIR
|
|
public function reactivate_image($id){
|
|
$service = $openstack->imagesV2();
|
|
$image = $service->getImage($id);
|
|
$image->reactivate();
|
|
}
|
|
|
|
// RETOUR A VOIR
|
|
public function desactivate_function($id){
|
|
$service = $openstack->imagesV2();
|
|
$image = $service->getImage($id);
|
|
$image->deactivate();
|
|
}
|
|
|
|
// RETOUR A VOIR
|
|
public function upload_image($id, $file_name){
|
|
$service = $openstack->imagesV2();
|
|
$image = $service->getImage($id);
|
|
$stream = \GuzzleHttp\Psr7\stream_for(fopen($file_name, 'r')); // A VOIR
|
|
$image->uploadData($stream);
|
|
}
|
|
|
|
// RETOUR A VOIR
|
|
public function download_image($id){
|
|
$service = $openstack->imagesV2();
|
|
$image = $service->getImage($id);
|
|
$stream = $image->downloadData();
|
|
}
|
|
}
|
|
?>
|