diff --git a/tools/generatedocbook b/tools/generatedocbook
deleted file mode 100755
index 8d8b701f..00000000
--- a/tools/generatedocbook
+++ /dev/null
@@ -1,157 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-import os, sys
-import tempfile
-import shutil
-import xml.dom.minidom
-from optparse import OptionParser
-import codecs
-
-from xml2po import Main
-from xml2po.modes.docbook import docbookXmlMode
-
-class myDocbookXmlMode(docbookXmlMode):
-    def __init__(self):
-        self.lists = ['itemizedlist', 'orderedlist', 'variablelist',
-                      'segmentedlist', 'simplelist', 'calloutlist', 'varlistentry', 'userinput',
-                      'computeroutput','prompt','command','screen']
-        self.objects = [ 'figure', 'textobject', 'imageobject', 'mediaobject',
-                         'screenshot','literallayout', 'programlisting' ]
-
-default_mode = 'docbook'
-operation = 'merge'
-options = {
-    'mark_untranslated'   : False,
-    'expand_entities'     : True,
-    'expand_all_entities' : False,
-}
-
-ignore_folder = {"docbkx-example"}
-root = "./doc"
-
-def mergeback (folder, language):
-    if (folder==None) :
-        path = root
-    else :
-        outputFiles = mergeSingleDocument(folder, language)
-        if ((outputFiles != None) and (len(outputFiles)>0)) :
-            for outXML in outputFiles :
-                changeXMLLangSetting (outXML, language)
-        return
-
-    if (not os.path.isdir(path)) :
-        return
-    
-    files = os.listdir(path)
-    for aFile in files :
-        if  (not (aFile in ignore_folder)):
-            outputFiles = mergeSingleDocument (aFile, language)
-            if ((outputFiles != None) and (len(outputFiles)>0)) :
-                for outXML in outputFiles :
-                    changeXMLLangSetting (outXML, language)
-
-def mergeSingleDocument(folder, language):
-    xmlfiles = []
-    outputfiles = []
-    abspath = os.path.join(root, folder)
-    if (os.path.isdir(abspath)) :
-        os.path.walk(abspath, get_xml_list, xmlfiles)
-    else:
-        return None
-    
-    if len(xmlfiles)>0 :
-        popath = os.path.join(abspath,"locale",language+".po")
-        #generate MO file
-        mofile_handler, mofile_tmppath = tempfile.mkstemp()
-        os.close(mofile_handler)
-        os.system("msgfmt -o %s %s" % (mofile_tmppath, popath))
-
-        for aXML in xmlfiles :
-            #(filename, ext) = os.path.splitext(os.path.basename(aXML))
-            relpath = os.path.relpath(aXML, root)
-            outputpath = os.path.join(os.path.curdir,  "generated", language, relpath)
-            try:
-                xml2po_main = Main(default_mode, operation, outputpath, options)
-                xml2po_main.current_mode = myDocbookXmlMode()
-                xml2po_main.merge(mofile_tmppath, aXML)
-                outputfiles.append(outputpath)
-            except IOError:
-                print "Error: cannot open aFile %s for writing."
-                sys.exit(5)
-            except :
-                print ("Exception happen")
-        if mofile_tmppath :
-            os.remove(mofile_tmppath)
-    
-    return outputfiles
-    
-def changeXMLLangSetting(xmlFile, language):
-    dom = xml.dom.minidom.parse(xmlFile)
-    root = dom.documentElement
-    root.setAttribute("xml:lang", language[:2])
-    fileObj = codecs.open(xmlFile, "wb", encoding="utf-8")
-
-    #add namespace to link
-    nodelists = root.getElementsByTagName("link")
-    for node in nodelists :
-        if (node.hasAttribute("href")) :
-            node.setAttribute("xlink:href", node.getAttribute("href"))
-        if (node.hasAttribute("title")) :
-            node.setAttribute("xlink:title", node.getAttribute("title"))
-
-    dom.writexml(fileObj)
-
-def get_xml_list (sms, dr, flst):
-    if ((flst == "target") or (flst == "wadls")) :
-        return
-    if (dr.find("target")>-1) :
-        return
-    if (dr.find("wadls")>-1) :
-        return
-
-    for f in flst:
-        if ((f.endswith(".xml") and (f != "pom.xml"))) :
-            sms.append(os.path.join(dr,f))
-
-def main(argv):
-    print "This is not from openstack-doc-tools, please update jobs."
-    usage = "usage: %prog [options] command [cmd_options]"
-    description = "This is the tool to generate translated docbooks, which"\
-        " will be stored in 'generated/[language]/"
-
-    parser = OptionParser(
-        usage=usage, version="0.6", description=description
-    )
-    parser.disable_interspersed_args()
-    parser.add_option(
-        "-l", "--language", dest="language", help=("specified language")
-    )
-    parser.add_option(
-        "-b", "--book", dest="book", help=("specified docbook")
-    )
-    (options, args) = parser.parse_args()
-    if (options.language == None) :
-        print "must specify language"
-        return
-    
-    #change working directory
-    
-    #copy folders
-    folder = options.book
-    language = options.language
-    sourcepath = os.path.join(root, folder)
-    destpath = os.path.join(os.path.curdir, "generated", language)
-    if (not os.path.exists(destpath)) :
-        os.makedirs(destpath)
-    
-    destfolder =  os.path.join(destpath, folder)   
-    if (os.path.exists(destfolder)) :
-        shutil.rmtree(destfolder)
-    
-    os.system("cp -r %s %s" % (sourcepath, destpath))
-    mergeback(folder, language)
-    
-if __name__ == '__main__':
-    main(sys.argv[1:])
-