[Kimchi-devel] [PATCH] [Kimchi] Remove federation feature from Kimchi as it is now on Wok

Aline Manera posted 1 patch 7 years, 7 months ago
Failed in applying to current master (apply log)
control/peers.py          |  28 ----------
docs/API.md               |  10 ----
docs/README-federation.md |  60 --------------------
kimchi.conf               |   4 --
model/config.py           |   8 +--
model/peers.py            |  74 ------------------------
root.py                   |   8 ---
tests/test_config.py.in   |   3 +-
tests/test_rest.py        |   6 +-
ui/js/kimchi.peers.js     | 140 ----------------------------------------------
ui/js/src/kimchi.main.js  |   3 -
ui/pages/i18n.json.tmpl   |   7 +--
12 files changed, 7 insertions(+), 344 deletions(-)
delete mode 100644 control/peers.py
delete mode 100644 docs/README-federation.md
delete mode 100644 model/peers.py
delete mode 100644 ui/js/kimchi.peers.js
[Kimchi-devel] [PATCH] [Kimchi] Remove federation feature from Kimchi as it is now on Wok
Posted by Aline Manera 7 years, 7 months ago
Signed-off-by: Aline Manera <alinefm@linux.vnet.ibm.com>
---
 control/peers.py          |  28 ----------
 docs/API.md               |  10 ----
 docs/README-federation.md |  60 --------------------
 kimchi.conf               |   4 --
 model/config.py           |   8 +--
 model/peers.py            |  74 ------------------------
 root.py                   |   8 ---
 tests/test_config.py.in   |   3 +-
 tests/test_rest.py        |   6 +-
 ui/js/kimchi.peers.js     | 140 ----------------------------------------------
 ui/js/src/kimchi.main.js  |   3 -
 ui/pages/i18n.json.tmpl   |   7 +--
 12 files changed, 7 insertions(+), 344 deletions(-)
 delete mode 100644 control/peers.py
 delete mode 100644 docs/README-federation.md
 delete mode 100644 model/peers.py
 delete mode 100644 ui/js/kimchi.peers.js

diff --git a/control/peers.py b/control/peers.py
deleted file mode 100644
index 5eaacdd..0000000
--- a/control/peers.py
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Project Kimchi
-#
-# Copyright IBM Corp, 2015-2017
-#
-# 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
-
-from wok.control.base import SimpleCollection
-from wok.control.utils import UrlSubNode
-
-
-@UrlSubNode("peers", True)
-class Peers(SimpleCollection):
-    def __init__(self, model):
-        super(Peers, self).__init__(model)
-        self.admin_methods = ['GET']
diff --git a/docs/API.md b/docs/API.md
index 3ecc7a0..1f67879 100644
--- a/docs/API.md
+++ b/docs/API.md
@@ -820,7 +820,6 @@ Contains information about Kimchi configuration.
 **Methods:**
 
 * **GET**: Retrieve configuration information
-    * federation: True if federation feature is enabled, False otherwise.
     * version: The version of the kimchi service
 * **POST**: *See Configuration Actions*
 
@@ -1052,15 +1051,6 @@ List of available groups.
     * free: Amount of free space in the volume group.
     * size: Total size of the volume group.
 
-### Collection: Peers
-
-**URI:** /plugins/kimchi/peers
-
-**Methods:**
-
-* **GET**: Return the list of Kimchi peers in the same network
-           (It uses openSLP for discovering)
-
 ### Simple Collection: OVSBridges
 
 **URI:** /plugins/kimchi/ovsbridges
