diff options
author | Harry Huang <huangxiangyu5@huawei.com> | 2017-11-17 14:53:44 +0800 |
---|---|---|
committer | Harry Huang <huangxiangyu5@huawei.com> | 2017-12-21 16:36:30 +0800 |
commit | 8646b8d62cf4ca7b6bccae537a0c9e72ba45eab3 (patch) | |
tree | 73a9a983e0dd1423e9df928a78a5023a09d5a7f9 /compass-tasks/hdsdiscovery/vendors/ovswitch/plugins | |
parent | 6234176ae292a75dcda5520324cb7857d6105988 (diff) |
Merge compass-tasks-osa and compass-tasks-k8s
JIRA: COMPASS-568
rename compass-tasks to compass-tasks-base.
add both osa and k8s support in compass-tasks
Change-Id: I438f5b17e509d4cb751ced0ffe640ec70899882f
Signed-off-by: Harry Huang <huangxiangyu5@huawei.com>
Diffstat (limited to 'compass-tasks/hdsdiscovery/vendors/ovswitch/plugins')
-rw-r--r-- | compass-tasks/hdsdiscovery/vendors/ovswitch/plugins/__init__.py | 13 | ||||
-rw-r--r-- | compass-tasks/hdsdiscovery/vendors/ovswitch/plugins/mac.py | 87 |
2 files changed, 0 insertions, 100 deletions
diff --git a/compass-tasks/hdsdiscovery/vendors/ovswitch/plugins/__init__.py b/compass-tasks/hdsdiscovery/vendors/ovswitch/plugins/__init__.py deleted file mode 100644 index 4ee55a4..0000000 --- a/compass-tasks/hdsdiscovery/vendors/ovswitch/plugins/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2014 Huawei Technologies Co. Ltd -# -# 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. diff --git a/compass-tasks/hdsdiscovery/vendors/ovswitch/plugins/mac.py b/compass-tasks/hdsdiscovery/vendors/ovswitch/plugins/mac.py deleted file mode 100644 index 5f497a0..0000000 --- a/compass-tasks/hdsdiscovery/vendors/ovswitch/plugins/mac.py +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright 2014 Huawei Technologies Co. Ltd -# -# 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. - -"""Open Vswitch Mac address module.""" -import logging - -from compass.hdsdiscovery import base -from compass.hdsdiscovery import utils - - -CLASS_NAME = "Mac" - - -class Mac(base.BasePlugin): - """Open Vswitch MAC address module.""" - def __init__(self, host, credential): - self.host = host - self.credential = credential - - def process_data(self, oper="SCAN", **kwargs): - """Dynamically call the function according 'oper' - - :param oper: operation of data processing - """ - func_name = oper.lower() - return getattr(self, func_name)(**kwargs) - - def scan(self, **kwargs): - """Implemnets the scan method in BasePlugin class. - - .. note:: - In this module, mac addesses were retrieved by ssh. - """ - try: - user = self.credential['username'] - pwd = self.credential['password'] - except KeyError: - logging.error("Cannot find username and password in credential") - return None - - cmd = ("BRIDGES=$(ovs-vsctl show |grep Bridge |cut -f 2 -d '\"');" - "for br in $BRIDGES; do" - "PORTS=$(ovs-ofctl show $br |grep addr |cut -f 1 -d ':' " - "|egrep -v 'eth|wlan|LOCAL'|awk -F '(' '{print $1}');" - "for port in $PORTS; do" - "RESULT=$(ovs-appctl fdb/show $br |" - "awk '$1 == '$port' {print $1" "$2" "$3}');" - "echo '$RESULT'" - "done;" - "done;") - output = None - try: - output = utils.ssh_remote_execute(self.host, user, pwd, cmd) - except Exception as error: - logging.exception(error) - return None - - logging.debug("[scan][output] output is %s", output) - if not output: - return None - - fields_arr = ['port', 'vlan', 'mac'] - - result = [] - for line in output: - if not line or line == '\n': - continue - - values_arr = line.split() - temp = {} - for field, value in zip(fields_arr, values_arr): - temp[field] = value - - result.append(temp.copy()) - - return result |