[Kimchi-devel] [PATCH v2][Wok 6/8] Fix Sample plugin

Rodrigo Trujillo rodrigo.trujillo at linux.vnet.ibm.com
Wed Jun 8 21:28:39 UTC 2016



On 06/08/2016 04:09 PM, Aline Manera wrote:
>
>
> On 06/06/2016 04:13 PM, Rodrigo Trujillo wrote:
>> This patch adapts Sample plugin to work with new latest Wok plugin
>> changes and to work with Plugins Manager.
>> ---
>>   src/wok/plugins/sample/__init__.py                 | 54 
>> ++++++++++++++++++++--
>>   src/wok/plugins/sample/control/__init__.py         | 26 +++++++++++
>>   src/wok/plugins/sample/sample.conf.in              | 22 ---------
>>   src/wok/plugins/sample/ui/config/tab-ext.xml       |  9 ++--
>>   .../plugins/sample/ui/pages/sample-tab1.html.tmpl  |  3 ++
>>   .../plugins/sample/ui/pages/sample-tab2.html.tmpl  |  3 ++
>>   6 files changed, 86 insertions(+), 31 deletions(-)
>>   create mode 100644 src/wok/plugins/sample/control/__init__.py
>>
>> diff --git a/src/wok/plugins/sample/__init__.py 
>> b/src/wok/plugins/sample/__init__.py
>> index ff96b15..c65dd0d 100644
>> --- a/src/wok/plugins/sample/__init__.py
>> +++ b/src/wok/plugins/sample/__init__.py
>> @@ -23,21 +23,22 @@ import json
>>   import os
>>   from cherrypy import expose
>>
>> -
>> -from wok.config import PluginPaths
>> +from wok.config import CACHEEXPIRES, PluginConfig, PluginPaths
>>   from wok.control.base import Collection, Resource
>>   from wok.root import WokRoot
>>
>>
>> -from plugins.sample.i18n import messages
>> -from plugins.sample.model import Model
>> +from wok.plugins.sample.i18n import messages
>> +from wok.plugins.sample.model import Model
>>
>>
>>   model = Model()
>>
>>
>> -class Drawings(WokRoot):
>> +class Sample(WokRoot):
>>       def __init__(self, wok_options):
>> +        dev_env = wok_options.environment != 'production'
>> +        super(Sample, self).__init__(model, dev_env)
>
>>           Resource.__init__(self, model)
>
> As you are calling WokRoot.__init__, I don't think this 
> Resource.__init__ is necessary anymore.

ok
>
>>           self.description = Description(model)
>>           self.rectangles = Rectangles(model)
>> @@ -52,6 +53,49 @@ class Drawings(WokRoot):
>>       def index(self):
>>           return 'This is a sample plugin for Wok'
>>
>> +    def get_custom_conf(self):
>> +        return SampleConfig()
>> +
>> +
>> +class SampleConfig(PluginConfig):
>> +    def __init__(self):
>> +        super(SampleConfig, self).__init__('sample')
>> +
>> +        sample_path = PluginPaths('sample')
>> +
>> +        custom_config = {
>> +            '/help': {
>> +                'tools.staticdir.on': True,
>> +                'tools.staticdir.dir': os.path.join(sample_path.ui_dir,
>> + 'pages/help'),
>> +                'tools.nocache.on': True
>> +            },
>
>> +            '/images': {
>> +                'tools.staticdir.on': True,
>> +                'tools.staticdir.dir': os.path.join(sample_path.ui_dir,
>> +                                                    'images'),
>> +                'tools.wokauth.on': False,
>> +                'tools.nocache.on': False
>> +            },
>
> I don't think sample plugin has any image to expose on server.
> So we don't need this there.
ack
>
>> +            '/description': {'tools.wokauth.on': True},
>> +            '/rectangles': {'tools.wokauth.on':  True},
>> +            '/circles': {'tools.wokauth.on':  True}
>> +        }
>> +
>> +        for dirname in ('css', 'js', 'images'):
>
> Same for js and css config.
ack

