)]}'
{"doc/source/devref/development.environment.rst":[{"author":{"_account_id":2245,"name":"Jacky Hu","email":"hudayou@hotmail.com","username":"hudayou"},"change_message_id":"00f07c6140833c1d8156c2d5fc8f195cde7668ea","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"On Ubuntu::"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  sudo apt-get install python-dev swig libssl-dev python-pip git-core"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"On Fedora-based distributions (e.g., Fedora/RHEL/CentOS/Scientific Linux)::"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAEH%2F%2F8ew%3D","side":"PARENT","line":57,"updated":"2012-02-01 14:01:50.000000000","message":"remove swig here also?","commit_id":"79746bbe5281f950ffd46310867c90423ee286b3"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"1ad77be367471eb21f378dec75bb0a81f57be5b4","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"On Ubuntu::"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  sudo apt-get install python-dev swig libssl-dev python-pip git-core"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"On Fedora-based distributions (e.g., Fedora/RHEL/CentOS/Scientific Linux)::"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAEH%2F%2F8Tg%3D","side":"PARENT","line":57,"in_reply_to":"AAAAEH%2F%2F8ew%3D","updated":"2012-02-01 19:14:47.000000000","message":"Done","commit_id":"79746bbe5281f950ffd46310867c90423ee286b3"},{"author":{"_account_id":2245,"name":"Jacky Hu","email":"hudayou@hotmail.com","username":"hudayou"},"change_message_id":"00f07c6140833c1d8156c2d5fc8f195cde7668ea","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"On Fedora-based distributions (e.g., Fedora/RHEL/CentOS/Scientific Linux)::"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"  sudo yum install python-devel swig openssl-devel python-pip git"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Mac OS X Systems"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAEH%2F%2F8es%3D","side":"PARENT","line":61,"updated":"2012-02-01 14:01:50.000000000","message":"remove swig here also?","commit_id":"79746bbe5281f950ffd46310867c90423ee286b3"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"1ad77be367471eb21f378dec75bb0a81f57be5b4","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"On Fedora-based distributions (e.g., Fedora/RHEL/CentOS/Scientific Linux)::"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"  sudo yum install python-devel swig openssl-devel python-pip git"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Mac OS X Systems"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAEH%2F%2F8Tc%3D","side":"PARENT","line":61,"in_reply_to":"AAAAEH%2F%2F8es%3D","updated":"2012-02-01 19:14:47.000000000","message":"Done","commit_id":"79746bbe5281f950ffd46310867c90423ee286b3"}],"nova/exception.py":[{"author":{"_account_id":236,"name":"Monsyne Dragon","email":"mdragon@rackspace.com","username":"mdragon"},"change_message_id":"20aef45d2d19888219141894b582bd6eca7c341a","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"class InvalidBlob(Invalid):"},{"line_number":219,"context_line":"    message \u003d _(\"Ill-formed or incorrectly routed \u0027blob\u0027 data sent \""},{"line_number":220,"context_line":"                \"to instance create request.\")"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"class InvalidKeypair(Invalid):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAEX%2F%2F%2F9s%3D","line":220,"updated":"2012-02-02 00:35:40.000000000","message":"This class is added, but not used... Is it needed?","commit_id":"5f95fe9817be6fb7eaf8464ab2a8bf450bb5d351"}],"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"d964a53bb9da8448805462f5c3f32eefc9d1b358","unresolved":false,"context_lines":[{"line_number":1778,"context_line":"        self.generate_private()"},{"line_number":1779,"context_line":""},{"line_number":1780,"context_line":"    def generate_private(self):"},{"line_number":1781,"context_line":"        self._private \u003d random.randint(1, 1000)"},{"line_number":1782,"context_line":"        return self._private"},{"line_number":1783,"context_line":""},{"line_number":1784,"context_line":"    def get_public(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAEH%2F%2F8ds%3D","line":1781,"updated":"2012-02-01 15:29:58.000000000","message":"999 possibilities is not quite enough to use for a private key :P","commit_id":"298652d9da27cf09a757a6caf1a9ac51605a29f7"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"c0571e1cd685c258c67446d3e9b8c0b5410cb134","unresolved":false,"context_lines":[{"line_number":1778,"context_line":"        self.generate_private()"},{"line_number":1779,"context_line":""},{"line_number":1780,"context_line":"    def generate_private(self):"},{"line_number":1781,"context_line":"        self._private \u003d random.randint(1, 1000)"},{"line_number":1782,"context_line":"        return self._private"},{"line_number":1783,"context_line":""},{"line_number":1784,"context_line":"    def get_public(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAEH%2F%2F8PM%3D","line":1781,"in_reply_to":"AAAAEH%2F%2F8SM%3D","updated":"2012-02-01 20:10:55.000000000","message":"See my review comment, but Chris is right, a 10 bit key is woefully inadequate. It should be something like a 1024 bit key. Looking at the code in nova-agent right now, it appears we only use a 128 bit key however. That might need to change.","commit_id":"298652d9da27cf09a757a6caf1a9ac51605a29f7"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"365ff16d2e7df135e8a5f6f9cbc61f97510f858d","unresolved":false,"context_lines":[{"line_number":1778,"context_line":"        self.generate_private()"},{"line_number":1779,"context_line":""},{"line_number":1780,"context_line":"    def generate_private(self):"},{"line_number":1781,"context_line":"        self._private \u003d random.randint(1, 1000)"},{"line_number":1782,"context_line":"        return self._private"},{"line_number":1783,"context_line":""},{"line_number":1784,"context_line":"    def get_public(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAEH%2F%2F8Zw%3D","line":1781,"in_reply_to":"AAAAEH%2F%2F8ds%3D","updated":"2012-02-01 16:52:12.000000000","message":"And I would not advocate using the base random module to generate the random bits, either.  At the very least, you should use random.SystemRandom.","commit_id":"298652d9da27cf09a757a6caf1a9ac51605a29f7"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"1ad77be367471eb21f378dec75bb0a81f57be5b4","unresolved":false,"context_lines":[{"line_number":1778,"context_line":"        self.generate_private()"},{"line_number":1779,"context_line":""},{"line_number":1780,"context_line":"    def generate_private(self):"},{"line_number":1781,"context_line":"        self._private \u003d random.randint(1, 1000)"},{"line_number":1782,"context_line":"        return self._private"},{"line_number":1783,"context_line":""},{"line_number":1784,"context_line":"    def get_public(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAEH%2F%2F8SM%3D","line":1781,"in_reply_to":"AAAAEH%2F%2F8ds%3D","updated":"2012-02-01 19:14:47.000000000","message":"So here\u0027s the thing: the calculations hang on my machine if it gets much farther over 1000...\n\ntest_shared w/ 1000: 0.01 seconds\n\n\ntest_shared w/ 100000: 5 seconds\n\n\ntest_shared w/ 1000000: 200 seconds","commit_id":"298652d9da27cf09a757a6caf1a9ac51605a29f7"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"d964a53bb9da8448805462f5c3f32eefc9d1b358","unresolved":false,"context_lines":[{"line_number":1786,"context_line":"        return self._public"},{"line_number":1787,"context_line":""},{"line_number":1788,"context_line":"    def compute_shared(self, other):"},{"line_number":1789,"context_line":"        self._shared \u003d (other ** self._private) % self._prime"},{"line_number":1790,"context_line":"        return self._shared"},{"line_number":1791,"context_line":""},{"line_number":1792,"context_line":"    def _run_ssl(self, text, decrypt\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAEH%2F%2F8dc%3D","line":1789,"updated":"2012-02-01 15:29:58.000000000","message":"Are you positive these are correct?  I have a slightly different method that I use in a client for communicating with nova-agent.","commit_id":"298652d9da27cf09a757a6caf1a9ac51605a29f7"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"c0571e1cd685c258c67446d3e9b8c0b5410cb134","unresolved":false,"context_lines":[{"line_number":1786,"context_line":"        return self._public"},{"line_number":1787,"context_line":""},{"line_number":1788,"context_line":"    def compute_shared(self, other):"},{"line_number":1789,"context_line":"        self._shared \u003d (other ** self._private) % self._prime"},{"line_number":1790,"context_line":"        return self._shared"},{"line_number":1791,"context_line":""},{"line_number":1792,"context_line":"    def _run_ssl(self, text, decrypt\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAEH%2F%2F8Pc%3D","line":1789,"in_reply_to":"AAAAEH%2F%2F8dc%3D","updated":"2012-02-01 20:10:55.000000000","message":"That appears to be correct as an implementation, just not very efficient for key sizes that are required.","commit_id":"298652d9da27cf09a757a6caf1a9ac51605a29f7"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"1ad77be367471eb21f378dec75bb0a81f57be5b4","unresolved":false,"context_lines":[{"line_number":1786,"context_line":"        return self._public"},{"line_number":1787,"context_line":""},{"line_number":1788,"context_line":"    def compute_shared(self, other):"},{"line_number":1789,"context_line":"        self._shared \u003d (other ** self._private) % self._prime"},{"line_number":1790,"context_line":"        return self._shared"},{"line_number":1791,"context_line":""},{"line_number":1792,"context_line":"    def _run_ssl(self, text, decrypt\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAEH%2F%2F8SI%3D","line":1789,"in_reply_to":"AAAAEH%2F%2F8dc%3D","updated":"2012-02-01 19:14:47.000000000","message":"They work for set_admin_password (assuming SmokeStack is testing that). The calculation should be correct, what do you think it should be?","commit_id":"298652d9da27cf09a757a6caf1a9ac51605a29f7"}],"tools/install_venv.py":[{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"df40849884b3027df9ec1289fd5c4cbe6e302636","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        pass"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class UbuntuOneiric(Distro):"},{"line_number":103,"context_line":"    \"\"\"Oneiric specific installation steps\"\"\""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def install_m2crypto(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAEH%2F%2F8XM%3D","side":"PARENT","line":102,"updated":"2012-02-01 17:39:24.000000000","message":"You also want to remove the use of this removed class later in get_distro()","commit_id":"79746bbe5281f950ffd46310867c90423ee286b3"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"1ad77be367471eb21f378dec75bb0a81f57be5b4","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        pass"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class UbuntuOneiric(Distro):"},{"line_number":103,"context_line":"    \"\"\"Oneiric specific installation steps\"\"\""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def install_m2crypto(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAEH%2F%2F8TY%3D","side":"PARENT","line":102,"in_reply_to":"AAAAEH%2F%2F8XM%3D","updated":"2012-02-01 19:14:47.000000000","message":"Good catch! Done.","commit_id":"79746bbe5281f950ffd46310867c90423ee286b3"}]}
