)]}'
{"doc/source/indexingservice.rst":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"b4e03177f3b820f51e7dd548f0591c4a7ed87c39","unresolved":false,"context_lines":[{"line_number":60,"context_line":"To index all resources in the \u0027searchlight\u0027 index::"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    $ searchlight-manage index sync --index searchlight"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"In the previous cases, indexing is *additive*. Any resources indexed"},{"line_number":65,"context_line":"that no longer exist will remain indexed. All other indexed resources"},{"line_number":66,"context_line":"will be updated."}],"source_content_type":"text/x-rst","patch_set":7,"id":"da20952f_5e2bc033","line":63,"updated":"2015-09-02 05:48:42.000000000","message":"The below is now out of date.","commit_id":"ae4627ada3b52300e271324f930573aabfa45302"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"e9999734889fb8a2efa53c536dc95721a1f242a0","unresolved":false,"context_lines":[{"line_number":60,"context_line":"To index all resources in the \u0027searchlight\u0027 index::"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    $ searchlight-manage index sync --index searchlight"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"In the previous cases, indexing is *additive*. Any resources indexed"},{"line_number":65,"context_line":"that no longer exist will remain indexed. All other indexed resources"},{"line_number":66,"context_line":"will be updated."}],"source_content_type":"text/x-rst","patch_set":7,"id":"da20952f_6e53403a","line":63,"in_reply_to":"da20952f_5e2bc033","updated":"2015-09-03 02:08:52.000000000","message":"Good catch, will update.","commit_id":"ae4627ada3b52300e271324f930573aabfa45302"}],"searchlight/cmd/manage.py":[{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"ffc2ae8b2a9f5e722d115ee4719fd069ed974850","unresolved":false,"context_lines":[{"line_number":44,"context_line":"class IndexCommands(object):"},{"line_number":45,"context_line":"    def __init__(self):"},{"line_number":46,"context_line":"        pass"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @args(\u0027--index\u0027, metavar\u003d\u0027\u003cindex\u003e\u0027, dest\u003d\u0027index\u0027,"},{"line_number":49,"context_line":"          help\u003d\u0027Index only this index\u0027)"},{"line_number":50,"context_line":"    @args(\u0027--type\u0027, metavar\u003d\u0027\u003ctype\u003e\u0027, dest\u003d\u0027_type\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_cecb981d","line":47,"updated":"2015-08-10 12:24:46.000000000","message":"when --type is specified, --index cannot be an optional argument.\n\nThere is no restriction on different plugin index supporting same types.\nFollowing command assumes the index is glance and delete mappings/data for glance index.\n\nlakshmi@lakshmi-VirtualBox:/opt/stack/searchlight$ searchlight-manage index sync --type image --clear\n\n\n2015-08-10 17:41:54.192 14956 INFO elasticsearch [-] HEAD http://127.0.0.1:9200/glance [status:200 request:0.010s]\nNo handlers could be found for logger \"elasticsearch.trace\"\n2015-08-10 17:41:54.196 14956 INFO elasticsearch [-] HEAD http://127.0.0.1:9200/glance/image [status:200 request:0.003s]\n2015-08-10 17:41:54.285 14956 INFO elasticsearch [-] DELETE http://127.0.0.1:9200/glance/_mapping/image [status:200 request:0.087s]\n2015-08-10 17:41:54.287 14956 INFO elasticsearch [-] HEAD http://127.0.0.1:9200/glance [status:200 request:0.001s]\n2015-08-10 17:41:54.327 14956 INFO elasticsearch [-] PUT http://127.0.0.1:9200/glance/_mapping/image [status:200 request:0.040s]\n2015-08-10 17:41:54.712 14956 INFO elasticsearch [-] POST http://127.0.0.1:9200/glance/image/_bulk [status:200 request:0.009s]\n2015-08-10 17:41:54.712 14956 INFO searchlight.cmd.manage [-] Skipping indexing for metadef (glance metadef)","commit_id":"8ee9b3583e65a85d25d899aaef3110317875dd57"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"9c7b3ae017f44179374ce493e689fa8f2ae77200","unresolved":false,"context_lines":[{"line_number":44,"context_line":"class IndexCommands(object):"},{"line_number":45,"context_line":"    def __init__(self):"},{"line_number":46,"context_line":"        pass"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @args(\u0027--index\u0027, metavar\u003d\u0027\u003cindex\u003e\u0027, dest\u003d\u0027index\u0027,"},{"line_number":49,"context_line":"          help\u003d\u0027Index only this index\u0027)"},{"line_number":50,"context_line":"    @args(\u0027--type\u0027, metavar\u003d\u0027\u003ctype\u003e\u0027, dest\u003d\u0027_type\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_800bca23","line":47,"in_reply_to":"1a4dcd0f_64e705ad","updated":"2015-08-11 17:51:49.000000000","message":"Yeah, type will be fully qualified. I\u0027m a little reluctant to make this dependent on that one because this is useful on its own. And it will match all plugins whose type matches, and reindex them, which is probably ok.","commit_id":"8ee9b3583e65a85d25d899aaef3110317875dd57"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"72b7d871708bbb494face6c09b0f0eaf90b073e4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"class IndexCommands(object):"},{"line_number":45,"context_line":"    def __init__(self):"},{"line_number":46,"context_line":"        pass"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @args(\u0027--index\u0027, metavar\u003d\u0027\u003cindex\u003e\u0027, dest\u003d\u0027index\u0027,"},{"line_number":49,"context_line":"          help\u003d\u0027Index only this index\u0027)"},{"line_number":50,"context_line":"    @args(\u0027--type\u0027, metavar\u003d\u0027\u003ctype\u003e\u0027, dest\u003d\u0027_type\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_64e705ad","line":47,"in_reply_to":"1a4dcd0f_cecb981d","updated":"2015-08-10 12:48:00.000000000","message":"if type is a fully qualified resource name like \"OS::Glance::Image\" then you should make this patch dependent on https://review.openstack.org/#/c/207672/2","commit_id":"8ee9b3583e65a85d25d899aaef3110317875dd57"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"ffc2ae8b2a9f5e722d115ee4719fd069ed974850","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    @args(\u0027--type\u0027, metavar\u003d\u0027\u003ctype\u003e\u0027, dest\u003d\u0027_type\u0027,"},{"line_number":51,"context_line":"          help\u003d\u0027Index only this type\u0027)"},{"line_number":52,"context_line":"    @args(\u0027--clear\u0027, dest\u003d\u0027clear\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":53,"context_line":"          help\u003d\u0027Delete index/type before indexing\u0027)"},{"line_number":54,"context_line":"    def sync(self, index\u003dNone, _type\u003dNone, clear\u003dFalse):"},{"line_number":55,"context_line":"        for plugin in utils.get_search_plugins():"},{"line_number":56,"context_line":"            plugin_obj \u003d plugin.obj"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_e9b8ce2c","line":53,"updated":"2015-08-10 12:24:46.000000000","message":"Rephrase the help content to clearly state that this only deletes the mapping and data but not the \"index\". Maybe something like \"Delete the mapping/data before indexing\".","commit_id":"8ee9b3583e65a85d25d899aaef3110317875dd57"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"9c7b3ae017f44179374ce493e689fa8f2ae77200","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    @args(\u0027--type\u0027, metavar\u003d\u0027\u003ctype\u003e\u0027, dest\u003d\u0027_type\u0027,"},{"line_number":51,"context_line":"          help\u003d\u0027Index only this type\u0027)"},{"line_number":52,"context_line":"    @args(\u0027--clear\u0027, dest\u003d\u0027clear\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":53,"context_line":"          help\u003d\u0027Delete index/type before indexing\u0027)"},{"line_number":54,"context_line":"    def sync(self, index\u003dNone, _type\u003dNone, clear\u003dFalse):"},{"line_number":55,"context_line":"        for plugin in utils.get_search_plugins():"},{"line_number":56,"context_line":"            plugin_obj \u003d plugin.obj"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_e0488e5e","line":53,"in_reply_to":"1a4dcd0f_e9b8ce2c","updated":"2015-08-11 17:51:49.000000000","message":"Done","commit_id":"8ee9b3583e65a85d25d899aaef3110317875dd57"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7507ba841eb7fc3c7dc5d66f0966105ec7a4a76e","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    @args(\u0027--index\u0027, metavar\u003d\u0027\u003cindex\u003e\u0027, dest\u003d\u0027index\u0027,"},{"line_number":49,"context_line":"          help\u003d\u0027Index only this index\u0027)"},{"line_number":50,"context_line":"    @args(\u0027--type\u0027, metavar\u003d\u0027\u003ctype\u003e\u0027, dest\u003d\u0027_type\u0027,"},{"line_number":51,"context_line":"          help\u003d\u0027Index only this type\u0027)"},{"line_number":52,"context_line":"    @args(\u0027--clear\u0027, dest\u003d\u0027clear\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":53,"context_line":"          help\u003d\u0027Delete mapping and data before indexing\u0027)"},{"line_number":54,"context_line":"    def sync(self, index\u003dNone, _type\u003dNone, clear\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_d03eef28","line":51,"updated":"2015-09-01 21:49:38.000000000","message":"Does this back us into a corner where we can\u0027t pass in multiple types?  Or should we do something like allow a comma separated list of types.","commit_id":"0da07fc67d66fc57e2e8655d0dd7110ed4392898"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7507ba841eb7fc3c7dc5d66f0966105ec7a4a76e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    @args(\u0027--type\u0027, metavar\u003d\u0027\u003ctype\u003e\u0027, dest\u003d\u0027_type\u0027,"},{"line_number":51,"context_line":"          help\u003d\u0027Index only this type\u0027)"},{"line_number":52,"context_line":"    @args(\u0027--clear\u0027, dest\u003d\u0027clear\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":53,"context_line":"          help\u003d\u0027Delete mapping and data before indexing\u0027)"},{"line_number":54,"context_line":"    def sync(self, index\u003dNone, _type\u003dNone, clear\u003dFalse):"},{"line_number":55,"context_line":"        for resource_type, ext in six.iteritems(utils.get_search_plugins()):"},{"line_number":56,"context_line":"            plugin_obj \u003d ext.obj"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_d0afcf29","line":53,"updated":"2015-09-01 21:49:38.000000000","message":"Actually, I think this needs to be the default behavior and the option should be inverse or not an option at all.  Otherwise, it is very easy to accidentally keep around old data.\n\nClear also should be its own standalone command to allow cleaning out ES by type very easily. That *probably* should be its own patch.","commit_id":"0da07fc67d66fc57e2e8655d0dd7110ed4392898"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7507ba841eb7fc3c7dc5d66f0966105ec7a4a76e","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        for resource_type, ext in six.iteritems(utils.get_search_plugins()):"},{"line_number":56,"context_line":"            plugin_obj \u003d ext.obj"},{"line_number":57,"context_line":"            skip \u003d (index and plugin_obj.get_index_name() !\u003d index or"},{"line_number":58,"context_line":"                    _type and plugin_obj.get_document_type() !\u003d _type)"},{"line_number":59,"context_line":"            if skip:"},{"line_number":60,"context_line":"                message_vals \u003d {\u0027name\u0027: ext.name,"},{"line_number":61,"context_line":"                                \u0027index\u0027: plugin_obj.get_index_name(),"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_f0cd335e","line":58,"range":{"start_line":58,"start_character":20,"end_line":58,"end_character":25},"updated":"2015-09-01 21:49:38.000000000","message":"I think that if the input parameters don\u0027t match any registered plugin that we should print a warning message, if not throw an exception.","commit_id":"0da07fc67d66fc57e2e8655d0dd7110ed4392898"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"b4e03177f3b820f51e7dd548f0591c4a7ed87c39","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    @args(\u0027--type\u0027, metavar\u003d\u0027\u003ctype\u003e\u0027, dest\u003d\u0027_type\u0027, nargs\u003d\u0027*\u0027,"},{"line_number":51,"context_line":"          help\u003d\u0027Index only this type (or multiple types)\u0027)"},{"line_number":52,"context_line":"    @args(\u0027--append\u0027, dest\u003d\u0027clear\u0027, action\u003d\u0027store_false\u0027,"},{"line_number":53,"context_line":"          help\u003d\u0027Don\\\u0027t delete mappings and data before indexing\u0027)"},{"line_number":54,"context_line":"    @args(\u0027--no-input\u0027, dest\u003d\u0027no_input\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":55,"context_line":"          help\u003d\"Don\u0027t prompt (answer \u0027Y\u0027)\")"},{"line_number":56,"context_line":"    def sync(self, index\u003dNone, _type\u003dNone, clear\u003dTrue, no_input\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_5e81804c","line":53,"updated":"2015-09-02 05:48:42.000000000","message":"append somehow is a little unclear, but after a few moments of thinking I don\u0027t have a better option. Here are some other ideas, but I don\u0027t think they are necessarily better.\n\n--keep-data\n--allow-stale\n\nPerhaps if at least for help, adding \"This may leave stale data in the index\"","commit_id":"ae4627ada3b52300e271324f930573aabfa45302"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"e9999734889fb8a2efa53c536dc95721a1f242a0","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    @args(\u0027--type\u0027, metavar\u003d\u0027\u003ctype\u003e\u0027, dest\u003d\u0027_type\u0027, nargs\u003d\u0027*\u0027,"},{"line_number":51,"context_line":"          help\u003d\u0027Index only this type (or multiple types)\u0027)"},{"line_number":52,"context_line":"    @args(\u0027--append\u0027, dest\u003d\u0027clear\u0027, action\u003d\u0027store_false\u0027,"},{"line_number":53,"context_line":"          help\u003d\u0027Don\\\u0027t delete mappings and data before indexing\u0027)"},{"line_number":54,"context_line":"    @args(\u0027--no-input\u0027, dest\u003d\u0027no_input\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":55,"context_line":"          help\u003d\"Don\u0027t prompt (answer \u0027Y\u0027)\")"},{"line_number":56,"context_line":"    def sync(self, index\u003dNone, _type\u003dNone, clear\u003dTrue, no_input\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_ae59585d","line":53,"in_reply_to":"da20952f_5e81804c","updated":"2015-09-03 02:08:52.000000000","message":"I like allow-stale i think. I\u0027ll update it and the help.","commit_id":"ae4627ada3b52300e271324f930573aabfa45302"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"b4e03177f3b820f51e7dd548f0591c4a7ed87c39","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    @args(\u0027--append\u0027, dest\u003d\u0027clear\u0027, action\u003d\u0027store_false\u0027,"},{"line_number":53,"context_line":"          help\u003d\u0027Don\\\u0027t delete mappings and data before indexing\u0027)"},{"line_number":54,"context_line":"    @args(\u0027--no-input\u0027, dest\u003d\u0027no_input\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":55,"context_line":"          help\u003d\"Don\u0027t prompt (answer \u0027Y\u0027)\")"},{"line_number":56,"context_line":"    def sync(self, index\u003dNone, _type\u003dNone, clear\u003dTrue, no_input\u003dFalse):"},{"line_number":57,"context_line":"        if clear and not no_input:"},{"line_number":58,"context_line":"            ans \u003d raw_input("}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_fef5f4ca","line":55,"updated":"2015-09-02 05:48:42.000000000","message":"**Maybe** should be -y\n\nhttp://www.shelldorado.com/goodcoding/cmdargs.html\n\nhttp://www.catb.org/esr/writings/taoup/html/ch10s05.html","commit_id":"ae4627ada3b52300e271324f930573aabfa45302"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"e9999734889fb8a2efa53c536dc95721a1f242a0","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    @args(\u0027--append\u0027, dest\u003d\u0027clear\u0027, action\u003d\u0027store_false\u0027,"},{"line_number":53,"context_line":"          help\u003d\u0027Don\\\u0027t delete mappings and data before indexing\u0027)"},{"line_number":54,"context_line":"    @args(\u0027--no-input\u0027, dest\u003d\u0027no_input\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":55,"context_line":"          help\u003d\"Don\u0027t prompt (answer \u0027Y\u0027)\")"},{"line_number":56,"context_line":"    def sync(self, index\u003dNone, _type\u003dNone, clear\u003dTrue, no_input\u003dFalse):"},{"line_number":57,"context_line":"        if clear and not no_input:"},{"line_number":58,"context_line":"            ans \u003d raw_input("}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_4e58bc56","line":55,"in_reply_to":"da20952f_fef5f4ca","updated":"2015-09-03 02:08:52.000000000","message":"Sure :)","commit_id":"ae4627ada3b52300e271324f930573aabfa45302"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"3de5a316a8eace934e4febdcc752355a972cb701","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    @args(\u0027--index\u0027, metavar\u003d\u0027\u003cindex\u003e\u0027, dest\u003d\u0027index\u0027, nargs\u003d\u0027*\u0027,"},{"line_number":49,"context_line":"          help\u003d\u0027Index only this index (or multiple indices)\u0027)"},{"line_number":50,"context_line":"    @args(\u0027--type\u0027, metavar\u003d\u0027\u003ctype\u003e\u0027, dest\u003d\u0027_type\u0027, nargs\u003d\u0027*\u0027,"},{"line_number":51,"context_line":"          help\u003d\u0027Index only this type (or multiple types)\u0027)"},{"line_number":52,"context_line":"    @args(\u0027--force\u0027, dest\u003d\u0027force\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":53,"context_line":"          help\u003d\"Don\u0027t prompt (answer \u0027y\u0027)\")"},{"line_number":54,"context_line":"    def sync(self, index\u003dNone, _type\u003dNone, force\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_ad26e3cb","line":51,"updated":"2015-09-04 21:59:49.000000000","message":"the way to put in multiple types or indices is not provided.  I first tried --type repeated (this is what openstack client uses for image properties):\n\n  --property \u003ckey\u003dvalue\u003e\n                        Set a property on this image (repeat option to set\n                        multiple properties)\n\nThen I tried comma separated and finally space separated.\n\nI think the parenthesis should say something like:\n\n(or multiple types using a space between each type)\n\nAn example in the rst would be good.","commit_id":"dd823071fc45093ab7b96f5955348a2e4e5d5f76"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"551b08e26135baccb859be4a731dd9152e1b0775","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    @args(\u0027--index\u0027, metavar\u003d\u0027\u003cindex\u003e\u0027, dest\u003d\u0027index\u0027, nargs\u003d\u0027*\u0027,"},{"line_number":49,"context_line":"          help\u003d\u0027Index only this index (or multiple indices)\u0027)"},{"line_number":50,"context_line":"    @args(\u0027--type\u0027, metavar\u003d\u0027\u003ctype\u003e\u0027, dest\u003d\u0027_type\u0027, nargs\u003d\u0027*\u0027,"},{"line_number":51,"context_line":"          help\u003d\u0027Index only this type (or multiple types)\u0027)"},{"line_number":52,"context_line":"    @args(\u0027--force\u0027, dest\u003d\u0027force\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":53,"context_line":"          help\u003d\"Don\u0027t prompt (answer \u0027y\u0027)\")"},{"line_number":54,"context_line":"    def sync(self, index\u003dNone, _type\u003dNone, force\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_c82d2990","line":51,"in_reply_to":"da20952f_ad26e3cb","updated":"2015-09-07 00:54:16.000000000","message":"I\u0027ll use comma separated; space separated seems weird from a unix perspective.","commit_id":"dd823071fc45093ab7b96f5955348a2e4e5d5f76"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"3de5a316a8eace934e4febdcc752355a972cb701","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                                \u0027index\u0027: plugin_obj.get_index_name(),"},{"line_number":71,"context_line":"                                \u0027type\u0027: plugin_obj.get_document_type()}"},{"line_number":72,"context_line":"                LOG.info(_LI(\"Not selecting indexing for %(name)s \""},{"line_number":73,"context_line":"                             \"(%(index)s %(type)s)\") % message_vals)"},{"line_number":74,"context_line":"            else:"},{"line_number":75,"context_line":"                plugins_to_index.append((resource_type, ext))"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_2805e178","line":73,"updated":"2015-09-04 21:59:49.000000000","message":"This message is kinda funny. If I put in \n\nIf I say --type OS::Glance::Image foo OS::Nova::Server\n\nIt will say sorry, I\u0027m skipping OS::Glance::Metadef.  \n\nbut will NOT tell me that it is skipping foo which I did specify. I will have to compare the what it matched with what it didn\u0027t match to figure out what I screwed up. And if you are like me who doesn\u0027t read unless forced to, you\u0027ll probably just type \u0027y\u0027.\n\nIf we have 25 plugins (wouldn\u0027t that be awesome!), the above would basically say, I am not doing these other 23 things you didn\u0027t ask for, but here\u0027s what I am doing.\n\nI\u0027m just saying this makes me have to parse what I screwed up and the problem of parsing will get harder as the # of types grow.\n\nHere\u0027s my suggestion for improvement.\n\nIf all of the input types or indexes match to a plugin, just display what matches as a confirmation (as you do below).\n\nIf any of them don\u0027t match, display the inputs that didn\u0027t match, display the available options. Then probably error out.  Possibly don\u0027t error out if the --force is chosen.\n\nThat would make it very explicit to me that I messed something up and here\u0027s the thing I messed up. And here\u0027s the choices I have.  Much like a command parser would complain if I put in a bad sub-command or option.","commit_id":"dd823071fc45093ab7b96f5955348a2e4e5d5f76"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"551b08e26135baccb859be4a731dd9152e1b0775","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                                \u0027index\u0027: plugin_obj.get_index_name(),"},{"line_number":71,"context_line":"                                \u0027type\u0027: plugin_obj.get_document_type()}"},{"line_number":72,"context_line":"                LOG.info(_LI(\"Not selecting indexing for %(name)s \""},{"line_number":73,"context_line":"                             \"(%(index)s %(type)s)\") % message_vals)"},{"line_number":74,"context_line":"            else:"},{"line_number":75,"context_line":"                plugins_to_index.append((resource_type, ext))"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_05230cbe","line":73,"in_reply_to":"da20952f_2805e178","updated":"2015-09-07 00:54:16.000000000","message":"Removed the \u0027skip\u0027 messages; moved the \u0027something didn\u0027t match\u0027 error further up before the prompt and made it error out. Displaying usage at that point is difficult because the parser\u0027s not available.","commit_id":"dd823071fc45093ab7b96f5955348a2e4e5d5f76"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"3de5a316a8eace934e4febdcc752355a972cb701","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        if not force:"},{"line_number":78,"context_line":"            print(\"\\nResource types matching selection:\\n%s\\n\" %"},{"line_number":79,"context_line":"                  \u0027\\n\u0027.join(map(lambda t_e: \u0027  \u0027 + t_e[0], plugins_to_index)))"},{"line_number":80,"context_line":"            ans \u003d raw_input("},{"line_number":81,"context_line":"                \"Indexing will delete existing data and mapping before \""},{"line_number":82,"context_line":"                \"reindexing.\\nUse \u0027--force\u0027 to suppress this \""}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_421ef670","line":79,"updated":"2015-09-04 21:59:49.000000000","message":"This is definitely good to have, I do wonder if we should put the index in parenthesis next to each one or make it a table output.  Otherwise, they\u0027d have to go figure that out.\n\nResource types matching selection (index in parenthesis):\n  OS::Glance::Metadef (searchlight)\n  OS::Glance::Image (searchlight)","commit_id":"dd823071fc45093ab7b96f5955348a2e4e5d5f76"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"551b08e26135baccb859be4a731dd9152e1b0775","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        if not force:"},{"line_number":78,"context_line":"            print(\"\\nResource types matching selection:\\n%s\\n\" %"},{"line_number":79,"context_line":"                  \u0027\\n\u0027.join(map(lambda t_e: \u0027  \u0027 + t_e[0], plugins_to_index)))"},{"line_number":80,"context_line":"            ans \u003d raw_input("},{"line_number":81,"context_line":"                \"Indexing will delete existing data and mapping before \""},{"line_number":82,"context_line":"                \"reindexing.\\nUse \u0027--force\u0027 to suppress this \""}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_28070519","line":79,"in_reply_to":"da20952f_421ef670","updated":"2015-09-07 00:54:16.000000000","message":"Done","commit_id":"dd823071fc45093ab7b96f5955348a2e4e5d5f76"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"3de5a316a8eace934e4febdcc752355a972cb701","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                \"reindexing.\\nUse \u0027--force\u0027 to suppress this \""},{"line_number":83,"context_line":"                \"message.\\nOK to continue? [y/n]: \")"},{"line_number":84,"context_line":"            if ans.lower() !\u003d \u0027y\u0027:"},{"line_number":85,"context_line":"                sys.exit(0)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        if indices_set or types_set:"},{"line_number":88,"context_line":"            raise Exception("}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_2d9c13bf","line":85,"updated":"2015-09-04 21:59:49.000000000","message":"If there aren\u0027t any plugins matching, it doesn\u0027t seem like it should prompt the above.:\n\n ttripp@ubuntu:/opt/stack/searchlight$ searchlight-manage index sync --index foo\n\n No handlers could be found for logger \"oslo_config.cfg\"\n 2015-09-03 23:20:03.180 WARNING oslo_config.cfg [-] Option \"policy_file\" from group \"DEFAULT\" is deprecated. Use option \"policy_file\" from group \"oslo_policy\".\n 2015-09-03 23:20:03.181 INFO searchlight.cmd.manage [-] Not selecting indexing for metadef (searchlight OS::Glance::Metadef)\n 2015-09-03 23:20:03.183 INFO searchlight.cmd.manage [-] Not selecting indexing for image (searchlight OS::Glance::Image)\n\n Resource types matching selection:\n\n\n Indexing will delete existing data and mapping before reindexing.\n Use \u0027--force\u0027 to suppress this message.\n OK to continue? [y/n]: y\n\n 2015-09-03 23:20:09.817 CRITICAL searchlight [-] Exception: Some index names or types do not have plugins registered. Index names: foo. Types: \u003cNone\u003e\n\n 2015-09-03 23:20:09.817 TRACE searchlight Traceback (most recent call last):\n 2015-09-03 23:20:09.817 TRACE searchlight   File \"/usr/local/bin/searchlight-manage\", line 10, in \u003cmodule\u003e\n 2015-09-03 23:20:09.817 TRACE searchlight     sys.exit(main())\n 2015-09-03 23:20:09.817 TRACE searchlight   File \"/opt/stack/searchlight/searchlight/cmd/manage.py\", line 188, in main\n 2015-09-03 23:20:09.817 TRACE searchlight     return CONF.command.action_fn(*func_args, **func_kwargs)\n 2015-09-03 23:20:09.817 TRACE searchlight   File \"/opt/stack/searchlight/searchlight/cmd/manage.py\", line 92, in sync\n 2015-09-03 23:20:09.817 TRACE searchlight     \",\".join(types_set) or \"\u003cNone\u003e\"))\n 2015-09-03 23:20:09.817 TRACE searchlight Exception: Some index names or types do not have plugins registered. Index  names: foo. Types: \u003cNone\u003e\n 2015-09-03 23:20:09.817 TRACE searchlight","commit_id":"dd823071fc45093ab7b96f5955348a2e4e5d5f76"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"551b08e26135baccb859be4a731dd9152e1b0775","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                \"reindexing.\\nUse \u0027--force\u0027 to suppress this \""},{"line_number":83,"context_line":"                \"message.\\nOK to continue? [y/n]: \")"},{"line_number":84,"context_line":"            if ans.lower() !\u003d \u0027y\u0027:"},{"line_number":85,"context_line":"                sys.exit(0)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        if indices_set or types_set:"},{"line_number":88,"context_line":"            raise Exception("}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_a52d80a9","line":85,"in_reply_to":"da20952f_2d9c13bf","updated":"2015-09-07 00:54:16.000000000","message":"Agreed; moved the \u0027foo\u0027 check up","commit_id":"dd823071fc45093ab7b96f5955348a2e4e5d5f76"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"ba69655466d38ddcbd4f05baf8645a71a2e77380","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                  (\",\".join(indices_set) or \"\u003cNone\u003e\","},{"line_number":78,"context_line":"                   \",\".join(types_set) or \"\u003cNone\u003e\"))"},{"line_number":79,"context_line":"            print(\"Aborting.\")"},{"line_number":80,"context_line":"            sys.exit(1)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        if not force:"},{"line_number":83,"context_line":"            def format_selection(selection):"}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_dc236b57","line":80,"updated":"2015-09-08 17:28:15.000000000","message":"Just a word of note, I tried the CLI without looking at the code first.  Just wanted to try to experience it as a user might. The below was an observation I had.  Maybe others will disagree.\n\nThe base error message is good.  The details at first were a little cryptic depending on my input combinations. After several different attempts I realized there wasn\u0027t necessarily a correlation between the two.\n\nI actually think it would be better to not show \"Index Names: \u003cNone\u003e\" or \"Types: \u003cNone\u003e\" if there isn\u0027t a problem with them. Just list it out if there are bad ones.  \n\nSome examples. \n\n$ searchlight-manage index sync --index searchlight --type OS::Glance::Image,OS::Glance::Images,Foo\n\nSome index names or types do not have plugins registered. Index names: \u003cNone\u003e. Types: Foo,OS::Glance::Images\nAborting.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n$ searchlight-manage index sync --index searchlights --type OS::Glance::Image\n\nSome index names or types do not have plugins registered. Index names: searchlights. Types: \u003cNone\u003e\n\nAborting.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n$ searchlight-manage index sync --index searchlight,WAT --type OS::Glance::Image,OS::Glance::Images,Foo\n\nSome index names or types do not have plugins registered. Index names: WAT. Types: Foo,OS::Glance::Images\nAborting.","commit_id":"4f8d6d14705d1ec883be38fe4de706eac581a1a6"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"28e0cfcfe7e2775654a88b79d5e08862d7890e74","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                  (\",\".join(indices_set) or \"\u003cNone\u003e\","},{"line_number":78,"context_line":"                   \",\".join(types_set) or \"\u003cNone\u003e\"))"},{"line_number":79,"context_line":"            print(\"Aborting.\")"},{"line_number":80,"context_line":"            sys.exit(1)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        if not force:"},{"line_number":83,"context_line":"            def format_selection(selection):"}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_b5ad65ec","line":80,"in_reply_to":"da20952f_dc236b57","updated":"2015-09-08 20:37:37.000000000","message":"Not sure i understand what you\u0027re getting at. The intent is that anything in --index or --type that has no match is what\u0027s listed, the intent being that in --type OS::Glance::Image,OS::Glance::Images,Foo you\u0027re told \u0027Foo\u0027 is problematic. I\u0027m not married to doing it any particular way but i think it could be tweaked forever.","commit_id":"4f8d6d14705d1ec883be38fe4de706eac581a1a6"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"ba69655466d38ddcbd4f05baf8645a71a2e77380","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                                      ext.obj.get_index_name())"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"            print(\"\\nResource types(and indices) matching selection:\\n%s\\n\" %"},{"line_number":89,"context_line":"                  \u0027\\n\u0027.join(map(format_selection, plugins_to_index)))"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"            ans \u003d raw_input("},{"line_number":92,"context_line":"                \"Indexing will delete existing data and mapping before \""}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_dcc7eb96","line":89,"updated":"2015-09-08 17:28:15.000000000","message":"Space between\n\n... Resource types (and indices) ...","commit_id":"4f8d6d14705d1ec883be38fe4de706eac581a1a6"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"28e0cfcfe7e2775654a88b79d5e08862d7890e74","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                                      ext.obj.get_index_name())"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"            print(\"\\nResource types(and indices) matching selection:\\n%s\\n\" %"},{"line_number":89,"context_line":"                  \u0027\\n\u0027.join(map(format_selection, plugins_to_index)))"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"            ans \u003d raw_input("},{"line_number":92,"context_line":"                \"Indexing will delete existing data and mapping before \""}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_35807549","line":89,"in_reply_to":"da20952f_dcc7eb96","updated":"2015-09-08 20:37:37.000000000","message":"Done","commit_id":"4f8d6d14705d1ec883be38fe4de706eac581a1a6"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"ba69655466d38ddcbd4f05baf8645a71a2e77380","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            ans \u003d raw_input("},{"line_number":92,"context_line":"                \"Indexing will delete existing data and mapping before \""},{"line_number":93,"context_line":"                \"reindexing.\\nUse \u0027--force\u0027 to suppress this \""},{"line_number":94,"context_line":"                \"message.\\nOK to continue? [y/n]: \")"},{"line_number":95,"context_line":"            if ans.lower() !\u003d \u0027y\u0027:"},{"line_number":96,"context_line":"                sys.exit(0)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_1c7243b1","line":94,"updated":"2015-09-08 17:28:15.000000000","message":"mapping(s)\n\nIn below message, when three are listed, singular mapping looks funny.\n\n Resource types(and indices) matching selection:\n  OS::Glance::Metadef (searchlight)\n  OS::Glance::Image (searchlight)\n  OS::Nova::Server (searchlight)\n\n Indexing will delete existing data and mapping before reindexing. \n Use \u0027--force\u0027 to suppress this message.\n OK to continue? [y/n]:","commit_id":"4f8d6d14705d1ec883be38fe4de706eac581a1a6"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"28e0cfcfe7e2775654a88b79d5e08862d7890e74","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            ans \u003d raw_input("},{"line_number":92,"context_line":"                \"Indexing will delete existing data and mapping before \""},{"line_number":93,"context_line":"                \"reindexing.\\nUse \u0027--force\u0027 to suppress this \""},{"line_number":94,"context_line":"                \"message.\\nOK to continue? [y/n]: \")"},{"line_number":95,"context_line":"            if ans.lower() !\u003d \u0027y\u0027:"},{"line_number":96,"context_line":"                sys.exit(0)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_b594858c","line":94,"in_reply_to":"da20952f_1c7243b1","updated":"2015-09-08 20:37:37.000000000","message":"Done","commit_id":"4f8d6d14705d1ec883be38fe4de706eac581a1a6"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"ba69655466d38ddcbd4f05baf8645a71a2e77380","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                \"reindexing.\\nUse \u0027--force\u0027 to suppress this \""},{"line_number":94,"context_line":"                \"message.\\nOK to continue? [y/n]: \")"},{"line_number":95,"context_line":"            if ans.lower() !\u003d \u0027y\u0027:"},{"line_number":96,"context_line":"                sys.exit(0)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        for resource_type, ext in plugins_to_index:"},{"line_number":99,"context_line":"            plugin_obj \u003d ext.obj"}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_fc43cf11","line":96,"updated":"2015-09-08 17:28:15.000000000","message":"Consider a short message here saying \"Aborting\" before exiting like you do above.  I accidentally types \"y\\\" and it just gave me my prompt back. Poor typists like myself might think it was just really fast and not notice that they actually messed up input.","commit_id":"4f8d6d14705d1ec883be38fe4de706eac581a1a6"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"28e0cfcfe7e2775654a88b79d5e08862d7890e74","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                \"reindexing.\\nUse \u0027--force\u0027 to suppress this \""},{"line_number":94,"context_line":"                \"message.\\nOK to continue? [y/n]: \")"},{"line_number":95,"context_line":"            if ans.lower() !\u003d \u0027y\u0027:"},{"line_number":96,"context_line":"                sys.exit(0)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        for resource_type, ext in plugins_to_index:"},{"line_number":99,"context_line":"            plugin_obj \u003d ext.obj"}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_958b8168","line":96,"in_reply_to":"da20952f_fc43cf11","updated":"2015-09-08 20:37:37.000000000","message":"Done","commit_id":"4f8d6d14705d1ec883be38fe4de706eac581a1a6"}],"searchlight/elasticsearch/plugins/base.py":[{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"ffc2ae8b2a9f5e722d115ee4719fd069ed974850","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.setup_mapping()"},{"line_number":43,"context_line":"        self.setup_data()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def clear_data(self):"},{"line_number":46,"context_line":"        type_exists \u003d (self.engine.indices.exists(self.index_name) and"},{"line_number":47,"context_line":"                       self.engine.indices.exists_type(self.index_name,"},{"line_number":48,"context_line":"                                                       self.document_type))"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_09489a5a","line":45,"updated":"2015-08-10 12:24:46.000000000","message":"This is ok for development stage and small data but for production/large data we cannot  delete mapping/data when there can be ongoing search requests. Should look at other options like creating aliases/reindexing in new index/pointing alias to new index etc from ES best practices.\n\nIt\u0027s probably not required now but once we get data intensive plugins like swift, clearing out mapping/data on the search indices would cause downtime until the reindexing is done.","commit_id":"8ee9b3583e65a85d25d899aaef3110317875dd57"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"9c7b3ae017f44179374ce493e689fa8f2ae77200","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.setup_mapping()"},{"line_number":43,"context_line":"        self.setup_data()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def clear_data(self):"},{"line_number":46,"context_line":"        type_exists \u003d (self.engine.indices.exists(self.index_name) and"},{"line_number":47,"context_line":"                       self.engine.indices.exists_type(self.index_name,"},{"line_number":48,"context_line":"                                                       self.document_type))"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_60a23efe","line":45,"in_reply_to":"1a4dcd0f_09489a5a","updated":"2015-08-11 17:51:49.000000000","message":"It\u0027ll be worse than that; indexing will continue but create the mapping automatically. The answer, i think, would be to disable the listeners prior to doing this. Maybe this is a documentation issue more than anything. Hot swapping is probably out of the bounds of what we should be doing.","commit_id":"8ee9b3583e65a85d25d899aaef3110317875dd57"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7507ba841eb7fc3c7dc5d66f0966105ec7a4a76e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.document_id_field \u003d self.get_document_id_field()"},{"line_number":33,"context_line":"        self.name \u003d \"%s-%s\" % (self.index_name, self.document_type)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def initial_indexing(self, clear\u003dFalse):"},{"line_number":36,"context_line":"        \"\"\"Comprehensively install search engine index and put data into it.\"\"\""},{"line_number":37,"context_line":"        if clear:"},{"line_number":38,"context_line":"            # First delete the doc type"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_d3aef9e6","line":35,"range":{"start_line":35,"start_character":25,"end_line":35,"end_character":29},"updated":"2015-09-01 21:49:38.000000000","message":"I think we should default to True as I mentioned in other file.","commit_id":"0da07fc67d66fc57e2e8655d0dd7110ed4392898"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"ba69655466d38ddcbd4f05baf8645a71a2e77380","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        if type_exists:"},{"line_number":50,"context_line":"            self.engine.indices.delete_mapping(self.index_name,"},{"line_number":51,"context_line":"                                               self.document_type)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def setup_index(self):"},{"line_number":54,"context_line":"        \"\"\"Create the index if it doesn\u0027t exist and update its settings.\"\"\""},{"line_number":55,"context_line":"        index_exists \u003d self.engine.indices.exists(self.index_name)"}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_10078719","line":52,"updated":"2015-09-08 17:28:15.000000000","message":"Once functional tests are in, we should add a test for this.","commit_id":"4f8d6d14705d1ec883be38fe4de706eac581a1a6"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"28e0cfcfe7e2775654a88b79d5e08862d7890e74","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        if type_exists:"},{"line_number":50,"context_line":"            self.engine.indices.delete_mapping(self.index_name,"},{"line_number":51,"context_line":"                                               self.document_type)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def setup_index(self):"},{"line_number":54,"context_line":"        \"\"\"Create the index if it doesn\u0027t exist and update its settings.\"\"\""},{"line_number":55,"context_line":"        index_exists \u003d self.engine.indices.exists(self.index_name)"}],"source_content_type":"text/x-python","patch_set":11,"id":"da20952f_d5bfb9fa","line":52,"in_reply_to":"da20952f_10078719","updated":"2015-09-08 20:37:37.000000000","message":"Agreed. I should also do some unit tests but i\u0027d prefer to do them as a supplemental patch.","commit_id":"4f8d6d14705d1ec883be38fe4de706eac581a1a6"}]}
