[PATCH V2] [Wok 0/5] Implement User Request Logger
by Lucio Correia
Changes in V2:
* applied review from gingerbase patch
* added download option
* added crontab for deleting generated downloads
* log login/logout requests
User requests log is saved by default at log/wok-req.log. The maximum file
size is 3 MB and there is rotation with log/wok-req.log.1, which means it will
use at most 6 MB of disk space. Suggestions here are appreciated.
The log format is JSON, since:
* the web user interface will provide a log utility to easily search and filter
log results.
* there is a download function which generates a log-like text file based on
search results.
Request log results can be searched using the following parameters:
* app: filter by application that received the request (wok, kimchi, etc.)
* user: filter by user that performed the request
* req: filter by request type: POST, DELETE, PUT. GET requests are not logged.
* date: filter by request date in format YYYY-MM-DD
* download: generate a log-like text file for download
Sample JSON response:
dev@u1510:~$ curl -u dev -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8010/logs?download=True" -X GET -d '{}'
Enter host password for user 'dev':
{
"records":[
{
"app":"wok",
"req":"POST",
"user":"dev",
"time":"14:39:59",
"date":"2016-02-25",
"message":"User 'dev' logout"
},
(...truncated...)
{
"app":"gingerbase",
"req":"POST",
"user":"dev",
"time":"14:42:31",
"date":"2016-02-25",
"message":"Host software update"
}
],
"uri":"/data/logs/tmpbnOzP2.txt"
}
"uri" value can then be used to download log file:
dev@u1510:~$ curl -u dev -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8010/data/logs/tmpbnOzP2.txt" -X GET -d '{}'
Enter host password for user 'dev':
[2016-02-25 14:39:59] POST wok dev: User 'dev' logout
[2016-02-25 14:40:13] POST gingerbase dev: Create host debug report 'test'
[2016-02-25 14:40:58] PUT gingerbase dev: Update host debug report 'test0'
[2016-02-25 14:41:10] DELETE gingerbase dev: Delete host debug report 'test0'
[2016-02-25 14:41:55] POST gingerbase dev: Enable host software repository 'archive.canonical.com-wily-partner'
[2016-02-25 14:42:06] POST gingerbase dev: Disable host software repository 'archive.canonical.com-wily-partner'
[2016-02-25 14:42:31] POST gingerbase dev: Host software update
Lucio Correia (5):
Add User Request Logger
Install cron for cleaning User Request Logs
Log user requests
Implement User Request Logger API
Fix tests
Makefile.am | 10 +++
contrib/DEBIAN/control.in | 1 +
contrib/Makefile.am | 1 +
contrib/cleanlogs.sh | 4 ++
contrib/wok.spec.fedora.in | 2 +
contrib/wok.spec.suse.in | 2 +
docs/API/logs.md | 27 ++++++++
src/wok/config.py.in | 10 +++
src/wok/control/base.py | 81 ++++++++++++++++++++++--
src/wok/control/logs.py | 43 +++++++++++++
src/wok/i18n.py | 4 +-
src/wok/model/logs.py | 31 +++++++++
src/wok/reqlogger.py | 154 +++++++++++++++++++++++++++++++++++++++++++++
src/wok/root.py | 27 ++++++++
src/wok/server.py | 11 ++++
src/wok/utils.py | 12 ++++
src/wokd.in | 4 ++
tests/utils.py | 1 +
18 files changed, 418 insertions(+), 7 deletions(-)
create mode 100644 contrib/cleanlogs.sh
create mode 100644 docs/API/logs.md
create mode 100644 src/wok/control/logs.py
create mode 100644 src/wok/model/logs.py
create mode 100644 src/wok/reqlogger.py
--
1.9.1
8 years, 9 months
[PATCH] [Kimchi] Fixed navbar order
by sguimaraes943@gmail.com
From: Samuel Guimarães <sguimaraes943(a)gmail.com>
This patch fixes Kimchi navbar order after the latests changes on genTabs() method in Wok.
Samuel Guimarães (1):
Fixed navbar order
ui/config/tab-ext.xml | 4 ++++
1 file changed, 4 insertions(+)
--
1.9.3
8 years, 9 months
[PATCH] [Wok] Create file structure to Wok tab
by Aline Manera
Signed-off-by: Aline Manera <alinefm(a)linux.vnet.ibm.com>
---
IBM-license-blacklist | 1 +
configure.ac | 2 ++
src/wok/config.py.in | 6 ++++++
ui/Makefile.am | 2 +-
ui/config/Makefile.am | 22 ++++++++++++++++++++++
ui/config/tab-ext.xml | 10 ++++++++++
ui/pages/Makefile.am | 2 ++
ui/pages/tabs/Makefile.am | 20 ++++++++++++++++++++
ui/pages/tabs/settings.html.tmpl | 31 +++++++++++++++++++++++++++++++
9 files changed, 95 insertions(+), 1 deletion(-)
create mode 100644 ui/config/Makefile.am
create mode 100644 ui/config/tab-ext.xml
create mode 100644 ui/pages/tabs/Makefile.am
create mode 100644 ui/pages/tabs/settings.html.tmpl
diff --git a/IBM-license-blacklist b/IBM-license-blacklist
index 133f119..7210b82 100644
--- a/IBM-license-blacklist
+++ b/IBM-license-blacklist
@@ -65,6 +65,7 @@ ui/css/src/vendor/compass-mixins/lib/compass/utilities/lists/.*.scss
ui/css/src/vendor/compass-mixins/lib/compass/utilities/sprites/.*.scss
ui/css/src/vendor/compass-mixins/lib/compass/utilities/tables/.*.scss
ui/css/src/vendor/compass-mixins/lib/compass/utilities/text/.*.scss
+ui/config/tab-ext.xml
ui/images/theme-default/.*.svg
ui/libs/bootstrap-editable/LICENSE
ui/libs/bootstrap-editable/dist/css/bootstrap-editable.css
diff --git a/configure.ac b/configure.ac
index 9925753..0a5ce80 100644
--- a/configure.ac
+++ b/configure.ac
@@ -142,6 +142,8 @@ AC_CONFIG_FILES([
ui/libs/list-js/Makefile
ui/libs/typeahead/Makefile
ui/pages/Makefile
+ ui/pages/tabs/Makefile
+ ui/config/Makefile
contrib/Makefile
contrib/DEBIAN/Makefile
contrib/DEBIAN/control
diff --git a/src/wok/config.py.in b/src/wok/config.py.in
index 40fbcda..5138d13 100644
--- a/src/wok/config.py.in
+++ b/src/wok/config.py.in
@@ -188,6 +188,12 @@ class WokConfig(dict):
'tools.sessions.timeout': SESSIONSTIMEOUT,
'tools.wokauth.on': False
},
+ '/ui/config/tab-ext.xml': {
+ 'tools.staticfile.on': True,
+ 'tools.staticfile.filename': os.path.join(paths.ui_dir,
+ 'config/tab-ext.xml'),
+ 'tools.nocache.on': True
+ },
'/base64/jquery.base64.js': {
'tools.staticfile.on': True,
'tools.staticfile.filename': '%s/base64/jquery.base64.js' %
diff --git a/ui/Makefile.am b/ui/Makefile.am
index c3ee649..07218dc 100644
--- a/ui/Makefile.am
+++ b/ui/Makefile.am
@@ -17,7 +17,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-SUBDIRS = base64 css images js libs pages
+SUBDIRS = base64 css images js libs pages config
uidir = $(datadir)/wok/ui
diff --git a/ui/config/Makefile.am b/ui/config/Makefile.am
new file mode 100644
index 0000000..a723dff
--- /dev/null
+++ b/ui/config/Makefile.am
@@ -0,0 +1,22 @@
+#
+# Project Wok
+#
+# Copyright IBM Corp, 2016
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+xmldir = $(datadir)/wok/ui/config
+
+dist_xml_DATA = \
+ tab-ext.xml \
+ $(NULL)
diff --git a/ui/config/tab-ext.xml b/ui/config/tab-ext.xml
new file mode 100644
index 0000000..0b0e2b6
--- /dev/null
+++ b/ui/config/tab-ext.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tabs-ext>
+ <functionality>Wok</functionality>
+ <tab>
+ <access role="admin" mode="admin"/>
+ <access role="user" mode="none"/>
+ <title>Settings</title>
+ <path>tabs/settings.html</path>
+ </tab>
+</tabs-ext>
diff --git a/ui/pages/Makefile.am b/ui/pages/Makefile.am
index 0b13c0d..5b8370d 100644
--- a/ui/pages/Makefile.am
+++ b/ui/pages/Makefile.am
@@ -17,6 +17,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+SUBDIRS = tabs
+
htmldir = $(datadir)/wok/ui/pages
dist_html_DATA = $(wildcard *.tmpl) $(NULL)
diff --git a/ui/pages/tabs/Makefile.am b/ui/pages/tabs/Makefile.am
new file mode 100644
index 0000000..351ba1b
--- /dev/null
+++ b/ui/pages/tabs/Makefile.am
@@ -0,0 +1,20 @@
+#
+# Project Wok
+#
+# Copyright IBM Corp, 2013-2016
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+tabshtmldir = $(datadir)/wok/ui/pages/tabs
+
+dist_tabshtml_DATA = $(wildcard *.html.tmpl) $(NULL)
diff --git a/ui/pages/tabs/settings.html.tmpl b/ui/pages/tabs/settings.html.tmpl
new file mode 100644
index 0000000..811f147
--- /dev/null
+++ b/ui/pages/tabs/settings.html.tmpl
@@ -0,0 +1,31 @@
+#*
+* Project Wok
+*
+* Copyright IBM Corp, 2016
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*#
+#unicode UTF-8
+#import gettext
+#from wok.cachebust import href
+#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
+#silent _ = t.gettext
+#silent _t = t.gettext
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+<body>
+<p>Content here</p>
+</body>
+</html>
--
2.5.0
8 years, 9 months
[PATCH] [Wok 0/4] Wok User Activity Log
by sguimaraes943@gmail.com
From: Samuel Guimarães <sguimaraes943(a)gmail.com>
This patch adds User Activity Log support to Wok. It also includes some minor enhancements in SCSS that can be used by other projects.
Aline Manera (1):
Create file structure to Wok tab
Samuel Guimarães (3):
Enabled Wok tab in navbar
Imported ginger accordion mixin to wok as scss module
Wok User Activity Log
IBM-license-blacklist | 1 +
configure.ac | 2 +
src/wok/config.py.in | 6 +
ui/Makefile.am | 2 +-
ui/config/Makefile.am | 22 +++
ui/config/tab-ext.xml | 11 ++
ui/css/Makefile.am | 8 +-
ui/css/bootstrap.custom.css | 20 ++-
ui/css/settings.css | 195 ++++++++++++++++++++
ui/css/src/modules/_datepicker.scss | 147 +++++++++++++++
ui/css/src/modules/_toolbar.scss | 9 +-
ui/css/src/modules/_typeahead.scss | 127 +++++++++++++
ui/css/src/modules/_wok-accordion.scss | 68 +++++++
ui/css/src/modules/_wok-variables.scss | 6 +-
ui/css/src/settings.scss | 132 ++++++++++++++
ui/css/src/wok.scss | 4 +
ui/css/wok.css | 308 +++++++++++++++++++++++++++++++-
ui/js/src/wok.main.js | 8 +
ui/js/wok.bootgrid.js | 141 +++++++++++++++
ui/js/wok.user-log.js | 246 +++++++++++++++++++++++++
ui/pages/Makefile.am | 2 +
ui/pages/i18n.json.tmpl | 14 +-
ui/pages/tabs/Makefile.am | 20 +++
ui/pages/tabs/settings-search.html.tmpl | 73 ++++++++
ui/pages/tabs/settings.html.tmpl | 76 ++++++++
25 files changed, 1633 insertions(+), 15 deletions(-)
create mode 100644 ui/config/Makefile.am
create mode 100644 ui/config/tab-ext.xml
create mode 100644 ui/css/settings.css
create mode 100644 ui/css/src/modules/_datepicker.scss
create mode 100644 ui/css/src/modules/_typeahead.scss
create mode 100644 ui/css/src/modules/_wok-accordion.scss
create mode 100644 ui/css/src/settings.scss
create mode 100644 ui/js/wok.bootgrid.js
create mode 100644 ui/js/wok.user-log.js
create mode 100644 ui/pages/tabs/Makefile.am
create mode 100644 ui/pages/tabs/settings-search.html.tmpl
create mode 100644 ui/pages/tabs/settings.html.tmpl
--
1.9.3
8 years, 9 months
[PATCH] [Kimchi 0/2] Set memory when attaching GPU
by Jose Ricardo Ziviani
Set the window size accordingly when attaching a GPU.
Jose Ricardo Ziviani (2):
Set mmio memory when GPU is attached
Create test cases for GPU attachment
i18n.py | 2 +-
mockmodel.py | 160 +++++++++++++++++++++++++++++++++++++++++++++++-
model/host.py | 4 +-
model/vmhostdevs.py | 141 ++++++++++++++++++++++++++++++++++++++++--
tests/test_mockmodel.py | 33 ++++++++++
5 files changed, 332 insertions(+), 8 deletions(-)
--
1.9.1
8 years, 9 months
[PATCH][Kimchi] Fix memory values in guest with attached memory devices
by Rodrigo Trujillo
There are issues when user attaches memory devices to a guest (memory
hotplug) and try later to modify the memory values offline.
This patch fixes the problems, checking whether there are memory devices
configured and adjusting the newmemory value.
This patch sets the following rules:
- if new memory value is equal max memory, all memory devices will be
removed
- if new memory is greater than old value, just update the memory
- if new memory is lesser than old value, always remove 1G memory
devices first and then decrease the memory value until reach the
amount requested
Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo(a)linux.vnet.ibm.com>
---
model/vms.py | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/model/vms.py b/model/vms.py
index c376741..8c3d4c4 100644
--- a/model/vms.py
+++ b/model/vms.py
@@ -825,6 +825,24 @@ class VMModel(object):
validate_memory({'current': newMem >> 10,
'maxmemory': newMaxMem >> 10})
+ # Adjust memory devices to new memory, if necessary
+ memDevs = root.findall('./devices/memory')
+ if len(memDevs) != 0 and hasMem:
+ if newMem == newMaxMem:
+ for dev in memDevs:
+ root.find('./devices').remove(dev)
+ elif newMem > (oldMem << 10):
+ newMem = newMem - (len(memDevs) * (1024 << 10))
+ elif newMem < (oldMem << 10):
+ devsRemove = len(memDevs) - (oldMem - (newMem >> 10))/1024 - 1
+ for dev in memDevs:
+ if int(dev.xpath('./address/@slot')[0]) > devsRemove:
+ root.find('./devices').remove(dev)
+ newMem = newMem - (len(root.findall('./devices/memory'))
+ * 1024 << 10)
+ elif newMem == (oldMem << 10):
+ newMem = newMem - ((len(memDevs) * 1024) << 10)
+
def _get_slots(mem, maxMem):
slots = (maxMem - mem) >> 10 >> 10
# Libvirt does not accepts slots <= 1
--
2.1.0
8 years, 9 months
[PATCH] [Wok] Fix test issue
by Lucio Correia
In a clean environment, system does not create log directory.
Fix this issue and also remove unnecessary server init option.
Signed-off-by: Lucio Correia <luciojhc(a)linux.vnet.ibm.com>
---
src/wok/server.py | 1 +
tests/utils.py | 1 -
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/wok/server.py b/src/wok/server.py
index 122efff..902d4bf 100644
--- a/src/wok/server.py
+++ b/src/wok/server.py
@@ -68,6 +68,7 @@ class Server(object):
make_dirs = [
os.path.abspath(config.get_log_download_path()),
+ os.path.abspath(configParser.get("logging", "log_dir")),
os.path.dirname(os.path.abspath(options.access_log)),
os.path.dirname(os.path.abspath(options.error_log)),
os.path.dirname(os.path.abspath(config.get_object_store()))
diff --git a/tests/utils.py b/tests/utils.py
index 249205d..d158ba1 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -119,7 +119,6 @@ def run_server(host, port, ssl_port, test_mode, cherrypy_port=None,
'websockets_port': 64667, 'ssl_cert': '', 'ssl_key': '',
'max_body_size': '4*1024', 'test': test_mode,
'access_log': '/dev/null', 'error_log': '/dev/null',
- 'req_log': '/dev/null',
'environment': environment, 'log_level': 'debug'})()
if model is not None:
setattr(args, 'model', model)
--
1.9.1
8 years, 9 months
[PATCH V4] [Wok 0/4] Implement User Request Logger
by Lucio Correia
Changes in V4:
* Update log removal interval to 6 hours
Changes in V3:
* Replaced cron by cherrypy's BackgroundTask
* Created RequestLogger class
* Removed --req-log config option
* Small fixes
Changes in V2:
* applied review from gingerbase patch
* added download option
* added crontab for deleting generated downloads
* log login/logout requests
User requests log is saved by default at log/wok-req.log. The maximum file
size is 3 MB and there is rotation with log/wok-req.log.1, which means it will
use at most 6 MB of disk space. Suggestions here are appreciated.
The log format is JSON, since:
* the web user interface will provide a log utility to easily search and filter
log results.
* there is a download function which generates a log-like text file based on
search results.
Request log results can be searched using the following parameters:
* app: filter by application that received the request (wok, kimchi, etc.)
* user: filter by user that performed the request
* req: filter by request type: POST, DELETE, PUT. GET requests are not logged.
* date: filter by request date in format YYYY-MM-DD
* download: generate a log-like text file for download
Sample JSON response:
dev@u1510:~$ curl -u dev -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8010/logs?download=True" -X GET -d '{}'
Enter host password for user 'dev':
{
"records":[
{
"app":"wok",
"req":"POST",
"user":"dev",
"time":"14:39:59",
"date":"2016-02-25",
"message":"User 'dev' logout"
},
(...truncated...)
{
"app":"gingerbase",
"req":"POST",
"user":"dev",
"time":"14:42:31",
"date":"2016-02-25",
"message":"Host software update"
}
],
"uri":"/data/logs/tmpbnOzP2.txt"
}
"uri" value can then be used to download log file:
dev@u1510:~$ curl -u dev -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8010/data/logs/tmpbnOzP2.txt" -X GET -d '{}'
Enter host password for user 'dev':
[2016-02-25 14:39:59] POST wok dev: User 'dev' logout
[2016-02-25 14:40:13] POST gingerbase dev: Create host debug report 'test'
[2016-02-25 14:40:58] PUT gingerbase dev: Update host debug report 'test0'
[2016-02-25 14:41:10] DELETE gingerbase dev: Delete host debug report 'test0'
[2016-02-25 14:41:55] POST gingerbase dev: Enable host software repository 'archive.canonical.com-wily-partner'
[2016-02-25 14:42:06] POST gingerbase dev: Disable host software repository 'archive.canonical.com-wily-partner'
[2016-02-25 14:42:31] POST gingerbase dev: Host software update
Lucio Correia (4):
Add User Request Logger
Log user requests
Implement User Request Logger API
Fix tests
docs/API/logs.md | 27 +++++++
src/wok/config.py.in | 10 +++
src/wok/control/base.py | 81 +++++++++++++++++++--
src/wok/control/logs.py | 43 +++++++++++
src/wok/i18n.py | 4 +-
src/wok/model/logs.py | 31 ++++++++
src/wok/reqlogger.py | 184 ++++++++++++++++++++++++++++++++++++++++++++++++
src/wok/root.py | 28 ++++++++
src/wok/server.py | 6 ++
src/wok/utils.py | 32 +++++++++
tests/utils.py | 1 +
11 files changed, 440 insertions(+), 7 deletions(-)
create mode 100644 docs/API/logs.md
create mode 100644 src/wok/control/logs.py
create mode 100644 src/wok/model/logs.py
create mode 100644 src/wok/reqlogger.py
--
1.9.1
8 years, 10 months
[PATCH V3] [Wok 0/4] Implement User Request Logger
by Lucio Correia
Changes in V3:
* Replaced cron by cherrypy's BackgroundTask
* Created RequestLogger class
* Removed --req-log config option
* Small fixes
Changes in V2:
* applied review from gingerbase patch
* added download option
* added crontab for deleting generated downloads
* log login/logout requests
User requests log is saved by default at log/wok-req.log. The maximum file
size is 3 MB and there is rotation with log/wok-req.log.1, which means it will
use at most 6 MB of disk space. Suggestions here are appreciated.
The log format is JSON, since:
* the web user interface will provide a log utility to easily search and filter
log results.
* there is a download function which generates a log-like text file based on
search results.
Request log results can be searched using the following parameters:
* app: filter by application that received the request (wok, kimchi, etc.)
* user: filter by user that performed the request
* req: filter by request type: POST, DELETE, PUT. GET requests are not logged.
* date: filter by request date in format YYYY-MM-DD
* download: generate a log-like text file for download
Sample JSON response:
dev@u1510:~$ curl -u dev -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8010/logs?download=True" -X GET -d '{}'
Enter host password for user 'dev':
{
"records":[
{
"app":"wok",
"req":"POST",
"user":"dev",
"time":"14:39:59",
"date":"2016-02-25",
"message":"User 'dev' logout"
},
(...truncated...)
{
"app":"gingerbase",
"req":"POST",
"user":"dev",
"time":"14:42:31",
"date":"2016-02-25",
"message":"Host software update"
}
],
"uri":"/data/logs/tmpbnOzP2.txt"
}
"uri" value can then be used to download log file:
dev@u1510:~$ curl -u dev -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8010/data/logs/tmpbnOzP2.txt" -X GET -d '{}'
Enter host password for user 'dev':
[2016-02-25 14:39:59] POST wok dev: User 'dev' logout
[2016-02-25 14:40:13] POST gingerbase dev: Create host debug report 'test'
[2016-02-25 14:40:58] PUT gingerbase dev: Update host debug report 'test0'
[2016-02-25 14:41:10] DELETE gingerbase dev: Delete host debug report 'test0'
[2016-02-25 14:41:55] POST gingerbase dev: Enable host software repository 'archive.canonical.com-wily-partner'
[2016-02-25 14:42:06] POST gingerbase dev: Disable host software repository 'archive.canonical.com-wily-partner'
[2016-02-25 14:42:31] POST gingerbase dev: Host software update
Lucio Correia (4):
Add User Request Logger
Log user requests
Implement User Request Logger API
Fix tests
docs/API/logs.md | 27 +++++++
src/wok/config.py.in | 10 +++
src/wok/control/base.py | 81 +++++++++++++++++++--
src/wok/control/logs.py | 43 +++++++++++
src/wok/i18n.py | 4 +-
src/wok/model/logs.py | 31 ++++++++
src/wok/reqlogger.py | 184 ++++++++++++++++++++++++++++++++++++++++++++++++
src/wok/root.py | 28 ++++++++
src/wok/server.py | 6 ++
src/wok/utils.py | 32 +++++++++
tests/utils.py | 1 +
11 files changed, 440 insertions(+), 7 deletions(-)
create mode 100644 docs/API/logs.md
create mode 100644 src/wok/control/logs.py
create mode 100644 src/wok/model/logs.py
create mode 100644 src/wok/reqlogger.py
--
1.9.1
8 years, 10 months
[PATCH] [Kimchi] Added Kimchi SVG logo for login page, footer and about window
by sguimaraes943@gmail.com
From: Samuel Guimarães <sguimaraes943(a)gmail.com>
This patch adds kimchi.svg to ui/images folder.
Samuel Guimarães (1):
Added Kimchi SVG logo for login page, footer and about window
ui/images/Makefile.am | 2 +-
ui/images/kimchi.svg | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 1 deletion(-)
create mode 100644 ui/images/kimchi.svg
--
1.9.3
8 years, 10 months