private static function translate($key, $value) { $spec = self::makeSpec($key); $internal_url = true; if (is_numeric($value)) { $value = array('enabled' => (int) $value); } else { if (is_string($value)) { $value = array('enabled' => $value); } } $enabled = Feature_Util::arrayGet($value, 'enabled', 0); $users = self::expandUsersOrGroups(Feature_Util::arrayGet($value, 'users', array())); $groups = self::expandUsersOrGroups(Feature_Util::arrayGet($value, 'groups', array())); if ($enabled === 'off') { $spec['variants'][] = self::makeVariantWithUsersAndGroups('on', 0, $users, $groups); $internal_url = false; } else { if (is_numeric($enabled)) { $spec['variants'][] = self::makeVariantWithUsersAndGroups('on', (int) $enabled, $users, $groups); } else { if (is_string($enabled)) { $spec['variants'][] = self::makeVariantWithUsersAndGroups($enabled, 100, $users, $groups); $internal_url = false; } else { if (is_array($enabled)) { foreach ($enabled as $v => $p) { if (is_numeric($p)) { // Kind of a kludge. $p had better be numeric and // there have been configs deployed where it // wasn't which breaks the Catapult config history // scripts. This will just skip those. $spec['variants'][] = self::makeVariantWithUsersAndGroups($v, $p, $users, $groups); } } } } } } $spec['internal_url_override'] = $internal_url; if (array_key_exists('admin', $value)) { $spec['admin'] = $value['admin']; } if (array_key_exists('internal', $value)) { $spec['internal'] = $value['internal']; } if (array_key_exists('bucketing', $value)) { $spec['bucketing'] = $value['bucketing']; } if (array_key_exists('internal', $value)) { $spec['internal'] = $value['internal']; } if (array_key_exists('public_url_override', $value)) { $spec['public_url_override'] = $value['public_url_override']; } return $spec; }
private function parseBucketBy($stanza) { return Feature_Util::arrayGet($stanza, self::BUCKETING, self::UAID); }
private function checkForOldstyle($stanza) { $enabled = Feature_Util::arrayGet($stanza, Feature_Config::ENABLED, 0); $rampup = Feature_Util::arrayGet($stanza, 'rampup', null); $this->assert($enabled !== 'rampup' || !$rampup, "Old-style config syntax detected."); }