diff --git a/docs/README-federation.md b/docs/README-federation.md
deleted file mode 100644
index 3554757..0000000
--- a/docs/README-federation.md
+++ /dev/null
@@ -1,60 +0,0 @@
-Kimchi Project - Federation Feature
-===================================
-
-Federation feature is a Kimchi mechanism to discover Wok peers in the same
-network. It uses openSLP tool (http://www.openslp.org/) to register and find Wok
-servers.
-
-By default this feature is disabled on Wok as it is not critical for KVM
-virtualization and requires additional software installation.
-
-To enable it, do the following:
-
-1. Install openslp and openslp-server rpm packages,
-   or install slpd and slptool deb packages.
-
-2. openSLP uses port 427 (UDP) and port 427 (TCP) so make sure to open those
-   ports in your firewall configuration
-
-   For system using firewalld, do:
-   sudo firewall-cmd --permanent --add-port=427/udp
-   sudo firewall-cmd --permanent --add-port=427/tcp
-   sudo firewall-cmd --reload
-
-   For openSUSE systems, do:
-   sudo /sbin/SuSEfirewall2 open EXT TCP 427
-   sudo /sbin/SuSEfirewall2 open EXT UDP 427
-
-   For system using iptables, do:
-   sudo iptables -A INPUT -p tcp --dport 427 -j ACCEPT
-   sudo iptables -A INPUT -p udp --dport 427 -j ACCEPT
-
-3. In addition to the openSLP ports, you also need to allow multicast in the
-   firewall configuration
-
-   For system using firewalld, do:
-   sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -s <subnet> -j ACCEPT
-
-   For openSUSE systems, do:
-   Add the subnet to the trusted networks listed on FW_TRUSTED_NETS in
-   /etc/sysconfig/SuSEfirewall2 file.
-   Make sure to restart /sbin/SuSEfirewall2 after modifying /etc/sysconfig/SuSEfirewall2
-
-   For system using iptables, do:
-   sudo iptables -A INPUT -s <subnet> -j ACCEPT
-
-4. Start slpd service and make sure it is up while running Wok
-   sudo service slpd start
-
-5. Enable federation on Wok by editing the /etc/wok/plugins.d/kimchi.conf file:
-
-   federation = True
-
-6. Then start Wok service
-   sudo service wokd start
-
-The Wok server will be registered on openSLP on server starting up and will
-be found by other Wok peers (with federation feature enabled) in the same
-network.
-
-Enjoy!
diff --git a/kimchi.conf b/kimchi.conf
index 97a14bd..5e85e2b 100644
--- a/kimchi.conf
+++ b/kimchi.conf
@@ -3,9 +3,5 @@
 enable = True
 
 [kimchi]
-# Federation feature: register Wok server on openSLP and discover peers
-# in the same network. Check README-federation for more details.
-federation = False
-
 # Automatically create ISO pool on server start up
 create_iso_pool = True
diff --git a/model/config.py b/model/config.py
index 78cdaeb..1db9afb 100644
--- a/model/config.py
+++ b/model/config.py
@@ -1,7 +1,7 @@
 #
 # Project Kimchi
 #
-# Copyright IBM Corp, 2015-2016
+# Copyright IBM Corp, 2015-2017
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -24,7 +24,7 @@ from wok.basemodel import Singleton
 from wok.exception import NotFoundError
 from wok.utils import run_command, wok_log
 
-from wok.plugins.kimchi.config import config, find_qemu_binary
+from wok.plugins.kimchi.config import find_qemu_binary
 from wok.plugins.kimchi.config import get_kimchi_version
 from wok.plugins.kimchi.distroloader import DistroLoader
 from wok.plugins.kimchi.model.featuretests import FeatureTests
@@ -39,9 +39,7 @@ class ConfigModel(object):
         pass
 
     def lookup(self, name):
-        kconfig = config.get('kimchi', {})
-        return {'federation': kconfig.get('federation', False),
-                'version': get_kimchi_version()}
+        return {'version': get_kimchi_version()}
 
 
 class CapabilitiesModel(object):
diff --git a/model/peers.py b/model/peers.py
deleted file mode 100644
index 0a4ee4b..0000000
--- a/model/peers.py
+++ /dev/null
@@ -1,74 +0,0 @@
-#
-# Project Kimchi
-#
-# Copyright IBM Corp, 2015-2017
-#
-# 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 cherrypy
-import re
-import socket
-
-from wok.config import config as wok_config
-from wok.utils import run_command, wok_log
-
-from wok.plugins.kimchi.config import config
-
-
-class PeersModel(object):
-    def __init__(self, **kargs):
-        # check federation feature is enabled on Kimchi server
-        if not config.get('kimchi', {}).get('federation', False):
-            return
-
-        # register server on openslp
-        hostname = socket.getfqdn()
-        port = wok_config.get("server", "proxy_port")
-        self.url = hostname + ":" + port
-
-        cmd = ["slptool", "register",
-               "service:wokd://%s" % self.url]
-        out, error, ret = run_command(cmd)
-        if out and len(out) != 0:
-            wok_log.error("Unable to register server on openSLP."
-                          " Details: %s" % out)
-        cherrypy.engine.subscribe('exit', self._peer_deregister)
-
-    def _peer_deregister(self):
-        cmd = ["slptool", "deregister",
-               "service:wokd://%s" % self.url]
-        out, error, ret = run_command(cmd)
-        if out and len(out) != 0:
-            wok_log.error("Unable to deregister server on openSLP."
-                          " Details: %s" % out)
-
-    def get_list(self):
-        # check federation feature is enabled on Kimchi server
-        if not config.get('kimchi', {}).get('federation', False):
-            return []
-
-        cmd = ["slptool", "findsrvs", "service:wokd"]
-        out, error, ret = run_command(cmd)
-        if ret != 0:
-            return []
-
-        peers = []
-        for server in out.strip().split("\n"):
-            match = re.match("service:wokd://(.*?),.*", server)
-            peer = match.group(1)
-            if peer != self.url:
-                peers.append("https://" + peer)
-
-        return peers
diff --git a/root.py b/root.py
index 4f131e7..d42e787 100644
--- a/root.py
+++ b/root.py
@@ -72,14 +72,6 @@ class Kimchi(WokRoot):
         self.domain = 'kimchi'
         self.messages = messages
 
-        self.extends = {
-            "/plugins/gingerbase": {
-                "host-dashboard.html": "/plugins/kimchi/js/kimchi.peers.js"
-            }
-        }
-
-        self.depends = ['gingerbase']
-
         # Some paths or URI's present in the objectstore have changed after
         # Kimchi 2.0.0 release. Check here if an upgrade in the schema and data
         # are necessary.
diff --git a/tests/test_config.py.in b/tests/test_config.py.in
index 135097b..dd47130 100644
--- a/tests/test_config.py.in
+++ b/tests/test_config.py.in
@@ -80,8 +80,7 @@ class ConfigTests(unittest.TestCase):
                 'enable': True
             },
             'kimchi': {
-                'federation': False,
-                'create_iso_pool': True,
+                'create_iso_pool': True
             },
             '/': {
                 'tools.trailing_slash.on': False,
diff --git a/tests/test_rest.py b/tests/test_rest.py
index 852e4bd..f808478 100644
--- a/tests/test_rest.py
+++ b/tests/test_rest.py
@@ -1529,7 +1529,7 @@ class RestTests(unittest.TestCase):
     def test_config(self):
         resp = self.request('/plugins/kimchi/config').read()
         conf = json.loads(resp)
-        keys = ["federation", "version"]
+        keys = ["version"]
         self.assertEquals(keys, sorted(conf.keys()))
 
     def test_capabilities(self):
@@ -1541,10 +1541,6 @@ class RestTests(unittest.TestCase):
                 u'mem_hotplug_support', u'libvirtd_running']
         self.assertEquals(sorted(keys), sorted(conf.keys()))
 
