)]}'
{"freezer/openstack/restore.py":[{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"ea922b5a09aacc9fe66b6e5bdb2b20fe2b904ce7","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        \"\"\""},{"line_number":144,"context_line":"        # TODO(yangyapeng): remove nova_network check use nova api,"},{"line_number":145,"context_line":"        # nova api list network is not accurate."},{"line_number":146,"context_line":"        # Change validation use neutron api insdead of nova api in"},{"line_number":147,"context_line":"        # a project, find all available network in restore nova."},{"line_number":148,"context_line":"        # implementation it after tenant backup add get_neutron in"},{"line_number":149,"context_line":"        # openstack oslient."}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_a443996b","line":146,"range":{"start_line":146,"start_character":44,"end_line":146,"end_character":51},"updated":"2016-10-18 17:50:54.000000000","message":"instead","commit_id":"ecb9298b787eae8601b1acc04c8513e4cea25dd8"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"ea922b5a09aacc9fe66b6e5bdb2b20fe2b904ce7","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        # implementation it after tenant backup add get_neutron in"},{"line_number":149,"context_line":"        # openstack oslient."},{"line_number":150,"context_line":"        nova \u003d self.client_manager.get_nova()"},{"line_number":151,"context_line":"        nics \u003d nova.networks.findall()"},{"line_number":152,"context_line":"        nic_id \u003d [nic.id for nic in nics]"},{"line_number":153,"context_line":"        if nova_network and (nova_network not in nic_id):"},{"line_number":154,"context_line":"            raise Exception(\"The network %s is invalid\" % nova_network)"},{"line_number":155,"context_line":"        (info, image) \u003d self._create_image(instance_id, restore_from_timestamp)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_1f62d2d8","line":152,"range":{"start_line":151,"start_character":8,"end_line":152,"end_character":41},"updated":"2016-10-18 17:50:54.000000000","message":"There is no need to collect information about nics if nova_network is None","commit_id":"ecb9298b787eae8601b1acc04c8513e4cea25dd8"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"ea922b5a09aacc9fe66b6e5bdb2b20fe2b904ce7","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        flavor \u003d nova.flavors.get(info[\u0027x-object-meta-flavor-id\u0027])"},{"line_number":157,"context_line":"        LOG.info(\"Creating an instance\")"},{"line_number":158,"context_line":"        instance \u003d None"},{"line_number":159,"context_line":"        if nova_network:"},{"line_number":160,"context_line":"            instance \u003d nova.servers.create(info[\u0027x-object-meta-name\u0027],"},{"line_number":161,"context_line":"                                           image, flavor,"},{"line_number":162,"context_line":"                                           nics\u003d[{\u0027net-id\u0027: nova_network}])"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_7f302e9f","line":159,"updated":"2016-10-18 17:50:54.000000000","message":"Double check nova_network is not None.\nIt\u0027s better to do:\nif nova_network:\n    nics_id \u003d [nic.id for nic in nova.networks.findall()]\n    if nova_network not in nics_id:\n        raise Exception ...\n    instance \u003d nova.servers.create(...)\nelse\n    ...","commit_id":"ecb9298b787eae8601b1acc04c8513e4cea25dd8"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"ea922b5a09aacc9fe66b6e5bdb2b20fe2b904ce7","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        instance \u003d None"},{"line_number":159,"context_line":"        if nova_network:"},{"line_number":160,"context_line":"            instance \u003d nova.servers.create(info[\u0027x-object-meta-name\u0027],"},{"line_number":161,"context_line":"                                           image, flavor,"},{"line_number":162,"context_line":"                                           nics\u003d[{\u0027net-id\u0027: nova_network}])"},{"line_number":163,"context_line":"        else:"},{"line_number":164,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_ff1c3e15","line":161,"range":{"start_line":161,"start_character":41,"end_line":161,"end_character":43},"updated":"2016-10-18 17:50:54.000000000","message":"whitespaces","commit_id":"ecb9298b787eae8601b1acc04c8513e4cea25dd8"},{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"f62dc266f7c7d779b9397a5edb92705ca8d65098","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            except Exception as e:"},{"line_number":167,"context_line":"                LOG.warn(e)"},{"line_number":168,"context_line":"                raise Exception(\"The parameter --nova-restore-network \""},{"line_number":169,"context_line":"                                \"is require\")"},{"line_number":170,"context_line":"        # loop and wait till the server is up then remove the image"},{"line_number":171,"context_line":"        # let\u0027s wait 100 second"},{"line_number":172,"context_line":"        LOG.info(\u0027Delete instance image from glance {0}\u0027.format(image))"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_68a059a0","line":169,"updated":"2016-12-02 14:21:13.000000000","message":"required","commit_id":"4f7550bb0a56d039e78d8ab21dcfed1b541b49b3"}]}
