mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-23 21:55:03 +02:00
parent
0c0bae220b
commit
16ef84fd35
@ -41,7 +41,7 @@ DynamicType::Ptr DynamicType::GetByName(const String& name)
|
|||||||
if (tt == InternalGetTypeMap().end()) {
|
if (tt == InternalGetTypeMap().end()) {
|
||||||
Type::Ptr type = Type::GetByName(name);
|
Type::Ptr type = Type::GetByName(name);
|
||||||
|
|
||||||
if (!type || !Type::GetByName("DynamicObject")->IsAssignableFrom(type)
|
if (!type || !DynamicObject::TypeInstance->IsAssignableFrom(type)
|
||||||
|| type->IsAbstract())
|
|| type->IsAbstract())
|
||||||
return DynamicType::Ptr();
|
return DynamicType::Ptr();
|
||||||
|
|
||||||
|
@ -217,20 +217,7 @@ Array::Ptr ScriptUtils::Range(const std::vector<Value>& arguments)
|
|||||||
|
|
||||||
Type::Ptr ScriptUtils::TypeOf(const Value& value)
|
Type::Ptr ScriptUtils::TypeOf(const Value& value)
|
||||||
{
|
{
|
||||||
switch (value.GetType()) {
|
return value.GetReflectionType();
|
||||||
case ValueEmpty:
|
|
||||||
return Type::GetByName("Object");
|
|
||||||
case ValueNumber:
|
|
||||||
return Type::GetByName("Number");
|
|
||||||
case ValueBoolean:
|
|
||||||
return Type::GetByName("Boolean");
|
|
||||||
case ValueString:
|
|
||||||
return Type::GetByName("String");
|
|
||||||
case ValueObject:
|
|
||||||
return static_cast<Object::Ptr>(value)->GetReflectionType();
|
|
||||||
default:
|
|
||||||
VERIFY(!"Invalid value type.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Array::Ptr ScriptUtils::Keys(const Dictionary::Ptr& dict)
|
Array::Ptr ScriptUtils::Keys(const Dictionary::Ptr& dict)
|
||||||
|
@ -90,7 +90,7 @@ Type::Ptr Value::GetReflectionType(void) const
|
|||||||
{
|
{
|
||||||
switch (GetType()) {
|
switch (GetType()) {
|
||||||
case ValueEmpty:
|
case ValueEmpty:
|
||||||
return Type::GetByName("Object");
|
return Object::TypeInstance;
|
||||||
case ValueNumber:
|
case ValueNumber:
|
||||||
return Type::GetByName("Number");
|
return Type::GetByName("Number");
|
||||||
case ValueBoolean:
|
case ValueBoolean:
|
||||||
|
@ -255,10 +255,10 @@ void CheckerComponent::ResultTimerHandler(void)
|
|||||||
|
|
||||||
void CheckerComponent::ObjectHandler(const DynamicObject::Ptr& object)
|
void CheckerComponent::ObjectHandler(const DynamicObject::Ptr& object)
|
||||||
{
|
{
|
||||||
if (!Type::GetByName("Checkable")->IsAssignableFrom(object->GetReflectionType()))
|
Checkable::Ptr checkable = dynamic_pointer_cast<Checkable>(object);
|
||||||
return;
|
|
||||||
|
|
||||||
Checkable::Ptr checkable = static_pointer_cast<Checkable>(object);
|
if (!checkable)
|
||||||
|
return;
|
||||||
|
|
||||||
Zone::Ptr zone = Zone::GetByName(checkable->GetZoneName());
|
Zone::Ptr zone = Zone::GetByName(checkable->GetZoneName());
|
||||||
bool same_zone = (!zone || Zone::GetLocalZone() == zone);
|
bool same_zone = (!zone || Zone::GetLocalZone() == zone);
|
||||||
|
@ -152,7 +152,7 @@ DynamicObject::Ptr ConfigItem::Commit(bool discard)
|
|||||||
|
|
||||||
/* Make sure the type is valid. */
|
/* Make sure the type is valid. */
|
||||||
Type::Ptr type = Type::GetByName(GetType());
|
Type::Ptr type = Type::GetByName(GetType());
|
||||||
ASSERT(type && Type::GetByName("DynamicObject")->IsAssignableFrom(type));
|
ASSERT(type && DynamicObject::TypeInstance->IsAssignableFrom(type));
|
||||||
|
|
||||||
if (IsAbstract())
|
if (IsAbstract())
|
||||||
return DynamicObject::Ptr();
|
return DynamicObject::Ptr();
|
||||||
@ -335,9 +335,8 @@ bool ConfigItem::CommitNewItems(WorkQueue& upq)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Type::Ptr dotype = Type::GetByName("DynamicObject");
|
|
||||||
BOOST_FOREACH(const Type::Ptr& type, all_types) {
|
BOOST_FOREACH(const Type::Ptr& type, all_types) {
|
||||||
if (dotype->IsAssignableFrom(type))
|
if (DynamicObject::TypeInstance->IsAssignableFrom(type))
|
||||||
types.insert(type->GetName());
|
types.insert(type->GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ void IdoCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckResult
|
|||||||
|
|
||||||
Type::Ptr type = Type::GetByName(idoType);
|
Type::Ptr type = Type::GetByName(idoType);
|
||||||
|
|
||||||
if (!type || !Type::GetByName("DbConnection")->IsAssignableFrom(type)) {
|
if (!type || !DbConnection::TypeInstance->IsAssignableFrom(type)) {
|
||||||
cr->SetOutput("IDO type '" + idoType + "' is invalid.");
|
cr->SetOutput("IDO type '" + idoType + "' is invalid.");
|
||||||
cr->SetState(ServiceUnknown);
|
cr->SetState(ServiceUnknown);
|
||||||
checkable->ProcessCheckResult(cr);
|
checkable->ProcessCheckResult(cr);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user