-    def test_peers(self):
-        resp = self.request('/plugins/kimchi/peers').read()
-        self.assertEquals([], json.loads(resp))
-
     def test_distros(self):
         resp = self.request('/plugins/kimchi/config/distros').read()
         distros = json.loads(resp)
diff --git a/ui/js/kimchi.peers.js b/ui/js/kimchi.peers.js
deleted file mode 100644
index 8b1a18d..0000000
--- a/ui/js/kimchi.peers.js
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Project Kimchi
- *
- * 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.
- */
-
-var kimchi = {
-
-    getPeers: function(suc, err) {
-        wok.requestJSON({
-            url: 'plugins/kimchi/peers',
-            type: 'GET',
-            contentType: 'application/json',
-            dataType: 'json',
-            resend: true,
-            success: suc,
-            error: err ? err : function(data) {
-                wok.message.error(data.responseJSON.reason);
-            }
-        });
-    },
-
-    initPeers: function() {
-
-        var peersAccordion = "<div class='panel-group federation-enabled accordion' id='peers-content-area-accordion' role='tablist' aria-multiselectable='true'>" +
-            "<h3>" +
-            "<a role='button' aria-expanded='true' data-toggle='collapse' data-parent='#peers-content-area-accordion' href='#peers-content-area' aria-expanded='false' aria-controls='peers-content-area' class=''>" +
-            "<span class='accordion-icon'></span>" +
-            "<span class='accordion-text' id='#peers-title'>"+i18n['KCHPEERS0001M']+"</span>" +
-            "</a>" +
-            "</h3>" +
-            "<div id='peers-content-area' class='panel-collapse collapse in' role='tabpanel' aria-labelledby='peers-title'>" +
-            "<div id='peers-alert-container'></div>" +
-            "<div class='row'>" +
-            "<div class='col-sm-12'>" +
-            "<table id='peers-list' class='table table-striped' cellspacing='0' width='100%''>" +
-            "<thead>" +
-            "<tr>" +
-            "<th><span class='sr-only'>" + i18n['KCHPEERS0001M'] + "</span></th>" +
-            "</tr>" +
-            "</thead>" +
-            "</table>" +
-            "</div>" +
-            "</div>" +
-            "<div class='wok-mask' role='presentation'>" +
-            "<div class='wok-mask-loader-container'>" +
-            "<div class='wok-mask-loading'>" +
-            "<div class='wok-mask-loading-icon'></div>" +
-            "<div class='wok-mask-loading-text'>" + i18n['WOKGRD6001M'] + "</div>" +
-            "</div>" +
-            "</div>" +
-            "</div>" +
-            "</div>" +
-            "</div>";
-
-        var peersDatatableTable;
-        var peers = new Array();
-
-        $('#peers-container > .container').append(peersAccordion);
-
-        var peersDatatable = function(nwConfigDataSet) {
-            peersDatatableTable = $('#peers-list').DataTable({
-                "processing": true,
-                "data": peers,
-                "language": {
-                    "emptyTable": i18n['WOKSETT0010M']
-                },
-                "order": [],
-                "paging": false,
-                "dom": '<"row"<"col-sm-12"t>>',
-                "scrollY": "269px",
-                "scrollCollapse": true,
-                "columnDefs": [{
-                    "targets": 0,
-                    "searchable": false,
-                    "orderable": false,
-                    "width": "100%",
-                    "className": "tabular-data",
-                    "render": function(data, type, full, meta) {
-                        return '<a href="' + data + '" target="_blank">' + data + '</a>';
-                    }
-                }],
-                "initComplete": function(settings, json) {
-                    $('#peers-content-area > .wok-mask').addClass('hidden');
-                }
-            });
-        };
-
-        var getPeers = function() {
-            kimchi.getPeers(function(result) {
-                peers.length = 0;
-                for (var i = 0; i < result.length; i++) {
-                    var tempArr = [];
-                    tempArr.push(result[i]);
-                    peers.push(tempArr);
-                }
-                peersDatatable(peers);
-            }, function(err) {
-                wok.message.error(err.responseJSON.reason, '#peers-alert-container', true);
-            });
-        };
-        getPeers();
-
-    },
-
-    getConfig: function(suc, err, done) {
-        done = typeof done !== 'undefined' ? done : function() {};
-        wok.requestJSON({
-            url: "plugins/kimchi/config",
-            type: "GET",
-            contentType: "application/json",
-            dataType: "json",
-            success: suc,
-            error: err,
-            complete: done
-        });
-    }
-}
-
-$(document).ready(function() {
-    // Peers check
-    kimchi.getConfig(function(config) {
-        if (config.federation) {
-            $("#host-content-container").after('<div id="peers-container"><div class="container"></div></div>');
-            kimchi.initPeers();
-        }
-    });
-});
diff --git a/ui/js/src/kimchi.main.js b/ui/js/src/kimchi.main.js
index 47531ae..89df799 100644
--- a/ui/js/src/kimchi.main.js
+++ b/ui/js/src/kimchi.main.js
@@ -19,9 +19,6 @@
 kimchi.config = undefined;
 kimchi.getConfig(function(result) {
     kimchi.config = result;
-
-    if(kimchi.config.federation == true)
-        $('#peers').removeClass('hide-content');
 }, function() {
     kimchi.config = {}
 });
