)]}'
{"doc/source/dev/dev-quickstart.rst":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"41ef0dc46b2de63c77bfde1144ade0a0971e65b8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    git clone https://git.openstack.org/openstack/ironic"},{"line_number":29,"context_line":"    cd ironic"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Setting up a local environment for development can be done with tox::"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    # create virtualenv"},{"line_number":34,"context_line":"    tox -evenv -- echo \u0027done\u0027"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2Bjjg%3D","line":31,"updated":"2014-02-20 15:18:21.000000000","message":"I was wondering if people knew what tox was, or what this meant. Eg, you can write python code w/o tox. Maybe we could add  \u0027and testing\u0027 after \u0027for development\u0027.\n\n(Since you\u0027re updating this page anyway.)","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"ccc9b7e04003664318a9829aa99e0b877d88dad7","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    git clone https://git.openstack.org/openstack/ironic"},{"line_number":29,"context_line":"    cd ironic"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Setting up a local environment for development can be done with tox::"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    # create virtualenv"},{"line_number":34,"context_line":"    tox -evenv -- echo \u0027done\u0027"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2BiQk%3D","line":31,"in_reply_to":"AAAAUX%2F%2Bjjg%3D","updated":"2014-02-20 17:49:42.000000000","message":"Done","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"41ef0dc46b2de63c77bfde1144ade0a0971e65b8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    # initialize testr"},{"line_number":37,"context_line":"    testr init"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Activate the virtual env when ever you want to work in it."},{"line_number":40,"context_line":"All further commands in this section should be run with the venv active::"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    source .tox/venv/bin/activate"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2Bjl8%3D","line":39,"updated":"2014-02-20 15:18:21.000000000","message":"I might be wrong because the English language evolves, but isn\u0027t it \u0027whenever\u0027 rather than \u0027when ever\u0027?","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"ccc9b7e04003664318a9829aa99e0b877d88dad7","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    # initialize testr"},{"line_number":37,"context_line":"    testr init"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Activate the virtual env when ever you want to work in it."},{"line_number":40,"context_line":"All further commands in this section should be run with the venv active::"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    source .tox/venv/bin/activate"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2BiO0%3D","line":39,"in_reply_to":"AAAAUX%2F%2Bjl8%3D","updated":"2014-02-20 17:49:42.000000000","message":"Done","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"41ef0dc46b2de63c77bfde1144ade0a0971e65b8","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Next, clone the client and install it within a virtualenv as well::"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    git clone https://git.openstack.org/openstack/python-ironicclient"},{"line_number":83,"context_line":"    cd python-ironicclient"},{"line_number":84,"context_line":"    tox -evenv -- echo \u0027done\u0027"},{"line_number":85,"context_line":"    source .tox/venv/bin/activate"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2Bjg8%3D","line":82,"updated":"2014-02-20 15:18:21.000000000","message":"I always get the code from github.com. What\u0027s the diff between that and git.openstack.org?\n\nDo we need to tell them not to be in the \u0027ironic\u0027 directory when they do this git clone?","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"ccc9b7e04003664318a9829aa99e0b877d88dad7","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Next, clone the client and install it within a virtualenv as well::"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    git clone https://git.openstack.org/openstack/python-ironicclient"},{"line_number":83,"context_line":"    cd python-ironicclient"},{"line_number":84,"context_line":"    tox -evenv -- echo \u0027done\u0027"},{"line_number":85,"context_line":"    source .tox/venv/bin/activate"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2BiRA%3D","line":82,"in_reply_to":"AAAAUX%2F%2Bjg8%3D","updated":"2014-02-20 17:49:42.000000000","message":"github is what it is. sometimes it goes offline.\n\nopenstack-infra now manage our own git repo. it\u0027s nice to pull from there, but not essential.","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"41ef0dc46b2de63c77bfde1144ade0a0971e65b8","unresolved":false,"context_lines":[{"line_number":119,"context_line":"Start the API service in debug mode and watch its output::"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    # start the API service"},{"line_number":122,"context_line":"    source .tox/venv/bin/activate"},{"line_number":123,"context_line":"    ironic-api -v -d --config-file etc/ironic/ironic.conf.local"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Open one more window (or screen session), again activate the venv, and then"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2BjUg%3D","line":122,"updated":"2014-02-20 15:18:21.000000000","message":"If the user is following these instructions, they would have already activated the venv above (line 99). Although I guess it doesn\u0027t matter if they do it again.","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"ccc9b7e04003664318a9829aa99e0b877d88dad7","unresolved":false,"context_lines":[{"line_number":119,"context_line":"Start the API service in debug mode and watch its output::"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    # start the API service"},{"line_number":122,"context_line":"    source .tox/venv/bin/activate"},{"line_number":123,"context_line":"    ironic-api -v -d --config-file etc/ironic/ironic.conf.local"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Open one more window (or screen session), again activate the venv, and then"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2BiOA%3D","line":122,"in_reply_to":"AAAAUX%2F%2BjUg%3D","updated":"2014-02-20 17:49:42.000000000","message":"Done","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"dada174ee5f404d797c1ec53e83b969e403add08","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    source .tox/venv/bin/activate"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    # start the conductor service"},{"line_number":133,"context_line":"    source .tox/venv/bin/activate"},{"line_number":134,"context_line":"    ironic-conductor -v -d --config-file etc/ironic/ironic.conf.local"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"You should now be able to interact with Ironic via the python client (installed"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2Bn4A%3D","line":133,"updated":"2014-02-20 06:07:44.000000000","message":"There\u0027s a duplicate venv activation in this section - suggest removing one.","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"ccc9b7e04003664318a9829aa99e0b877d88dad7","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    source .tox/venv/bin/activate"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    # start the conductor service"},{"line_number":133,"context_line":"    source .tox/venv/bin/activate"},{"line_number":134,"context_line":"    ironic-conductor -v -d --config-file etc/ironic/ironic.conf.local"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"You should now be able to interact with Ironic via the python client (installed"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2BiNk%3D","line":133,"in_reply_to":"AAAAUX%2F%2Bn4A%3D","updated":"2014-02-20 17:49:42.000000000","message":"Done","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"41ef0dc46b2de63c77bfde1144ade0a0971e65b8","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"You should now be able to interact with Ironic via the python client (installed"},{"line_number":137,"context_line":"in the first window) and observe both services\u0027 debug outputs in the other two"},{"line_number":138,"context_line":"windows.  This is a good way to test new features or play with the"},{"line_number":139,"context_line":"functionality without necessarily starting devstack. Here are some examples::"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    # get a list of available commands"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2BjaY%3D","line":138,"updated":"2014-02-20 15:18:21.000000000","message":"Two white spaces before \u0027This\u0027?","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"dada174ee5f404d797c1ec53e83b969e403add08","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    ironic node-create -d fake"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    # add a port to your node"},{"line_number":151,"context_line":"    ironic port-create -a ${MAC_ADDRESS} -n ${NODE_UUID}"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    # enroll a node with the \"fake_ipmi\" driver (fake deploy interface, but real IPMI)"},{"line_number":154,"context_line":"    ironic node-create -d fake_ipmi -i ipmi_address\u003d${IP_ADDRESS} -i ipmi_username\u003d${USER} -i ipmi_pasword\u003d${PASS}"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2Bn2k%3D","line":151,"updated":"2014-02-20 06:07:44.000000000","message":"Suggestion for improvement: Perhaps this section should identify which ${MAC_ADDRESS} should be used.  i.e. a simple walk-through example of creating and using a node.","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"ccc9b7e04003664318a9829aa99e0b877d88dad7","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    ironic node-create -d fake"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    # add a port to your node"},{"line_number":151,"context_line":"    ironic port-create -a ${MAC_ADDRESS} -n ${NODE_UUID}"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    # enroll a node with the \"fake_ipmi\" driver (fake deploy interface, but real IPMI)"},{"line_number":154,"context_line":"    ironic node-create -d fake_ipmi -i ipmi_address\u003d${IP_ADDRESS} -i ipmi_username\u003d${USER} -i ipmi_pasword\u003d${PASS}"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2Bho0%3D","line":151,"in_reply_to":"AAAAUX%2F%2Bn2k%3D","updated":"2014-02-20 17:49:42.000000000","message":"Done","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"dada174ee5f404d797c1ec53e83b969e403add08","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    ironic port-create -a ${MAC_ADDRESS} -n ${NODE_UUID}"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    # enroll a node with the \"fake_ipmi\" driver (fake deploy interface, but real IPMI)"},{"line_number":154,"context_line":"    ironic node-create -d fake_ipmi -i ipmi_address\u003d${IP_ADDRESS} -i ipmi_username\u003d${USER} -i ipmi_pasword\u003d${PASS}"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    # list nodes"},{"line_number":157,"context_line":"    ironic node-list"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAUX%2F%2Bn2c%3D","line":154,"updated":"2014-02-20 06:07:44.000000000","message":"Suggestion for improvement: As above for ${IP_ADDRESS}, ${USER}, and ${PASS} values.","commit_id":"657ee823224bb3b1e7afb84608d730f4b2af0285"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"3af92c8474446099c73794dce4c699f0e487d1a4","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    sudo yum install python-devel openssl-devel python-pip mysql-devel libxml2-devel libxslt-devel postgresql-devel git git-review"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    sudo easy_install nose"},{"line_number":24,"context_line":"    sudo pip install virtualenv setuptools-git flake8 tox testrepository"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Ironic source code should be pulled directly from git::"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAUX%2F%2BfmU%3D","line":24,"updated":"2014-02-20 22:26:54.000000000","message":"Testing on my Ubuntu 12.04 system, virtualenv needed to be upgraded to virtualenv\u003e\u003d1.11.2 to make tox happy. Did this with:\n\nsudo pip install -U virtualenv\n\nMight be useful to add a note about that here.","commit_id":"e284db0d92994464d0c78f348ac284e6aa59ba52"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"3af92c8474446099c73794dce4c699f0e487d1a4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    git clone https://git.openstack.org/openstack/ironic"},{"line_number":31,"context_line":"    cd ironic"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Setting up a local environment for development and testing should be done with tox::"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # create virtualenv"},{"line_number":36,"context_line":"    tox -evenv -- echo \u0027done\u0027"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAUX%2F%2BfaI%3D","line":33,"updated":"2014-02-20 22:26:54.000000000","message":"This statement is contradictory to the examples following it. If testing should be done with tox (and you should since this is what Jenkins does), then you should show examples of using tox to invoke the test suite, rather than bypassing it and running testr directly. All you\u0027re using tox for below is to setup a development environment and then manually running tests within it (bypassing tox). A new developer unfamiliar with tox and testr will likely be confused.","commit_id":"e284db0d92994464d0c78f348ac284e6aa59ba52"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"3af92c8474446099c73794dce4c699f0e487d1a4","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    # initialize the ironic database"},{"line_number":126,"context_line":"    # this defaults to storing data in ./ironic/openstack/common/db/ironic.sqlite"},{"line_number":127,"context_line":"    # optionally, switch the DB connection from sqlite to something else, eg. mysql"},{"line_number":128,"context_line":"    # sed -i \"s/#connection\u003d.*/connection\u003dmysql://ironic@localhost/ironic\" etc/ironic/ironic.conf.local"},{"line_number":129,"context_line":"    ironic-dbsync --config-file etc/ironic/ironic.conf.local"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Start the API service in debug mode and watch its output::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAUX%2F%2BfNE%3D","line":128,"updated":"2014-02-20 22:26:54.000000000","message":"The /\u0027s need escaping:\n\n sed -i \"s/#connection\u003d.*/connection\u003dmysql:\\/\\/ironic@localhost\\/ironic/\" etc/ironic/ironic.conf.local","commit_id":"e284db0d92994464d0c78f348ac284e6aa59ba52"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"3af92c8474446099c73794dce4c699f0e487d1a4","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    # this defaults to storing data in ./ironic/openstack/common/db/ironic.sqlite"},{"line_number":127,"context_line":"    # optionally, switch the DB connection from sqlite to something else, eg. mysql"},{"line_number":128,"context_line":"    # sed -i \"s/#connection\u003d.*/connection\u003dmysql://ironic@localhost/ironic\" etc/ironic/ironic.conf.local"},{"line_number":129,"context_line":"    ironic-dbsync --config-file etc/ironic/ironic.conf.local"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Start the API service in debug mode and watch its output::"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAUX%2F%2BfMo%3D","line":129,"updated":"2014-02-20 22:26:54.000000000","message":"One needs to manually create the \u0027ironic\u0027 database first.","commit_id":"e284db0d92994464d0c78f348ac284e6aa59ba52"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"e37af38ad191730be326e72de46444e9bd96c38a","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    # enroll the node with the \"fake\" deploy driver and the \"ipmitool\" power driver"},{"line_number":170,"context_line":"    # Note that driver info may be added at node creation time with \"-i\""},{"line_number":171,"context_line":"    ironic node-create -d fake_ipmitool -i ipmi_address\u003d$IPMI_ADDR -i ipmi_user\u003d$IPMI_USER"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    # get the node UUID from \"node-list\""},{"line_number":174,"context_line":"    NODE\u003d$(ironic node-list | grep -P \u0027(\\w+-\\w+-\\w+-\\w+-\\w+)\u0027 | cut -d \u0027|\u0027 -f 2)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAUX%2F%2Bfuc%3D","line":171,"updated":"2014-02-20 21:43:03.000000000","message":"\u0027ipmi_user\u0027 -\u003e \u0027ipmi_username\u0027.","commit_id":"e284db0d92994464d0c78f348ac284e6aa59ba52"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"e37af38ad191730be326e72de46444e9bd96c38a","unresolved":false,"context_lines":[{"line_number":180,"context_line":"    ironic port-create -n $NODE -a $MAC"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    # view the information for the node"},{"line_number":183,"context_line":"    ironic node-show $NODE"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    # request that the node\u0027s driver validate the supplied information"},{"line_number":186,"context_line":"    ironic node-validate $NODE"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAUX%2F%2BfjM%3D","line":183,"updated":"2014-02-20 21:43:03.000000000","message":"Is this supposed to show the ports too? If not, then maybe we should also mention \u0027ironic node-port-list $NODE\u0027 too.","commit_id":"e284db0d92994464d0c78f348ac284e6aa59ba52"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"20bb9ef7542cb5bf0337ecf5933181996f3ffc0d","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    # Fedora/RHEL:"},{"line_number":96,"context_line":"    sudo yum install mysql-server"},{"line_number":97,"context_line":"    sudo service mysql-server start"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Next, clone the client and install it within a virtualenv as well::"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"AAAAU3%2F%2Fzy4%3D","line":97,"updated":"2014-02-24 17:43:39.000000000","message":"nit: sudo service mysqld start","commit_id":"c36106e5d33f15d6086daadc22d993c47d2d33d8"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"44cdb7e005a00d178aab26661966f964aea5cded","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    # Fedora/RHEL:"},{"line_number":96,"context_line":"    sudo yum install mysql-server"},{"line_number":97,"context_line":"    sudo service mysql-server start"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Next, clone the client and install it within a virtualenv as well::"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"AAAAU3%2F%2Fzjc%3D","line":97,"in_reply_to":"AAAAU3%2F%2Fzy4%3D","updated":"2014-02-24 17:54:05.000000000","message":"Done","commit_id":"c36106e5d33f15d6086daadc22d993c47d2d33d8"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"20bb9ef7542cb5bf0337ecf5933181996f3ffc0d","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    # enroll the node with the \"fake\" deploy driver and the \"ipmitool\" power driver"},{"line_number":183,"context_line":"    # Note that driver info may be added at node creation time with \"-i\""},{"line_number":184,"context_line":"    ironic node-create -d fake_ipmitool -i ipmi_address\u003d$IPMI_ADDR -i ipmi_username\u003d$IPMI_USER"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    # get the node UUID from \"node-list\""},{"line_number":187,"context_line":"    NODE\u003d$(ironic node-list | grep -P \u0027(\\w+-\\w+-\\w+-\\w+-\\w+)\u0027 | cut -d \u0027|\u0027 -f 2)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"AAAAU3%2F%2FzrY%3D","line":184,"updated":"2014-02-24 17:43:39.000000000","message":"(Follow up from the comment at L187)\n\nTo get the uuid from the node-create command:\n\nNODE\u003d$(ironic node-create -d fake_ipmitool -i ipmi_address\u003d$IPMI_ADDR -i ipmi_username\u003d$IPMI_USER | grep \u0027 uuid \u0027 | awk \u0027{print $4}\u0027)","commit_id":"c36106e5d33f15d6086daadc22d993c47d2d33d8"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"44cdb7e005a00d178aab26661966f964aea5cded","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    # enroll the node with the \"fake\" deploy driver and the \"ipmitool\" power driver"},{"line_number":183,"context_line":"    # Note that driver info may be added at node creation time with \"-i\""},{"line_number":184,"context_line":"    ironic node-create -d fake_ipmitool -i ipmi_address\u003d$IPMI_ADDR -i ipmi_username\u003d$IPMI_USER"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    # get the node UUID from \"node-list\""},{"line_number":187,"context_line":"    NODE\u003d$(ironic node-list | grep -P \u0027(\\w+-\\w+-\\w+-\\w+-\\w+)\u0027 | cut -d \u0027|\u0027 -f 2)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"AAAAU3%2F%2Fzl4%3D","line":184,"in_reply_to":"AAAAU3%2F%2FzrY%3D","updated":"2014-02-24 17:54:05.000000000","message":"Done","commit_id":"c36106e5d33f15d6086daadc22d993c47d2d33d8"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"20bb9ef7542cb5bf0337ecf5933181996f3ffc0d","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    ironic node-create -d fake_ipmitool -i ipmi_address\u003d$IPMI_ADDR -i ipmi_username\u003d$IPMI_USER"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    # get the node UUID from \"node-list\""},{"line_number":187,"context_line":"    NODE\u003d$(ironic node-list | grep -P \u0027(\\w+-\\w+-\\w+-\\w+-\\w+)\u0027 | cut -d \u0027|\u0027 -f 2)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    # driver info may also be added or updated later on"},{"line_number":190,"context_line":"    ironic node-update $NODE add driver_info/ipmi_password\u003d$IPMI_PASS"}],"source_content_type":"text/x-rst","patch_set":4,"id":"AAAAU3%2F%2FztA%3D","line":187,"updated":"2014-02-24 17:43:39.000000000","message":"Instead of getting the uuid from the node-list it would be better to get it from the node-create command. If there\u0027s more than one node registered this command will return all the UUIDs from the node-list command, e.g:\n\n$ NODE\u003d$(ironic node-list | grep -P \u0027(\\w+-\\w+-\\w+-\\w+-\\w+)\u0027 | cut -d \u0027|\u0027 -f 2)\n\n$ echo $NODE\n\n08e8f15a-e3a4-464a-a3f3-634046fbbc2c 7f337e4d-6b26-4b89-8d84-65e08f4ab7f2\n\nAnd that will cause the next commands to fail:\n\n$ ironic node-update $NODE add driver_info/ipmi_password\u003d$IPMI_PASS\n\nusage: ironic node-update \u003cnode id\u003e \u003cop\u003e \u003cpath\u003dvalue\u003e [\u003cpath\u003dvalue\u003e ...]\nironic node-update: error: argument \u003cop\u003e: invalid choice: \u00277f337e4d-6b26-4b89-8d84-65e08f4ab7f2\u0027 (choose from \u0027add\u0027, \u0027replace\u0027, \u0027remove\u0027)","commit_id":"c36106e5d33f15d6086daadc22d993c47d2d33d8"}]}
