[Kimchi-devel] [PATCH V2] Fix issue #738 - Part 2: Split Wok and Kimchi object stores
Aline Manera
alinefm at linux.vnet.ibm.com
Tue Oct 20 16:07:58 UTC 2015
On 20/10/2015 14:07, Paulo Ricardo Paz Vital wrote:
> On Tue, 2015-10-20 at 14:01 -0200, Aline Manera wrote:
>> On 19/10/2015 16:06, Paulo Ricardo Paz Vital wrote:
>>> On Mon, 2015-10-19 at 14:46 -0200, Lucio Correia wrote:
>>>> Wok and Kimchi currently share the same object store. This
>>>> patch creates a specific store for Kimchi and uses it as
>>>> default location for Kimchi's model.
>>>>
>>>> This patch depends on "Fix Kimchi Model V2" just sent, due to
>>>> conflicts.
>>>>
>>>> Signed-off-by: Lucio Correia <luciojhc at linux.vnet.ibm.com>
>>>> ---
>>>> Makefile.am | 3 ++-
>>>> contrib/wok.spec.fedora.in | 3 ++-
>>>> contrib/wok.spec.suse.in | 3 ++-
>>>> src/wok/plugins/kimchi/Makefile.am | 2 --
>>>> src/wok/plugins/kimchi/config.py.in | 4 ++++
>>>> src/wok/plugins/kimchi/contrib/kimchi.spec.fedora.in | 2 +-
>>>> src/wok/plugins/kimchi/contrib/kimchi.spec.suse.in | 2 +-
>>>> src/wok/plugins/kimchi/model/model.py | 3 ++-
>>>> src/wok/plugins/kimchi/root.py | 1 +
>>>> src/wok/plugins/kimchi/tests/test_mockmodel.py | 2 +-
>>>> 10 files changed, 16 insertions(+), 9 deletions(-)
>>>>
>>>> diff --git a/Makefile.am b/Makefile.am
>>>> index 3d3b5d6..430d6bc 100644
>>>> --- a/Makefile.am
>>>> +++ b/Makefile.am
>>>> @@ -81,6 +81,7 @@ install-deb: install
>>>> cp -R $(top_srcdir)/contrib/wokd
>>>> -upstart.conf.debian
>>>> \
>>>> $(DESTDIR)/etc/init/wokd.conf; \
>>>> fi
>>>> + $(MKDIR_P) $(DESTDIR)/$(localstatedir)/lib/wok/
>>>> $(MKDIR_P) $(DESTDIR)/usr/lib/firewalld/services
>>>> cp -R $(top_srcdir)/src/firewalld.xml \
>>>> $(DESTDIR)/usr/lib/firewalld/services/wokd.xml
>>>> @@ -126,7 +127,7 @@ install-data-local:
>>>> mkdir -p $(DESTDIR)/etc/init.d/; \
>>>> $(INSTALL_DATA) contrib/wokd.sysvinit
>>>> $(DESTDIR)/etc/init.d/wokd; \
>>>> chmod +x $(DESTDIR)/etc/init.d/wokd; \
>>>> - fi; \
>>>> + fi; \
>>>> if test -d /usr/lib/firewalld/services/; then \
>>>> mkdir -p
>>>> $(DESTDIR)/usr/lib/firewalld/services/; \
>>>> $(INSTALL_DATA) src/firewalld.xml
>>>> $(DESTDIR)/usr/lib/firewalld/services/wokd.xml; \
>>>> diff --git a/contrib/wok.spec.fedora.in
>>>> b/contrib/wok.spec.fedora.in
>>>> index 7987fa8..176bf05 100644
>>>> --- a/contrib/wok.spec.fedora.in
>>>> +++ b/contrib/wok.spec.fedora.in
>>>> @@ -122,6 +122,7 @@ rm -rf $RPM_BUILD_ROOT
>>>> %if 0%{?with_systemd}
>>>> %{_sysconfdir}/nginx/conf.d/wok.conf
>>>> %{_sharedstatedir}/wok/
>>>> +%{_sharedstatedir}/wok/objectstore
>>>> %{_localstatedir}/log/wok/*
>>>> %{_localstatedir}/log/wok/
>>>> %{_unitdir}/wokd.service
>>>> @@ -135,7 +136,7 @@ rm -rf $RPM_BUILD_ROOT
>>>> %endif
>>>>
>>>> %changelog
>>>> -* Fri Jun 19 2015 Lucio Correia <luciojhc at linux.vnet.ibm.com>
>>>> 1.6
>>>> +* Fri Jun 19 2015 Lucio Correia <luciojhc at linux.vnet.ibm.com>
>>>> 2.0
>>>> - Rename to wokd
>>>> - Remove kimchi specifics
>>>>
>>>> diff --git a/contrib/wok.spec.suse.in b/contrib/wok.spec.suse.in
>>>> index f749b9e..742ac72 100644
>>>> --- a/contrib/wok.spec.suse.in
>>>> +++ b/contrib/wok.spec.suse.in
>>>> @@ -95,6 +95,7 @@ rm -rf $RPM_BUILD_ROOT
>>>> %{_sysconfdir}/nginx/conf.d/wok.conf.in
>>>> %{_sysconfdir}/nginx/conf.d/wok.conf
>>>> %{_var}/lib/wok/
>>>> +%{_var}/lib/wok/objectstore
>>>> %{_localstatedir}/log/wok/*
>>>> %{_localstatedir}/log/wok/
>>>> %{_mandir}/man8/wokd.8.gz
>>>> @@ -115,7 +116,7 @@ rm -rf $RPM_BUILD_ROOT
>>>>
>>>>
>>>> %changelog
>>>> -* Fri Jun 19 2015 Lucio Correia <luciojhc at linux.vnet.ibm.com>
>>>> 1.6
>>>> +* Fri Jun 19 2015 Lucio Correia <luciojhc at linux.vnet.ibm.com>
>>>> 2.0
>>>> - Rename to wokd
>>>> - Remove kimchi specifics
>>>>
>>>> diff --git a/src/wok/plugins/kimchi/Makefile.am
>>>> b/src/wok/plugins/kimchi/Makefile.am
>>>> index 47212fe..82c4b19 100644
>>>> --- a/src/wok/plugins/kimchi/Makefile.am
>>>> +++ b/src/wok/plugins/kimchi/Makefile.am
>>>> @@ -99,7 +99,6 @@ config.py: config.py.in Makefile
>>>> install-deb: install
>>>> cp -R $(top_srcdir)/contrib/DEBIAN $(DESTDIR)/
>>>> mkdir -p $(DESTDIR)/$(localstatedir)/lib/kimchi
>>>> - touch $(DESTDIR)/$(localstatedir)/lib/wok/objectstore
>>> Need let this line on Makefile or the build of DEB will fail.
>>> However,
>>> the path must be $(DESTDIR)/$(localstatedir)/lib/kimchi/objectstore
>> You can remove the file from the %files in the spec file to avoid
>> problems in the build.
>>
> Yeah, this also can be done!
> Since the objectstore will be created by Kimchi if it doesn't exist, I
> think this is the better option - remove the objectstore line from
> %files section.
+1
>
>>>> mkdir -p $(DESTDIR)/$(localstatedir)/lib/kimchi/vnc
>>>> -tokens
>>>> mkdir -p
>>>> $(DESTDIR)/$(localstatedir)/lib/kimchi/debugreports
>>>> mkdir -p
>>>> $(DESTDIR)/$(localstatedir)/lib/kimchi/screenshots
>>>> @@ -144,7 +143,6 @@ install-data-local:
>>>> $(INSTALL_DATA) contrib/kimchid.service.fedora
>>>> $(DESTDIR)/etc/systemd/system/wokd.service.d/kimchi.conf; \
>>>> fi; \
>>>> $(MKDIR_P) $(DESTDIR)/$(localstatedir)/lib/kimchi/
>>>> - touch $(DESTDIR)/$(localstatedir)/lib/wok/objectstore
>>> Same here, or RPM creation will fail. Let the line but modify the
>>> path.
>>>
>>>> $(MKDIR_P) $(DESTDIR)$(kimchidir)
>>>> $(INSTALL_DATA) API.json
>>>> $(DESTDIR)$(kimchidir)/API.json
>>>> mkdir -p $(DESTDIR)/$(localstatedir)/lib/kimchi/vnc
>>>> -tokens
>>>> diff --git a/src/wok/plugins/kimchi/config.py.in
>>>> b/src/wok/plugins/kimchi/config.py.in
>>>> index 6ae0ccd..43e94e1 100644
>>>> --- a/src/wok/plugins/kimchi/config.py.in
>>>> +++ b/src/wok/plugins/kimchi/config.py.in
>>>> @@ -42,6 +42,10 @@ def get_debugreports_path():
>>>> return os.path.join(PluginPaths('kimchi').state_dir,
>>>> 'debugreports')
>>>>
>>>>
>>>> +def get_object_store():
>>>> + return os.path.join(PluginPaths('kimchi').state_dir,
>>>> 'objectstore')
>>>> +
>>>> +
>>>> def get_screenshot_path():
>>>> return os.path.join(PluginPaths('kimchi').state_dir,
>>>> 'screenshots')
>>>>
>>>> diff --git a/src/wok/plugins/kimchi/contrib/kimchi.spec.fedora.in
>>>> b/src/wok/plugins/kimchi/contrib/kimchi.spec.fedora.in
>>>> index e4b7b6d..41a8a86 100644
>>>> --- a/src/wok/plugins/kimchi/contrib/kimchi.spec.fedora.in
>>>> +++ b/src/wok/plugins/kimchi/contrib/kimchi.spec.fedora.in
>>>> @@ -100,10 +100,10 @@ rm -rf $RPM_BUILD_ROOT
>>>> %{_sysconfdir}/kimchi/
>>>> %{_sharedstatedir}/kimchi/debugreports/
>>>> %{_sharedstatedir}/kimchi/isos/
>>>> +%{_sharedstatedir}/kimchi/objectstore
>>>> %{_sharedstatedir}/kimchi/screenshots/
>>>> %{_sharedstatedir}/kimchi/vnc-tokens/
>>>> %{_sharedstatedir}/kimchi/
>>>> -%{_sharedstatedir}/wok/objectstore
>>>>
>>>>
>>>> %changelog
>>>> diff --git a/src/wok/plugins/kimchi/contrib/kimchi.spec.suse.in
>>>> b/src/wok/plugins/kimchi/contrib/kimchi.spec.suse.in
>>>> index 03dfa7b..6fbdb3e 100644
>>>> --- a/src/wok/plugins/kimchi/contrib/kimchi.spec.suse.in
>>>> +++ b/src/wok/plugins/kimchi/contrib/kimchi.spec.suse.in
>>>> @@ -87,10 +87,10 @@ rm -rf $RPM_BUILD_ROOT
>>>> %{_sysconfdir}/kimchi/
>>>> %{_var}/lib/kimchi/debugreports/
>>>> %{_var}/lib/kimchi/isos/
>>>> +%{_var}/lib/kimchi/objectstore
>>>> %{_var}/lib/kimchi/screenshots/
>>>> %{_var}/lib/kimchi/vnc-tokens/
>>>> %{_var}/lib/kimchi/
>>>> -%{_var}/lib/wok/objectstore
>>>>
>>>>
>>>> %changelog
>>>> diff --git a/src/wok/plugins/kimchi/model/model.py
>>>> b/src/wok/plugins/kimchi/model/model.py
>>>> index 39097c4..95bd7f3 100644
>>>> --- a/src/wok/plugins/kimchi/model/model.py
>>>> +++ b/src/wok/plugins/kimchi/model/model.py
>>>> @@ -22,6 +22,7 @@ import os
>>>>
>>>> from wok.basemodel import BaseModel
>>>> from wok.objectstore import ObjectStore
>>>> +from wok.plugins.kimchi import config
>>>> from wok.utils import import_module, listPathModules
>>>>
>>>> from libvirtconnection import LibvirtConnection
>>>> @@ -41,7 +42,7 @@ class Model(BaseModel):
>>>>
>>>> return instances
>>>>
>>>> - self.objstore = ObjectStore(objstore_loc)
>>>> + self.objstore = ObjectStore(objstore_loc or
>>>> config.get_object_store())
>>>> self.conn = LibvirtConnection(libvirt_uri)
>>>> kargs = {'objstore': self.objstore, 'conn': self.conn}
>>>> models = []
>>>> diff --git a/src/wok/plugins/kimchi/root.py
>>>> b/src/wok/plugins/kimchi/root.py
>>>> index 9cbc70f..c59f859 100644
>>>> --- a/src/wok/plugins/kimchi/root.py
>>>> +++ b/src/wok/plugins/kimchi/root.py
>>>> @@ -54,6 +54,7 @@ class KimchiRoot(WokRoot):
>>>> self.messages = messages
>>>>
>>>> make_dirs = [
>>>> +
>>>> os.path.dirname(os.path.abspath(config.get_object_store())),
>>>> os.path.abspath(config.get_distros_store()),
>>>> os.path.abspath(config.get_debugreports_path()),
>>>> os.path.abspath(config.get_screenshot_path())
>>>> diff --git a/src/wok/plugins/kimchi/tests/test_mockmodel.py
>>>> b/src/wok/plugins/kimchi/tests/test_mockmodel.py
>>>> index ffbf8d5..2e6b60f 100644
>>>> --- a/src/wok/plugins/kimchi/tests/test_mockmodel.py
>>>> +++ b/src/wok/plugins/kimchi/tests/test_mockmodel.py
>>>> @@ -135,7 +135,7 @@ class MockModelTests(unittest.TestCase):
>>>> self.assertEquals(get_template_default('old',
>>>> 'memory'),
>>>> info['memory'])
>>>> self.assertEquals(1, info['cpus'])
>>>> - self.assertEquals('images/icon-vm.png', info['icon'])
>>>> + self.assertEquals('plugins/kimchi/images/icon-vm.png',
>>>> info['icon'])
>>>> self.assertEquals(stats_keys,
>>>> set(info['stats'].keys()))
>>>> self.assertEquals('vnc', info['graphics']['type'])
>>>> self.assertEquals('127.0.0.1',
>>>> info['graphics']['listen'])
>>> _______________________________________________
>>> Kimchi-devel mailing list
>>> Kimchi-devel at ovirt.org
>>> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>>>
More information about the Kimchi-devel
mailing list