diff --git a/ui/pages/i18n.json.tmpl b/ui/pages/i18n.json.tmpl
index 4510921..d44d4bd 100644
--- a/ui/pages/i18n.json.tmpl
+++ b/ui/pages/i18n.json.tmpl
@@ -1,7 +1,7 @@
 #*
  * Project Kimchi
  *
- * Copyright IBM Corp, 2014-2016
+ * Copyright IBM Corp, 2014-2017
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -154,8 +154,5 @@
     "KCHVMSTOR0007M": "$_("qed")",
     "KCHVMSTOR0008M": "$_("raw")",
     "KCHVMSTOR0009M": "$_("vmdk")",
-    "KCHVMSTOR0010M": "$_("vpc")",
-
-
-    "KCHPEERS0001M": "$_("Peers")"
+    "KCHVMSTOR0010M": "$_("vpc")"
 }
-- 
2.9.3

_______________________________________________
Kimchi-devel mailing list
Kimchi-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel
Re: [Kimchi-devel] [PATCH] [Kimchi] Remove federation feature from Kimchi as it is now on Wok
Posted by Daniel Henrique Barboza 7 years, 7 months ago
Reviewed-by: Daniel Barboza <danielhb@linux.vnet.ibm.com>

On 05/02/2017 01:59 PM, Aline Manera wrote:
> Signed-off-by: Aline Manera <alinefm@linux.vnet.ibm.com>
> ---
>   control/peers.py          |  28 ----------
>   docs/API.md               |  10 ----
>   docs/README-federation.md |  60 --------------------
>   kimchi.conf               |   4 --
>   model/config.py           |   8 +--
>   model/peers.py            |  74 ------------------------
>   root.py                   |   8 ---
>   tests/test_config.py.in   |   3 +-
>   tests/test_rest.py        |   6 +-
>   ui/js/kimchi.peers.js     | 140 ----------------------------------------------
>   ui/js/src/kimchi.main.js  |   3 -
>   ui/pages/i18n.json.tmpl   |   7 +--
>   12 files changed, 7 insertions(+), 344 deletions(-)
>   delete mode 100644 control/peers.py
>   delete mode 100644 docs/README-federation.md
>   delete mode 100644 model/peers.py
>   delete mode 100644 ui/js/kimchi.peers.js
>
> diff --git a/control/peers.py b/control/peers.py
> deleted file mode 100644
> index 5eaacdd..0000000
> --- a/control/peers.py
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -#
> -# Project Kimchi
> -#
> -# Copyright IBM Corp, 2015-2017
> -#
> -# 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
> -
> -from wok.control.base import SimpleCollection
> -from wok.control.utils import UrlSubNode
> -
> -
> -@UrlSubNode("peers", True)
> -class Peers(SimpleCollection):
> -    def __init__(self, model):
> -        super(Peers, self).__init__(model)
> -        self.admin_methods = ['GET']
> diff --git a/docs/API.md b/docs/API.md
> index 3ecc7a0..1f67879 100644
> --- a/docs/API.md
> +++ b/docs/API.md
> @@ -820,7 +820,6 @@ Contains information about Kimchi configuration.
>   **Methods:**
>   
>   * **GET**: Retrieve configuration information
> -    * federation: True if federation feature is enabled, False otherwise.
>       * version: The version of the kimchi service
>   * **POST**: *See Configuration Actions*
>   
> @@ -1052,15 +1051,6 @@ List of available groups.
>       * free: Amount of free space in the volume group.
>       * size: Total size of the volume group.
>   
> -### Collection: Peers
> -
> -**URI:** /plugins/kimchi/peers
> -
> -**Methods:**
> -
> -* **GET**: Return the list of Kimchi peers in the same network
> -           (It uses openSLP for discovering)
> -
>   ### Simple Collection: OVSBridges
>   
>   **URI:** /plugins/kimchi/ovsbridges
> diff --git a/docs/README-federation.md b/docs/README-federation.md
> deleted file mode 100644
> index 3554757..0000000
> --- a/docs/README-federation.md
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -Kimchi Project - Federation Feature
> -===================================
> -
> -Federation feature is a Kimchi mechanism to discover Wok peers in the same
> -network. It uses openSLP tool (http://www.openslp.org/) to register and find Wok
> -servers.
> -
> -By default this feature is disabled on Wok as it is not critical for KVM
> -virtualization and requires additional software installation.
> -
> -To enable it, do the following:
> -
> -1. Install openslp and openslp-server rpm packages,
> -   or install slpd and slptool deb packages.
> -
> -2. openSLP uses port 427 (UDP) and port 427 (TCP) so make sure to open those
> -   ports in your firewall configuration
> -
> -   For system using firewalld, do:
> -   sudo firewall-cmd --permanent --add-port=427/udp
> -   sudo firewall-cmd --permanent --add-port=427/tcp
> -   sudo firewall-cmd --reload
> -
> -   For openSUSE systems, do:
> -   sudo /sbin/SuSEfirewall2 open EXT TCP 427
> -   sudo /sbin/SuSEfirewall2 open EXT UDP 427
> -
> -   For system using iptables, do:
> -   sudo iptables -A INPUT -p tcp --dport 427 -j ACCEPT
> -   sudo iptables -A INPUT -p udp --dport 427 -j ACCEPT
> -
> -3. In addition to the openSLP ports, you also need to allow multicast in the
> -   firewall configuration
> -
> -   For system using firewalld, do:
> -   sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -s <subnet> -j ACCEPT
> -
> -   For openSUSE systems, do:
> -   Add the subnet to the trusted networks listed on FW_TRUSTED_NETS in
> -   /etc/sysconfig/SuSEfirewall2 file.
> -   Make sure to restart /sbin/SuSEfirewall2 after modifying /etc/sysconfig/SuSEfirewall2
> -
> -   For system using iptables, do:
> -   sudo iptables -A INPUT -s <subnet> -j ACCEPT
> -
> -4. Start slpd service and make sure it is up while running Wok
> -   sudo service slpd start
> -
> -5. Enable federation on Wok by editing the /etc/wok/plugins.d/kimchi.conf file:
> -
> -   federation = True
> -
> -6. Then start Wok service
> -   sudo service wokd start
> -
> -The Wok server will be registered on openSLP on server starting up and will
> -be found by other Wok peers (with federation feature enabled) in the same
> -network.
> -
> -Enjoy!
> diff --git a/kimchi.conf b/kimchi.conf
> index 97a14bd..5e85e2b 100644
> --- a/kimchi.conf
> +++ b/kimchi.conf
> @@ -3,9 +3,5 @@
>   enable = True
>   
>   [kimchi]
> -# Federation feature: register Wok server on openSLP and discover peers
> -# in the same network. Check README-federation for more details.
> -federation = False
> -
>   # Automatically create ISO pool on server start up
>   create_iso_pool = True
> diff --git a/model/config.py b/model/config.py
> index 78cdaeb..1db9afb 100644
> --- a/model/config.py
> +++ b/model/config.py
> @@ -1,7 +1,7 @@
>   #
>   # Project Kimchi
>   #
> -# Copyright IBM Corp, 2015-2016
> +# Copyright IBM Corp, 2015-2017
>   #
>   # This library is free software; you can redistribute it and/or
>   # modify it under the terms of the GNU Lesser General Public
> @@ -24,7 +24,7 @@ from wok.basemodel import Singleton
>   from wok.exception import NotFoundError
>   from wok.utils import run_command, wok_log
>   
> -from wok.plugins.kimchi.config import config, find_qemu_binary
> +from wok.plugins.kimchi.config import find_qemu_binary
>   from wok.plugins.kimchi.config import get_kimchi_version
>   from wok.plugins.kimchi.distroloader import DistroLoader
>   from wok.plugins.kimchi.model.featuretests import FeatureTests
> @@ -39,9 +39,7 @@ class ConfigModel(object):
>           pass
>   
>       def lookup(self, name):
> -        kconfig = config.get('kimchi', {})
> -        return {'federation': kconfig.get('federation', False),
> -                'version': get_kimchi_version()}
> +        return {'version': get_kimchi_version()}
>   
>   
>   class CapabilitiesModel(object):
> diff --git a/model/peers.py b/model/peers.py
> deleted file mode 100644
> index 0a4ee4b..0000000
> --- a/model/peers.py
> +++ /dev/null
> @@ -1,74 +0,0 @@
> -#
> -# Project Kimchi
> -#
> -# Copyright IBM Corp, 2015-2017
> -#
> -# 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 cherrypy
> -import re
> -import socket
> -
> -from wok.config import config as wok_config
> -from wok.utils import run_command, wok_log
> -
> -from wok.plugins.kimchi.config import config
> -
> -
> -class PeersModel(object):
> -    def __init__(self, **kargs):
> -        # check federation feature is enabled on Kimchi server
> -        if not config.get('kimchi', {}).get('federation', False):
> -            return
> -
> -        # register server on openslp
> -        hostname = socket.getfqdn()
> -        port = wok_config.get("server", "proxy_port")
> -        self.url = hostname + ":" + port
> -
> -        cmd = ["slptool", "register",
> -               "service:wokd://%s" % self.url]
> -        out, error, ret = run_command(cmd)
> -        if out and len(out) != 0:
> -            wok_log.error("Unable to register server on openSLP."
> -                          " Details: %s" % out)
> -        cherrypy.engine.subscribe('exit', self._peer_deregister)
> -
> -    def _peer_deregister(self):
> -        cmd = ["slptool", "deregister",
> -               "service:wokd://%s" % self.url]
> -        out, error, ret = run_command(cmd)
> -        if out and len(out) != 0:
> -            wok_log.error("Unable to deregister server on openSLP."
> -                          " Details: %s" % out)
> -
> -    def get_list(self):
> -        # check federation feature is enabled on Kimchi server
> -        if not config.get('kimchi', {}).get('federation', False):
> -            return []
> -
> -        cmd = ["slptool", "findsrvs", "service:wokd"]
> -        out, error, ret = run_command(cmd)
> -        if ret != 0:
> -            return []
> -
> -        peers = []
> -        for server in out.strip().split("\n"):
> -            match = re.match("service:wokd://(.*?),.*", server)
> -            peer = match.group(1)
> -            if peer != self.url:
> -                peers.append("https://" + peer)
> -
> -        return peers
> diff --git a/root.py b/root.py
> index 4f131e7..d42e787 100644
> --- a/root.py
> +++ b/root.py
> @@ -72,14 +72,6 @@ class Kimchi(WokRoot):
>           self.domain = 'kimchi'
>           self.messages = messages
>   
> -        self.extends = {
> -            "/plugins/gingerbase": {
> -                "host-dashboard.html": "/plugins/kimchi/js/kimchi.peers.js"
> -            }
> -        }
> -
> -        self.depends = ['gingerbase']
> -
>           # Some paths or URI's present in the objectstore have changed after
>           # Kimchi 2.0.0 release. Check here if an upgrade in the schema and data
>           # are necessary.
> diff --git a/tests/test_config.py.in b/tests/test_config.py.in
> index 135097b..dd47130 100644
> --- a/tests/test_config.py.in
> +++ b/tests/test_config.py.in
> @@ -80,8 +80,7 @@ class ConfigTests(unittest.TestCase):
>                   'enable': True
>               },
>               'kimchi': {
> -                'federation': False,
> -                'create_iso_pool': True,
> +                'create_iso_pool': True
>               },
>               '/': {
>                   'tools.trailing_slash.on': False,
> diff --git a/tests/test_rest.py b/tests/test_rest.py
> index 852e4bd..f808478 100644
> --- a/tests/test_rest.py
> +++ b/tests/test_rest.py
> @@ -1529,7 +1529,7 @@ class RestTests(unittest.TestCase):
>       def test_config(self):
>           resp = self.request('/plugins/kimchi/config').read()
>           conf = json.loads(resp)
> -        keys = ["federation", "version"]
> +        keys = ["version"]
>           self.assertEquals(keys, sorted(conf.keys()))
>   
>       def test_capabilities(self):
> @@ -1541,10 +1541,6 @@ class RestTests(unittest.TestCase):
>                   u'mem_hotplug_support', u'libvirtd_running']
>           self.assertEquals(sorted(keys), sorted(conf.keys()))
>   
> -    def test_peers(self):
> -        resp = self.request('/plugins/kimchi/peers').read()
> -        self.assertEquals([], json.loads(resp))
> -
>       def test_distros(self):
>           resp = self.request('/plugins/kimchi/config/distros').read()
>           distros = json.loads(resp)
> diff --git a/ui/js/kimchi.peers.js b/ui/js/kimchi.peers.js
> deleted file mode 100644
> index 8b1a18d..0000000
> --- a/ui/js/kimchi.peers.js
> +++ /dev/null
> @@ -1,140 +0,0 @@
> -/*
> - * Project Kimchi
> - *
> - * 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.
> - */
> -
> -var kimchi = {
> -
> -    getPeers: function(suc, err) {
> -        wok.requestJSON({
> -            url: 'plugins/kimchi/peers',
> -            type: 'GET',
> -            contentType: 'application/json',
> -            dataType: 'json',
> -            resend: true,
> -            success: suc,
> -            error: err ? err : function(data) {
> -                wok.message.error(data.responseJSON.reason);
> -            }
> -        });
> -    },
> -
> -    initPeers: function() {
> -
> -        var peersAccordion = "<div class='panel-group federation-enabled accordion' id='peers-content-area-accordion' role='tablist' aria-multiselectable='true'>" +
> -            "<h3>" +
> -            "<a role='button' aria-expanded='true' data-toggle='collapse' data-parent='#peers-content-area-accordion' href='#peers-content-area' aria-expanded='false' aria-controls='peers-content-area' class=''>" +
> -            "<span class='accordion-icon'></span>" +
> -            "<span class='accordion-text' id='#peers-title'>"+i18n['KCHPEERS0001M']+"</span>" +
> -            "</a>" +
> -            "</h3>" +
> -            "<div id='peers-content-area' class='panel-collapse collapse in' role='tabpanel' aria-labelledby='peers-title'>" +
> -            "<div id='peers-alert-container'></div>" +
> -            "<div class='row'>" +
> -            "<div class='col-sm-12'>" +
> -            "<table id='peers-list' class='table table-striped' cellspacing='0' width='100%''>" +
> -            "<thead>" +
> -            "<tr>" +
> -            "<th><span class='sr-only'>" + i18n['KCHPEERS0001M'] + "</span></th>" +
> -            "</tr>" +
> -            "</thead>" +
> -            "</table>" +
> -            "</div>" +
> -            "</div>" +
> -            "<div class='wok-mask' role='presentation'>" +
> -            "<div class='wok-mask-loader-container'>" +
> -            "<div class='wok-mask-loading'>" +
> -            "<div class='wok-mask-loading-icon'></div>" +
> -            "<div class='wok-mask-loading-text'>" + i18n['WOKGRD6001M'] + "</div>" +
> -            "</div>" +
> -            "</div>" +
> -            "</div>" +
> -            "</div>" +
> -            "</div>";
> -
> -        var peersDatatableTable;
> -        var peers = new Array();
> -
> -        $('#peers-container > .container').append(peersAccordion);
> -
> -        var peersDatatable = function(nwConfigDataSet) {
> -            peersDatatableTable = $('#peers-list').DataTable({
> -                "processing": true,
> -                "data": peers,
> -                "language": {
> -                    "emptyTable": i18n['WOKSETT0010M']
> -                },
> -                "order": [],
> -                "paging": false,
> -                "dom": '<"row"<"col-sm-12"t>>',
> -                "scrollY": "269px",
> -                "scrollCollapse": true,
> -                "columnDefs": [{
> -                    "targets": 0,
> -                    "searchable": false,
> -                    "orderable": false,
> -                    "width": "100%",
> -                    "className": "tabular-data",
> -                    "render": function(data, type, full, meta) {
> -                        return '<a href="' + data + '" target="_blank">' + data + '</a>';
> -                    }
> -                }],
> -                "initComplete": function(settings, json) {
> -                    $('#peers-content-area > .wok-mask').addClass('hidden');
> -                }
> -            });
> -        };
> -
> -        var getPeers = function() {
> -            kimchi.getPeers(function(result) {
> -                peers.length = 0;
> -                for (var i = 0; i < result.length; i++) {
> -                    var tempArr = [];
> -                    tempArr.push(result[i]);
> -                    peers.push(tempArr);
> -                }
> -                peersDatatable(peers);
> -            }, function(err) {
> -                wok.message.error(err.responseJSON.reason, '#peers-alert-container', true);
> -            });
> -        };
> -        getPeers();
> -
> -    },
> -
> -    getConfig: function(suc, err, done) {
> -        done = typeof done !== 'undefined' ? done : function() {};
> -        wok.requestJSON({
> -            url: "plugins/kimchi/config",
> -            type: "GET",
> -            contentType: "application/json",
> -            dataType: "json",
> -            success: suc,
> -            error: err,
> -            complete: done
> -        });
> -    }
> -}
> -
> -$(document).ready(function() {
> -    // Peers check
> -    kimchi.getConfig(function(config) {
> -        if (config.federation) {
> -            $("#host-content-container").after('<div id="peers-container"><div class="container"></div></div>');
> -            kimchi.initPeers();
> -        }
> -    });
> -});
> diff --git a/ui/js/src/kimchi.main.js b/ui/js/src/kimchi.main.js
> index 47531ae..89df799 100644
> --- a/ui/js/src/kimchi.main.js
> +++ b/ui/js/src/kimchi.main.js
> @@ -19,9 +19,6 @@
>   kimchi.config = undefined;
>   kimchi.getConfig(function(result) {
>       kimchi.config = result;
> -
> -    if(kimchi.config.federation == true)
> -        $('#peers').removeClass('hide-content');
>   }, function() {
>       kimchi.config = {}
>   });
> diff --git a/ui/pages/i18n.json.tmpl b/ui/pages/i18n.json.tmpl
> index 4510921..d44d4bd 100644
> --- a/ui/pages/i18n.json.tmpl
> +++ b/ui/pages/i18n.json.tmpl
> @@ -1,7 +1,7 @@
>   #*
>    * Project Kimchi
>    *
> - * Copyright IBM Corp, 2014-2016
> + * Copyright IBM Corp, 2014-2017
>    *
>    * Licensed under the Apache License, Version 2.0 (the "License");
>    * you may not use this file except in compliance with the License.
> @@ -154,8 +154,5 @@
>       "KCHVMSTOR0007M": "$_("qed")",
>       "KCHVMSTOR0008M": "$_("raw")",
>       "KCHVMSTOR0009M": "$_("vmdk")",
> -    "KCHVMSTOR0010M": "$_("vpc")",
> -
> -
> -    "KCHPEERS0001M": "$_("Peers")"
> +    "KCHVMSTOR0010M": "$_("vpc")"
>   }

_______________________________________________
Kimchi-devel mailing list
Kimchi-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel