)]}'
{"releasenotes/notes/add_alarm_show_api-0b001dd185e2e523.yaml":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"8ef632e23f31fd272114ea1df3f8ec2b4464886f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Created a new API to show all alarm properties, with a mandatory parameter"},{"line_number":4,"context_line":"    vitrage_id of the alarm. The path for the api is ``/v1/alarm/_id_``."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f91af0f_cfc23286","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":3},"updated":"2018-01-03 10:03:16.000000000","message":"Please rename the file to \u0027support_alarm_show_api_...\u0027 and specify here that it is the backend support","commit_id":"4a4bd5b1f3c25603575cfe66912629b2de244cdc"}],"vitrage/api_handler/apis/alarm.py":[{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"68469f94da7df652de38181e882434420366a35f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        return json.dumps({\u0027alarms\u0027: [v.properties for v in alarms]})"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def show_alarm(self, ctx, vitrage_id):"},{"line_number":64,"context_line":"        LOG.debug(\u0027Show alarm with vitrage_id: %s\u0027, str(vitrage_id))"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        project_id \u003d ctx.get(self.TENANT_PROPERTY, None)"},{"line_number":67,"context_line":"        is_admin_project \u003d ctx.get(self.IS_ADMIN_PROJECT_PROPERTY, False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_f03fead3","line":64,"range":{"start_line":64,"start_character":52,"end_line":64,"end_character":55},"updated":"2018-01-02 12:32:22.000000000","message":"don\u0027t think you need it","commit_id":"364f3c518a4ed4e29d95148dea985f3593ca1588"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"68469f94da7df652de38181e882434420366a35f","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                \u0027Have no authority to get alarm with vitrage_id(%s)\u0027,"},{"line_number":80,"context_line":"                str(vitrage_id))"},{"line_number":81,"context_line":"        else:"},{"line_number":82,"context_line":"            LOG.warning(\u0027Can not find alarm (%s)\u0027, str(vitrage_id))"},{"line_number":83,"context_line":"        return None"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def get_alarm_counts(self, ctx, all_tenants):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_d03ae6e5","line":82,"range":{"start_line":82,"start_character":51,"end_line":82,"end_character":54},"updated":"2018-01-02 12:32:22.000000000","message":"don\u0027t think you need it","commit_id":"364f3c518a4ed4e29d95148dea985f3593ca1588"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"68469f94da7df652de38181e882434420366a35f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                str(vitrage_id))"},{"line_number":81,"context_line":"        else:"},{"line_number":82,"context_line":"            LOG.warning(\u0027Can not find alarm (%s)\u0027, str(vitrage_id))"},{"line_number":83,"context_line":"        return None"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def get_alarm_counts(self, ctx, all_tenants):"},{"line_number":86,"context_line":"        LOG.debug(\"AlarmApis get_alarm_counts - all_tenants\u003d%s\", all_tenants)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_10312e0c","line":83,"range":{"start_line":83,"start_character":15,"end_line":83,"end_character":19},"updated":"2018-01-02 12:32:22.000000000","message":"don\u0027t return None return empty dict","commit_id":"364f3c518a4ed4e29d95148dea985f3593ca1588"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"33ea5d3db89daf44f6a155cfb635a8e7ea690e27","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        alarm \u003d self.entity_graph.get_vertex(vitrage_id)"},{"line_number":70,"context_line":"        if alarm and alarm.get(VProps.VITRAGE_CATEGORY) \u003d\u003d ECategory.ALARM:"},{"line_number":71,"context_line":"            project \u003d alarm.get(VProps.PROJECT_ID)"},{"line_number":72,"context_line":"            if is_admin_project:"},{"line_number":73,"context_line":"                return json.dumps(alarm.properties)"},{"line_number":74,"context_line":"            else:"},{"line_number":75,"context_line":"                if project and project_id \u003d\u003d project:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_a11eecb7","line":72,"updated":"2018-01-03 02:14:13.000000000","message":"`project` seems not required for this condition.\n\nSuggest optimizing the condition branches to reduce the nesting levels. This may help to make the execution flow clearer.\n\n```\nis_admin_project \u003d ...\nalarm \u003d ...\n\nif is_admin_project:\n   return ...\n\nif not alarm or alarm.get(...) !\u003d ECategory.ALARM:\n   LOG.warning(...)\n   return None\n\n# handle condition for alarm in non admin project.\n...\n```","commit_id":"a14e687991dff353d658e99de94f60dbaf48da13"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"4f62d50e4c570bf084a950405e0939977afb3c9f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        alarm \u003d self.entity_graph.get_vertex(vitrage_id)"},{"line_number":70,"context_line":"        if alarm and alarm.get(VProps.VITRAGE_CATEGORY) \u003d\u003d ECategory.ALARM:"},{"line_number":71,"context_line":"            project \u003d alarm.get(VProps.PROJECT_ID)"},{"line_number":72,"context_line":"            if is_admin_project:"},{"line_number":73,"context_line":"                return json.dumps(alarm.properties)"},{"line_number":74,"context_line":"            else:"},{"line_number":75,"context_line":"                if project and project_id \u003d\u003d project:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_36069b88","line":72,"in_reply_to":"9f91af0f_a11eecb7","updated":"2018-01-03 08:03:31.000000000","message":"Done, thanks, it was a copy paste from resource show.\nNow fixed in both places.","commit_id":"a14e687991dff353d658e99de94f60dbaf48da13"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"8ef632e23f31fd272114ea1df3f8ec2b4464886f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        curr_project \u003d ctx.get(self.TENANT_PROPERTY, None)"},{"line_number":73,"context_line":"        alarm_project \u003d alarm.get(VProps.PROJECT_ID)"},{"line_number":74,"context_line":"        if not is_admin and curr_project !\u003d alarm_project:"},{"line_number":75,"context_line":"            LOG.warning(\u0027Authorization failed for alarm (%s)\u0027, vitrage_id)"},{"line_number":76,"context_line":"            return None"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        return json.dumps(alarm.properties)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_ef40560a","line":75,"range":{"start_line":75,"start_character":50,"end_line":75,"end_character":55},"updated":"2018-01-03 10:03:16.000000000","message":"alarm show","commit_id":"4a4bd5b1f3c25603575cfe66912629b2de244cdc"}],"vitrage/api_handler/apis/resource.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"8ef632e23f31fd272114ea1df3f8ec2b4464886f","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        curr_project \u003d ctx.get(self.TENANT_PROPERTY, None)"},{"line_number":71,"context_line":"        resource_project \u003d resource.get(VProps.PROJECT_ID)"},{"line_number":72,"context_line":"        if not is_admin and curr_project !\u003d resource_project:"},{"line_number":73,"context_line":"            LOG.warning(\u0027Authorization failed for resource (%s)\u0027, vitrage_id)"},{"line_number":74,"context_line":"            return None"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        return json.dumps(resource.properties)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_6f5446cb","line":73,"range":{"start_line":73,"start_character":50,"end_line":73,"end_character":58},"updated":"2018-01-03 10:03:16.000000000","message":"resource show","commit_id":"4a4bd5b1f3c25603575cfe66912629b2de244cdc"}],"vitrage/common/policies/alarms.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"9232bb7b7edd91dbc41483e7de29edd895f2628e","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"rules \u003d ["},{"line_number":18,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":19,"context_line":"        name\u003d\u0027get alarm\u0027,"},{"line_number":20,"context_line":"        check_str\u003dbase.UNPROTECTED,"},{"line_number":21,"context_line":"        description\u003d\u0027Show the details of specified alarm\u0027,"},{"line_number":22,"context_line":"        operations\u003d["}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_16bb57e2","line":19,"range":{"start_line":19,"start_character":8,"end_line":19,"end_character":24},"updated":"2018-01-03 07:50:25.000000000","message":"This policy is identical to the \u0027list alarms\u0027 except from its name. Is it ok?","commit_id":"a14e687991dff353d658e99de94f60dbaf48da13"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"9232bb7b7edd91dbc41483e7de29edd895f2628e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":19,"context_line":"        name\u003d\u0027get alarm\u0027,"},{"line_number":20,"context_line":"        check_str\u003dbase.UNPROTECTED,"},{"line_number":21,"context_line":"        description\u003d\u0027Show the details of specified alarm\u0027,"},{"line_number":22,"context_line":"        operations\u003d["},{"line_number":23,"context_line":"            {"},{"line_number":24,"context_line":"                \u0027path\u0027: \u0027/alarm\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_d6e3af04","line":21,"range":{"start_line":21,"start_character":41,"end_line":21,"end_character":50},"updated":"2018-01-03 07:50:25.000000000","message":"the specified","commit_id":"a14e687991dff353d658e99de94f60dbaf48da13"}]}
