)]}'
{"samples/tosca-templates/vnfd/(DNM)ReadMeForThisPatch.rst":[{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"8749693bb27f1399ed9fe8290800a2ef090ca74f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"ID. A profile encodes the information needed for node creation in a property\r"},{"line_number":6,"context_line":"named spec.\r"},{"line_number":7,"context_line":"\r"},{"line_number":8,"context_line":"2)Cluster:A Cluster is a group of logical objects, each of which is called a \r"},{"line_number":9,"context_line":"Node in Senlin¡¯s terminology.\r"},{"line_number":10,"context_line":"\r"},{"line_number":11,"context_line":"3)Node:A Node is a logical object managed by the Senlin service. A node can be\r"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7f231b9d_f3548a23","line":8,"range":{"start_line":8,"start_character":76,"end_line":8,"end_character":77},"updated":"2017-06-13 06:44:21.000000000","message":"nit: remove this","commit_id":"a00bf6b5b73d8260faa3ca8623d413cdf008cca6"}],"samples/tosca-templates/vnfd/tosca-vnfd-senlin-scale.yaml":[{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"813935c3bbdc027e5969e88ea05dbd3cedb7f710","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    - cluster_scaling:"},{"line_number":45,"context_line":"        type: tosca.policies.tacker.Scaling"},{"line_number":46,"context_line":"        description: Cluster node autoscaling"},{"line_number":47,"context_line":"        driver: senlin"},{"line_number":48,"context_line":"        properties:"},{"line_number":49,"context_line":"          min_instances: 2"},{"line_number":50,"context_line":"          max_instances: 10"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"dfeb2761_83b52cf1","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":22},"updated":"2017-03-31 06:42:12.000000000","message":"it does not seem to support this in tosca-parser. In stead of that, I would recommend to define a new type in Tacker [1]. For example:\n\ntosca.policies.tacker.ScalingCluster (other whatever)\n derived_from: tosca.policies.Scaling\n\nBy this way, you can recognize Senlin driver based on the tosca type with keywords \"ScalingCluster\".\nHope it make sense!\n\n[1]https://github.com/openstack/tacker/blob/master/tacker/vnfm/tosca/lib/tacker_defs.yaml","commit_id":"941ea12312ce73e61c9c31724d938a5c2ecf7d97"},{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"b3fea26d6bdd01ff7b04f564248811570525c9ec","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            metrics: cpu_util"},{"line_number":64,"context_line":"            condition:"},{"line_number":65,"context_line":"              threshold: 50"},{"line_number":66,"context_line":"              constraint: utilization greater_than 50%"},{"line_number":67,"context_line":"              period: 60"},{"line_number":68,"context_line":"              evaluations: 1"},{"line_number":69,"context_line":"              method: avg"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"ff0f0b1f_e23121a4","line":66,"updated":"2017-05-22 09:33:21.000000000","message":"Curious! How \u0027constraint\u0027 will be translated ?","commit_id":"a00bf6b5b73d8260faa3ca8623d413cdf008cca6"}],"tacker/vnfm/infra_drivers/openstack/heat_client.py":[{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"fc6eeeb0da28d849a1a1d3ca2c23b1a99ca522e8","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            fields[\u0027password\u0027] \u003d fields[\u0027template\u0027][\u0027password\u0027]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        try:"},{"line_number":41,"context_line":"            print(\"fieldss: \", fields)"},{"line_number":42,"context_line":"            return self.stacks.create(**fields)"},{"line_number":43,"context_line":"        except heatException.HTTPException:"},{"line_number":44,"context_line":"            type_, value, tb \u003d sys.exc_info()"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_20e549dc","line":41,"updated":"2017-03-30 08:05:22.000000000","message":"LOG ??","commit_id":"941ea12312ce73e61c9c31724d938a5c2ecf7d97"}],"tacker/vnfm/infra_drivers/openstack/translate_template.py":[{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"813935c3bbdc027e5969e88ea05dbd3cedb7f710","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @log.log"},{"line_number":165,"context_line":"    def _get_scaling_driver(self, template):"},{"line_number":166,"context_line":"        scaling_driver \u003d None"},{"line_number":167,"context_line":"        if \u0027policies\u0027 in template:"},{"line_number":168,"context_line":"            for policy_dict in template[\u0027policies\u0027]:"},{"line_number":169,"context_line":"                res_name, policy \u003d list(policy_dict.items())[0]"},{"line_number":170,"context_line":"                if policy[\u0027type\u0027] \u003d\u003d SCALING_POLICY:"},{"line_number":171,"context_line":"                    scaling_driver \u003d policy.get(\u0027driver\u0027)"},{"line_number":172,"context_line":"        return scaling_driver"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    @log.log"}],"source_content_type":"text/x-python","patch_set":4,"id":"dfeb2761_437de41a","line":171,"range":{"start_line":166,"start_character":7,"end_line":171,"end_character":57},"updated":"2017-03-31 06:42:12.000000000","message":"rethinking to change this as I mentioned earlier. Thanks","commit_id":"941ea12312ce73e61c9c31724d938a5c2ecf7d97"},{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"fc6eeeb0da28d849a1a1d3ca2c23b1a99ca522e8","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        return node"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"    @log.log"},{"line_number":478,"context_line":"    def _handle_senlin_policies(self, policy_tpl):"},{"line_number":479,"context_line":"        scale_policy_name \u003d None"},{"line_number":480,"context_line":"        for policy_dict in policy_tpl[\u0027policies\u0027]:"},{"line_number":481,"context_line":"            name, policy \u003d list(policy_dict.items())[0]"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_c0f69d8f","line":478,"updated":"2017-03-30 08:05:22.000000000","message":"you may want to add comments about the function for readability?","commit_id":"941ea12312ce73e61c9c31724d938a5c2ecf7d97"},{"author":{"_account_id":20560,"name":"Tung Doan","email":"doantungbk.203@gmail.com","username":"doantungbk"},"change_message_id":"813935c3bbdc027e5969e88ea05dbd3cedb7f710","unresolved":false,"context_lines":[{"line_number":628,"context_line":"        props \u003d {"},{"line_number":629,"context_line":"            \u0027cluster\u0027: {\u0027get_resource\u0027: cluster_name},"},{"line_number":630,"context_line":"            \u0027action\u0027: action_type,"},{"line_number":631,"context_line":"            \u0027type\u0027: \u0027webhook\u0027"},{"line_number":632,"context_line":"        }"},{"line_number":633,"context_line":"        receiver[\u0027properties\u0027] \u003d props"},{"line_number":634,"context_line":"        receiver_name \u003d name + action_type[7:].lower() + \u0027_receiver\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"dfeb2761_c32a14e6","line":631,"range":{"start_line":631,"start_character":12,"end_line":631,"end_character":29},"updated":"2017-03-31 06:42:12.000000000","message":"I believe that Senlin driver supports other methods. So please write some comments for this hardcoded line.","commit_id":"941ea12312ce73e61c9c31724d938a5c2ecf7d97"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"13af77796766e9836cf590674b2a58be237157f3","unresolved":false,"context_lines":[{"line_number":628,"context_line":"        props \u003d {"},{"line_number":629,"context_line":"            \u0027cluster\u0027: {\u0027get_resource\u0027: cluster_name},"},{"line_number":630,"context_line":"            \u0027action\u0027: action_type,"},{"line_number":631,"context_line":"            \u0027type\u0027: \u0027webhook\u0027"},{"line_number":632,"context_line":"        }"},{"line_number":633,"context_line":"        receiver[\u0027properties\u0027] \u003d props"},{"line_number":634,"context_line":"        receiver_name \u003d name + action_type[7:].lower() + \u0027_receiver\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"dfeb2761_69456717","line":631,"range":{"start_line":631,"start_character":12,"end_line":631,"end_character":29},"in_reply_to":"dfeb2761_c32a14e6","updated":"2017-03-31 07:43:55.000000000","message":"Done","commit_id":"941ea12312ce73e61c9c31724d938a5c2ecf7d97"},{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"53ca1b6513cfc34185e1a046939852945bc416d9","unresolved":false,"context_lines":[{"line_number":572,"context_line":"            server_props.get(\u0027availability_zone\u0027, \u0027nova\u0027)"},{"line_number":573,"context_line":"        props[\u0027image\u0027] \u003d server_props.get(\u0027image\u0027)"},{"line_number":574,"context_line":"        props[\u0027flavor\u0027] \u003d server_props.get(\u0027flavor\u0027)"},{"line_number":575,"context_line":"     #   props[\u0027config_driver\u0027] \u003d server_props.get(\u0027config_driver\u0027)"},{"line_number":576,"context_line":"        props[\u0027networks\u0027] \u003d networks"},{"line_number":577,"context_line":"        profile[\u0027type\u0027] \u003d \u0027OS::Senlin::Profile\u0027"},{"line_number":578,"context_line":"        properties \u003d {}"}],"source_content_type":"text/x-python","patch_set":6,"id":"bff0334d_46457b42","line":575,"updated":"2017-04-10 08:04:54.000000000","message":"pep8 violation","commit_id":"fda10ab6568237c7ad10c1e054681297e781bcbf"},{"author":{"_account_id":19999,"name":"Trinath Somanchi","email":"trinaths.dev@gmail.com","username":"trinath-somanchi"},"change_message_id":"b3fea26d6bdd01ff7b04f564248811570525c9ec","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        policy_tpl \u003d vnfd_dict[\u0027topology_template\u0027]"},{"line_number":130,"context_line":"        scaling_driver \u003d self._get_scaling_driver(policy_tpl)"},{"line_number":131,"context_line":"        if scaling_driver \u003d\u003d \u0027senlin\u0027:"},{"line_number":132,"context_line":"            LOG.debug(\u0027Senlin resources are used for autoscaling management\u0027)"},{"line_number":133,"context_line":"            template \u003d self._handle_senlin_policies(policy_tpl)"},{"line_number":134,"context_line":"            self.fields[\u0027template\u0027] \u003d yaml.safe_dump(template)"},{"line_number":135,"context_line":"            self.vnf[\u0027attributes\u0027][\u0027heat_template\u0027] \u003d yaml.safe_dump(template)"}],"source_content_type":"text/x-python","patch_set":11,"id":"ff0f0b1f_82d02521","line":132,"updated":"2017-05-22 09:33:21.000000000","message":"Why do you need this GENERIC log message ? that too at DEBUG level ?","commit_id":"a00bf6b5b73d8260faa3ca8623d413cdf008cca6"},{"author":{"_account_id":22998,"name":"XueFengLiu","email":"liu.xuefeng1@zte.com.cn","username":"sgfeng"},"change_message_id":"84b5303393a66b8de8aca9453e0f77645adc3350","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        policy_tpl \u003d vnfd_dict[\u0027topology_template\u0027]"},{"line_number":130,"context_line":"        scaling_driver \u003d self._get_scaling_driver(policy_tpl)"},{"line_number":131,"context_line":"        if scaling_driver \u003d\u003d \u0027senlin\u0027:"},{"line_number":132,"context_line":"            LOG.debug(\u0027Senlin resources are used for autoscaling management\u0027)"},{"line_number":133,"context_line":"            template \u003d self._handle_senlin_policies(policy_tpl)"},{"line_number":134,"context_line":"            self.fields[\u0027template\u0027] \u003d yaml.safe_dump(template)"},{"line_number":135,"context_line":"            self.vnf[\u0027attributes\u0027][\u0027heat_template\u0027] \u003d yaml.safe_dump(template)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f1d235d_c1df4a38","line":132,"in_reply_to":"ff0f0b1f_82d02521","updated":"2017-07-12 05:54:33.000000000","message":"Done","commit_id":"a00bf6b5b73d8260faa3ca8623d413cdf008cca6"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"8749693bb27f1399ed9fe8290800a2ef090ca74f","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            for policy_dict in template[\u0027policies\u0027]:"},{"line_number":169,"context_line":"                res_name, policy \u003d list(policy_dict.items())[0]"},{"line_number":170,"context_line":"                if policy[\u0027type\u0027] \u003d\u003d SCALING_POLICY:"},{"line_number":171,"context_line":"                    scaling_driver \u003d policy.get(\u0027driver\u0027)"},{"line_number":172,"context_line":"        return scaling_driver"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    @log.log"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f231b9d_05c5795b","line":171,"range":{"start_line":171,"start_character":20,"end_line":171,"end_character":57},"updated":"2017-06-13 06:44:21.000000000","message":"Break the loop once get scaling_driver","commit_id":"a00bf6b5b73d8260faa3ca8623d413cdf008cca6"},{"author":{"_account_id":22998,"name":"XueFengLiu","email":"liu.xuefeng1@zte.com.cn","username":"sgfeng"},"change_message_id":"84b5303393a66b8de8aca9453e0f77645adc3350","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            for policy_dict in template[\u0027policies\u0027]:"},{"line_number":169,"context_line":"                res_name, policy \u003d list(policy_dict.items())[0]"},{"line_number":170,"context_line":"                if policy[\u0027type\u0027] \u003d\u003d SCALING_POLICY:"},{"line_number":171,"context_line":"                    scaling_driver \u003d policy.get(\u0027driver\u0027)"},{"line_number":172,"context_line":"        return scaling_driver"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    @log.log"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f1d235d_0131c2a2","line":171,"range":{"start_line":171,"start_character":20,"end_line":171,"end_character":57},"in_reply_to":"7f231b9d_05c5795b","updated":"2017-07-12 05:54:33.000000000","message":"Done","commit_id":"a00bf6b5b73d8260faa3ca8623d413cdf008cca6"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"8749693bb27f1399ed9fe8290800a2ef090ca74f","unresolved":false,"context_lines":[{"line_number":519,"context_line":"                else:"},{"line_number":520,"context_line":"                    msg \u003d (\u0027There is no proper action for this alarm: \u0027"},{"line_number":521,"context_line":"                          \u0027%s\u0027, name)"},{"line_number":522,"context_line":"                    raise Exception(msg)"},{"line_number":523,"context_line":"        return alarming_tpl"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"    @log.log"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f231b9d_25dbd51b","line":522,"range":{"start_line":522,"start_character":20,"end_line":522,"end_character":40},"updated":"2017-06-13 06:44:21.000000000","message":"Please raise specific exceptions","commit_id":"a00bf6b5b73d8260faa3ca8623d413cdf008cca6"},{"author":{"_account_id":22998,"name":"XueFengLiu","email":"liu.xuefeng1@zte.com.cn","username":"sgfeng"},"change_message_id":"84b5303393a66b8de8aca9453e0f77645adc3350","unresolved":false,"context_lines":[{"line_number":519,"context_line":"                else:"},{"line_number":520,"context_line":"                    msg \u003d (\u0027There is no proper action for this alarm: \u0027"},{"line_number":521,"context_line":"                          \u0027%s\u0027, name)"},{"line_number":522,"context_line":"                    raise Exception(msg)"},{"line_number":523,"context_line":"        return alarming_tpl"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"    @log.log"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f1d235d_6102b6b6","line":522,"range":{"start_line":522,"start_character":20,"end_line":522,"end_character":40},"in_reply_to":"7f231b9d_25dbd51b","updated":"2017-07-12 05:54:33.000000000","message":"Done","commit_id":"a00bf6b5b73d8260faa3ca8623d413cdf008cca6"}]}
