Пример #1
0
 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;
 }
Пример #2
0
 private function parseBucketBy($stanza)
 {
     return Feature_Util::arrayGet($stanza, self::BUCKETING, self::UAID);
 }
Пример #3
0
 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.");
 }