)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9ebf1ed1fd1466a66054998a820db5ceaa80b5a2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Muzammil Mueen \u003cmuzammil.mueen@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-30 09:04:43 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"removed column parameters from the following methods in both files"},{"line_number":8,"context_line":"    def get_audit_template_list(self, context, columns\u003dNone, filters\u003dNone,"},{"line_number":9,"context_line":"                                limit\u003dNone, marker\u003dNone, sort_key\u003dNone,"},{"line_number":10,"context_line":"                                sort_dir\u003dNone):"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3aaa91ec_183ce6df","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":66},"updated":"2016-07-01 07:27:29.000000000","message":"According to https://wiki.openstack.org/wiki/GitCommitMessages, this line should contains 50 or less characters, so can you make it shorter please?","commit_id":"b0e1ab34f90b8da7ac80e8434033dd362e59b807"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9ebf1ed1fd1466a66054998a820db5ceaa80b5a2","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-06-30 09:04:43 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"removed column parameters from the following methods in both files"},{"line_number":8,"context_line":"    def get_audit_template_list(self, context, columns\u003dNone, filters\u003dNone,"},{"line_number":9,"context_line":"                                limit\u003dNone, marker\u003dNone, sort_key\u003dNone,"},{"line_number":10,"context_line":"                                sort_dir\u003dNone):"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3aaa91ec_987a96b8","line":8,"updated":"2016-07-01 07:27:29.000000000","message":"nit: missing blank line here","commit_id":"b0e1ab34f90b8da7ac80e8434033dd362e59b807"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9ebf1ed1fd1466a66054998a820db5ceaa80b5a2","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-06-30 09:04:43 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"removed column parameters from the following methods in both files"},{"line_number":8,"context_line":"    def get_audit_template_list(self, context, columns\u003dNone, filters\u003dNone,"},{"line_number":9,"context_line":"                                limit\u003dNone, marker\u003dNone, sort_key\u003dNone,"},{"line_number":10,"context_line":"                                sort_dir\u003dNone):"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    def get_audit_list(self, context, columns\u003dNone, filters\u003dNone, limit\u003dNone,"},{"line_number":13,"context_line":"                       marker\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    def get_action_list(self, context, columns\u003dNone, filters\u003dNone, limit\u003dNone,"},{"line_number":16,"context_line":"                        marker\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    def get_action_plan_list("},{"line_number":19,"context_line":"            self, context, columns\u003dNone, filters\u003dNone, limit\u003dNone,"},{"line_number":20,"context_line":"            marker\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: If706e24d5714f0139fd135bdc41d17d0e431e302"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3aaa91ec_b804b217","line":20,"range":{"start_line":8,"start_character":1,"end_line":20,"end_character":55},"updated":"2016-07-01 07:27:29.000000000","message":"The body of you commit message should be wrapped at 72 characters as explained in https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"b0e1ab34f90b8da7ac80e8434033dd362e59b807"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9ebf1ed1fd1466a66054998a820db5ceaa80b5a2","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    def get_action_plan_list("},{"line_number":19,"context_line":"            self, context, columns\u003dNone, filters\u003dNone, limit\u003dNone,"},{"line_number":20,"context_line":"            marker\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: If706e24d5714f0139fd135bdc41d17d0e431e302"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3aaa91ec_98ff3601","line":21,"updated":"2016-07-01 07:27:29.000000000","message":"The \"Closes-Bug: #1597641\" is missing here","commit_id":"b0e1ab34f90b8da7ac80e8434033dd362e59b807"}],"watcher/db/api.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9ebf1ed1fd1466a66054998a820db5ceaa80b5a2","unresolved":false,"context_lines":[{"line_number":558,"context_line":"        :returns: An action plan."},{"line_number":559,"context_line":"        :raises: :py:class:`~.ActionPlanNotFound`"},{"line_number":560,"context_line":"        :raises: :py:class:`~.ActionPlanReferenced`"},{"line_number":561,"context_line":"        :raises: :py:class:`~.Invalid`"},{"line_number":562,"context_line":"        \"\"\""},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"    @abc.abstractmethod"},{"line_number":565,"context_line":"    def get_efficacy_indicator_list(self, context, filters\u003dNone, limit\u003dNone,"},{"line_number":566,"context_line":"                                    marker\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":567,"context_line":"        \"\"\"Get specific columns for matching efficacy indicators."},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        Return a list of the specified columns for all efficacy indicators that"},{"line_number":570,"context_line":"        match the specified filters."},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"        :param context: The security context"},{"line_number":573,"context_line":"        :param columns: List of column names to return."},{"line_number":574,"context_line":"                        Defaults to \u0027id\u0027 column when columns \u003d\u003d None."},{"line_number":575,"context_line":"        :param filters: Filters to apply. Defaults to None."},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"        :param limit: Maximum number of efficacy indicators to return."},{"line_number":578,"context_line":"        :param marker: The last item of the previous page; we return the next"},{"line_number":579,"context_line":"                       result set."},{"line_number":580,"context_line":"        :param sort_key: Attribute by which results should be sorted."},{"line_number":581,"context_line":"        :param sort_dir: Direction in which results should be sorted."},{"line_number":582,"context_line":"                         (asc, desc)"},{"line_number":583,"context_line":"        :returns: A list of tuples of the specified columns."},{"line_number":584,"context_line":"        \"\"\""},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    @abc.abstractmethod"},{"line_number":587,"context_line":"    def create_efficacy_indicator(self, values):"},{"line_number":588,"context_line":"        \"\"\"Create a new efficacy indicator."},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"        :param values: A dict containing items used to identify"},{"line_number":591,"context_line":"                       and track the efficacy indicator. For example:"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"                       ::"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"                        {"},{"line_number":596,"context_line":"                         \u0027id\u0027: 1,"},{"line_number":597,"context_line":"                         \u0027uuid\u0027: utils.generate_uuid(),"},{"line_number":598,"context_line":"                         \u0027name\u0027: \u0027my_efficacy_indicator\u0027,"},{"line_number":599,"context_line":"                         \u0027display_name\u0027: \u0027My efficacy indicator\u0027,"},{"line_number":600,"context_line":"                         \u0027goal_uuid\u0027: utils.generate_uuid(),"},{"line_number":601,"context_line":"                        }"},{"line_number":602,"context_line":"        :returns: An efficacy_indicator"},{"line_number":603,"context_line":"        :raises: :py:class:`~.EfficacyIndicatorAlreadyExists`"},{"line_number":604,"context_line":"        \"\"\""},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"    @abc.abstractmethod"},{"line_number":607,"context_line":"    def get_efficacy_indicator_by_id(self, context, efficacy_indicator_id):"},{"line_number":608,"context_line":"        \"\"\"Return an efficacy indicator given its ID."},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"        :param context: The security context"},{"line_number":611,"context_line":"        :param efficacy_indicator_id: The ID of an efficacy indicator"},{"line_number":612,"context_line":"        :returns: An efficacy indicator"},{"line_number":613,"context_line":"        :raises: :py:class:`~.EfficacyIndicatorNotFound`"},{"line_number":614,"context_line":"        \"\"\""},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"    @abc.abstractmethod"},{"line_number":617,"context_line":"    def get_efficacy_indicator_by_uuid(self, context, efficacy_indicator_uuid):"},{"line_number":618,"context_line":"        \"\"\"Return an efficacy indicator given its UUID."},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"        :param context: The security context"},{"line_number":621,"context_line":"        :param efficacy_indicator_uuid: The UUID of an efficacy indicator"},{"line_number":622,"context_line":"        :returns: An efficacy indicator"},{"line_number":623,"context_line":"        :raises: :py:class:`~.EfficacyIndicatorNotFound`"},{"line_number":624,"context_line":"        \"\"\""},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    @abc.abstractmethod"},{"line_number":627,"context_line":"    def get_efficacy_indicator_by_name(self, context, efficacy_indicator_name):"},{"line_number":628,"context_line":"        \"\"\"Return an efficacy indicator given its name."},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"        :param context: The security context"},{"line_number":631,"context_line":"        :param efficacy_indicator_name: The name of an efficacy indicator"},{"line_number":632,"context_line":"        :returns: An efficacy indicator"},{"line_number":633,"context_line":"        :raises: :py:class:`~.EfficacyIndicatorNotFound`"},{"line_number":634,"context_line":"        \"\"\""},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"    @abc.abstractmethod"},{"line_number":637,"context_line":"    def destroy_efficacy_indicator(self, efficacy_indicator_uuid):"},{"line_number":638,"context_line":"        \"\"\"Destroy an efficacy indicator."},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"        :param efficacy_indicator_uuid: The UUID of an efficacy indicator"},{"line_number":641,"context_line":"        :raises: :py:class:`~.EfficacyIndicatorNotFound`"},{"line_number":642,"context_line":"        \"\"\""},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    @abc.abstractmethod"},{"line_number":645,"context_line":"    def update_efficacy_indicator(self, efficacy_indicator_uuid, values):"},{"line_number":646,"context_line":"        \"\"\"Update properties of an efficacy indicator."},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"        :param efficacy_indicator_uuid: The UUID of an efficacy indicator"},{"line_number":649,"context_line":"        :returns: An efficacy indicator"},{"line_number":650,"context_line":"        :raises: :py:class:`~.EfficacyIndicatorNotFound`"},{"line_number":651,"context_line":"        :raises: :py:class:`~.Invalid`"},{"line_number":652,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_f3513b0f","side":"PARENT","line":650,"range":{"start_line":561,"start_character":0,"end_line":650,"end_character":56},"updated":"2016-07-01 07:27:29.000000000","message":"Why did you remove all this?","commit_id":"ec64203bee32838a6ede78a30f94548209430d46"}],"watcher/db/sqlalchemy/api.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9ebf1ed1fd1466a66054998a820db5ceaa80b5a2","unresolved":false,"context_lines":[{"line_number":952,"context_line":"                raise exception.ActionPlanNotFound(action_plan\u003daction_plan_id)"},{"line_number":953,"context_line":""},{"line_number":954,"context_line":"            query.soft_delete()"},{"line_number":955,"context_line":""},{"line_number":956,"context_line":"    # ### EFFICACY INDICATORS ### #"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":"    def get_efficacy_indicator_list(self, context, filters\u003dNone, limit\u003dNone,"},{"line_number":959,"context_line":"                                    marker\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":960,"context_line":""},{"line_number":961,"context_line":"        query \u003d model_query(models.EfficacyIndicator)"},{"line_number":962,"context_line":"        query \u003d self._add_efficacy_indicators_filters(query, filters)"},{"line_number":963,"context_line":"        if not context.show_deleted:"},{"line_number":964,"context_line":"            query \u003d query.filter_by(deleted_at\u003dNone)"},{"line_number":965,"context_line":"        return _paginate_query(models.EfficacyIndicator, limit, marker,"},{"line_number":966,"context_line":"                               sort_key, sort_dir, query)"},{"line_number":967,"context_line":""},{"line_number":968,"context_line":"    def create_efficacy_indicator(self, values):"},{"line_number":969,"context_line":"        # ensure defaults are present for new efficacy indicators"},{"line_number":970,"context_line":"        if not values.get(\u0027uuid\u0027):"},{"line_number":971,"context_line":"            values[\u0027uuid\u0027] \u003d utils.generate_uuid()"},{"line_number":972,"context_line":""},{"line_number":973,"context_line":"        efficacy_indicator \u003d models.EfficacyIndicator()"},{"line_number":974,"context_line":"        efficacy_indicator.update(values)"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":"        try:"},{"line_number":977,"context_line":"            efficacy_indicator.save()"},{"line_number":978,"context_line":"        except db_exc.DBDuplicateEntry:"},{"line_number":979,"context_line":"            raise exception.EfficacyIndicatorAlreadyExists(uuid\u003dvalues[\u0027uuid\u0027])"},{"line_number":980,"context_line":"        return efficacy_indicator"},{"line_number":981,"context_line":""},{"line_number":982,"context_line":"    def _get_efficacy_indicator(self, context, fieldname, value):"},{"line_number":983,"context_line":"        try:"},{"line_number":984,"context_line":"            return self._get(context, model\u003dmodels.EfficacyIndicator,"},{"line_number":985,"context_line":"                             fieldname\u003dfieldname, value\u003dvalue)"},{"line_number":986,"context_line":"        except exception.ResourceNotFound:"},{"line_number":987,"context_line":"            raise exception.EfficacyIndicatorNotFound(efficacy_indicator\u003dvalue)"},{"line_number":988,"context_line":""},{"line_number":989,"context_line":"    def get_efficacy_indicator_by_id(self, context, efficacy_indicator_id):"},{"line_number":990,"context_line":"        return self._get_efficacy_indicator("},{"line_number":991,"context_line":"            context, fieldname\u003d\"id\", value\u003defficacy_indicator_id)"},{"line_number":992,"context_line":""},{"line_number":993,"context_line":"    def get_efficacy_indicator_by_uuid(self, context, efficacy_indicator_uuid):"},{"line_number":994,"context_line":"        return self._get_efficacy_indicator("},{"line_number":995,"context_line":"            context, fieldname\u003d\"uuid\", value\u003defficacy_indicator_uuid)"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"    def get_efficacy_indicator_by_name(self, context, efficacy_indicator_name):"},{"line_number":998,"context_line":"        return self._get_efficacy_indicator("},{"line_number":999,"context_line":"            context, fieldname\u003d\"name\", value\u003defficacy_indicator_name)"},{"line_number":1000,"context_line":""},{"line_number":1001,"context_line":"    def update_efficacy_indicator(self, efficacy_indicator_id, values):"},{"line_number":1002,"context_line":"        if \u0027uuid\u0027 in values:"},{"line_number":1003,"context_line":"            raise exception.Invalid("},{"line_number":1004,"context_line":"                message\u003d_(\"Cannot overwrite UUID for an existing \""},{"line_number":1005,"context_line":"                          \"efficacy indicator.\"))"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"        try:"},{"line_number":1008,"context_line":"            return self._update("},{"line_number":1009,"context_line":"                models.EfficacyIndicator, efficacy_indicator_id, values)"},{"line_number":1010,"context_line":"        except exception.ResourceNotFound:"},{"line_number":1011,"context_line":"            raise exception.EfficacyIndicatorNotFound("},{"line_number":1012,"context_line":"                efficacy_indicator\u003defficacy_indicator_id)"},{"line_number":1013,"context_line":""},{"line_number":1014,"context_line":"    def soft_delete_efficacy_indicator(self, efficacy_indicator_id):"},{"line_number":1015,"context_line":"        try:"},{"line_number":1016,"context_line":"            self._soft_delete(models.EfficacyIndicator, efficacy_indicator_id)"},{"line_number":1017,"context_line":"        except exception.ResourceNotFound:"},{"line_number":1018,"context_line":"            raise exception.EfficacyIndicatorNotFound("},{"line_number":1019,"context_line":"                efficacy_indicator\u003defficacy_indicator_id)"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def destroy_efficacy_indicator(self, efficacy_indicator_id):"},{"line_number":1022,"context_line":"        try:"},{"line_number":1023,"context_line":"            return self._destroy("},{"line_number":1024,"context_line":"                models.EfficacyIndicator, efficacy_indicator_id)"},{"line_number":1025,"context_line":"        except exception.ResourceNotFound:"},{"line_number":1026,"context_line":"            raise exception.EfficacyIndicatorNotFound("},{"line_number":1027,"context_line":"                efficacy_indicator\u003defficacy_indicator_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_536c8fcf","side":"PARENT","line":1027,"range":{"start_line":955,"start_character":0,"end_line":1027,"end_character":57},"updated":"2016-07-01 07:27:29.000000000","message":"Ditto","commit_id":"ec64203bee32838a6ede78a30f94548209430d46"}]}
