public static function getScriptingBuiltinVariables()
{
if (!self::$BUILTIN_VARIABLES_LOADED) {
$ReflectEVENT_TYPE = new ReflectionClass("EVENT_TYPE");
$event_types = $ReflectEVENT_TYPE->getConstants();
foreach ($event_types as $event_type) {
if (class_exists("{$event_type}Event")) {
$ReflectClass = new ReflectionClass("{$event_type}Event");
$retval = $ReflectClass->getMethod("GetScriptingVars")->invoke(null);
if (!empty($retval)) {
foreach ($retval as $k => $v) {
if (!self::$BUILTIN_VARIABLES[$k]) {
self::$BUILTIN_VARIABLES[$k] = array("PropName" => $v, "EventName" => "{$event_type}");
} else {
if (!is_array(self::$BUILTIN_VARIABLES[$k]['EventName'])) {
$events = array(self::$BUILTIN_VARIABLES[$k]['EventName']);
} else {
$events = self::$BUILTIN_VARIABLES[$k]['EventName'];
}
$events[] = $event_type;
self::$BUILTIN_VARIABLES[$k] = array("PropName" => $v, "EventName" => $events);
}
}
}
}
}
foreach (self::$BUILTIN_VARIABLES as $k => $v) {
self::$BUILTIN_VARIABLES["event_{$k}"] = $v;
}
self::$BUILTIN_VARIABLES_LOADED = true;
}
return self::$BUILTIN_VARIABLES;
}
public function setRevision($script, $version = null) { if ($version == null) { $version = $this->getLatestRevision() + 1; } $variables = array(); $builtin = array_keys(Scalr_Scripting_Manager::getScriptingBuiltinVariables()); foreach ((array) $this->getCustomVariables($script) as $var) { if (!in_array($var, $builtin)) { $variables[$var] = ucwords(str_replace("_", " ", $var)); } } $variables = serialize($variables); $this->db->Execute('INSERT INTO `script_revisions` SET scriptid = ?, revision = ?, script = ?, variables = ?, dtcreated = NOW() ON DUPLICATE KEY UPDATE script = ?, variables = ?, dtcreated = NOW() ', array($this->id, $version, $script, $variables, $script, $variables)); }