)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"d947da1f53a1cae9cd4cb014cf79428847ba7d86","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Idae463b0cec40bea2edfde5723f7de5077600040"},{"line_number":13,"context_line":"Implements: blueprint multi-site-vim"},{"line_number":14,"context_line":"Depends-On: I7dd19a0c1ce948474bb3069073b3608ce265beb4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1af94dfe_a3c2e382","line":14,"updated":"2016-03-18 21:05:44.000000000","message":"This Depends-On needs to go to the server patchset [1] and you should remove it from here to avoid cyclic dependency.\n\n[1] https://review.openstack.org/285096","commit_id":"7ac1df605e7396adeb97282d5fde2fbd81356408"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"1a579d7d5eb70d80f64415698fe5c32acac52220","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Idae463b0cec40bea2edfde5723f7de5077600040"},{"line_number":13,"context_line":"Implements: blueprint multi-site-vim"},{"line_number":14,"context_line":"Depends-On: I7dd19a0c1ce948474bb3069073b3608ce265beb4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1af94dfe_f63ca294","line":14,"in_reply_to":"1af94dfe_a3c2e382","updated":"2016-03-19 01:51:07.000000000","message":"Done","commit_id":"7ac1df605e7396adeb97282d5fde2fbd81356408"}],"tackerclient/tacker/v1_0/nfvo/vim.py":[{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"6468e00c00b7a841c79091eb5c2243c8db3e1830","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    resource \u003d _VIM"},{"line_number":29,"context_line":"    list_columns \u003d [\u0027id\u0027, \u0027name\u0027, \u0027type\u0027, \u0027description\u0027, \u0027auth_url\u0027,"},{"line_number":30,"context_line":"                    \u0027placement_attr\u0027, \u0027auth_attr\u0027]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class ShowVIM(tackerV10.ShowCommand):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_847f3f65","line":30,"range":{"start_line":30,"start_character":21,"end_line":30,"end_character":35},"updated":"2016-03-03 02:07:46.000000000","message":"placement_attr is a long dict probably.  Best not to show it in the default list command.","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"5effbe71c26c6182f402e2eb2d92e46b18ca6b2c","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    resource \u003d _VIM"},{"line_number":29,"context_line":"    list_columns \u003d [\u0027id\u0027, \u0027name\u0027, \u0027type\u0027, \u0027description\u0027, \u0027auth_url\u0027,"},{"line_number":30,"context_line":"                    \u0027placement_attr\u0027, \u0027auth_attr\u0027]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class ShowVIM(tackerV10.ShowCommand):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_1538dad2","line":30,"range":{"start_line":30,"start_character":21,"end_line":30,"end_character":35},"in_reply_to":"7af24918_847f3f65","updated":"2016-03-07 22:56:14.000000000","message":"right now placement_attr is populated with regions and is not a long list. it is important to display the placement attributes to the operator so that the user knows to specify these parameters during vnf-create along with vim-id","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"967368832c0f913fd0ca7d6def7400c737b8207f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    resource \u003d _VIM"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class CreateVIM(tackerV10.CreateCommand):"},{"line_number":40,"context_line":"    \"\"\"Create a VIM.\"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    resource \u003d _VIM"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_6084e3d3","line":39,"range":{"start_line":39,"start_character":16,"end_line":39,"end_character":25},"updated":"2016-03-02 09:11:11.000000000","message":"https://github.com/openstack/tacker-specs/blob/master/specs/mitaka/multi-site-feature.rst\n\nplacement attr,  etc are lacking","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"2c356d1b6e801e51b64e44a47ea66a9682f5fd45","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    resource \u003d _VIM"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class CreateVIM(tackerV10.CreateCommand):"},{"line_number":40,"context_line":"    \"\"\"Create a VIM.\"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    resource \u003d _VIM"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_637f9066","line":39,"range":{"start_line":39,"start_character":16,"end_line":39,"end_character":25},"in_reply_to":"7af24918_6084e3d3","updated":"2016-03-02 23:49:29.000000000","message":"placement_attr is a read only attribute discovered and returned to the user wih placement information once the VIM is registered. the auth_attr and auth_url will be provided in the config file as already discussed in [1]. the \u0027type\u0027 attribute even though is configurable will not be exposed to the user in the current implementation of openstack VIM context.\n\n[1] https://github.com/openstack/tacker-specs/blob/master/specs/mitaka/multi-site-feature.rst","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"6468e00c00b7a841c79091eb5c2243c8db3e1830","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    resource \u003d _VIM"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class CreateVIM(tackerV10.CreateCommand):"},{"line_number":40,"context_line":"    \"\"\"Create a VIM.\"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    resource \u003d _VIM"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_a41ebb5c","line":39,"range":{"start_line":39,"start_character":16,"end_line":39,"end_character":25},"in_reply_to":"7af24918_637f9066","updated":"2016-03-03 02:07:46.000000000","message":"1. placement_attr is a readonly value, so it will keep all the regions and AZs in the region, right? but these values are easily changed on VIM itself side. .I.E, I added one more region in my OPS env, what should user do on tacker side? register the VIM? what if I add one more AZ in OPS env?","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"5effbe71c26c6182f402e2eb2d92e46b18ca6b2c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    resource \u003d _VIM"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class CreateVIM(tackerV10.CreateCommand):"},{"line_number":40,"context_line":"    \"\"\"Create a VIM.\"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    resource \u003d _VIM"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_325fec42","line":39,"range":{"start_line":39,"start_character":16,"end_line":39,"end_character":25},"in_reply_to":"7af24918_a41ebb5c","updated":"2016-03-07 22:56:14.000000000","message":"yes, the user can run the vim update command which would query the specified vim and update the attributes automatically","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"6468e00c00b7a841c79091eb5c2243c8db3e1830","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def args2body(self, parsed_args):"},{"line_number":58,"context_line":"        body \u003d {self.resource: {}}"},{"line_number":59,"context_line":"        if parsed_args.config_file:"},{"line_number":60,"context_line":"            with open(parsed_args.config_file) as f:"},{"line_number":61,"context_line":"                auth \u003d f.read()"},{"line_number":62,"context_line":"                body[self.resource][\u0027auth_attr\u0027] \u003d yaml.load(auth)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_643953a4","line":59,"range":{"start_line":59,"start_character":34,"end_line":59,"end_character":35},"updated":"2016-03-03 02:07:46.000000000","message":"where is the auth_url?","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"5effbe71c26c6182f402e2eb2d92e46b18ca6b2c","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def args2body(self, parsed_args):"},{"line_number":58,"context_line":"        body \u003d {self.resource: {}}"},{"line_number":59,"context_line":"        if parsed_args.config_file:"},{"line_number":60,"context_line":"            with open(parsed_args.config_file) as f:"},{"line_number":61,"context_line":"                auth \u003d f.read()"},{"line_number":62,"context_line":"                body[self.resource][\u0027auth_attr\u0027] \u003d yaml.load(auth)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_f212a461","line":59,"range":{"start_line":59,"start_character":34,"end_line":59,"end_character":35},"in_reply_to":"7af24918_643953a4","updated":"2016-03-07 22:56:14.000000000","message":"auht_url is specified within the config file. Refer [1]\n\n[1] https://github.com/openstack/tacker-specs/blob/master/specs/mitaka/multi-site-feature.rst","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"6468e00c00b7a841c79091eb5c2243c8db3e1830","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                body[self.resource][\u0027auth_attr\u0027] \u003d yaml.load(auth)"},{"line_number":63,"context_line":"        if parsed_args.config:"},{"line_number":64,"context_line":"                body[self.resource][\u0027auth_attr\u0027] \u003d yaml.load("},{"line_number":65,"context_line":"                    parsed_args.auth)"},{"line_number":66,"context_line":"        tackerV10.update_dict(parsed_args, body[self.resource],"},{"line_number":67,"context_line":"                              [\u0027tenant_id\u0027, \u0027name\u0027])"},{"line_number":68,"context_line":"        return body"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_644f936b","line":65,"range":{"start_line":65,"start_character":32,"end_line":65,"end_character":36},"updated":"2016-03-03 02:07:46.000000000","message":"where is the auth argument?","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"5effbe71c26c6182f402e2eb2d92e46b18ca6b2c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                body[self.resource][\u0027auth_attr\u0027] \u003d yaml.load(auth)"},{"line_number":63,"context_line":"        if parsed_args.config:"},{"line_number":64,"context_line":"                body[self.resource][\u0027auth_attr\u0027] \u003d yaml.load("},{"line_number":65,"context_line":"                    parsed_args.auth)"},{"line_number":66,"context_line":"        tackerV10.update_dict(parsed_args, body[self.resource],"},{"line_number":67,"context_line":"                              [\u0027tenant_id\u0027, \u0027name\u0027])"},{"line_number":68,"context_line":"        return body"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_d2404859","line":65,"range":{"start_line":65,"start_character":32,"end_line":65,"end_character":36},"in_reply_to":"7af24918_644f936b","updated":"2016-03-07 22:56:14.000000000","message":"this should be config. corrected it.","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"967368832c0f913fd0ca7d6def7400c737b8207f","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class UpdateVIM(tackerV10.UpdateCommand):"},{"line_number":72,"context_line":"    \"\"\"Update a given VNF.\"\"\""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    resource \u003d _VIM"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_ab47f149","line":72,"range":{"start_line":72,"start_character":22,"end_line":72,"end_character":25},"updated":"2016-03-02 09:11:11.000000000","message":"vim","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"2c356d1b6e801e51b64e44a47ea66a9682f5fd45","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class UpdateVIM(tackerV10.UpdateCommand):"},{"line_number":72,"context_line":"    \"\"\"Update a given VNF.\"\"\""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    resource \u003d _VIM"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_a3951888","line":72,"range":{"start_line":72,"start_character":22,"end_line":72,"end_character":25},"in_reply_to":"7af24918_ab47f149","updated":"2016-03-02 23:49:29.000000000","message":"Done","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"967368832c0f913fd0ca7d6def7400c737b8207f","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    resource \u003d _VIM"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":77,"context_line":"        parser.add_argument("},{"line_number":78,"context_line":"            \u0027--config-file\u0027,"},{"line_number":79,"context_line":"            help\u003d\u0027specify VIM specific config parameters in a file\u0027)"},{"line_number":80,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_6b9209a1","line":77,"range":{"start_line":77,"start_character":27,"end_line":77,"end_character":28},"updated":"2016-03-02 09:11:11.000000000","message":"I think we should do it exclusive, just like the creation command.","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"2c356d1b6e801e51b64e44a47ea66a9682f5fd45","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    resource \u003d _VIM"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":77,"context_line":"        parser.add_argument("},{"line_number":78,"context_line":"            \u0027--config-file\u0027,"},{"line_number":79,"context_line":"            help\u003d\u0027specify VIM specific config parameters in a file\u0027)"},{"line_number":80,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_e38ba066","line":77,"range":{"start_line":77,"start_character":27,"end_line":77,"end_character":28},"in_reply_to":"7af24918_6b9209a1","updated":"2016-03-02 23:49:29.000000000","message":"Done","commit_id":"7fcd63113ca87760bb27dcdde0bf9f81b64f3552"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"7645c9fc24ef8c246bec224729b2a91cb3276279","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015-2016 Brocade Communications Systems Inc"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_35b07443","line":1,"updated":"2016-03-12 18:36:15.000000000","message":"nit: this is a brand new file, so you can just state 2016","commit_id":"056987d9b16f3fc07e9c24921b4a4a295fe08a01"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"be47b0517255190f07587c7be9a91e78e959506a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015-2016 Brocade Communications Systems Inc"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_bbb1ca91","line":1,"in_reply_to":"3afc51ec_35b07443","updated":"2016-03-15 03:47:08.000000000","message":"Done","commit_id":"056987d9b16f3fc07e9c24921b4a4a295fe08a01"}],"tackerclient/tacker/v1_0/nfvo/vim_utils.py":[{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"d947da1f53a1cae9cd4cb014cf79428847ba7d86","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                                                       \u0027must be specified\u0027,"},{"line_number":32,"context_line":"                                               status_code\u003d404)"},{"line_number":33,"context_line":"    vim[\u0027type\u0027] \u003d config_param.pop(\u0027type\u0027, \u0027openstack\u0027)"},{"line_number":34,"context_line":"    vim[\u0027auth_cred\u0027] \u003d config_param"}],"source_content_type":"text/x-python","patch_set":4,"id":"1af94dfe_a3f6638c","line":34,"range":{"start_line":34,"start_character":23,"end_line":34,"end_character":35},"updated":"2016-03-18 21:05:44.000000000","message":"Looks you are assuming there is nothing else in the vim_config.yaml. That is the recipe for classic buffer overrun attacks. To be safe please make this explicit ... \n\n{ \u0027username\u0027: config_param.pop(\u0027username\u0027, \u0027\u0027),\n  \u0027password\u0027: config_param.pop(\u0027password\u0027, \u0027\u0027) }","commit_id":"7ac1df605e7396adeb97282d5fde2fbd81356408"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"1a579d7d5eb70d80f64415698fe5c32acac52220","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                                                       \u0027must be specified\u0027,"},{"line_number":32,"context_line":"                                               status_code\u003d404)"},{"line_number":33,"context_line":"    vim[\u0027type\u0027] \u003d config_param.pop(\u0027type\u0027, \u0027openstack\u0027)"},{"line_number":34,"context_line":"    vim[\u0027auth_cred\u0027] \u003d config_param"}],"source_content_type":"text/x-python","patch_set":4,"id":"1af94dfe_76709272","line":34,"range":{"start_line":34,"start_character":23,"end_line":34,"end_character":35},"in_reply_to":"1af94dfe_a3f6638c","updated":"2016-03-19 01:51:07.000000000","message":"Good catch. The assumption was user can provide username or user_id along with rest of params such as project_domain_id and user_domain_id which will be dumped to auth_cred. But I will fix this.","commit_id":"7ac1df605e7396adeb97282d5fde2fbd81356408"}],"tackerclient/tacker/v1_0/vm/vnf.py":[{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"7645c9fc24ef8c246bec224729b2a91cb3276279","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            \u0027--vnfd-id\u0027,"},{"line_number":53,"context_line":"            help\u003d\u0027VNFD ID to use as template to create VNF\u0027)"},{"line_number":54,"context_line":"        parser.add_argument("},{"line_number":55,"context_line":"            \u0027--vim-id\u0027,"},{"line_number":56,"context_line":"            help\u003d\u0027VIM ID to use to create VNF on the specified VIM\u0027)"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027--region-name\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_d5cf90ae","line":55,"updated":"2016-03-12 18:36:15.000000000","message":"can this be vim \u0027name\u0027 as well ? Would it make sense to add a mutually exclusive \u0027--vim-name\u0027 as well ?","commit_id":"056987d9b16f3fc07e9c24921b4a4a295fe08a01"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"83bd5b33718c3acc67541b5684b5b08e45897805","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            \u0027--vnfd-id\u0027,"},{"line_number":53,"context_line":"            help\u003d\u0027VNFD ID to use as template to create VNF\u0027)"},{"line_number":54,"context_line":"        parser.add_argument("},{"line_number":55,"context_line":"            \u0027--vim-id\u0027,"},{"line_number":56,"context_line":"            help\u003d\u0027VIM ID to use to create VNF on the specified VIM\u0027)"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027--region-name\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_6ca94b90","line":55,"in_reply_to":"3afc51ec_3b4bfa88","updated":"2016-03-15 04:46:28.000000000","message":"The problem is it is inconsistent with rest of the flags like the ones for vnfd in L61, L52. Either we need to keep it generic like,\n\n--vim { id | name }\n--vnfd { id | name }\n\nor introduce granular flags.","commit_id":"056987d9b16f3fc07e9c24921b4a4a295fe08a01"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"6325196ebf59dab4785893597ba4f23c1f2e778b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            \u0027--vnfd-id\u0027,"},{"line_number":53,"context_line":"            help\u003d\u0027VNFD ID to use as template to create VNF\u0027)"},{"line_number":54,"context_line":"        parser.add_argument("},{"line_number":55,"context_line":"            \u0027--vim-id\u0027,"},{"line_number":56,"context_line":"            help\u003d\u0027VIM ID to use to create VNF on the specified VIM\u0027)"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027--region-name\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_affa2573","line":55,"in_reply_to":"3afc51ec_6ca94b90","updated":"2016-03-15 05:47:37.000000000","message":"we can keep it as granular --vim-id/--vim-name as mutually exclusive args consistent with --vnfd-id/--vnfd-name","commit_id":"056987d9b16f3fc07e9c24921b4a4a295fe08a01"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"58ba99a41b6da1c1888e9d5a35a3eb9a32b45eab","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            \u0027--vnfd-id\u0027,"},{"line_number":53,"context_line":"            help\u003d\u0027VNFD ID to use as template to create VNF\u0027)"},{"line_number":54,"context_line":"        parser.add_argument("},{"line_number":55,"context_line":"            \u0027--vim-id\u0027,"},{"line_number":56,"context_line":"            help\u003d\u0027VIM ID to use to create VNF on the specified VIM\u0027)"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027--region-name\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1af94dfe_a5e8e67d","line":55,"in_reply_to":"3afc51ec_affa2573","updated":"2016-03-15 20:26:04.000000000","message":"sounds good to me!","commit_id":"056987d9b16f3fc07e9c24921b4a4a295fe08a01"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"be47b0517255190f07587c7be9a91e78e959506a","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            \u0027--vnfd-id\u0027,"},{"line_number":53,"context_line":"            help\u003d\u0027VNFD ID to use as template to create VNF\u0027)"},{"line_number":54,"context_line":"        parser.add_argument("},{"line_number":55,"context_line":"            \u0027--vim-id\u0027,"},{"line_number":56,"context_line":"            help\u003d\u0027VIM ID to use to create VNF on the specified VIM\u0027)"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027--region-name\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_3b4bfa88","line":55,"in_reply_to":"3afc51ec_d5cf90ae","updated":"2016-03-15 03:47:08.000000000","message":"right now the --vim-id argument can take id as well as name. kept it consistent with the etsi nfv doc.","commit_id":"056987d9b16f3fc07e9c24921b4a4a295fe08a01"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"7645c9fc24ef8c246bec224729b2a91cb3276279","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        tacker_client \u003d self.get_client()"},{"line_number":90,"context_line":"        tacker_client.format \u003d parsed_args.request_format"},{"line_number":91,"context_line":"        if parsed_args.vim_id:"},{"line_number":92,"context_line":"                _id \u003d tackerV10.find_resourceid_by_name_or_id(tacker_client,"},{"line_number":93,"context_line":"                                                              \u0027vim\u0027,"},{"line_number":94,"context_line":"                                                              parsed_args."}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_55bc2005","line":91,"updated":"2016-03-12 18:36:15.000000000","message":"I understand what you are doing but it looks odd to convert an \"vim_id\" and do a lookup again to get .. vim id :)","commit_id":"056987d9b16f3fc07e9c24921b4a4a295fe08a01"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"be47b0517255190f07587c7be9a91e78e959506a","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        tacker_client \u003d self.get_client()"},{"line_number":90,"context_line":"        tacker_client.format \u003d parsed_args.request_format"},{"line_number":91,"context_line":"        if parsed_args.vim_id:"},{"line_number":92,"context_line":"                _id \u003d tackerV10.find_resourceid_by_name_or_id(tacker_client,"},{"line_number":93,"context_line":"                                                              \u0027vim\u0027,"},{"line_number":94,"context_line":"                                                              parsed_args."}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_96914355","line":91,"in_reply_to":"3afc51ec_55bc2005","updated":"2016-03-15 03:47:08.000000000","message":"if the decision is to keep both vim-id and vim-name as mutually exclusive, will change this to vim_name","commit_id":"056987d9b16f3fc07e9c24921b4a4a295fe08a01"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"47c969efe83800d8f5e8fe649054d6889c137f80","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        parser.add_argument("},{"line_number":62,"context_line":"            \u0027--vim-region-name\u0027,"},{"line_number":63,"context_line":"            help\u003d\u0027VIM Region to use to create VNF on the specified VIM\u0027)"},{"line_number":64,"context_line":"        vnfd_group.add_argument("},{"line_number":65,"context_line":"            \u0027--vnfd-name\u0027,"},{"line_number":66,"context_line":"            help\u003d\u0027VNFD Name to use as template to create VNF\u0027)"},{"line_number":67,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_96b39e97","line":64,"range":{"start_line":64,"start_character":8,"end_line":64,"end_character":18},"updated":"2016-03-19 03:04:20.000000000","message":"move this before line 54, thanks","commit_id":"af1ccc879c09fc4011367bdc18c570dd595b0971"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"16859784afc3ee517249538c5f4b8ff7160e8560","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        parser.add_argument("},{"line_number":62,"context_line":"            \u0027--vim-region-name\u0027,"},{"line_number":63,"context_line":"            help\u003d\u0027VIM Region to use to create VNF on the specified VIM\u0027)"},{"line_number":64,"context_line":"        vnfd_group.add_argument("},{"line_number":65,"context_line":"            \u0027--vnfd-name\u0027,"},{"line_number":66,"context_line":"            help\u003d\u0027VNFD Name to use as template to create VNF\u0027)"},{"line_number":67,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_e16b3e83","line":64,"range":{"start_line":64,"start_character":8,"end_line":64,"end_character":18},"in_reply_to":"1af94dfe_96b39e97","updated":"2016-03-19 03:35:26.000000000","message":"Done","commit_id":"af1ccc879c09fc4011367bdc18c570dd595b0971"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"471d11dccc2ad8c1c7ce4b7e317162fa76f064d0","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            args[\u0027attributes\u0027][\u0027config\u0027] \u003d parsed_args.config"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        if parsed_args.vim_region_name:"},{"line_number":91,"context_line":"            args.setdefault(\u0027placement_attr\u0027, {})[\u0027region_name\u0027] \u003d \\"},{"line_number":92,"context_line":"                parsed_args.vim_region_name"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        tacker_client \u003d self.get_client()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_1634aef9","line":91,"range":{"start_line":91,"start_character":17,"end_line":91,"end_character":27},"updated":"2016-03-19 03:06:46.000000000","message":"https://review.openstack.org/#/c/285096/6/tacker/extensions/nfvo.py\nplacement_attr is readonly.","commit_id":"af1ccc879c09fc4011367bdc18c570dd595b0971"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"16859784afc3ee517249538c5f4b8ff7160e8560","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            args[\u0027attributes\u0027][\u0027config\u0027] \u003d parsed_args.config"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        if parsed_args.vim_region_name:"},{"line_number":91,"context_line":"            args.setdefault(\u0027placement_attr\u0027, {})[\u0027region_name\u0027] \u003d \\"},{"line_number":92,"context_line":"                parsed_args.vim_region_name"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        tacker_client \u003d self.get_client()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_610e0ee6","line":91,"range":{"start_line":91,"start_character":17,"end_line":91,"end_character":27},"in_reply_to":"1af94dfe_1634aef9","updated":"2016-03-19 03:35:26.000000000","message":"gongysh: placement_attr defined here is for the vnfm extension as a POST operation. Please see [1]\n\n[1] https://review.openstack.org/#/c/285096/6/tacker/extensions/vnfm.py","commit_id":"af1ccc879c09fc4011367bdc18c570dd595b0971"}],"tackerclient/tests/unit/vm/test_cli10_vim.py":[{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"83bd5b33718c3acc67541b5684b5b08e45897805","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    def test_update_vim(self):"},{"line_number":91,"context_line":"        cmd \u003d vim.UpdateVIM(test_cli10.MyApp(sys.stdout), None)"},{"line_number":92,"context_line":"        my_id \u003d \u0027my-id\u0027"},{"line_number":93,"context_line":"        auth_attr \u003d {\u0027username\u0027: \u0027xyz\u0027, \u0027password\u0027: \u002712345\u0027, \u0027tenant_name\u0027:"},{"line_number":94,"context_line":"                     \u0027test\u0027}"},{"line_number":95,"context_line":"        vim_config \u003d str(auth_attr)"},{"line_number":96,"context_line":"        key \u003d \u0027config\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_ac7eb316","line":93,"updated":"2016-03-15 04:46:28.000000000","message":"Why only \u0027tenant_name\u0027 ? We should also support tenant_uuid. Or leave it generic \u0027tenant\u0027 and allow both name and uuid values.\n\nBTW, there is an effort in different projects to ditch \u0027tenant\u0027 and transition to \u0027project\u0027 [1]. What do you think ? Should we bite the bullet and do it in this patchset to save some painful deprecation in the future.\n\n[1] http://lists.openstack.org/pipermail/openstack-dev/2016-February/086401.html","commit_id":"056987d9b16f3fc07e9c24921b4a4a295fe08a01"},{"author":{"_account_id":13485,"name":"Sripriya Seetharam","email":"sseetha@brocade.com","username":"Sripriya"},"change_message_id":"6325196ebf59dab4785893597ba4f23c1f2e778b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    def test_update_vim(self):"},{"line_number":91,"context_line":"        cmd \u003d vim.UpdateVIM(test_cli10.MyApp(sys.stdout), None)"},{"line_number":92,"context_line":"        my_id \u003d \u0027my-id\u0027"},{"line_number":93,"context_line":"        auth_attr \u003d {\u0027username\u0027: \u0027xyz\u0027, \u0027password\u0027: \u002712345\u0027, \u0027tenant_name\u0027:"},{"line_number":94,"context_line":"                     \u0027test\u0027}"},{"line_number":95,"context_line":"        vim_config \u003d str(auth_attr)"},{"line_number":96,"context_line":"        key \u003d \u0027config\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_efab8d73","line":93,"in_reply_to":"3afc51ec_ac7eb316","updated":"2016-03-15 05:47:37.000000000","message":"the params provided are directly fed to keystone client as args. we can provide tenant id as well as tenant name, similarly with project name/ project id. tenant name is just a user facing parameter to keep it consistent with keystone v2 and v3. if remote vim supports v3, it is replaced as project_name since tenant_name is not supported in v3.","commit_id":"056987d9b16f3fc07e9c24921b4a4a295fe08a01"},{"author":{"_account_id":13380,"name":"Sridhar Ramaswamy","email":"srics.r@gmail.com","username":"srics-r"},"change_message_id":"58ba99a41b6da1c1888e9d5a35a3eb9a32b45eab","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    def test_update_vim(self):"},{"line_number":91,"context_line":"        cmd \u003d vim.UpdateVIM(test_cli10.MyApp(sys.stdout), None)"},{"line_number":92,"context_line":"        my_id \u003d \u0027my-id\u0027"},{"line_number":93,"context_line":"        auth_attr \u003d {\u0027username\u0027: \u0027xyz\u0027, \u0027password\u0027: \u002712345\u0027, \u0027tenant_name\u0027:"},{"line_number":94,"context_line":"                     \u0027test\u0027}"},{"line_number":95,"context_line":"        vim_config \u003d str(auth_attr)"},{"line_number":96,"context_line":"        key \u003d \u0027config\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"1af94dfe_855faa71","line":93,"in_reply_to":"3afc51ec_efab8d73","updated":"2016-03-15 20:26:04.000000000","message":"We passing attrs directly to keystone client is implementation detail and it *should not* be a factor in determining the APIs exposed by tacker. See my latest comment in [1]. Other entities (like Open-O, other NFVOs) are going to consuming Tacker using API and we need to be quite prescriptive in what we \"accept\" in our APIs. dicts are slippery slope, we should reduce relying on them.\n\n[1] https://review.openstack.org/#/c/285096/5","commit_id":"056987d9b16f3fc07e9c24921b4a4a295fe08a01"}]}
