[PATCH V4 0/2] config version API support

From: ShaoHe Feng <shaohef@linux.vnet.ibm.com> V3 -> V4: don't differ if the package is installed or not. V2 -> V3: add a variable in config.py.in to tell kimchi run in package directory. V1 -> V2: use rpm and dpkg to probe that kimchi run in package directory. ShaoHe Feng (2): config version API support: add a method to get kimchi version config version API support in backend. docs/API.md | 1 + src/kimchi/Makefile.am | 4 +++- src/kimchi/config.py.in | 6 ++++++ src/kimchi/mockmodel.py | 3 ++- src/kimchi/model/config.py | 5 +++-- 5 files changed, 15 insertions(+), 4 deletions(-) -- 1.8.5.3

From: ShaoHe Feng <shaohef@linux.vnet.ibm.com> add a method to get kimchi version in config.py No matter kimchi package installed or not, we will always get version and release. Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com> --- src/kimchi/Makefile.am | 4 +++- src/kimchi/config.py.in | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/kimchi/Makefile.am b/src/kimchi/Makefile.am index 957d2c9..e2b5bea 100644 --- a/src/kimchi/Makefile.am +++ b/src/kimchi/Makefile.am @@ -41,7 +41,9 @@ do_substitution = \ -e 's,[@]sysconfdir[@],$(sysconfdir),g' \ -e 's,[@]localstatedir[@],$(localstatedir),g' \ -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \ - -e 's,[@]kimchidir[@],$(kimchidir),g' + -e 's,[@]kimchidir[@],$(kimchidir),g' \ + -e 's,[@]kimchiversion[@],$(PACKAGE_VERSION),g' \ + -e 's,[@]kimchirelease[@],$(PACKAGE_RELEASE),g' config.py: config.py.in Makefile diff --git a/src/kimchi/config.py.in b/src/kimchi/config.py.in index 04218c2..bddcb5c 100644 --- a/src/kimchi/config.py.in +++ b/src/kimchi/config.py.in @@ -29,6 +29,8 @@ from ConfigParser import SafeConfigParser from kimchi.xmlutils import xpath_get_text +__version__ = "@kimchiversion@" +__release__ = "@kimchirelease@" DEFAULT_LOG_LEVEL = "debug" @@ -54,6 +56,10 @@ def get_debugreports_path(): return os.path.join(paths.state_dir, 'debugreports') +def get_version(): + return "-".join([__version__, __release__]) + + def find_qemu_binary(find_emulator=False): try: connect = libvirt.open('qemu:///system') -- 1.8.5.3

From: ShaoHe Feng <shaohef@linux.vnet.ibm.com> update API.md, mockmodel, model and API.md Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com> --- docs/API.md | 1 + src/kimchi/mockmodel.py | 3 ++- src/kimchi/model/config.py | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/API.md b/docs/API.md index 489f062..6da5822 100644 --- a/docs/API.md +++ b/docs/API.md @@ -560,6 +560,7 @@ Contains information about the application environment and configuration. * **GET**: Retrieve configuration information * http_port: The port number on which the server is listening * display_proxy_port: Port for vnc and spice's websocket proxy to listen on + * version: The version of the kimchi service * **POST**: *See Configuration Actions* **Actions (POST):** diff --git a/src/kimchi/mockmodel.py b/src/kimchi/mockmodel.py index 69eee3c..5ee4c16 100644 --- a/src/kimchi/mockmodel.py +++ b/src/kimchi/mockmodel.py @@ -835,7 +835,8 @@ class MockModel(object): def config_lookup(self, name): return {'http_port': cherrypy.server.socket_port, 'display_proxy_port': - kconfig.get('display', 'display_proxy_port')} + kconfig.get('display', 'display_proxy_port'), + 'version': config.get_version()} def packagesupdate_get_list(self): return self._mock_swupdate.getUpdates() diff --git a/src/kimchi/model/config.py b/src/kimchi/model/config.py index a6d00ab..7081373 100644 --- a/src/kimchi/model/config.py +++ b/src/kimchi/model/config.py @@ -23,7 +23,7 @@ import cherrypy from kimchi.basemodel import Singleton from kimchi.config import config as kconfig -from kimchi.config import find_qemu_binary +from kimchi.config import find_qemu_binary, get_version from kimchi.distroloader import DistroLoader from kimchi.exception import NotFoundError from kimchi.featuretests import FeatureTests @@ -41,7 +41,8 @@ class ConfigModel(object): def lookup(self, name): proxy_port = kconfig.get('display', 'display_proxy_port') return {'http_port': cherrypy.server.socket_port, - 'display_proxy_port': proxy_port} + 'display_proxy_port': proxy_port, + 'version': get_version()} class CapabilitiesModel(object): -- 1.8.5.3

Reviewed-by: Aline Manera <alinefm@linux.vnet.ibm.com> On 04/14/2014 08:43 PM, shaohef@linux.vnet.ibm.com wrote:
From: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
V3 -> V4: don't differ if the package is installed or not.
V2 -> V3: add a variable in config.py.in to tell kimchi run in package directory.
V1 -> V2: use rpm and dpkg to probe that kimchi run in package directory.
ShaoHe Feng (2): config version API support: add a method to get kimchi version config version API support in backend.
docs/API.md | 1 + src/kimchi/Makefile.am | 4 +++- src/kimchi/config.py.in | 6 ++++++ src/kimchi/mockmodel.py | 3 ++- src/kimchi/model/config.py | 5 +++-- 5 files changed, 15 insertions(+), 4 deletions(-)
participants (2)
-
Aline Manera
-
shaohef@linux.vnet.ibm.com