)]}'
{"setup.cfg":[{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"2410120a68e81cb6d068fc464be24d409603b358","unresolved":false,"context_lines":[{"line_number":80,"context_line":"     vnf_classifier_show \u003d tackerclient.osc.v1.nfvo.vnffg:ShowFC"},{"line_number":81,"context_line":"     vnf_chain_list \u003d tackerclient.osc.v1.nfvo.vnffg:ListSFC"},{"line_number":82,"context_line":"     vnf_chain_show \u003d tackerclient.osc.v1.nfvo.vnffg:ShowSFC"},{"line_number":83,"context_line":"     vnfpack_create \u003d tackerclient.osc.v1.vnfpkgm.vnf_package:CreateVnfPackage"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"[build_releasenotes]"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"5faad753_a60efbe2","line":83,"range":{"start_line":83,"start_character":5,"end_line":83,"end_character":19},"updated":"2019-09-09 09:35:24.000000000","message":"It will better to make it as:\nvnf_package_create\n\nand the same for others","commit_id":"2a26a7d156c3440143320a9361d659e2f3bd3997"},{"author":{"_account_id":29236,"name":"Shubham Potale","email":"Shubham.Potale@nttdata.com","username":"shubham.potale"},"change_message_id":"afa5b6b05d23106b30524883bed18406dd567b42","unresolved":false,"context_lines":[{"line_number":80,"context_line":"     vnf_classifier_show \u003d tackerclient.osc.v1.nfvo.vnffg:ShowFC"},{"line_number":81,"context_line":"     vnf_chain_list \u003d tackerclient.osc.v1.nfvo.vnffg:ListSFC"},{"line_number":82,"context_line":"     vnf_chain_show \u003d tackerclient.osc.v1.nfvo.vnffg:ShowSFC"},{"line_number":83,"context_line":"     vnfpack_create \u003d tackerclient.osc.v1.vnfpkgm.vnf_package:CreateVnfPackage"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"[build_releasenotes]"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"5faad753_21e67546","line":83,"range":{"start_line":83,"start_character":5,"end_line":83,"end_character":19},"in_reply_to":"5faad753_a60efbe2","updated":"2019-09-09 13:30:52.000000000","message":"Done","commit_id":"2a26a7d156c3440143320a9361d659e2f3bd3997"}],"tackerclient/osc/v1/vnfpkgm/vnf_package.py":[{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"2acd85451f5b4a20b8a25cb8c641e42ec84b0995","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from osc_lib.command import command"},{"line_number":19,"context_line":"from osc_lib import utils"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from osc_lib.cli import parseractions"},{"line_number":22,"context_line":"from tackerclient.i18n import _"},{"line_number":23,"context_line":"from tackerclient.osc import sdk_utils"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_d19af76c","line":20,"updated":"2019-09-06 10:01:37.000000000","message":"remove this blank line.","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"},{"author":{"_account_id":29236,"name":"Shubham Potale","email":"Shubham.Potale@nttdata.com","username":"shubham.potale"},"change_message_id":"4e2fcb9dad9531dff02a570185d2e7621537363f","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from osc_lib.command import command"},{"line_number":19,"context_line":"from osc_lib import utils"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from osc_lib.cli import parseractions"},{"line_number":22,"context_line":"from tackerclient.i18n import _"},{"line_number":23,"context_line":"from tackerclient.osc import sdk_utils"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_1d52de68","line":20,"in_reply_to":"5faad753_d19af76c","updated":"2019-09-06 14:23:02.000000000","message":"Done","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"2acd85451f5b4a20b8a25cb8c641e42ec84b0995","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from osc_lib import utils"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from osc_lib.cli import parseractions"},{"line_number":22,"context_line":"from tackerclient.i18n import _"},{"line_number":23,"context_line":"from tackerclient.osc import sdk_utils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_5188471e","line":22,"updated":"2019-09-06 10:01:37.000000000","message":"add blank line here.","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"},{"author":{"_account_id":29236,"name":"Shubham Potale","email":"Shubham.Potale@nttdata.com","username":"shubham.potale"},"change_message_id":"4e2fcb9dad9531dff02a570185d2e7621537363f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from osc_lib import utils"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from osc_lib.cli import parseractions"},{"line_number":22,"context_line":"from tackerclient.i18n import _"},{"line_number":23,"context_line":"from tackerclient.osc import sdk_utils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_bd4e2abf","line":22,"in_reply_to":"5faad753_5188471e","updated":"2019-09-06 14:23:02.000000000","message":"Done","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"2acd85451f5b4a20b8a25cb8c641e42ec84b0995","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def get_parser(self, prog_name):"},{"line_number":46,"context_line":"        LOG.debug(\u0027get_parser(%s)\u0027, prog_name)"},{"line_number":47,"context_line":"        parser \u003d super(CreateVnfPackage, self).get_parser(prog_name)"},{"line_number":48,"context_line":"        parser.add_argument("},{"line_number":49,"context_line":"            \u0027--user-data\u0027,"},{"line_number":50,"context_line":"            metavar\u003d\u0027\u003ckey\u003dvalue\u003e\u0027,"},{"line_number":51,"context_line":"            action\u003dparseractions.KeyValueAction,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_4413a30e","line":48,"updated":"2019-09-06 10:01:37.000000000","message":"We should add a field for package name.","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"},{"author":{"_account_id":29236,"name":"Shubham Potale","email":"Shubham.Potale@nttdata.com","username":"shubham.potale"},"change_message_id":"4e2fcb9dad9531dff02a570185d2e7621537363f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def get_parser(self, prog_name):"},{"line_number":46,"context_line":"        LOG.debug(\u0027get_parser(%s)\u0027, prog_name)"},{"line_number":47,"context_line":"        parser \u003d super(CreateVnfPackage, self).get_parser(prog_name)"},{"line_number":48,"context_line":"        parser.add_argument("},{"line_number":49,"context_line":"            \u0027--user-data\u0027,"},{"line_number":50,"context_line":"            metavar\u003d\u0027\u003ckey\u003dvalue\u003e\u0027,"},{"line_number":51,"context_line":"            action\u003dparseractions.KeyValueAction,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_fd5ee243","line":48,"in_reply_to":"5faad753_4413a30e","updated":"2019-09-06 14:23:02.000000000","message":"We are implementing below specs, and it doesn\u0027t have \u0027name\u0027 field for vnfpackage\nhttps://review.opendev.org/#/c/582930/20/specs/train/vnf_package_support.rst@271","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"2acd85451f5b4a20b8a25cb8c641e42ec84b0995","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            action\u003dparseractions.KeyValueAction,"},{"line_number":52,"context_line":"            help\u003d_(\u0027Set a vnf package specification property \u0027"},{"line_number":53,"context_line":"                   \u0027(repeat option to set multiple properties)\u0027),"},{"line_number":54,"context_line":"        )"},{"line_number":55,"context_line":"        return parser"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def args2body(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_a41a9714","line":54,"updated":"2019-09-06 10:01:37.000000000","message":"to retain multi-tenancy, Please add project-id.","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"},{"author":{"_account_id":29236,"name":"Shubham Potale","email":"Shubham.Potale@nttdata.com","username":"shubham.potale"},"change_message_id":"afa5b6b05d23106b30524883bed18406dd567b42","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            action\u003dparseractions.KeyValueAction,"},{"line_number":52,"context_line":"            help\u003d_(\u0027Set a vnf package specification property \u0027"},{"line_number":53,"context_line":"                   \u0027(repeat option to set multiple properties)\u0027),"},{"line_number":54,"context_line":"        )"},{"line_number":55,"context_line":"        return parser"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def args2body(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_d73de2bb","line":54,"in_reply_to":"5faad753_46738716","updated":"2019-09-09 13:30:52.000000000","message":"got your point, I will fix the issue in separate follow up patch.","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"85dc88068dd15750152c89aaa61e6f7f2339aa13","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            action\u003dparseractions.KeyValueAction,"},{"line_number":52,"context_line":"            help\u003d_(\u0027Set a vnf package specification property \u0027"},{"line_number":53,"context_line":"                   \u0027(repeat option to set multiple properties)\u0027),"},{"line_number":54,"context_line":"        )"},{"line_number":55,"context_line":"        return parser"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def args2body(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_46738716","line":54,"in_reply_to":"5faad753_950e8be3","updated":"2019-09-09 09:56:29.000000000","message":"The default case is ok(pick from env), but there should be provision to provide project id by cli as well.\nPlease see for for your reference:\n\nhttps://github.com/openstack/python-tackerclient/blob/master/tackerclient/osc/v1/vnfm/vnf.py#L77","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"},{"author":{"_account_id":29236,"name":"Shubham Potale","email":"Shubham.Potale@nttdata.com","username":"shubham.potale"},"change_message_id":"5e34b560f465b73951738d04e974d7fe03d3301a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            action\u003dparseractions.KeyValueAction,"},{"line_number":52,"context_line":"            help\u003d_(\u0027Set a vnf package specification property \u0027"},{"line_number":53,"context_line":"                   \u0027(repeat option to set multiple properties)\u0027),"},{"line_number":54,"context_line":"        )"},{"line_number":55,"context_line":"        return parser"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def args2body(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_950e8be3","line":54,"in_reply_to":"5faad753_a41a9714","updated":"2019-09-09 05:39:08.000000000","message":"on the tacker side based on the user credential the project id will be retrieved from the tacker context.","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"}],"tackerclient/v1_0/client.py":[{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"2acd85451f5b4a20b8a25cb8c641e42ec84b0995","unresolved":false,"context_lines":[{"line_number":718,"context_line":"        return self.delete(self.cluster_member_path % clustermember)"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"class VnfPackageClient(ClientBase):"},{"line_number":722,"context_line":"    \"\"\"Client for vnfpackage APIs."},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"    Purpose of this class is to create required request url for vnfpackage"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_c455531f","line":721,"updated":"2019-09-06 10:01:37.000000000","message":"why all changes here, as it(tackerclient cli) already depricated.","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"421b7eabe30d8bfd7ea7213bc89d1d42669f5ceb","unresolved":false,"context_lines":[{"line_number":718,"context_line":"        return self.delete(self.cluster_member_path % clustermember)"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"class VnfPackageClient(ClientBase):"},{"line_number":722,"context_line":"    \"\"\"Client for vnfpackage APIs."},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"    Purpose of this class is to create required request url for vnfpackage"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_5e9b5571","line":721,"in_reply_to":"5faad753_b8495861","updated":"2019-09-09 00:30:38.000000000","message":"Dharmendra: OSC command invokes make_client which can return only one proxy client based on the requested version. Hence, the vnf package APIs are implemented in the same client using the facade design pattern so that it can still support the previous OSC commands along with the newly added VNF package command.\n\nAs mentioned by Shubham, the second option is to implement these commands in the openstackclient along with the openstacksdk changes.\n\nso we have two design choices, the one implemented in this patch and second one is OpenStackclient + openstacksdk.","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"},{"author":{"_account_id":29236,"name":"Shubham Potale","email":"Shubham.Potale@nttdata.com","username":"shubham.potale"},"change_message_id":"4e2fcb9dad9531dff02a570185d2e7621537363f","unresolved":false,"context_lines":[{"line_number":718,"context_line":"        return self.delete(self.cluster_member_path % clustermember)"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"class VnfPackageClient(ClientBase):"},{"line_number":722,"context_line":"    \"\"\"Client for vnfpackage APIs."},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"    Purpose of this class is to create required request url for vnfpackage"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_b8495861","line":721,"in_reply_to":"5faad753_c455531f","updated":"2019-09-06 14:23:02.000000000","message":"1)I have referred the existing design which was followed while adding osc cli support for vnf, vnfd, vim etc. commands for ex(tackerclient\\osc\\v1\\vnfm\\vnf.py), in that case also  same client file  is used (tackerclient/v1_0/client.py) \n\n2)In case if we use client from openstacksdk (https://review.opendev.org/#/c/675604/) instead of tackerclient( tackerclient.v1_0.client.Client)\nthen we need to change client from make_client() method from this file tackerclient\\osc\\plugin.py\nand with above change existing osc commands like\n\"openstack vim create\" will not work.\n\n3)because of this reason we came up with this solution.\nwith this changes \nopenstack vnfpack create will work\ntacker vnfpack create won\u0027t work","commit_id":"3413508b32bf02b0d342be6c146f81a402705cfe"}]}