>> +            custom_config['/' + dirname] = {
>> +                'tools.staticdir.on': True,
>> +                'tools.staticdir.dir': os.path.join(sample_path.ui_dir,
>> +                                                    dirname),
>> +                'tools.wokauth.on': False,
>> +                'tools.nocache.on': False}
>> +            if dirname != 'images':
>> +                custom_config['/' + dirname].update({
>> +                    'tools.expires.on': True,
>> +                    'tools.expires.secs': CACHEEXPIRES})
>> +
>> +        self.update(custom_config)
>> +
>>
>>   class Description(Resource):
>>       def __init__(self, model):
>> diff --git a/src/wok/plugins/sample/control/__init__.py 
>> b/src/wok/plugins/sample/control/__init__.py
>> new file mode 100644
>> index 0000000..c87776e
>> --- /dev/null
>> +++ b/src/wok/plugins/sample/control/__init__.py
>> @@ -0,0 +1,26 @@
>> +#
>> +# Project Wok
>> +#
>> +# Copyright IBM Corp, 2016
>> +#
>> +# This library is free software; you can redistribute it and/or
>> +# modify it under the terms of the GNU Lesser General Public
>> +# License as published by the Free Software Foundation; either
>> +# version 2.1 of the License, or (at your option) any later version.
>> +#
>> +# This library is distributed in the hope that it will be useful,
>> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
>> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>> +# Lesser General Public License for more details.
>> +#
>> +# You should have received a copy of the GNU Lesser General Public
>> +# 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 os
>> +
>> +
>> +from wok.control.utils import load_url_sub_node
>> +
>> +
>> +sub_nodes = load_url_sub_node(os.path.dirname(__file__), __name__)
>> diff --git a/src/wok/plugins/sample/sample.conf.in 
>> b/src/wok/plugins/sample/sample.conf.in
>> index 9da33e1..1e1b8a4 100644
>> --- a/src/wok/plugins/sample/sample.conf.in
>> +++ b/src/wok/plugins/sample/sample.conf.in
>> @@ -1,27 +1,5 @@
>>   [wok]
>>   enable = @ENABLE_SAMPLE@
>> -plugin_class = "Drawings"
>>   uri = "/plugins/sample"
>>
>> -[/]
>> -tools.nocache.on = True
>> -tools.trailing_slash.on = False
>> -tools.sessions.on = True
>> -tools.sessions.name = 'wok'
>> -tools.sessions.httponly = True
>> -tools.sessions.locking = 'explicit'
>> -tools.sessions.storage_type = 'ram'
>>
>> -[/description]
>> -tools.wokauth.on = True
>> -
>> -[/rectangles]
>> -tools.wokauth.on = True
>> -
>> -[/circles]
>> -tools.wokauth.on = True
>> -
>> -[/help]
>> -tools.staticdir.on = True
>> -tools.nocache.on = True
>> -tools.staticdir.dir = wok.config.PluginPaths('sample').ui_dir + 
>> '/pages/help'
>> diff --git a/src/wok/plugins/sample/ui/config/tab-ext.xml 
>> b/src/wok/plugins/sample/ui/config/tab-ext.xml
>> index aff0d14..bcd20fe 100644
>> --- a/src/wok/plugins/sample/ui/config/tab-ext.xml
>> +++ b/src/wok/plugins/sample/ui/config/tab-ext.xml
>> @@ -1,17 +1,18 @@
>>   <?xml version="1.0" encoding="utf-8"?>
>>   <tabs-ext>
>> +    <functionality>Sample</functionality>
>>       <tab>
>>           <access role="admin" mode="admin"/>
>>           <access role="user" mode="none"/>
>> -
>> -        <title>SampleTab 1</title>
>> +        <title>SampleTab1</title>
>> <path>plugins/sample/sample-tab1.html</path>
>> +        <order>10</order>
>>       </tab>
>>       <tab>
>>           <access role="admin" mode="admin"/>
>>           <access role="user" mode="none"/>
>> -
>> -        <title>SampleTab 2</title>
>> +        <title>SampleTab2</title>
>> <path>plugins/sample/sample-tab2.html</path>
>> +        <order>20</order>
>>       </tab>
>>   </tabs-ext>
>> diff --git a/src/wok/plugins/sample/ui/pages/sample-tab1.html.tmpl 
>> b/src/wok/plugins/sample/ui/pages/sample-tab1.html.tmpl
>> index 2777848..8e4b52b 100644
>> --- a/src/wok/plugins/sample/ui/pages/sample-tab1.html.tmpl
>> +++ b/src/wok/plugins/sample/ui/pages/sample-tab1.html.tmpl
>> @@ -22,6 +22,9 @@
>>   <html>
>>   <script type="text/javascript" 
>> src="plugins/sample/js/util.js"></script>
>>   <body>
>> +    <div>
>> +    Sample PAGE 1
>> +    </div>
>>       <div id="samplebody"/>
>>   </body>
>>   <script>
>> diff --git a/src/wok/plugins/sample/ui/pages/sample-tab2.html.tmpl 
>> b/src/wok/plugins/sample/ui/pages/sample-tab2.html.tmpl
>> index 2777848..8f92b80 100644
>> --- a/src/wok/plugins/sample/ui/pages/sample-tab2.html.tmpl
>> +++ b/src/wok/plugins/sample/ui/pages/sample-tab2.html.tmpl
>> @@ -22,6 +22,9 @@
>>   <html>
>>   <script type="text/javascript" 
>> src="plugins/sample/js/util.js"></script>
>>   <body>
>> +    <div>
>> +    Sample PAGE 2
>> +    </div>
>>       <div id="samplebody"/>
>>   </body>
>>   <script>
>
> _______________________________________________
> 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