Merge branch 'ent-5735-9752-problema-no-inicializados-modulos-de-tipo-log' into 'develop'
Entity with enterprise capabilites See merge request artica/pandorafms!3373
This commit is contained in:
commit
cfe2b108af
|
@ -372,6 +372,9 @@ define('MODULE_PREDICTION_CLUSTER_AP', 7);
|
|||
// Forced agent OS ID for cluster agents.
|
||||
define('CLUSTER_OS_ID', 100);
|
||||
|
||||
// Forced agent OS ID for satellite agents.
|
||||
define('SATELLITE_OS_ID', 19);
|
||||
|
||||
// Type of Webserver Modules.
|
||||
define('MODULE_WEBSERVER_CHECK_LATENCY', 30);
|
||||
define('MODULE_WEBSERVER_CHECK_SERVER_RESPONSE', 31);
|
||||
|
|
|
@ -4360,7 +4360,8 @@ function html_print_input($data, $wrapper='div', $input_only=false)
|
|||
((isset($data['value']) === true) ? $data['value'] : ''),
|
||||
((isset($data['attributes']) === true) ? $data['attributes'] : ''),
|
||||
((isset($data['return']) === true) ? $data['return'] : false),
|
||||
((isset($data['class']) === true) ? $data['class'] : '')
|
||||
((isset($data['class']) === true) ? $data['class'] : ''),
|
||||
((isset($data['disabled']) === true) ? $data['disabled'] : false)
|
||||
);
|
||||
break;
|
||||
|
||||
|
|
|
@ -63,11 +63,16 @@ class Agent extends Entity
|
|||
) {
|
||||
$table = 'tagente';
|
||||
$filter = ['id_agente' => $id_agent];
|
||||
$enterprise_class = '\PandoraFMS\Enterprise\Agent';
|
||||
|
||||
if (is_numeric($id_agent) === true
|
||||
&& $id_agent > 0
|
||||
) {
|
||||
parent::__construct($table, $filter);
|
||||
parent::__construct(
|
||||
$table,
|
||||
$filter,
|
||||
$enterprise_class
|
||||
);
|
||||
if ($load_modules === true) {
|
||||
$rows = \db_get_all_rows_filter(
|
||||
'tagente_modulo',
|
||||
|
@ -84,7 +89,7 @@ class Agent extends Entity
|
|||
}
|
||||
} else {
|
||||
// Create empty skel.
|
||||
parent::__construct($table);
|
||||
parent::__construct($table, null, $enterprise_class);
|
||||
|
||||
// New agent has no modules.
|
||||
$this->modulesLoaded = true;
|
||||
|
@ -408,11 +413,12 @@ class Agent extends Entity
|
|||
/**
|
||||
* Search for modules into this agent.
|
||||
*
|
||||
* @param array $filter Filters.
|
||||
* @param array $filter Filters.
|
||||
* @param integer $limit Limit search results.
|
||||
*
|
||||
* @return PandoraFMS\Module Module found.
|
||||
*/
|
||||
public function searchModules(array $filter)
|
||||
public function searchModules(array $filter, int $limit=0)
|
||||
{
|
||||
$filter['id_agente'] = $this->id_agente();
|
||||
|
||||
|
@ -423,7 +429,7 @@ class Agent extends Entity
|
|||
foreach ($this->modules as $module) {
|
||||
$found = true;
|
||||
foreach ($filter as $field => $value) {
|
||||
if ($module->{$field}() !== $value) {
|
||||
if ($module->{$field}() != $value) {
|
||||
$found = false;
|
||||
break;
|
||||
}
|
||||
|
@ -437,7 +443,7 @@ class Agent extends Entity
|
|||
return $results;
|
||||
} else {
|
||||
// Search in db.
|
||||
return Module::search($filter);
|
||||
return Module::search($filter, $limit);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -50,17 +50,28 @@ abstract class Entity
|
|||
*/
|
||||
protected $table = '';
|
||||
|
||||
/**
|
||||
* Enterprise capabilities object.
|
||||
*
|
||||
* @var object
|
||||
*/
|
||||
private $enterprise;
|
||||
|
||||
|
||||
/**
|
||||
* Defines a generic constructor to extract information of the object.
|
||||
*
|
||||
* @param string $table Table.
|
||||
* @param array $filters Filters, for instance ['id' => $id].
|
||||
* @param string $table Table.
|
||||
* @param array|null $filters Filters, for instance ['id' => $id].
|
||||
* @param string|null $enterprise_class Enterprise class name.
|
||||
*
|
||||
* @throws \Exception On error.
|
||||
*/
|
||||
public function __construct(string $table, ?array $filters=null)
|
||||
{
|
||||
public function __construct(
|
||||
string $table,
|
||||
?array $filters=null,
|
||||
?string $enterprise_class=null
|
||||
) {
|
||||
if (empty($table) === true) {
|
||||
throw new \Exception(
|
||||
get_class($this).' error, table name is not defined'
|
||||
|
@ -96,6 +107,12 @@ abstract class Entity
|
|||
$this->fields[$row['Field']] = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (\enterprise_installed() === true
|
||||
&& $enterprise_class !== null
|
||||
) {
|
||||
$this->enterprise = new $enterprise_class($this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -115,6 +132,20 @@ abstract class Entity
|
|||
return $this->{$methodName}($params);
|
||||
}
|
||||
|
||||
// Enterprise capabilities.
|
||||
if (\enterprise_installed() === true
|
||||
&& $this->enterprise !== null
|
||||
&& method_exists($this->enterprise, $methodName) === true
|
||||
) {
|
||||
return call_user_func_array(
|
||||
[
|
||||
$this->enterprise,
|
||||
$methodName,
|
||||
],
|
||||
$params
|
||||
);
|
||||
}
|
||||
|
||||
if (array_key_exists($methodName, $this->fields) === true) {
|
||||
if (empty($params) === true) {
|
||||
return $this->fields[$methodName];
|
||||
|
|
Loading…
Reference in New Issue