[PATCH 1/3] add a packaged file to tell in which path kimchi run

From: ShaoHe Feng <shaohef@linux.vnet.ibm.com> It means the kimchi run in package install path when the packaged file exists. Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com> --- Makefile.am | 2 ++ contrib/kimchi.spec.fedora.in | 1 + contrib/kimchi.spec.suse.in | 1 + 3 files changed, 4 insertions(+) diff --git a/Makefile.am b/Makefile.am index 6831b5d..290e3dd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -102,11 +102,13 @@ all-local: install-deb: install cp -R $(top_srcdir)/contrib/DEBIAN $(DESTDIR)/ $(MKDIR_P) $(DESTDIR)/etc/init + $(MKDIR_P) $(DESTDIR)/lib/kimchi $(MKDIR_P) $(DESTDIR)/usr/lib/firewalld/services cp -R $(top_srcdir)/contrib/kimchid-upstart.conf.debian \ $(DESTDIR)/etc/init/kimchid.conf cp -R $(top_srcdir)/src/firewalld.xml \ $(DESTDIR)/usr/lib/firewalld/services/kimchid.xml + touch $(DESTDIR)/lib/kimchi/packaged deb: contrib/make-deb.sh diff --git a/contrib/kimchi.spec.fedora.in b/contrib/kimchi.spec.fedora.in index 1cd99b0..2e66b00 100644 --- a/contrib/kimchi.spec.fedora.in +++ b/contrib/kimchi.spec.fedora.in @@ -83,6 +83,7 @@ install -Dm 0755 contrib/kimchid.sysvinit %{buildroot}%{_initrddir}/kimchid %endif %post +touch %{_localstatedir}/lib/kimchi/packaged if [ $1 -eq 1 ] ; then /bin/systemctl enable kimchid.service >/dev/null 2>&1 || : # Initial installation diff --git a/contrib/kimchi.spec.suse.in b/contrib/kimchi.spec.suse.in index efb2c08..ee69384 100644 --- a/contrib/kimchi.spec.suse.in +++ b/contrib/kimchi.spec.suse.in @@ -51,6 +51,7 @@ install -Dm 0755 contrib/kimchid.sysvinit %{buildroot}%{_initrddir}/kimchid %post +touch %{_localstatedir}/lib/kimchi/packaged chkconfig kimchid on %preun -- 1.8.5.3

From: ShaoHe Feng <shaohef@linux.vnet.ibm.com> add a method to get kimchi version in config.py If kimchi run after package install, just get the version. Or get the build nubmer. Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com> --- src/kimchi/Makefile.am | 4 +++- src/kimchi/config.py.in | 7 +++++++ 2 files changed, 10 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..1b1b7c6 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" @@ -53,6 +55,11 @@ def get_screenshot_path(): def get_debugreports_path(): return os.path.join(paths.state_dir, 'debugreports') +def get_version(): + if os.path.exists(os.path.join(paths.state_dir, 'packaged')): + return __version__ + else: + return "-".join([__version__, __release__]) def find_qemu_binary(find_emulator=False): try: -- 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 143c70c..fbcc597 100644 --- a/docs/API.md +++ b/docs/API.md @@ -557,6 +557,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 98fb080..de4da04 100644 --- a/src/kimchi/mockmodel.py +++ b/src/kimchi/mockmodel.py @@ -831,7 +831,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

On 04/11/2014 11:50 PM, shaohef@linux.vnet.ibm.com wrote:
From: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
It means the kimchi run in package install path when the packaged file exists. discuss with aline, use config.get_prefix() to know kimchi is installed or not if it is installed try "rpm -qa kimchi" if it returns the package is installed otherwise it is from a "make install"
we can "rpm -qa kimchi" to check it is installed by rpm not by make install. for deb we can use: "dpkg --get-selections kimchi" try with rpm, if fails try deb
Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com> --- Makefile.am | 2 ++ contrib/kimchi.spec.fedora.in | 1 + contrib/kimchi.spec.suse.in | 1 + 3 files changed, 4 insertions(+)
diff --git a/Makefile.am b/Makefile.am index 6831b5d..290e3dd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -102,11 +102,13 @@ all-local: install-deb: install cp -R $(top_srcdir)/contrib/DEBIAN $(DESTDIR)/ $(MKDIR_P) $(DESTDIR)/etc/init + $(MKDIR_P) $(DESTDIR)/lib/kimchi $(MKDIR_P) $(DESTDIR)/usr/lib/firewalld/services cp -R $(top_srcdir)/contrib/kimchid-upstart.conf.debian \ $(DESTDIR)/etc/init/kimchid.conf cp -R $(top_srcdir)/src/firewalld.xml \ $(DESTDIR)/usr/lib/firewalld/services/kimchid.xml + touch $(DESTDIR)/lib/kimchi/packaged
deb: contrib/make-deb.sh diff --git a/contrib/kimchi.spec.fedora.in b/contrib/kimchi.spec.fedora.in index 1cd99b0..2e66b00 100644 --- a/contrib/kimchi.spec.fedora.in +++ b/contrib/kimchi.spec.fedora.in @@ -83,6 +83,7 @@ install -Dm 0755 contrib/kimchid.sysvinit %{buildroot}%{_initrddir}/kimchid %endif
%post +touch %{_localstatedir}/lib/kimchi/packaged if [ $1 -eq 1 ] ; then /bin/systemctl enable kimchid.service >/dev/null 2>&1 || : # Initial installation diff --git a/contrib/kimchi.spec.suse.in b/contrib/kimchi.spec.suse.in index efb2c08..ee69384 100644 --- a/contrib/kimchi.spec.suse.in +++ b/contrib/kimchi.spec.suse.in @@ -51,6 +51,7 @@ install -Dm 0755 contrib/kimchid.sysvinit %{buildroot}%{_initrddir}/kimchid
%post +touch %{_localstatedir}/lib/kimchi/packaged chkconfig kimchid on
%preun
-- Thanks and best regards! Sheldon Feng(冯少合)<shaohef@linux.vnet.ibm.com> IBM Linux Technology Center
participants (2)
-
shaohef@linux.vnet.ibm.com
-
Sheldon