From 338ca3085ff70cecbe17597040979e710ab60e30 Mon Sep 17 00:00:00 2001
From: Gary Kotton <gkotton@vmware.com>
Date: Tue, 8 Dec 2015 02:43:18 -0800
Subject: [PATCH] Remove code that is no longer used

The i18n checks are validated by the 'tox -e pep8' so we no longer
need this stuff.

Change-Id: I388da7cfd3bb4098ac0fcc192c00f521b33d0ab3
---
 tools/check_i18n.py            | 153 ---------------------------------
 tools/check_i18n_test_case.txt |  67 ---------------
 tox.ini                        |   3 -
 3 files changed, 223 deletions(-)
 delete mode 100644 tools/check_i18n.py
 delete mode 100644 tools/check_i18n_test_case.txt

diff --git a/tools/check_i18n.py b/tools/check_i18n.py
deleted file mode 100644
index c23bffa999..0000000000
--- a/tools/check_i18n.py
+++ /dev/null
@@ -1,153 +0,0 @@
-#    Copyright 2012 OpenStack Foundation
-#
-#    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.
-from __future__ import print_function
-
-import compiler
-import imp
-import os.path
-import sys
-
-
-def is_localized(node):
-    """Check message wrapped by _()"""
-    if isinstance(node.parent, compiler.ast.CallFunc):
-        if isinstance(node.parent.node, compiler.ast.Name):
-            if node.parent.node.name == '_':
-                return True
-    return False
-
-
-class ASTWalker(compiler.visitor.ASTVisitor):
-
-    def default(self, node, *args):
-        for child in node.getChildNodes():
-            child.parent = node
-        compiler.visitor.ASTVisitor.default(self, node, *args)
-
-
-class Visitor(object):
-
-    def __init__(self, filename, i18n_msg_predicates,
-                 msg_format_checkers, debug):
-        self.filename = filename
-        self.debug = debug
-        self.error = 0
-        self.i18n_msg_predicates = i18n_msg_predicates
-        self.msg_format_checkers = msg_format_checkers
-        with open(filename) as f:
-            self.lines = f.readlines()
-
-    def visitConst(self, node):
-        if not isinstance(node.value, str):
-            return
-
-        if is_localized(node):
-            for (checker, msg) in self.msg_format_checkers:
-                if checker(node):
-                    print('%s:%d %s: %s Error: %s' %
-                          (self.filename, node.lineno,
-                           self.lines[node.lineno - 1][:-1],
-                           checker.__name__, msg),
-                          file=sys.stderr)
-                    self.error = 1
-                    return
-            if debug:
-                print('%s:%d %s: %s' %
-                      (self.filename, node.lineno,
-                       self.lines[node.lineno - 1][:-1],
-                       "Pass"))
-        else:
-            for (predicate, action, msg) in self.i18n_msg_predicates:
-                if predicate(node):
-                    if action == 'skip':
-                        if debug:
-                            print('%s:%d %s: %s' %
-                                  (self.filename, node.lineno,
-                                  self.lines[node.lineno - 1][:-1],
-                                  "Pass"))
-                        return
-                    elif action == 'error':
-                        print('%s:%d %s: %s Error: %s' %
-                              (self.filename, node.lineno,
-                               self.lines[node.lineno - 1][:-1],
-                               predicate.__name__, msg),
-                              file=sys.stderr)
-                        self.error = 1
-                        return
-                    elif action == 'warn':
-                        print('%s:%d %s: %s' %
-                              (self.filename, node.lineno,
-                              self.lines[node.lineno - 1][:-1],
-                              "Warn: %s" % msg))
-                        return
-                    print('Predicate with wrong action!', file=sys.stderr)
-
-
-def is_file_in_black_list(black_list, f):
-    for f in black_list:
-        if os.path.abspath(input_file).startswith(
-            os.path.abspath(f)):
-            return True
-    return False
-
-
-def check_i18n(input_file, i18n_msg_predicates, msg_format_checkers, debug):
-    input_mod = compiler.parseFile(input_file)
-    v = compiler.visitor.walk(input_mod,
-                              Visitor(input_file,
-                                      i18n_msg_predicates,
-                                      msg_format_checkers,
-                                      debug),
-                              ASTWalker())
-    return v.error
-
-
-if __name__ == '__main__':
-    input_path = sys.argv[1]
-    cfg_path = sys.argv[2]
-    try:
-        cfg_mod = imp.load_source('', cfg_path)
-    except Exception:
-        print("Load cfg module failed", file=sys.stderr)
-        sys.exit(1)
-
-    i18n_msg_predicates = cfg_mod.i18n_msg_predicates
-    msg_format_checkers = cfg_mod.msg_format_checkers
-    black_list = cfg_mod.file_black_list
-
-    debug = False
-    if len(sys.argv) > 3:
-        if sys.argv[3] == '-d':
-            debug = True
-
-    if os.path.isfile(input_path):
-        sys.exit(check_i18n(input_path,
-                            i18n_msg_predicates,
-                            msg_format_checkers,
-                            debug))
-
-    error = 0
-    for dirpath, dirs, files in os.walk(input_path):
-        for f in files:
-            if not f.endswith('.py'):
-                continue
-            input_file = os.path.join(dirpath, f)
-            if is_file_in_black_list(black_list, input_file):
-                continue
-            if check_i18n(input_file,
-                          i18n_msg_predicates,
-                          msg_format_checkers,
-                          debug):
-                error = 1
-    sys.exit(error)
diff --git a/tools/check_i18n_test_case.txt b/tools/check_i18n_test_case.txt
deleted file mode 100644
index 3d1391d945..0000000000
--- a/tools/check_i18n_test_case.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-# test-case for check_i18n.py
-# python check_i18n.py check_i18n.txt -d
-
-# message format checking
-#  capital checking
-msg = _("hello world, error")
-msg = _("hello world_var, error")
-msg = _('file_list xyz, pass')
-msg = _("Hello world, pass")
-
-#  format specifier checking
-msg = _("Hello %s world %d, error")
-msg = _("Hello %s world, pass")
-msg = _("Hello %(var1)s world %(var2)s, pass")
-
-# message has been localized
-#  is_localized
-msg = _("Hello world, pass")
-msg = _("Hello world, pass") % var
-LOG.debug(_('Hello world, pass'))
-LOG.info(_('Hello world, pass'))
-raise x.y.Exception(_('Hello world, pass'))
-raise Exception(_('Hello world, pass'))
-
-# message need be localized
-#  is_log_callfunc
-LOG.debug('hello world, error')
-LOG.debug('hello world, error' % xyz)
-sys.append('hello world, warn')
-
-# is_log_i18n_msg_with_mod
-LOG.debug(_('Hello world, error') % xyz)
-
-# default warn
-msg = 'hello world, warn'
-msg = 'hello world, warn' % var
-
-# message needn't be localized
-#  skip only one word
-msg = ''
-msg = "hello,pass"
-
-#  skip dict
-msg = {'hello world, pass': 1}
-
-#  skip list
-msg = ["hello world, pass"]
-
-#  skip subscript
-msg['hello world, pass']
-
-#  skip xml marker
-msg = "<test><t></t></test>, pass"
-
-#  skip sql statement
-msg = "SELECT * FROM xyz WHERE hello=1, pass"
-msg = "select * from xyz, pass"
-
-#  skip add statement
-msg = 'hello world' + e + 'world hello, pass'
-
-#  skip doc string
-"""
-Hello world, pass
-"""
-class Msg:
-    pass
diff --git a/tox.ini b/tox.ini
index 1960aec899..9ae5288e5c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -54,9 +54,6 @@ commands =
   neutron-db-manage --subproject vmware-nsx check_migration
 whitelist_externals = sh
 
-[testenv:i18n]
-commands = python ./tools/check_i18n.py ./vmware_nsx/neutron
-
 [testenv:cover]
 commands =
   python setup.py testr --coverage --testr-args='{posargs}'