We should not put the resource specefic information in controller
level. Controller is just used to dispatch request and act a glue
of view and model. We can dynamcially generate the controller code
in future.
Signed-off-by: Mark Wu <wudxw(a)linux.vnet.ibm.com>
---
src/kimchi/control/config.py | 8 +-------
src/kimchi/mockmodel.py | 7 +++++++
src/kimchi/model.py | 7 +++++++
3 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/src/kimchi/control/config.py b/src/kimchi/control/config.py
index 16cc384..4750410 100644
--- a/src/kimchi/control/config.py
+++ b/src/kimchi/control/config.py
@@ -22,10 +22,6 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-import cherrypy
-
-
-from kimchi.config import config
from kimchi.control.base import Collection, Resource
from kimchi.control.utils import UrlSubNode
@@ -39,9 +35,7 @@ class Config(Resource):
@property
def data(self):
- display_proxy_port = config.get('display', 'display_proxy_port')
- return {'http_port': cherrypy.server.socket_port,
- 'display_proxy_port': display_proxy_port}
+ return self.info
class Capabilities(Resource):
diff --git a/src/kimchi/mockmodel.py b/src/kimchi/mockmodel.py
index 0fe69dd..bcc2ae0 100644
--- a/src/kimchi/mockmodel.py
+++ b/src/kimchi/mockmodel.py
@@ -45,6 +45,7 @@ import kimchi.model
from kimchi import config
from kimchi import network as knetwork
from kimchi.asynctask import AsyncTask
+from kimchi.config import config as kconfig
from kimchi.distroloader import DistroLoader
from kimchi.exception import InvalidOperation, InvalidParameter
from kimchi.exception import MissingParameter, NotFoundError, OperationFailed
@@ -658,6 +659,12 @@ class MockModel(object):
% name)
return disks.get_partition_details(name)
+ def config_lookup(self, name):
+ return {'http_port': cherrypy.server.socket_port,
+ 'display_proxy_port':
+ kconfig.get('display', 'display_proxy_port')}
+
+
class MockVMTemplate(VMTemplate):
def __init__(self, args, mockmodel_inst=None):
VMTemplate.__init__(self, args)
diff --git a/src/kimchi/model.py b/src/kimchi/model.py
index 1f98bfa..7a9ebca 100644
--- a/src/kimchi/model.py
+++ b/src/kimchi/model.py
@@ -67,6 +67,7 @@ from kimchi import vnc
from kimchi import xmlutils
from kimchi.asynctask import AsyncTask
from kimchi.distroloader import DistroLoader
+from kimchi.config import config as kconfig
from kimchi.exception import InvalidOperation, InvalidParameter, IsoFormatError
from kimchi.exception import MissingParameter, NotFoundError, OperationFailed,
TimeoutExpired
from kimchi.featuretests import FeatureTests
@@ -1583,6 +1584,12 @@ class Model(object):
kimchi_log.info('Host is going to reboot.')
os.system('reboot')
+ def config_lookup(self, name):
+ return {'http_port': cherrypy.server.socket_port,
+ 'display_proxy_port':
+ kconfig.get('display', 'display_proxy_port')}
+
+
class LibvirtVMTemplate(VMTemplate):
def __init__(self, args, scan=False, conn=None):
--
1.8.4.2