)]}'
{"doc/source/development_saio.rst":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"7d4c39b8824fdb71a4b6eab3bfdee1b318b2e3db","unresolved":false,"context_lines":[{"line_number":17,"context_line":"available on the wiki at http://wiki.openstack.org/SAIOInstructions."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"----------------------------"},{"line_number":20,"context_line":"What\u0027s in a \u003cyour-user-name\u003e"},{"line_number":21,"context_line":"----------------------------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Much of the configuration described in this guide requires escalated root"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FpqM%3D","line":20,"updated":"2013-06-13 13:56:35.000000000","message":"I am not violently opposed to this paragraph, but is it really needed? What other basics of system administration we are going to explain?","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"884620c726c4213816b0ea5509ebb94f4ecd9722","unresolved":false,"context_lines":[{"line_number":17,"context_line":"available on the wiki at http://wiki.openstack.org/SAIOInstructions."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"----------------------------"},{"line_number":20,"context_line":"What\u0027s in a \u003cyour-user-name\u003e"},{"line_number":21,"context_line":"----------------------------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Much of the configuration described in this guide requires escalated root"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FoYU%3D","line":20,"in_reply_to":"AAAAPX%2F%2FpFo%3D","updated":"2013-06-13 22:22:25.000000000","message":"Very well, I buy that. But then, this phrase needs to go: \"however, many Swift developers prefer to work as an unprivileged user\".","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"cc68bc80eb9a9440bdbb96f794b64567c6635e54","unresolved":false,"context_lines":[{"line_number":17,"context_line":"available on the wiki at http://wiki.openstack.org/SAIOInstructions."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"----------------------------"},{"line_number":20,"context_line":"What\u0027s in a \u003cyour-user-name\u003e"},{"line_number":21,"context_line":"----------------------------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Much of the configuration described in this guide requires escalated root"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FpFo%3D","line":20,"in_reply_to":"AAAAPX%2F%2FpqM%3D","updated":"2013-06-13 17:07:05.000000000","message":"This paragraph was actually what spurred the change.\n\nCurrently there\u0027s a similar, but IMHO not as helpful paragraph at the bottom of \"Installing dependencies\"[1].  It\u0027s not an addition as much as a relocation and rewording.  \n\nRegardless I think it\u0027s relevant beyond \"basic system administration\" and more how swift configures it\u0027s privilege drop (the user setting in the DEFAULT section of all the configs).  Someone tried running their swift all in one as root and had a hard time at it because swift goes out of it\u0027s way to try and run as non-root.\n\n1. http://docs.openstack.org/developer/swift/development_saio.html#installing-dependencies-and-the-core-code","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"7d4c39b8824fdb71a4b6eab3bfdee1b318b2e3db","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* On yum based systems,"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"  #. `yum makecache`"},{"line_number":51,"context_line":"  #. `yum install curl gcc memcached rsync sqlite xfsprogs git-core xinetd python-setuptools`"},{"line_number":52,"context_line":"  #. `yum install python-coverage python-devel python-nose python-simplejson"},{"line_number":53,"context_line":"     python-xattr python-eventlet python-greenlet python-pastedeploy"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2Fprk%3D","line":50,"updated":"2013-06-13 13:56:35.000000000","message":"Surely \"makecache\" is not necessary?","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"cc68bc80eb9a9440bdbb96f794b64567c6635e54","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* On yum based systems,"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"  #. `yum makecache`"},{"line_number":51,"context_line":"  #. `yum install curl gcc memcached rsync sqlite xfsprogs git-core xinetd python-setuptools`"},{"line_number":52,"context_line":"  #. `yum install python-coverage python-devel python-nose python-simplejson"},{"line_number":53,"context_line":"     python-xattr python-eventlet python-greenlet python-pastedeploy"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FpGE%3D","line":50,"in_reply_to":"AAAAPX%2F%2Fprk%3D","updated":"2013-06-13 17:07:05.000000000","message":"I added it mostly for symmetry with apt-get update.  I don\u0027t know how you yum guys roll and I couldn\u0027t find the \"--do-not-be-a-crappy-slow-package-manager\" flag ;)\n\nj/k  #willfix","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"7d4c39b8824fdb71a4b6eab3bfdee1b318b2e3db","unresolved":false,"context_lines":[{"line_number":51,"context_line":"  #. `yum install curl gcc memcached rsync sqlite xfsprogs git-core xinetd python-setuptools`"},{"line_number":52,"context_line":"  #. `yum install python-coverage python-devel python-nose python-simplejson"},{"line_number":53,"context_line":"     python-xattr python-eventlet python-greenlet python-pastedeploy"},{"line_number":54,"context_line":"     python-netifaces python-pip python-dnspython python-mock`"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  This installs necessary system dependencies; and *most* of the python"},{"line_number":57,"context_line":"  dependencies.  Later in the process setuptools/distribute or pip will"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FprY%3D","line":54,"updated":"2013-06-13 13:56:35.000000000","message":"Excuse me, but how about NO WAY? I spent my life getting rid of python-pip here. You only add it here because you later add it in the client configuration section, which is unnecessary. Once you let pip in, nothing is certain anymore: you cannot tell what stuff the user was installing.","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"cc68bc80eb9a9440bdbb96f794b64567c6635e54","unresolved":false,"context_lines":[{"line_number":51,"context_line":"  #. `yum install curl gcc memcached rsync sqlite xfsprogs git-core xinetd python-setuptools`"},{"line_number":52,"context_line":"  #. `yum install python-coverage python-devel python-nose python-simplejson"},{"line_number":53,"context_line":"     python-xattr python-eventlet python-greenlet python-pastedeploy"},{"line_number":54,"context_line":"     python-netifaces python-pip python-dnspython python-mock`"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  This installs necessary system dependencies; and *most* of the python"},{"line_number":57,"context_line":"  dependencies.  Later in the process setuptools/distribute or pip will"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FpGc%3D","line":54,"in_reply_to":"AAAAPX%2F%2FprY%3D","updated":"2013-06-13 17:07:05.000000000","message":"Well... I mean swift requires python-swiftclient, and the client requires pbr and all that stuff now.\n\nYou don\u0027t need to install pip, if you\u0027re more keen on easy_install, but really it\u0027s setuptools/distribute that\u0027s going to pull stuff in when you run setup.py - not pip.\n\nI do sorta personally agree we\u0027re drinking the koolaid with the openstack dependency policies.  Not sure how to fix it; but I see no harm in documenting reality.","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"054f13953d4602ea53c6b18d7a49d559f726f8e2","unresolved":false,"context_lines":[{"line_number":57,"context_line":"  dependencies.  Later in the process setuptools/distribute or pip will"},{"line_number":58,"context_line":"  install and/or upgrade some other stuff - it\u0027s getting harder to avoid.  You"},{"line_number":59,"context_line":"  can also install anything else you want, like screen, ssh, vim, etc."},{"line_number":60,"context_line":"  "},{"line_number":61,"context_line":"Next, choose either :ref:`partition-section` or :ref:`loopback-section`."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":".. _partition-section:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FqU0%3D","line":60,"updated":"2013-06-13 09:07:52.000000000","message":"I found a \"red blank\" in the fist place of the line. Does your page look like that?","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f982578089cb4e4e3af55050e618657bda1ccdd8","unresolved":false,"context_lines":[{"line_number":57,"context_line":"  dependencies.  Later in the process setuptools/distribute or pip will"},{"line_number":58,"context_line":"  install and/or upgrade some other stuff - it\u0027s getting harder to avoid.  You"},{"line_number":59,"context_line":"  can also install anything else you want, like screen, ssh, vim, etc."},{"line_number":60,"context_line":"  "},{"line_number":61,"context_line":"Next, choose either :ref:`partition-section` or :ref:`loopback-section`."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":".. _partition-section:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FqPI%3D","line":60,"in_reply_to":"AAAAPX%2F%2FqU0%3D","updated":"2013-06-13 09:47:25.000000000","message":"yeah, it\u0027s just extra white space, I don\u0027t always notice it when I\u0027m doing docs, renders the same.  I\u0027ll try to clean it up if I end up doing another rev on this change.","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"7d4c39b8824fdb71a4b6eab3bfdee1b318b2e3db","unresolved":false,"context_lines":[{"line_number":231,"context_line":"  * `systemctl enable memcached.service`"},{"line_number":232,"context_line":"  * `systemctl start memcached.service`"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Most components of Swift treat memcached as an accelerator only, but it\u0027s"},{"line_number":235,"context_line":"required for tempauth.  If memcached is not running, tokens from tempauth"},{"line_number":236,"context_line":"can\u0027t be retrieved and validated and accessing Swift becomes impossible."},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2Fpqw%3D","line":234,"updated":"2013-06-13 13:56:35.000000000","message":"I think this explanatory sentence is wholly unnecessary, even more so than the paragraph about hackers preferring unprivileged user.","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"884620c726c4213816b0ea5509ebb94f4ecd9722","unresolved":false,"context_lines":[{"line_number":231,"context_line":"  * `systemctl enable memcached.service`"},{"line_number":232,"context_line":"  * `systemctl start memcached.service`"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Most components of Swift treat memcached as an accelerator only, but it\u0027s"},{"line_number":235,"context_line":"required for tempauth.  If memcached is not running, tokens from tempauth"},{"line_number":236,"context_line":"can\u0027t be retrieved and validated and accessing Swift becomes impossible."},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FoX0%3D","line":234,"in_reply_to":"AAAAPX%2F%2FpHE%3D","updated":"2013-06-13 22:22:25.000000000","message":"The most useful correction that you made is dropping curl. It was my mistake. In reality any clients fail. Adding the old \"service/chkconfig\" example is good as long as RHEL 6 is out in the field. I would just say \"Memcached is required for tempatuh because it stores tokens there, so authentication fails if memcached is not running\". The problem comes up regularly (sometimes in the guise of IP address of memcached being incorrect).","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"cc68bc80eb9a9440bdbb96f794b64567c6635e54","unresolved":false,"context_lines":[{"line_number":231,"context_line":"  * `systemctl enable memcached.service`"},{"line_number":232,"context_line":"  * `systemctl start memcached.service`"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Most components of Swift treat memcached as an accelerator only, but it\u0027s"},{"line_number":235,"context_line":"required for tempauth.  If memcached is not running, tokens from tempauth"},{"line_number":236,"context_line":"can\u0027t be retrieved and validated and accessing Swift becomes impossible."},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FpHE%3D","line":234,"in_reply_to":"AAAAPX%2F%2Fpqw%3D","updated":"2013-06-13 17:07:05.000000000","message":"Well I was going to drop it, but it felt disrespectful to whoever wrote the original sentence since they obviously had some trouble with memcache not running and swift not working.\n\nCould you suggest another way to say that would keep the original intent?","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"054f13953d4602ea53c6b18d7a49d559f726f8e2","unresolved":false,"context_lines":[{"line_number":278,"context_line":"  #. `service rsyslog restart`"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"-------------------------------------"},{"line_number":281,"context_line":"Do these commands as \u003cyour-user-name\u003e"},{"line_number":282,"context_line":"-------------------------------------"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FqVM%3D","line":281,"updated":"2013-06-13 09:07:52.000000000","message":"Is this necessary? we finally use root to deploy scripts, source, and pip packages","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"015488c94045356445c69816eb5c04004a433e99","unresolved":false,"context_lines":[{"line_number":278,"context_line":"  #. `service rsyslog restart`"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"-------------------------------------"},{"line_number":281,"context_line":"Do these commands as \u003cyour-user-name\u003e"},{"line_number":282,"context_line":"-------------------------------------"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FqLY%3D","line":281,"in_reply_to":"AAAAPX%2F%2FqP4%3D","updated":"2013-06-13 09:52:27.000000000","message":"agreed","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f982578089cb4e4e3af55050e618657bda1ccdd8","unresolved":false,"context_lines":[{"line_number":278,"context_line":"  #. `service rsyslog restart`"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"-------------------------------------"},{"line_number":281,"context_line":"Do these commands as \u003cyour-user-name\u003e"},{"line_number":282,"context_line":"-------------------------------------"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FqP4%3D","line":281,"in_reply_to":"AAAAPX%2F%2FqVM%3D","updated":"2013-06-13 09:47:25.000000000","message":"I tried to make it clear at the top that \u003cyour-user-name\u003e is just the user you\u0027re going to be using the system as.  If you always login and dev as root then \"Do these commands as \u003cyour-user-name\u003e\" would just mean \"Do these commands as root\".  And that *should* be fine; ~ would point to /root and ${USER} would be root and sudo should just noop.  But this whole guide is written with the more common case in mind; hence all the chown business above and sudo commands below.","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"7d4c39b8824fdb71a4b6eab3bfdee1b318b2e3db","unresolved":false,"context_lines":[{"line_number":296,"context_line":"  #. Build a development installation of swift"},{"line_number":297,"context_line":"       `cd ~/swift; sudo python setup.py develop; cd -`"},{"line_number":298,"context_line":"  #. Install swift\u0027s test dependencies"},{"line_number":299,"context_line":"       `sudo pip install -r swift/test-requirements.txt`"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"---------------------"},{"line_number":302,"context_line":"Configuring each node"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2Fppg%3D","line":299,"updated":"2013-06-13 13:56:35.000000000","message":"Umm, but wasn\u0027t avoiding this the whole point of dragging in all the testing requirements in lines 53 and 54? And you still left the \"python setup.py develop\" in, just to collect all the wrongs. I left it in because I didn\u0027t want to disturb the Ubuntu way of doing things too much, even if it presumed polluting /usr. But if we come to this, we need something like \"consider using packaged python-swiftclient, but if it\u0027s not available, then....\"","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"884620c726c4213816b0ea5509ebb94f4ecd9722","unresolved":false,"context_lines":[{"line_number":296,"context_line":"  #. Build a development installation of swift"},{"line_number":297,"context_line":"       `cd ~/swift; sudo python setup.py develop; cd -`"},{"line_number":298,"context_line":"  #. Install swift\u0027s test dependencies"},{"line_number":299,"context_line":"       `sudo pip install -r swift/test-requirements.txt`"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"---------------------"},{"line_number":302,"context_line":"Configuring each node"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FoXs%3D","line":299,"in_reply_to":"AAAAPX%2F%2FpHY%3D","updated":"2013-06-13 22:22:25.000000000","message":"python-mock-0.8.0-4.fc18.noarch seems to work, unit tests pass.","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"cc68bc80eb9a9440bdbb96f794b64567c6635e54","unresolved":false,"context_lines":[{"line_number":296,"context_line":"  #. Build a development installation of swift"},{"line_number":297,"context_line":"       `cd ~/swift; sudo python setup.py develop; cd -`"},{"line_number":298,"context_line":"  #. Install swift\u0027s test dependencies"},{"line_number":299,"context_line":"       `sudo pip install -r swift/test-requirements.txt`"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"---------------------"},{"line_number":302,"context_line":"Configuring each node"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAPX%2F%2FpHY%3D","line":299,"in_reply_to":"AAAAPX%2F%2Fppg%3D","updated":"2013-06-13 17:07:05.000000000","message":"On my Precise box the version of python-mock won\u0027t let unittests pass.  Installing a newer version for pypi was needed for a working development environment.  What version do you have?  From where did you install it?  Do unittests pass?","commit_id":"d5d403702b28822a3e1c6171a109b68fed0e06cd"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"af3fce4c183834f4506e333e32212e991288724b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"`swift` which may not exist on your system."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"--------------------------"},{"line_number":33,"context_line":"Do these commands as root."},{"line_number":34,"context_line":"--------------------------"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"-----------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAPX%2F%2FoXU%3D","line":33,"updated":"2013-06-13 22:30:13.000000000","message":"Was this supposed to be a heading or a paragraph, like \"do commands below as root\"? It\u0027s strange to see a heading without text, and with a dot.\n\nThere\u0027s a similar heading down below after the installation proper, which says \"do these commands as \u003cyour-user-name\u003e\". Also, there\u0027s a regular graf saying \"do these commands as you on guest\", which needs to be uniform with the new instructions, I imagine.","commit_id":"59a108da4e91ed00b6ddf5aec7b5b5c1f202e0bb"}]}
