/** * {@inheritdoc} * @see ApiEntityAdapter::validateEntity() */ public function validateEntity($entity) { /* @var $entity RoleScript */ parent::validateEntity($entity); //Getting the role initiates check permissions $role = $this->controller->getRole($entity->roleId); $this->checkScriptOs($entity, $role->getOs()->family); }
/** * {@inheritdoc} * @see ApiEntityAdapter::validateEntity() */ public function validateEntity($entity) { /* @var $entity RoleScript */ parent::validateEntity($entity); //Getting the role initiates check permissions $role = $this->controller->getRole($entity->roleId); static $agenLessTargets = [self::TARGET_VALUE_NULL => self::TARGET_NAME_NULL, self::TARGET_VALUE_FARM => self::TARGET_NAME_FARM]; if (!($role->isScalarized || isset($agenLessTargets[$entity->target]))) { throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_VALUE, "Only targets ['" . implode("', '", $agenLessTargets) . "'] allowed to agent-less roles"); } $this->checkScriptOs($entity, $role->getOs()->family); }
/** * {@inheritdoc} * @see ApiEntityAdapter::validateEntity() */ public function validateEntity($entity) { /* @var $entity FarmRoleScript */ parent::validateEntity($entity); //Getting the role initiates check permissions $farmRole = $this->controller->getFarmRole($entity->farmRoleId); $this->checkScriptOs($entity, $farmRole->role->getOs()->family); if ($entity->target == static::TARGET_VALUE_SPECIFIED_FARM_ROLE) { foreach ($entity->targets as $farmRoleId => $target) { $farmRole = $this->controller->getFarmRole($farmRoleId); if ($farmRole->farmId != $entity->farmId) { throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_VALUE, "Invalid target. Farm Role '{$farmRole->id}' not found in Farm '{$entity->farmId}'"); } $this->checkScriptOs($entity, $farmRole->role->getOs()->family); } } }
/** * {@inheritdoc} * @see ApiEntityAdapter::validateEntity() */ public function validateEntity($entity) { /* @var $entity FarmRoleScript */ parent::validateEntity($entity); //Getting the role initiates check permissions $farmRole = $this->controller->getFarmRole($entity->farmRoleId); $this->checkScriptOs($entity, $farmRole->role->getOs()->family); static $agenLessTargets = [self::TARGET_VALUE_NULL => self::TARGET_NAME_NULL, self::TARGET_VALUE_FARM => self::TARGET_NAME_FARM, self::TARGET_VALUE_SPECIFIED_FARM_ROLE => self::TARGET_NAME_SPECIFIED_FARM_ROLE]; if (!($farmRole->role->isScalarized || isset($agenLessTargets[$entity->target]))) { throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_VALUE, "Only targets ['" . implode("', '", $agenLessTargets) . "'] are allowed to agent-less roles"); } if ($entity->target == static::TARGET_VALUE_SPECIFIED_FARM_ROLE) { foreach ($entity->targets as $farmRoleId => $target) { $farmRole = $this->controller->getFarmRole($farmRoleId); if ($farmRole->farmId != $entity->farmId) { throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_VALUE, "Invalid target. Farm Role '{$farmRole->id}' not found in Farm '{$entity->farmId}'"); } if (!$farmRole->role->isScalarized) { throw new ApiErrorException(409, ErrorMessage::ERR_INVALID_VALUE, "Invalid target. Only roles that use Scalr Agent are allowed as targets for " . static::TARGET_NAME_SPECIFIED_FARM_ROLE); } $this->checkScriptOs($entity, $farmRole->role->getOs()->family); } } }