mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-21 21:10:56 +01:00
Use setConcreteOnly() in Phabricator and only list/launch concrete Daemons
Summary: We currently allow you to launch abstract daemons; use setConcreteOnly() to only list/launch concrete daemons. Test Plan: Ran "phd list" (no abstract daemons listed), "phd launch PhabricatorRepositoryCommitDiscoveryDaemon" (reasonable error message). Reviewers: btrahan, jungejason Reviewed By: btrahan CC: aran, epriestley Maniphest Tasks: T801 Differential Revision: https://secure.phabricator.com/D1487
This commit is contained in:
parent
16bcd5112a
commit
add1ae945d
3 changed files with 7 additions and 15 deletions
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* Copyright 2011 Facebook, Inc.
|
||||
* Copyright 2012 Facebook, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -178,17 +178,10 @@ class PhabricatorConduitConsoleController
|
|||
$classes = id(new PhutilSymbolLoader())
|
||||
->setAncestorClass('ConduitAPIMethod')
|
||||
->setType('class')
|
||||
->setConcreteOnly(true)
|
||||
->selectSymbolsWithoutLoading();
|
||||
|
||||
$class_names = array_values(ipull($classes, 'name'));
|
||||
foreach ($class_names as $key => $class_name) {
|
||||
$class_info = new ReflectionClass($class_name);
|
||||
if ($class_info->isAbstract()) {
|
||||
unset($class_names[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
return array_values($class_names);
|
||||
return array_values(ipull($classes, 'name'));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -39,13 +39,10 @@ abstract class DrydockBlueprint {
|
|||
$blueprints = id(new PhutilSymbolLoader())
|
||||
->setType('class')
|
||||
->setAncestorClass('DrydockBlueprint')
|
||||
->setConcreteOnly(true)
|
||||
->selectAndLoadSymbols();
|
||||
$list = ipull($blueprints, 'name', 'name');
|
||||
foreach ($list as $class_name => $ignored) {
|
||||
$reflection = new ReflectionClass($class_name);
|
||||
if ($reflection->isAbstract()) {
|
||||
continue;
|
||||
}
|
||||
$list[$class_name] = newv($class_name, array());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -203,7 +203,8 @@ EOHELP
|
|||
$symbols = $this->loadAvailableDaemonClasses();
|
||||
$symbols = ipull($symbols, 'name', 'name');
|
||||
if (empty($symbols[$daemon])) {
|
||||
throw new Exception("Daemon '{$daemon}' is not known.");
|
||||
throw new Exception(
|
||||
"Daemon '{$daemon}' is not loaded, misspelled or abstract.");
|
||||
}
|
||||
|
||||
$pid_dir = $this->getControlDirectory('pid');
|
||||
|
@ -299,6 +300,7 @@ EOHELP
|
|||
$loader = new PhutilSymbolLoader();
|
||||
return $loader
|
||||
->setAncestorClass('PhutilDaemon')
|
||||
->setConcreteOnly(true)
|
||||
->selectSymbolsWithoutLoading();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue