105 lines
3.4 KiB
PHP
105 lines
3.4 KiB
PHP
<?php
|
|
|
|
|
|
namespace podmanImageManager;
|
|
|
|
use \objectStructs\objectStructs;
|
|
|
|
class image extends objectStructs
|
|
{
|
|
/** @var imageAnnotations */
|
|
public $annotations;
|
|
/** @var imageConfig */
|
|
public $config;
|
|
/** @var string name of hte image*/
|
|
public $imageName;
|
|
/** @var string name of image after the registry domain -- /image:latest */
|
|
public $shortName;
|
|
|
|
|
|
public function __construct($vars)
|
|
{
|
|
$this->Log(__FUNCTION__ . " load image object with: ".print_r($vars,true));
|
|
if (is_array($vars))
|
|
{
|
|
$this->imageName = (isset($vars['image']) ? $vars['image'] :
|
|
(isset($vars['name']) ? $vars['name'] :
|
|
(isset($vars['imageName']) ? $vars['imageName'] : "" ) ) ) ;
|
|
|
|
if (empty($this->imageName))
|
|
throw new \Exception(__FUNCTION__ . " Image name is empty");
|
|
|
|
list($RegistryDomain, $ImageShortName) = explode('/',$this->imageName,2);
|
|
if (!$ImageShortName)
|
|
throw new \Exception(__FUNCTION__ . " Image short name not valid");
|
|
else
|
|
$this->shortName = $ImageShortName;
|
|
|
|
if (isset( $vars['imageBasic']->annotations) )
|
|
$annotations = $vars['imageBasic']->annotations;
|
|
elseif (isset($vars['annotations']))
|
|
$annotations = $vars['annotations'];
|
|
else
|
|
$annotations = array();
|
|
|
|
$this->annotations = new imageAnnotations($annotations);
|
|
if (isset($vars['imageConfig']))
|
|
$this->config = new imageConfig($vars['imageConfig']);
|
|
}
|
|
elseif (is_object($vars))
|
|
{
|
|
$this->imageName = (isset($vars->image ) ? $vars->image :
|
|
(isset($vars->name) ? $vars->name :
|
|
(isset($vars->imageName) ? $vars->imageName : "" ) ) ) ;
|
|
|
|
if (isset( $vars->imageBasic->annotations) )
|
|
$this->annotations = new imageAnnotations($vars->imageBasic->annotations) ;
|
|
elseif (isset($vars->annotations))
|
|
$this->annotations = new imageAnnotations($vars->annotations) ;
|
|
|
|
if (isset($vars->imageConfig))
|
|
$this->config = new imageConfig($vars->imageConfig);
|
|
}
|
|
|
|
}
|
|
|
|
public function getHostControllerName()
|
|
{
|
|
if (isset($this->annotations->hostController))
|
|
return $this->annotations->hostController;
|
|
else
|
|
return false;
|
|
}
|
|
|
|
public function getClientControllerName()
|
|
{
|
|
if (isset($this->annotations->clientController))
|
|
return $this->annotations->clientController;
|
|
else
|
|
return false;
|
|
}
|
|
|
|
public function hasRole( string $Role)
|
|
{
|
|
$this->Log(__FUNCTION__ . " Checking Role: $Role");
|
|
if (isset($this->annotations->roles[$Role]) OR isset($this->annotations->roles[ucfirst($Role) ] ) )
|
|
{
|
|
$this->Log(__FUNCTION__ . "--Image has role: $Role");
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
foreach($this->annotations->roles as $RoleRow)
|
|
{
|
|
if ($RoleRow === $Role)
|
|
{
|
|
$this->Log(__FUNCTION__ . "--Image has role (found as role value and not key): $Role");
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
$this->Log(__FUNCTION__ . "--Image does not seem to have role as key or as value within ->roles array ");
|
|
|
|
return false;
|
|
}
|
|
} |