)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"38e5b9c982e4f009d31b5b6a0cf90cef931b182e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yuriy Zveryanskyy \u003cyzveryanskyy@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-03-02 15:31:40 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Do not save auth token on TFTP serfer in PXE driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Reasons:"},{"line_number":10,"context_line":"1) Store admin auth token on the disk is big security lack."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba7be1f8_fe9c705f","line":7,"updated":"2015-03-02 17:55:21.000000000","message":"s/serfer/server/","commit_id":"3e0ccc74d07f041556041fb846e1cf14c0b15d59"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b07dab2cf18f844a0228f91ada8dde8e829a4073","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Do not save auth token on TFTP server in PXE driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Reasons:"},{"line_number":10,"context_line":"1) Store admin auth token on the disk is big security lack."},{"line_number":11,"context_line":"2) Mechanism is not generic, only PXE driver does this."},{"line_number":12,"context_line":"3) IPA uses vendor API via \u0027acl_public_routes\u0027."},{"line_number":13,"context_line":"4) Internal \u0027deploy_key\u0027 check used for iSCSI deploy."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7a016987_19ffa602","line":10,"updated":"2015-05-27 19:42:52.000000000","message":"nit: do you mean s/lack/risk/? Oh, or maybe s/lack/leak/?","commit_id":"0369326093690bd8e76b32183b8ebc6371df758d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"61a2ec4b59ae4adfa8015ea1bb6fb335f5653069","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This changes should not break PXE deploy because ramdisk"},{"line_number":21,"context_line":"script can work w/o token (if vendor API method is public)."},{"line_number":22,"context_line":"For future discussions: blueprint baremetal-node-secure-auth"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I12cfdc0a8a7740cadd768068b91c258e028ef385"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7a016987_1d3b279e","line":22,"updated":"2015-05-15 14:02:33.000000000","message":"As you mention a blueprint, do you want to turn it into a spec?","commit_id":"0369326093690bd8e76b32183b8ebc6371df758d"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"8723beb928bbded21dc87b2c29fc42e68938d10a","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This changes should not break PXE deploy because ramdisk"},{"line_number":21,"context_line":"script can work w/o token (if vendor API method is public)."},{"line_number":22,"context_line":"For future discussions: blueprint baremetal-node-secure-auth"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I12cfdc0a8a7740cadd768068b91c258e028ef385"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7a016987_9e2fe6f5","line":22,"in_reply_to":"7a016987_1d3b279e","updated":"2015-05-18 09:52:33.000000000","message":"Will do after the summit, I see related question in summit design ideas doc.","commit_id":"0369326093690bd8e76b32183b8ebc6371df758d"}],"ironic/api/config.py":[{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"84807bdb91505dd28f7e6c1e3ecbb1b3eef7d392","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \u0027/v1\u0027,"},{"line_number":33,"context_line":"        \u0027/v1/drivers/agent_[a-z]*/vendor_passthru/lookup\u0027,"},{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":36,"context_line":"    ],"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_199e1357","line":35,"updated":"2015-02-27 13:50:49.000000000","message":"This will be done for all the drivers including iscsi_ilo driver.  I am not sure if we want to do this for iscsi_ilo driver as it passes the token through virtual media securely to the bare metal node (probably a better way).\n\nHow about leaving this as a configurable option and let the operator decide whether unprotected end points vs auth token passing to bare metal nodes ? Not sure if it\u0027s possible.","commit_id":"ec978fb710a54d0553dd727398563c782055000c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e71ad28fb53fc4231e93c3617cec16ba2b88aa9e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \u0027/v1\u0027,"},{"line_number":33,"context_line":"        \u0027/v1/drivers/agent_[a-z]*/vendor_passthru/lookup\u0027,"},{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":36,"context_line":"    ],"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_7f8c4c80","line":35,"in_reply_to":"ba7be1f8_199e1357","updated":"2015-02-27 15:17:23.000000000","message":"Hi ramesh, it\u0027s a good point. To be honest I think passing the token to whatever other service apart from OS services is a bit dangerous, it\u0027s a admin token for all the services, it\u0027s a lot of power.\n\nI think I like this approach here best, leaving this endpoint public doesn\u0027t seem to be that bad, we do check deployment_key and the nodes state itself before doing anything. Also the endpoint doesn\u0027t do anything destructive on the conductor so :/\n\nBut that said, I still think that for all those endpoits, keystone v3 trusts may be the right way to go (making it pluggable). So you can give access to a trustee only for a subset of the api, which seems pretty much what we need here.","commit_id":"ec978fb710a54d0553dd727398563c782055000c"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"efd265fa48905a37d9d58a7c9e0efcb2498dc9b9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \u0027/v1\u0027,"},{"line_number":33,"context_line":"        \u0027/v1/drivers/agent_[a-z]*/vendor_passthru/lookup\u0027,"},{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":36,"context_line":"    ],"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_6cc47792","line":35,"in_reply_to":"ba7be1f8_7f8c4c80","updated":"2015-03-02 08:52:17.000000000","message":"Agree with Lucas. We can use Keystone Trusts https://wiki.openstack.org/wiki/Keystone/Trusts or OAuth http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3-os-oauth1-ext.html#create-request-token-post-os-oauth1request_token","commit_id":"ec978fb710a54d0553dd727398563c782055000c"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b07dab2cf18f844a0228f91ada8dde8e829a4073","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \u0027/v1\u0027,"},{"line_number":33,"context_line":"        \u0027/v1/drivers/[a-z_]*/vendor_passthru/lookup\u0027,"},{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        \u0027/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":36,"context_line":"    ],"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_b984120b","line":35,"updated":"2015-05-27 19:42:52.000000000","message":"I was wondering why it didn\u0027t have \u0027/v1/\u0027\n\nAt one of the summit sessions [1], there was talk about \u0027raising\u0027 (\u0027moving\u0027?) the vendor passthru\u0027s \u0027heartbeat\u0027 and \u0027pass_deploy_info\u0027 into a method (unknown name) of DeployInterface. Should we defer making the change here, until that other thing is done? (Well, maybe it doesn\u0027t matter.)\n\n[1] https://etherpad.openstack.org/p/liberty-ironic-driver-composition","commit_id":"0369326093690bd8e76b32183b8ebc6371df758d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4149b220c09aa942dc0ebf0c1e2cd76388fd7b3d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \u0027/v1\u0027,"},{"line_number":33,"context_line":"        \u0027/v1/drivers/[a-z_]*/vendor_passthru/lookup\u0027,"},{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        \u0027/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":36,"context_line":"    ],"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_bf316bef","line":35,"in_reply_to":"7a016987_1d38923c","updated":"2015-05-28 16:51:26.000000000","message":"Will try to touch base with you next week on this. I was under the impression that the main reason for adding a method to DeployInterface is so that it is a method that all DeployInterfaces need to deal with. And as such, the API to access that method should not have \u0027vendor_passthru\u0027 in its URL cuz it will have been promoted so that it isn\u0027t particular to only one (or a few) vendors but to all. (But I could be wrong.)","commit_id":"0369326093690bd8e76b32183b8ebc6371df758d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"075596a1b7ea474abdebd99a67131842dbe978f9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \u0027/v1\u0027,"},{"line_number":33,"context_line":"        \u0027/v1/drivers/[a-z_]*/vendor_passthru/lookup\u0027,"},{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        \u0027/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":36,"context_line":"    ],"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_1d38923c","line":35,"in_reply_to":"7a016987_2a5d4279","updated":"2015-05-28 14:05:42.000000000","message":"Not really,\n\nIf we move the methods to the deploy interface they will be decorated with @passthru and @driver_passthru decorators which will expose the methods in the {nodes, drivers}/\u003cid\u003e/vendor_passthru endpoints.\n\nThe benefit of moving it to the deploy interface (or other interfaces) is that we won\u0027t need to keep mixing vendor interfaces and picking specific methods[1] when adding a vendor interface to a driver\n\n[1] https://github.com/openstack/ironic/blob/master/ironic/drivers/pxe.py#L134-L137","commit_id":"0369326093690bd8e76b32183b8ebc6371df758d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"290af5ef276c6e84c7844efaf9462904568500a8","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \u0027/v1\u0027,"},{"line_number":33,"context_line":"        \u0027/v1/drivers/[a-z_]*/vendor_passthru/lookup\u0027,"},{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        \u0027/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":36,"context_line":"    ],"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_fa523834","line":35,"in_reply_to":"7a016987_b014f8e8","updated":"2015-05-29 09:05:54.000000000","message":":-( yeah gotcha... so we have to do without the v1 indeed. If we don\u0027t have this rule (without v1) the API won\u0027t even try to redirect to v1","commit_id":"0369326093690bd8e76b32183b8ebc6371df758d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0e67ac3c1ebee28d25f8a1486509d5b726f0700d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \u0027/v1\u0027,"},{"line_number":33,"context_line":"        \u0027/v1/drivers/[a-z_]*/vendor_passthru/lookup\u0027,"},{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        \u0027/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":36,"context_line":"    ],"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_fad81f81","line":35,"in_reply_to":"7a016987_b984120b","updated":"2015-05-28 12:33:48.000000000","message":"Our API currently redirect to v1 automatically, and will redirect to whatever is the default API, say v2 comes it will redirect to v2 so I think we should make v1 explicit there because this endpoint may not exist in future APIs.\n\nAbout moving it to DeployInterface it won\u0027t matter at this part because we need to preserve this API endpoint independently of which interface the vendor function lives.","commit_id":"0369326093690bd8e76b32183b8ebc6371df758d"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"fb6230d7986038cb63c3a73d6e0536c23057385e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \u0027/v1\u0027,"},{"line_number":33,"context_line":"        \u0027/v1/drivers/[a-z_]*/vendor_passthru/lookup\u0027,"},{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        \u0027/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":36,"context_line":"    ],"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_b014f8e8","line":35,"in_reply_to":"7a016987_fad81f81","updated":"2015-05-28 18:08:19.000000000","message":"Ruby, Lucas: it does not work now with /v1/ for DIB ramdisk. https://github.com/openstack/diskimage-builder/blob/master/elements/deploy-ironic/init.d/80-deploy-ironic#L93","commit_id":"0369326093690bd8e76b32183b8ebc6371df758d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"249f8bc1edb7a233ebdbe2f99a61e4346fa2964a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \u0027/v1\u0027,"},{"line_number":33,"context_line":"        \u0027/v1/drivers/[a-z_]*/vendor_passthru/lookup\u0027,"},{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        \u0027/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":36,"context_line":"    ],"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_2a5d4279","line":35,"in_reply_to":"7a016987_fad81f81","updated":"2015-05-28 13:46:52.000000000","message":"if we move it to DeployInterface, it seems like we might want to deprecate these two vendor_passthru end points and use a new one, v1/nodes/[a-z..]/\u003cNEW_THING\u003e? Although they are hardcoded in the deploy images so maybe the deprecation will take many years? Anyway, that\u0027s a separate discussion.\n\n+1 for adding /v1/ though.","commit_id":"0369326093690bd8e76b32183b8ebc6371df758d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"fea9438528e97fa36df085d6c5382700c0e45d8e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \u0027/v1\u0027,"},{"line_number":33,"context_line":"        \u0027/v1/drivers/[a-z_]*/vendor_passthru/lookup\u0027,"},{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":36,"context_line":"    ],"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_1a04f415","line":35,"updated":"2015-05-29 09:10:58.000000000","message":"Yuriy, after your comment I think it\u0027s better to keep it without \"v1/\" because of DIB. Even if we change to DIB to append \"v1/\" we still need to add a line without \"v1/\" here because some users will continue to use their old deploy ramdisks for a while and if they update Ironic with this change as-is we are going to break their deployments.\n\nSo we have to try to avoid breaking the users here:\n\n \u0027acl_public_routes\u0027: [\n     ...\n     \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027,\n     \u0027/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027\n ],","commit_id":"a2070d6048bdc3970ffbb1af0eee1214faf0c7f1"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1dc8519ba253bdf564b1cc3010b15ea18f738c48","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        # NOTE(yuriyz): support URL without \u0027v1\u0027 for backward compatibility"},{"line_number":36,"context_line":"        # with old DIB ramdisks."},{"line_number":37,"context_line":"        \u0027(?:/v1)?/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":38,"context_line":"    ],"},{"line_number":39,"context_line":"}"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7a016987_fd6f928f","line":37,"updated":"2015-06-01 14:31:41.000000000","message":"Are we planning on changing the DIB ramdisks so that they explicitly have v1/nodes/...?\n\nMy concern goes back to the future change to promote pass_deploy_info and heartbeat into a method in DeployInterface. When we do that, it still seems to me that we\u0027d create a new endpoint and deprecate these vendor_passthru endpoints (since they shouldn\u0027t be \u0027vendor_passthru\u0027s any more). And if we do that, it would seem like we\u0027d want to deprecate this endpoint. And if we deprecate, is it worth explicitly supporting v1/nodes./.../pass_deploy_info? Not that it really matters if you deprecate one or two, but why introduce one if we remove it in the Liberty cycle?","commit_id":"87debdc325abb751e515cb87f3ff92a5bf344c56"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"92781bdef33a5681a5ec00d685bc8381dff96455","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        # NOTE(yuriyz): support URL without \u0027v1\u0027 for backward compatibility"},{"line_number":36,"context_line":"        # with old DIB ramdisks."},{"line_number":37,"context_line":"        \u0027(?:/v1)?/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":38,"context_line":"    ],"},{"line_number":39,"context_line":"}"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7a016987_7b0735ca","line":37,"updated":"2015-06-01 10:13:53.000000000","message":"nit: please add trailing ,","commit_id":"87debdc325abb751e515cb87f3ff92a5bf344c56"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"57d6e581e506831e50adec54e2e0280afa44a80a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        # NOTE(yuriyz): support URL without \u0027v1\u0027 for backward compatibility"},{"line_number":36,"context_line":"        # with old DIB ramdisks."},{"line_number":37,"context_line":"        \u0027(?:/v1)?/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":38,"context_line":"    ],"},{"line_number":39,"context_line":"}"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5afe65bd_97414a0e","line":37,"in_reply_to":"5afe65bd_464a1585","updated":"2015-06-02 15:49:12.000000000","message":"Hmm. That is very odd. I seem to be the only one that thinks that when we promote these vendor passthru methods to DeployInterface, that we will have new endpoints. I must be missing something.","commit_id":"87debdc325abb751e515cb87f3ff92a5bf344c56"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"ec50551c12b0b61bfaeaee34a8a91cf0b430ca1f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027/v1/nodes/[a-z0-9\\-]+/vendor_passthru/heartbeat\u0027,"},{"line_number":35,"context_line":"        # NOTE(yuriyz): support URL without \u0027v1\u0027 for backward compatibility"},{"line_number":36,"context_line":"        # with old DIB ramdisks."},{"line_number":37,"context_line":"        \u0027(?:/v1)?/nodes/[a-z0-9\\-]+/vendor_passthru/pass_deploy_info\u0027"},{"line_number":38,"context_line":"    ],"},{"line_number":39,"context_line":"}"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5afe65bd_464a1585","line":37,"in_reply_to":"7a016987_fd6f928f","updated":"2015-06-02 09:14:12.000000000","message":"Ruby, there is DIB patch https://review.openstack.org/#/c/186655/ Not sure that new endpoint will be needed with DeployInterface.","commit_id":"87debdc325abb751e515cb87f3ff92a5bf344c56"}],"ironic/drivers/modules/pxe.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"61a2ec4b59ae4adfa8015ea1bb6fb335f5653069","unresolved":false,"context_lines":[{"line_number":408,"context_line":""},{"line_number":409,"context_line":"        # TODO(yuriyz): more secure way needed for pass auth token"},{"line_number":410,"context_line":"        #               to deploy ramdisk"},{"line_number":411,"context_line":"        _create_token_file(task)"},{"line_number":412,"context_line":"        dhcp_opts \u003d pxe_utils.dhcp_options_for_instance(task)"},{"line_number":413,"context_line":"        provider \u003d dhcp_factory.DHCPFactory()"},{"line_number":414,"context_line":"        provider.update_dhcp(task, dhcp_opts)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_5de3df33","side":"PARENT","line":411,"updated":"2015-05-15 14:02:33.000000000","message":"Won\u0027t old ramdisk try to fetch the token? maybe leave an empty file?","commit_id":"0d52d487c1d5608cee2f595baa7a7d458d35025d"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"8723beb928bbded21dc87b2c29fc42e68938d10a","unresolved":false,"context_lines":[{"line_number":408,"context_line":""},{"line_number":409,"context_line":"        # TODO(yuriyz): more secure way needed for pass auth token"},{"line_number":410,"context_line":"        #               to deploy ramdisk"},{"line_number":411,"context_line":"        _create_token_file(task)"},{"line_number":412,"context_line":"        dhcp_opts \u003d pxe_utils.dhcp_options_for_instance(task)"},{"line_number":413,"context_line":"        provider \u003d dhcp_factory.DHCPFactory()"},{"line_number":414,"context_line":"        provider.update_dhcp(task, dhcp_opts)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_3e56b25c","side":"PARENT","line":411,"in_reply_to":"7a016987_5de3df33","updated":"2015-05-18 09:52:33.000000000","message":"It works as is https://github.com/openstack/diskimage-builder/blob/master/elements/deploy-ironic/init.d/80-deploy-ironic#L146","commit_id":"0d52d487c1d5608cee2f595baa7a7d458d35025d"}]}
