)]}'
{"openstack/compute/v2/server.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"6df6ee64e44b0085d2d626300a7f3802dbaba546","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from openstack.compute.v2 import image"},{"line_number":16,"context_line":"from openstack.compute.v2 import server_ip"},{"line_number":17,"context_line":"from openstack import resource"},{"line_number":18,"context_line":"from openstack import transport"},{"line_number":19,"context_line":"from openstack import utils"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_9039a4a6","line":18,"updated":"2015-06-24 17:53:54.000000000","message":"It sure would be nice if this guy had no idea what a transport was.","commit_id":"7de6932e4501af56b1f90ba74b37209c7c306438"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"e27f3cfd7c43f7c396690d38555355aebd25988f","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from openstack.compute.v2 import image"},{"line_number":16,"context_line":"from openstack.compute.v2 import server_ip"},{"line_number":17,"context_line":"from openstack import resource"},{"line_number":18,"context_line":"from openstack import transport"},{"line_number":19,"context_line":"from openstack import utils"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_f4533de0","line":18,"in_reply_to":"fa32b979_9039a4a6","updated":"2015-06-24 18:07:26.000000000","message":"I wish, but the accept parameter changes on delete. I could just copy/paste in \"application/json\" here to avoid using transport.JSON -- delete must be None for accept param.\n\nAll I really need to be able to do is set accept\u003dNone if it\u0027s actually None, and leave it alone if it\u0027s not (so it gets set to json). I can get rid of this import dep if I do a little more inspection into whether or not we\u0027re doing a DELETE operation, or perhaps set some other flag to specify that we need to send in None there.","commit_id":"7de6932e4501af56b1f90ba74b37209c7c306438"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"6df6ee64e44b0085d2d626300a7f3802dbaba546","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            if address[\u0027OS-EXT-IPS:type\u0027] \u003d\u003d \u0027floating\u0027:"},{"line_number":151,"context_line":"                result.append(address[\u0027addr\u0027])"},{"line_number":152,"context_line":"        return result"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def _metadata(self, method, key\u003dNone, clear\u003dFalse,"},{"line_number":155,"context_line":"                  accept\u003dtransport.JSON, **metadata):"},{"line_number":156,"context_line":"        # If we\u0027re in a ServerDetail, we need to pop the \"detail\" portion"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_50cf9c28","line":153,"updated":"2015-06-24 17:53:54.000000000","message":"It seems like we could make this less complicated.  Anything we could do to get rid of this _metadata method would help.  I think between getting rid of the fancy url work and drop support for /meta thing could be gone.","commit_id":"7de6932e4501af56b1f90ba74b37209c7c306438"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"e27f3cfd7c43f7c396690d38555355aebd25988f","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            if address[\u0027OS-EXT-IPS:type\u0027] \u003d\u003d \u0027floating\u0027:"},{"line_number":151,"context_line":"                result.append(address[\u0027addr\u0027])"},{"line_number":152,"context_line":"        return result"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def _metadata(self, method, key\u003dNone, clear\u003dFalse,"},{"line_number":155,"context_line":"                  accept\u003dtransport.JSON, **metadata):"},{"line_number":156,"context_line":"        # If we\u0027re in a ServerDetail, we need to pop the \"detail\" portion"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_14fd81b0","line":153,"in_reply_to":"fa32b979_50cf9c28","updated":"2015-06-24 18:07:26.000000000","message":"Having something in common here is in some ways a good thing, because image metadata has all of the same things. That\u0027s why I had that even more complicated other version of this because the same base pieces work for both server metadata and image metadata.","commit_id":"7de6932e4501af56b1f90ba74b37209c7c306438"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"6df6ee64e44b0085d2d626300a7f3802dbaba546","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        if pos !\u003d -1:"},{"line_number":160,"context_line":"            base \u003d self.base_path[:pos]"},{"line_number":161,"context_line":"        else:"},{"line_number":162,"context_line":"            base \u003d self.base_path"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        url \u003d utils.urljoin(base, self.id, \"metadata\", key)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_f0a35041","line":162,"updated":"2015-06-24 17:53:54.000000000","message":"I\u0027m okay with skipping removing detail and just hard coding \u0027/servers\u0027 in the url join.","commit_id":"7de6932e4501af56b1f90ba74b37209c7c306438"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"6df6ee64e44b0085d2d626300a7f3802dbaba546","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        if metadata or clear:"},{"line_number":168,"context_line":"            # \u0027meta\u0027 is the key for singlular modifications."},{"line_number":169,"context_line":"            # \u0027metadata\u0027 is the key for mass modifications."},{"line_number":170,"context_line":"            key \u003d \"meta\" if key is not None else \"metadata\""},{"line_number":171,"context_line":"            kwargs[\"json\"] \u003d {key: metadata}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        response \u003d method(url, accept\u003daccept, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_3e24290b","line":170,"updated":"2015-06-24 17:53:54.000000000","message":"The latest doc makes no metion of the meta path, how about we don\u0027t support it.\n\nhttp://developer.openstack.org/api-ref-compute-v2.html#compute_server_metadata\n\nIt used to be there were some things I liked about the meta url, but I\u0027m seeing everything we need on metadata.","commit_id":"7de6932e4501af56b1f90ba74b37209c7c306438"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"e27f3cfd7c43f7c396690d38555355aebd25988f","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        if metadata or clear:"},{"line_number":168,"context_line":"            # \u0027meta\u0027 is the key for singlular modifications."},{"line_number":169,"context_line":"            # \u0027metadata\u0027 is the key for mass modifications."},{"line_number":170,"context_line":"            key \u003d \"meta\" if key is not None else \"metadata\""},{"line_number":171,"context_line":"            kwargs[\"json\"] \u003d {key: metadata}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        response \u003d method(url, accept\u003daccept, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_94de713c","line":170,"in_reply_to":"fa32b979_3e24290b","updated":"2015-06-24 18:07:26.000000000","message":"This isn\u0027t in a URL, it\u0027s the key name in the dictionary that is sent or received. It\u0027s a little bit like resource_key/resources_key (that\u0027s what I had been overriding/abusing in another approach to this).","commit_id":"7de6932e4501af56b1f90ba74b37209c7c306438"}],"openstack/tests/functional/compute/v2/test_server.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"6df6ee64e44b0085d2d626300a7f3802dbaba546","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        # Get all metadata and then only the last name"},{"line_number":87,"context_line":"        self.assertDictEqual(self.conn.compute.get_server_metadata(sot),"},{"line_number":88,"context_line":"                             short)"},{"line_number":89,"context_line":"        self.assertDictEqual("},{"line_number":90,"context_line":"            self.conn.compute.get_server_metadata(sot, \"last\"),"},{"line_number":91,"context_line":"            {\"last\": short[\"last\"]})"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_9f8a0f1a","line":89,"updated":"2015-06-24 17:53:54.000000000","message":"I\u0027d be fine with getting rid of this use case.","commit_id":"7de6932e4501af56b1f90ba74b37209c7c306438"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"e27f3cfd7c43f7c396690d38555355aebd25988f","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        # Get all metadata and then only the last name"},{"line_number":87,"context_line":"        self.assertDictEqual(self.conn.compute.get_server_metadata(sot),"},{"line_number":88,"context_line":"                             short)"},{"line_number":89,"context_line":"        self.assertDictEqual("},{"line_number":90,"context_line":"            self.conn.compute.get_server_metadata(sot, \"last\"),"},{"line_number":91,"context_line":"            {\"last\": short[\"last\"]})"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_74972d3a","line":89,"in_reply_to":"fa32b979_9f8a0f1a","updated":"2015-06-24 18:07:26.000000000","message":"I thought about that, but came back to one of those things where allowing the server to send less data over the wire had me keeping it. It\u0027s not any more difficult to support.","commit_id":"7de6932e4501af56b1f90ba74b37209c7c306438"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"002724309f50f1dc89ce94fd68f14ff780da7d43","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    def setUpClass(cls):"},{"line_number":29,"context_line":"        super(TestServer, cls).setUpClass()"},{"line_number":30,"context_line":"        # TODO(thowe): These values should be able to be set in clouds.yaml"},{"line_number":31,"context_line":"        flavor \u003d \u00274\u0027"},{"line_number":32,"context_line":"        image \u003d next(cls.conn.image.images())"},{"line_number":33,"context_line":"        cls.network, cls.subnet \u003d test_network.create_network(cls.conn,"},{"line_number":34,"context_line":"                                                              cls.NAME)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_ca68688a","line":31,"updated":"2015-09-21 14:47:08.000000000","message":"4 -\u003e m1.large, 8GB memory for this test...\n\nlooks like we can reduce this to at least 2 (m1.small), which is 2GB or even less.","commit_id":"885bfab3c1b291ebb276a670e38b058e73506871"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"002724309f50f1dc89ce94fd68f14ff780da7d43","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        super(TestServer, cls).setUpClass()"},{"line_number":30,"context_line":"        # TODO(thowe): These values should be able to be set in clouds.yaml"},{"line_number":31,"context_line":"        flavor \u003d \u00274\u0027"},{"line_number":32,"context_line":"        image \u003d next(cls.conn.image.images())"},{"line_number":33,"context_line":"        cls.network, cls.subnet \u003d test_network.create_network(cls.conn,"},{"line_number":34,"context_line":"                                                              cls.NAME)"},{"line_number":35,"context_line":"        if cls.network:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_8ad7d022","line":32,"updated":"2015-09-21 14:47:08.000000000","message":"maybe we can just use \u0027cirros-0.3.4-x86_64-uec\u0027 for this functional test.","commit_id":"885bfab3c1b291ebb276a670e38b058e73506871"}]}
