cloud-8.x-2.0-beta1/modules/cloud_service_providers/k8s/src/Plugin/Validation/Constraint/YamlObjectSupportConstraintValidator.php
modules/cloud_service_providers/k8s/src/Plugin/Validation/Constraint/YamlObjectSupportConstraintValidator.php
<?php
namespace Drupal\k8s\Plugin\Validation\Constraint;
use Drupal\Component\Serialization\Yaml;
use Symfony\Component\Validator\Constraint;
/**
* Validates the "kind" element.
*/
class YamlObjectSupportConstraintValidator extends YamlArrayDataConstraintValidator {
/**
* {@inheritdoc}
*/
public function validate($items, Constraint $constraint) {
foreach ($items as $item) {
try {
$yaml = Yaml::decode($item->value);
$kind = $yaml['kind'];
if (isset($kind)) {
$templates = k8s_supported_cloud_server_templates();
$object = array_search($kind, $templates);
if ($object == FALSE) {
$this->context->addViolation($constraint->unsupportedObjectType);
}
}
else {
$this->context->addViolation($constraint->noObjectFound);
}
}
catch (\Exception $e) {
$this->context->addViolation($constraint->invalidYaml . $e->getMessage());
break;
}
}
}
}
