)]}'
{"nova/cmd/manage.py":[{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"b5d5dde8429d4be137925bec0d7d49a3599ee908","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"import argparse"},{"line_number":58,"context_line":"import functools"},{"line_number":59,"context_line":"import os"},{"line_number":60,"context_line":"import re"},{"line_number":61,"context_line":"import sys"},{"line_number":62,"context_line":"import traceback"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_efc5a93d","line":59,"range":{"start_line":59,"start_character":0,"end_line":59,"end_character":9},"updated":"2017-11-22 07:29:42.000000000","message":"after removing, os is not used. Please remove.","commit_id":"1e4357bc0c67f24ac5a18b2621aa763bd31855f0"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"39b8a0b6893d925dc9f976e0b7f2d168a49cc051","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"import argparse"},{"line_number":58,"context_line":"import functools"},{"line_number":59,"context_line":"import os"},{"line_number":60,"context_line":"import re"},{"line_number":61,"context_line":"import sys"},{"line_number":62,"context_line":"import traceback"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_5a09f22e","line":59,"range":{"start_line":59,"start_character":0,"end_line":59,"end_character":9},"in_reply_to":"ff82abbf_efc5a93d","updated":"2017-11-22 10:06:02.000000000","message":"Done","commit_id":"1e4357bc0c67f24ac5a18b2621aa763bd31855f0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"668c13fab68b4ad14793569c3bc923872705dde8","unresolved":false,"context_lines":[{"line_number":1681,"context_line":""},{"line_number":1682,"context_line":""},{"line_number":1683,"context_line":"CATEGORIES \u003d {"},{"line_number":1684,"context_line":"    \u0027agent\u0027: AgentBuildCommands,"},{"line_number":1685,"context_line":"    \u0027api_db\u0027: ApiDbCommands,"},{"line_number":1686,"context_line":"    \u0027cell\u0027: CellCommands,"},{"line_number":1687,"context_line":"    \u0027cell_v2\u0027: CellV2Commands,"}],"source_content_type":"text/x-python","patch_set":10,"id":"df87a7cf_a9d02f55","side":"PARENT","line":1684,"range":{"start_line":1684,"start_character":0,"end_line":1684,"end_character":32},"updated":"2017-12-13 12:53:11.000000000","message":"you are removing this too in this commit?","commit_id":"1510bdcc126b3c0a8acac516eed2345b15f42065"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"668c13fab68b4ad14793569c3bc923872705dde8","unresolved":false,"context_lines":[{"line_number":1687,"context_line":"    \u0027cell_v2\u0027: CellV2Commands,"},{"line_number":1688,"context_line":"    \u0027db\u0027: DbCommands,"},{"line_number":1689,"context_line":"    \u0027floating\u0027: FloatingIpCommands,"},{"line_number":1690,"context_line":"    \u0027host\u0027: HostCommands,"},{"line_number":1691,"context_line":"    \u0027logs\u0027: GetLogCommands,"},{"line_number":1692,"context_line":"    \u0027network\u0027: NetworkCommands,"},{"line_number":1693,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":10,"id":"df87a7cf_c9d57345","side":"PARENT","line":1690,"range":{"start_line":1690,"start_character":1,"end_line":1690,"end_character":25},"updated":"2017-12-13 12:53:11.000000000","message":"ditto","commit_id":"1510bdcc126b3c0a8acac516eed2345b15f42065"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6a2a34a147b74dd5481e180651e394b2915836e3","unresolved":false,"context_lines":[{"line_number":381,"context_line":"        db.network_update(admin_context, network[\u0027id\u0027], net)"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"class HostCommands(object):"},{"line_number":385,"context_line":"    \"\"\"List hosts.\"\"\""},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    # TODO(stephenfin): Remove this during the Queens cycle"},{"line_number":388,"context_line":"    description \u003d (\u0027DEPRECATED: The host commands are deprecated since \u0027"},{"line_number":389,"context_line":"                   \u0027Pike as this information is available over the API. They \u0027"},{"line_number":390,"context_line":"                   \u0027will be removed in an upcoming release.\u0027)"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    def list(self, zone\u003dNone):"},{"line_number":393,"context_line":"        \"\"\"Show a list of all physical hosts. Filter by zone."},{"line_number":394,"context_line":"        args: [zone]"},{"line_number":395,"context_line":"        \"\"\""},{"line_number":396,"context_line":"        print(\"%-25s\\t%-15s\" % (_(\u0027host\u0027),"},{"line_number":397,"context_line":"                                _(\u0027zone\u0027)))"},{"line_number":398,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":399,"context_line":"        services \u003d db.service_get_all(ctxt)"},{"line_number":400,"context_line":"        services \u003d availability_zones.set_availability_zones(ctxt, services)"},{"line_number":401,"context_line":"        if zone:"},{"line_number":402,"context_line":"            services \u003d [s for s in services if s[\u0027availability_zone\u0027] \u003d\u003d zone]"},{"line_number":403,"context_line":"        hosts \u003d []"},{"line_number":404,"context_line":"        for srv in services:"},{"line_number":405,"context_line":"            if not [h for h in hosts if h[\u0027host\u0027] \u003d\u003d srv[\u0027host\u0027]]:"},{"line_number":406,"context_line":"                hosts.append(srv)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        for h in hosts:"},{"line_number":409,"context_line":"            print(\"%-25s\\t%-15s\" % (h[\u0027host\u0027], h[\u0027availability_zone\u0027]))"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"class DbCommands(object):"}],"source_content_type":"text/x-python","patch_set":11,"id":"df87a7cf_96ee1e20","side":"PARENT","line":409,"range":{"start_line":384,"start_character":0,"end_line":409,"end_character":71},"updated":"2017-12-19 11:39:55.000000000","message":"Looks like a rebase issue","commit_id":"b9b78fc252136c87c2656851a760227c84f2123d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6a2a34a147b74dd5481e180651e394b2915836e3","unresolved":false,"context_lines":[{"line_number":794,"context_line":"        \"\"\"Print the current database version.\"\"\""},{"line_number":795,"context_line":"        print(migration.db_version(database\u003d\u0027api\u0027))"},{"line_number":796,"context_line":""},{"line_number":797,"context_line":""},{"line_number":798,"context_line":"class AgentBuildCommands(object):"},{"line_number":799,"context_line":"    \"\"\"Class for managing agent builds.\"\"\""},{"line_number":800,"context_line":""},{"line_number":801,"context_line":"    # TODO(stephenfin): Remove this during the Queens cycle"},{"line_number":802,"context_line":"    description \u003d (\u0027DEPRECATED: The agent commands are deprecated since \u0027"},{"line_number":803,"context_line":"                   \u0027Pike as this information is available over the API. They \u0027"},{"line_number":804,"context_line":"                   \u0027will be removed in an upcoming release.\u0027)"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"    @args(\u0027--os\u0027, metavar\u003d\u0027\u003cos\u003e\u0027, help\u003d\u0027os\u0027)"},{"line_number":807,"context_line":"    @args(\u0027--architecture\u0027, dest\u003d\u0027architecture\u0027,"},{"line_number":808,"context_line":"            metavar\u003d\u0027\u003carchitecture\u003e\u0027, help\u003d\u0027architecture\u0027)"},{"line_number":809,"context_line":"    @args(\u0027--version\u0027, metavar\u003d\u0027\u003cversion\u003e\u0027, help\u003d\u0027version\u0027)"},{"line_number":810,"context_line":"    @args(\u0027--url\u0027, metavar\u003d\u0027\u003curl\u003e\u0027, help\u003d\u0027url\u0027)"},{"line_number":811,"context_line":"    @args(\u0027--md5hash\u0027, metavar\u003d\u0027\u003cmd5hash\u003e\u0027, help\u003d\u0027md5hash\u0027)"},{"line_number":812,"context_line":"    @args(\u0027--hypervisor\u0027, metavar\u003d\u0027\u003chypervisor\u003e\u0027,"},{"line_number":813,"context_line":"            help\u003d\u0027hypervisor(default: xen)\u0027)"},{"line_number":814,"context_line":"    def create(self, os, architecture, version, url, md5hash,"},{"line_number":815,"context_line":"                hypervisor\u003d\u0027xen\u0027):"},{"line_number":816,"context_line":"        \"\"\"Creates a new agent build.\"\"\""},{"line_number":817,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":818,"context_line":"        db.agent_build_create(ctxt, {\u0027hypervisor\u0027: hypervisor,"},{"line_number":819,"context_line":"                                     \u0027os\u0027: os,"},{"line_number":820,"context_line":"                                     \u0027architecture\u0027: architecture,"},{"line_number":821,"context_line":"                                     \u0027version\u0027: version,"},{"line_number":822,"context_line":"                                     \u0027url\u0027: url,"},{"line_number":823,"context_line":"                                     \u0027md5hash\u0027: md5hash})"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"    @args(\u0027--os\u0027, metavar\u003d\u0027\u003cos\u003e\u0027, help\u003d\u0027os\u0027)"},{"line_number":826,"context_line":"    @args(\u0027--architecture\u0027, dest\u003d\u0027architecture\u0027,"},{"line_number":827,"context_line":"            metavar\u003d\u0027\u003carchitecture\u003e\u0027, help\u003d\u0027architecture\u0027)"},{"line_number":828,"context_line":"    @args(\u0027--hypervisor\u0027, metavar\u003d\u0027\u003chypervisor\u003e\u0027,"},{"line_number":829,"context_line":"            help\u003d\u0027hypervisor(default: xen)\u0027)"},{"line_number":830,"context_line":"    def delete(self, os, architecture, hypervisor\u003d\u0027xen\u0027):"},{"line_number":831,"context_line":"        \"\"\"Deletes an existing agent build.\"\"\""},{"line_number":832,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":833,"context_line":"        agent_build_ref \u003d db.agent_build_get_by_triple(ctxt,"},{"line_number":834,"context_line":"                                  hypervisor, os, architecture)"},{"line_number":835,"context_line":"        db.agent_build_destroy(ctxt, agent_build_ref[\u0027id\u0027])"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"    @args(\u0027--hypervisor\u0027, metavar\u003d\u0027\u003chypervisor\u003e\u0027,"},{"line_number":838,"context_line":"            help\u003d\u0027hypervisor(default: None)\u0027)"},{"line_number":839,"context_line":"    def list(self, hypervisor\u003dNone):"},{"line_number":840,"context_line":"        \"\"\"Lists all agent builds."},{"line_number":841,"context_line":""},{"line_number":842,"context_line":"        arguments: \u003cnone\u003e"},{"line_number":843,"context_line":"        \"\"\""},{"line_number":844,"context_line":"        fmt \u003d \"%-10s  %-8s  %12s  %s\""},{"line_number":845,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":846,"context_line":"        by_hypervisor \u003d {}"},{"line_number":847,"context_line":"        for agent_build in db.agent_build_get_all(ctxt):"},{"line_number":848,"context_line":"            buildlist \u003d by_hypervisor.get(agent_build.hypervisor)"},{"line_number":849,"context_line":"            if not buildlist:"},{"line_number":850,"context_line":"                buildlist \u003d by_hypervisor[agent_build.hypervisor] \u003d []"},{"line_number":851,"context_line":""},{"line_number":852,"context_line":"            buildlist.append(agent_build)"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"        for key, buildlist in by_hypervisor.items():"},{"line_number":855,"context_line":"            if hypervisor and key !\u003d hypervisor:"},{"line_number":856,"context_line":"                continue"},{"line_number":857,"context_line":""},{"line_number":858,"context_line":"            print(_(\u0027Hypervisor: %s\u0027) % key)"},{"line_number":859,"context_line":"            print(fmt % (\u0027-\u0027 * 10, \u0027-\u0027 * 8, \u0027-\u0027 * 12, \u0027-\u0027 * 32))"},{"line_number":860,"context_line":"            for agent_build in buildlist:"},{"line_number":861,"context_line":"                print(fmt % (agent_build.os, agent_build.architecture,"},{"line_number":862,"context_line":"                             agent_build.version, agent_build.md5hash))"},{"line_number":863,"context_line":"                print(\u0027    %s\u0027 % agent_build.url)"},{"line_number":864,"context_line":""},{"line_number":865,"context_line":"            print()"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"    @args(\u0027--os\u0027, metavar\u003d\u0027\u003cos\u003e\u0027, help\u003d\u0027os\u0027)"},{"line_number":868,"context_line":"    @args(\u0027--architecture\u0027, dest\u003d\u0027architecture\u0027,"},{"line_number":869,"context_line":"            metavar\u003d\u0027\u003carchitecture\u003e\u0027, help\u003d\u0027architecture\u0027)"},{"line_number":870,"context_line":"    @args(\u0027--version\u0027, metavar\u003d\u0027\u003cversion\u003e\u0027, help\u003d\u0027version\u0027)"},{"line_number":871,"context_line":"    @args(\u0027--url\u0027, metavar\u003d\u0027\u003curl\u003e\u0027, help\u003d\u0027url\u0027)"},{"line_number":872,"context_line":"    @args(\u0027--md5hash\u0027, metavar\u003d\u0027\u003cmd5hash\u003e\u0027, help\u003d\u0027md5hash\u0027)"},{"line_number":873,"context_line":"    @args(\u0027--hypervisor\u0027, metavar\u003d\u0027\u003chypervisor\u003e\u0027,"},{"line_number":874,"context_line":"            help\u003d\u0027hypervisor(default: xen)\u0027)"},{"line_number":875,"context_line":"    def modify(self, os, architecture, version, url, md5hash,"},{"line_number":876,"context_line":"               hypervisor\u003d\u0027xen\u0027):"},{"line_number":877,"context_line":"        \"\"\"Update an existing agent build.\"\"\""},{"line_number":878,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":879,"context_line":"        agent_build_ref \u003d db.agent_build_get_by_triple(ctxt,"},{"line_number":880,"context_line":"                                  hypervisor, os, architecture)"},{"line_number":881,"context_line":"        db.agent_build_update(ctxt, agent_build_ref[\u0027id\u0027],"},{"line_number":882,"context_line":"                              {\u0027version\u0027: version,"},{"line_number":883,"context_line":"                               \u0027url\u0027: url,"},{"line_number":884,"context_line":"                               \u0027md5hash\u0027: md5hash})"},{"line_number":885,"context_line":""},{"line_number":886,"context_line":""},{"line_number":887,"context_line":"class GetLogCommands(object):"}],"source_content_type":"text/x-python","patch_set":11,"id":"df87a7cf_36ef121e","side":"PARENT","line":884,"range":{"start_line":797,"start_character":0,"end_line":884,"end_character":51},"updated":"2017-12-19 11:39:55.000000000","message":"ditto","commit_id":"b9b78fc252136c87c2656851a760227c84f2123d"}],"nova/tests/unit/objects/test_objects.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"bb4f7655219992d60e6c2ceab203f323e1d62f6a","unresolved":false,"context_lines":[{"line_number":1092,"context_line":"    \u0027FloatingIP\u0027: \u00271.10-52a67d52d85eb8b3f324a5b7935a335b\u0027,"},{"line_number":1093,"context_line":"    \u0027FloatingIPList\u0027: \u00271.12-e4debd21fddb12cf40d36f737225fa9d\u0027,"},{"line_number":1094,"context_line":"    \u0027HostMapping\u0027: \u00271.0-1a3390a696792a552ab7bd31a77ba9ac\u0027,"},{"line_number":1095,"context_line":"    \u0027HostMappingList\u0027: \u00271.0-18ac2bfb8c1eb5545bed856da58a79bc\u0027,"},{"line_number":1096,"context_line":"    \u0027HyperVLiveMigrateData\u0027: \u00271.2-bcb6dad687369348ffe0f41da6888704\u0027,"},{"line_number":1097,"context_line":"    \u0027HVSpec\u0027: \u00271.2-de06bcec472a2f04966b855a49c46b41\u0027,"},{"line_number":1098,"context_line":"    \u0027IDEDeviceBus\u0027: \u00271.0-29d4c9f27ac44197f01b6ac1b7e16502\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"df87a7cf_d748292e","line":1095,"range":{"start_line":1095,"start_character":28,"end_line":1095,"end_character":60},"updated":"2017-12-19 07:36:48.000000000","message":"It is a unrelated change.","commit_id":"73079496d9bf99afe0607fc2831da4a3e74bf7e3"}],"releasenotes/notes/remove-deprecated-nova-manage-commands-2826e6b50eccfef1.yaml":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"bb4f7655219992d60e6c2ceab203f323e1d62f6a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    - ``shell``"},{"line_number":8,"context_line":"    - ``project``"},{"line_number":9,"context_line":"    - ``account``"},{"line_number":10,"context_line":"    - ``logs``"},{"line_number":11,"context_line":"    - ``host``"},{"line_number":12,"context_line":"    - ``agent``"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"    These were previously deprecated in 16.0.0."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"df87a7cf_974e2136","line":12,"range":{"start_line":10,"start_character":0,"end_line":12,"end_character":15},"updated":"2017-12-19 07:36:48.000000000","message":"There is an inconsistency with the commit message.","commit_id":"73079496d9bf99afe0607fc2831da4a3e74bf7e3"}]}
