/** * Validate the configuration by creating a backend and requesting the user count * * @param Form $form The form to fetch the configuration values from * * @return bool Whether validation succeeded or not */ public static function isValidUserBackend(Form $form) { try { $dbUserBackend = new DbUserBackend(ResourceFactory::createResource($form->getResourceConfig())); if ($dbUserBackend->select()->where('is_active', true)->count() < 1) { $form->addError($form->translate('No active users found under the specified database backend')); return false; } } catch (Exception $e) { $form->addError(sprintf($form->translate('Using the specified backend failed: %s'), $e->getMessage())); return false; } return true; }
/** * Validate the resource configuration by trying to connect with it * * @param Form $form The form to fetch the configuration values from * * @return bool Whether validation succeeded or not */ public static function isValidResource(Form $form) { $result = ResourceFactory::createResource(new ConfigObject($form->getValues()))->inspect(); if ($result->hasError()) { $form->addError(sprintf('%s (%s)', $form->translate('Connectivity validation failed, connection to the given resource not possible.'), $result->getError())); } // TODO: display diagnostics in $result->toArray() to the user return !$result->hasError(); }
/** * Validate the configuration by creating a backend and requesting the user count * * @param Form $form The form to fetch the configuration values from * * @return bool Whether validation succeeded or not */ public static function isValidUserBackend(Form $form) { $backend = new DbUserBackend(ResourceFactory::createResource($form->getResourceConfig())); $result = $backend->inspect(); if ($result->hasError()) { $form->addError(sprintf($form->translate('Using the specified backend failed: %s'), $result->getError())); } // TODO: display diagnostics in $result->toArray() to the user return !$result->hasError(); }
/** * Validate the resource configuration by trying to connect with it * * @param Form $form The form to fetch the configuration values from * * @return bool Whether validation succeeded or not */ public static function isValidResource(Form $form) { try { $resource = ResourceFactory::createResource(new ConfigObject($form->getValues())); $resource->getConnection()->getConnection(); } catch (Exception $e) { $form->addError($form->translate('Connectivity validation failed, connection to the given resource not possible.')); return false; } return true; }
/** * Validate the resource configuration by trying to connect with it * * @param Form $form The form to fetch the configuration values from * * @return bool Whether validation succeeded or not */ public static function isValidResource(Form $form) { try { $resource = ResourceFactory::createResource(new ConfigObject($form->getValues())); $resource->bind(); } catch (Exception $e) { $msg = $form->translate('Connectivity validation failed, connection to the given resource not possible.'); if ($error = $e->getMessage()) { $msg .= ' (' . $error . ')'; } $form->addError($msg); return false; } return true; }
/** * Return whether a single icinga instance is writing to the given resource * * @param Form $form * @param ConfigObject $resourceConfig * * @return bool True if it's a single instance, false if none * or multiple instances are writing to it */ public static function isValidIdoInstance(Form $form, ConfigObject $resourceConfig) { $db = ResourceFactory::createResource($resourceConfig); $rowCount = $db->select()->from('icinga_instances')->count(); if ($rowCount === 0) { $form->warning($form->translate('There is currently no icinga instance writing to the IDO. Make sure ' . 'that a icinga instance is configured and able to write to the IDO.')); return false; } elseif ($rowCount > 1) { $form->warning($form->translate('There is currently more than one icinga instance writing to the IDO. You\'ll see all objects from all' . ' instances without any differentation. If this is not desired, consider setting up a separate IDO' . ' for each instance.')); return false; } return true; }
/** * Validate the configuration by creating a backend and requesting the user count * * @param Form $form The form to fetch the configuration values from * * @return bool Whether validation succeeded or not */ public static function isValidUserBackend(Form $form) { try { $ldapUserBackend = UserBackend::create(null, new ConfigObject($form->getValues())); $ldapUserBackend->assertAuthenticationPossible(); } catch (AuthenticationException $e) { if (($previous = $e->getPrevious()) !== null) { $form->addError($previous->getMessage()); } else { $form->addError($e->getMessage()); } return false; } catch (Exception $e) { $form->addError(sprintf($form->translate('Unable to validate authentication: %s'), $e->getMessage())); return false; } return true; }
/** * Validate the ido instance availability * * @param Form $form * @param ConfigObject $resourceConfig * * @return bool Whether validation succeeded or not */ public static function isValidIdoInstance(Form $form, ConfigObject $resourceConfig) { $resource = ResourceFactory::createResource($resourceConfig); $result = $resource->select()->from('icinga_instances', array('instance_name')); $instances = $result->fetchAll(); if (count($instances) === 1) { return true; } elseif (count($instances) > 1) { $form->warning($form->translate('IDO instance validation failed, because there are multiple instances available.')); return false; } $form->error($form->translate('IDO instance validation failed, because there is no IDO instance available.')); return false; }