)]}'
{"devstack/files/monasca-notification/notification.yaml":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"8277358d165726bdef2f9e60cb587bda2259ac55","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":5,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"1a122d0e_ba1460e9","line":2,"range":{"start_line":2,"start_character":16,"end_line":2,"end_character":20},"updated":"2016-05-03 19:23:55.000000000","message":"copyright","commit_id":"ff0560b33eb548745cb190a4e1589e8b7443b14a"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c145272b5813253f896deb920853ab6a78529d8e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    alarm_topic: \"alarm-state-transitions\""},{"line_number":22,"context_line":"    notification_topic: \"alarm-notifications\""},{"line_number":23,"context_line":"    notification_retry_topic: \"retry-notifications\""},{"line_number":24,"context_line":"    periodic:"},{"line_number":25,"context_line":"        1: 60-seconds-notifications"},{"line_number":26,"context_line":"    max_offset_lag: 600  # In seconds, undefined for none"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":18,"id":"bab6814e_b5954288","line":24,"range":{"start_line":24,"start_character":4,"end_line":24,"end_character":12},"updated":"2016-05-20 03:05:24.000000000","message":"I would prefer calling this periodic_notification_topics, similar to the comment I left for Joe in the Notification Engine.","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c145272b5813253f896deb920853ab6a78529d8e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    notification_topic: \"alarm-notifications\""},{"line_number":23,"context_line":"    notification_retry_topic: \"retry-notifications\""},{"line_number":24,"context_line":"    periodic:"},{"line_number":25,"context_line":"        1: 60-seconds-notifications"},{"line_number":26,"context_line":"    max_offset_lag: 600  # In seconds, undefined for none"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"mysql:"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"bab6814e_953f5e86","line":25,"range":{"start_line":25,"start_character":11,"end_line":25,"end_character":13},"updated":"2016-05-20 03:05:24.000000000","message":"See, https://review.openstack.org/#/c/296813/13/notification.yaml, but Joe has named the key, using the same as the number of seconds. \n\nI think that is a good convention that I\u0027m wondering if we should follow here too.","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"ebf6a68bca5a426e239f6f5711bd488ae85aed66","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    notification_topic: \"alarm-notifications\""},{"line_number":23,"context_line":"    notification_retry_topic: \"retry-notifications\""},{"line_number":24,"context_line":"    periodic:"},{"line_number":25,"context_line":"        1: 60-seconds-notifications"},{"line_number":26,"context_line":"    max_offset_lag: 600  # In seconds, undefined for none"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"mysql:"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"bab6814e_c5c0fc52","line":25,"range":{"start_line":25,"start_character":11,"end_line":25,"end_character":13},"in_reply_to":"bab6814e_953f5e86","updated":"2016-05-20 14:24:05.000000000","message":"fine with me will change","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c145272b5813253f896deb920853ab6a78529d8e","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    url: \"127.0.0.1:2181\""},{"line_number":70,"context_line":"    notification_path: \"/notification/alarms\""},{"line_number":71,"context_line":"    notification_retry_path: \"/notification/retry\""},{"line_number":72,"context_line":"    periodic_path:"},{"line_number":73,"context_line":"        1: /notification/60_seconds"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"logging: # Used in logging.dictConfig"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"bab6814e_75f63afa","line":72,"range":{"start_line":72,"start_character":4,"end_line":72,"end_character":17},"updated":"2016-05-20 03:05:24.000000000","message":"same comment as up above","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c145272b5813253f896deb920853ab6a78529d8e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    notification_path: \"/notification/alarms\""},{"line_number":71,"context_line":"    notification_retry_path: \"/notification/retry\""},{"line_number":72,"context_line":"    periodic_path:"},{"line_number":73,"context_line":"        1: /notification/60_seconds"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"logging: # Used in logging.dictConfig"},{"line_number":76,"context_line":"    version: 1"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"bab6814e_15540ec8","line":73,"range":{"start_line":73,"start_character":12,"end_line":73,"end_character":24},"updated":"2016-05-20 03:05:24.000000000","message":"same comment as up above.","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"ebf6a68bca5a426e239f6f5711bd488ae85aed66","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    notification_path: \"/notification/alarms\""},{"line_number":71,"context_line":"    notification_retry_path: \"/notification/retry\""},{"line_number":72,"context_line":"    periodic_path:"},{"line_number":73,"context_line":"        1: /notification/60_seconds"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"logging: # Used in logging.dictConfig"},{"line_number":76,"context_line":"    version: 1"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"bab6814e_a59df867","line":73,"range":{"start_line":73,"start_character":12,"end_line":73,"end_character":24},"in_reply_to":"bab6814e_15540ec8","updated":"2016-05-20 14:24:05.000000000","message":"will change","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"}],"devstack/files/schema/mon_mysql.sql":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"83d6fba2b8ecd7fc61df2a23c70962c92eb26a1e","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  `name` varchar(250) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":142,"context_line":"  `type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":143,"context_line":"  `address` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":144,"context_line":"  `periodic_interval` int NOT NULL,"},{"line_number":145,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":146,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":147,"context_line":"  PRIMARY KEY (`id`),"}],"source_content_type":"text/x-sql","patch_set":13,"id":"1a122d0e_00721e11","line":144,"range":{"start_line":144,"start_character":3,"end_line":144,"end_character":20},"updated":"2016-05-04 15:52:37.000000000","message":"Isn\u0027t interval per definition periodic? Wouldn\u0027t \u0027interval\u0027 be a better column name?","commit_id":"7c3c1fe06d965ac35f2ab1a71ad878fb7c79cabe"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"878c0b9576f29271a5b87eec8c5215e88164cbcb","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  `name` varchar(250) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":142,"context_line":"  `type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":143,"context_line":"  `address` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":144,"context_line":"  `periodic_interval` int NOT NULL,"},{"line_number":145,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":146,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":147,"context_line":"  PRIMARY KEY (`id`),"}],"source_content_type":"text/x-sql","patch_set":13,"id":"1a122d0e_5fa7c80a","line":144,"range":{"start_line":144,"start_character":3,"end_line":144,"end_character":20},"in_reply_to":"1a122d0e_00721e11","updated":"2016-05-04 18:44:51.000000000","message":"i would be fine with that. I know roland was thinking just \u0027period\u0027. Would like to get other people\u0027s opinions on this.","commit_id":"7c3c1fe06d965ac35f2ab1a71ad878fb7c79cabe"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"262da8196363931131105cc215092afa17161fd1","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  `name` varchar(250) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":142,"context_line":"  `type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":143,"context_line":"  `address` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":144,"context_line":"  `periodic_interval` int NOT NULL,"},{"line_number":145,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":146,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":147,"context_line":"  PRIMARY KEY (`id`),"}],"source_content_type":"text/x-sql","patch_set":13,"id":"1a122d0e_6c7e5f1c","line":144,"range":{"start_line":144,"start_character":3,"end_line":144,"end_character":20},"in_reply_to":"1a122d0e_26e9281b","updated":"2016-05-04 20:40:27.000000000","message":"interval for me as well works fine.","commit_id":"7c3c1fe06d965ac35f2ab1a71ad878fb7c79cabe"},{"author":{"_account_id":14273,"name":"Joe Keen","email":"joe.keen@hpe.com","username":"jkeen"},"change_message_id":"233c3f6c447a9edf5b842d8b8785071f349c5f8a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  `name` varchar(250) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":142,"context_line":"  `type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":143,"context_line":"  `address` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":144,"context_line":"  `periodic_interval` int NOT NULL,"},{"line_number":145,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":146,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":147,"context_line":"  PRIMARY KEY (`id`),"}],"source_content_type":"text/x-sql","patch_set":13,"id":"1a122d0e_26e9281b","line":144,"range":{"start_line":144,"start_character":3,"end_line":144,"end_character":20},"in_reply_to":"1a122d0e_5fa7c80a","updated":"2016-05-04 19:31:56.000000000","message":"I like interval better.","commit_id":"7c3c1fe06d965ac35f2ab1a71ad878fb7c79cabe"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c145272b5813253f896deb920853ab6a78529d8e","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  `name` varchar(250) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":142,"context_line":"  `type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":143,"context_line":"  `address` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":144,"context_line":"  `period` int NOT NULL,"},{"line_number":145,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":146,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":147,"context_line":"  PRIMARY KEY (`id`),"}],"source_content_type":"text/x-sql","patch_set":18,"id":"bab6814e_7512ba0a","line":144,"range":{"start_line":144,"start_character":11,"end_line":144,"end_character":14},"updated":"2016-05-20 03:05:24.000000000","message":"Do you want to consider supplying a default value of 0?","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"c4f4dd319b26fc5def102a02fb12c5a24dcc68d4","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  `name` varchar(250) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":142,"context_line":"  `type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":143,"context_line":"  `address` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":144,"context_line":"  `period` int NOT NULL,"},{"line_number":145,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":146,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":147,"context_line":"  PRIMARY KEY (`id`),"}],"source_content_type":"text/x-sql","patch_set":18,"id":"bab6814e_8ae0dcfb","line":144,"range":{"start_line":144,"start_character":11,"end_line":144,"end_character":14},"in_reply_to":"bab6814e_7512ba0a","updated":"2016-05-20 03:59:59.000000000","message":"I think that is needed with NOT NULL clause.","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"ebf6a68bca5a426e239f6f5711bd488ae85aed66","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  `name` varchar(250) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":142,"context_line":"  `type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":143,"context_line":"  `address` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":144,"context_line":"  `period` int NOT NULL,"},{"line_number":145,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":146,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":147,"context_line":"  PRIMARY KEY (`id`),"}],"source_content_type":"text/x-sql","patch_set":18,"id":"bab6814e_25ae2881","line":144,"range":{"start_line":144,"start_character":11,"end_line":144,"end_character":14},"in_reply_to":"bab6814e_8ae0dcfb","updated":"2016-05-20 14:24:05.000000000","message":"Will add default value","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"}],"devstack/plugin.sh":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"8277358d165726bdef2f9e60cb587bda2259ac55","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP"},{"line_number":3,"context_line":"# Copyright 2016 FUJITSU LIMITED"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"}],"source_content_type":"text/x-sh","patch_set":12,"id":"1a122d0e_5adc2c46","line":2,"range":{"start_line":2,"start_character":16,"end_line":2,"end_character":20},"updated":"2016-05-03 19:23:55.000000000","message":"copyright","commit_id":"ff0560b33eb548745cb190a4e1589e8b7443b14a"}],"docs/monasca-api-spec.md":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c145272b5813253f896deb920853ab6a78529d8e","unresolved":false,"context_lines":[{"line_number":1365,"context_line":"* name (string(250), required) - A descriptive name of the notification method."},{"line_number":1366,"context_line":"* type (string(100), required) - The type of notification method (`EMAIL`, `WEBHOOK`, or `PAGERDUTY` )."},{"line_number":1367,"context_line":"* address (string(100), required) - The email/url address to notify."},{"line_number":1368,"context_line":"* period (integer, optional) - The interval in seconds to continually send the notification again. Only can be set as a non zero value for WEBHOOK methods. Allowed periods for Webhooks are 0, 60. The notification will continue to be sent at the defined interval until the alarm it is associated with changes state. "},{"line_number":1369,"context_line":""},{"line_number":1370,"context_line":"#### Request Examples"},{"line_number":1371,"context_line":"```"}],"source_content_type":"text/x-markdown","patch_set":18,"id":"bab6814e_15f08ec8","line":1368,"range":{"start_line":1368,"start_character":35,"end_line":1368,"end_character":43},"updated":"2016-05-20 03:05:24.000000000","message":"The interval in seconds to periodically send the notification.","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"}],"java/src/main/java/monasca/api/app/command/CreateNotificationMethodCommand.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"d362d009fadbde0a5237504f0317227aad02b9ae","unresolved":false,"context_lines":[{"line_number":29,"context_line":"  @NotEmpty"},{"line_number":30,"context_line":"  @Size(min \u003d 1, max \u003d 512)"},{"line_number":31,"context_line":"  public String address;"},{"line_number":32,"context_line":"  public String periodicInterval;"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"  public CreateNotificationMethodCommand() {this.periodicInterval \u003d \"0\";}"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-java","patch_set":8,"id":"1a122d0e_7f9f2403","line":32,"range":{"start_line":32,"start_character":9,"end_line":32,"end_character":15},"updated":"2016-04-25 22:17:58.000000000","message":"This is really an int, it shouldn\u0027t be stored as a String","commit_id":"a2db46c0a2975dee042dd62f426ecd6ffc3d6e29"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c145272b5813253f896deb920853ab6a78529d8e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  }"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  @Override"},{"line_number":44,"context_line":"  public boolean equals(Object obj) {"},{"line_number":45,"context_line":"    if (this \u003d\u003d obj)"},{"line_number":46,"context_line":"      return true;"},{"line_number":47,"context_line":"    if (obj \u003d\u003d null)"}],"source_content_type":"text/x-java","patch_set":18,"id":"bab6814e_d5cc466c","line":44,"range":{"start_line":44,"start_character":17,"end_line":44,"end_character":23},"updated":"2016-05-20 03:05:24.000000000","message":"This seems like a problem that already exists, but if equals if overridden, then hashCode should be too, otherwise it is a violation of the contract.\n\nA common source of bugs is the failure to override the hashCode method. You must override hashCode in every class that overrides equals. Failure to do so will result in a violation of the general contract for Object.hashCode, which will prevent your class from functioning properly in conjunction with all hash-based collections, including HashMap, HashSet, and Hashtable.\n\n\nThe key provision that is violated when you fail to override hashCode is the second one: equal objects must have equal hash codes.","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"ebf6a68bca5a426e239f6f5711bd488ae85aed66","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  }"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  @Override"},{"line_number":44,"context_line":"  public boolean equals(Object obj) {"},{"line_number":45,"context_line":"    if (this \u003d\u003d obj)"},{"line_number":46,"context_line":"      return true;"},{"line_number":47,"context_line":"    if (obj \u003d\u003d null)"}],"source_content_type":"text/x-java","patch_set":18,"id":"bab6814e_658b10c4","line":44,"range":{"start_line":44,"start_character":17,"end_line":44,"end_character":23},"in_reply_to":"bab6814e_d5cc466c","updated":"2016-05-20 14:24:05.000000000","message":"Good catch, I will add in the hash codes for the notification commands this one and the update notification command","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"}],"java/src/main/java/monasca/api/app/command/UpdateNotificationMethodCommand.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"d362d009fadbde0a5237504f0317227aad02b9ae","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/*"},{"line_number":2,"context_line":" * (C) Copyright 2014-2016 Hewlett Packard Enterprise Development Company LP"},{"line_number":3,"context_line":" *"},{"line_number":4,"context_line":" * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except"},{"line_number":5,"context_line":" * in compliance with the License. You may obtain a copy of the License at"}],"source_content_type":"text/x-java","patch_set":8,"id":"1a122d0e_9f84c0b1","line":2,"range":{"start_line":2,"start_character":17,"end_line":2,"end_character":21},"updated":"2016-04-25 22:17:58.000000000","message":"If this is a new file, why does it have a 2014 copyright?","commit_id":"a2db46c0a2975dee042dd62f426ecd6ffc3d6e29"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"d362d009fadbde0a5237504f0317227aad02b9ae","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    @Size(min \u003d 1, max \u003d 512)"},{"line_number":31,"context_line":"    public String address;"},{"line_number":32,"context_line":"    @NotNull"},{"line_number":33,"context_line":"    public String periodicInterval;"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    public UpdateNotificationMethodCommand() {}"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-java","patch_set":8,"id":"1a122d0e_ff9334f8","line":33,"range":{"start_line":33,"start_character":11,"end_line":33,"end_character":17},"updated":"2016-04-25 22:17:58.000000000","message":"Should be an int","commit_id":"a2db46c0a2975dee042dd62f426ecd6ffc3d6e29"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c145272b5813253f896deb920853ab6a78529d8e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    }"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @Override"},{"line_number":45,"context_line":"    public boolean equals(Object obj) {"},{"line_number":46,"context_line":"        if (this \u003d\u003d obj)"},{"line_number":47,"context_line":"            return true;"},{"line_number":48,"context_line":"        if (obj \u003d\u003d null)"}],"source_content_type":"text/x-java","patch_set":18,"id":"bab6814e_75a2ba4c","line":45,"range":{"start_line":45,"start_character":11,"end_line":45,"end_character":18},"updated":"2016-05-20 03:05:24.000000000","message":"hashCode needs to be implemented. I wonder how many classes this isn\u0027t being done for?\n\nAlso, maybe we should look into using, http://stackoverflow.com/questions/27581/what-issues-should-be-considered-when-overriding-equals-and-hashcode-in-java","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"ebf6a68bca5a426e239f6f5711bd488ae85aed66","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    }"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @Override"},{"line_number":45,"context_line":"    public boolean equals(Object obj) {"},{"line_number":46,"context_line":"        if (this \u003d\u003d obj)"},{"line_number":47,"context_line":"            return true;"},{"line_number":48,"context_line":"        if (obj \u003d\u003d null)"}],"source_content_type":"text/x-java","patch_set":18,"id":"bab6814e_2542a868","line":45,"range":{"start_line":45,"start_character":11,"end_line":45,"end_character":18},"in_reply_to":"bab6814e_75a2ba4c","updated":"2016-05-20 14:24:05.000000000","message":"will override the hashcode method and I will make sure all classes that have equals overridden has the hashcode method overwritten","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"}],"java/src/main/java/monasca/api/app/validation/NotificationMethodValidation.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"d362d009fadbde0a5237504f0317227aad02b9ae","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"public class NotificationMethodValidation {"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    private static final List\u003cInteger\u003e VALID_PERIODIC_INTERVALS \u003d Arrays.asList(0 ,1);"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    public static void validate(NotificationMethodType type, String address, String periodicInterval) {"},{"line_number":30,"context_line":"        int convertedPeriodicInterval \u003d Validation.parseAndValidateNumber(periodicInterval, \"periodic_interval\");"}],"source_content_type":"text/x-java","patch_set":8,"id":"1a122d0e_1fbf1061","line":27,"range":{"start_line":27,"start_character":81,"end_line":27,"end_character":83},"updated":"2016-04-25 22:17:58.000000000","message":"formatting","commit_id":"a2db46c0a2975dee042dd62f426ecd6ffc3d6e29"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"d362d009fadbde0a5237504f0317227aad02b9ae","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            } break;"},{"line_number":44,"context_line":"            case PAGERDUTY : {"},{"line_number":45,"context_line":"                if (convertedPeriodicInterval !\u003d 0)"},{"line_number":46,"context_line":"                    throw Exceptions.unprocessableEntity(\"Periodic interval can only be set with webhooks\");"},{"line_number":47,"context_line":"            } break;"},{"line_number":48,"context_line":"        }"},{"line_number":49,"context_line":"        if (!VALID_PERIODIC_INTERVALS.contains(convertedPeriodicInterval)){"}],"source_content_type":"text/x-java","patch_set":8,"id":"1a122d0e_dfa59847","line":46,"range":{"start_line":46,"start_character":20,"end_line":46,"end_character":108},"updated":"2016-04-25 22:17:58.000000000","message":"Same exception as above, don\u0027t have duplicates","commit_id":"a2db46c0a2975dee042dd62f426ecd6ffc3d6e29"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c145272b5813253f896deb920853ab6a78529d8e","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"public class NotificationMethodValidation {"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    private static final List\u003cInteger\u003e VALID_PERIODS \u003d Arrays.asList(0, 60);"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    public static void validate(NotificationMethodType type, String address, String period) {"},{"line_number":30,"context_line":"        int convertedPeriod \u003d Validation.parseAndValidateNumber(period, \"period\");"}],"source_content_type":"text/x-java","patch_set":18,"id":"bab6814e_f52a2a8f","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":11},"updated":"2016-05-20 03:05:24.000000000","message":"I was assuming based on the discussions we had, that this wouldn\u0027t be hard-coded and based on the periods specified in the config/yaml file.","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"ebf6a68bca5a426e239f6f5711bd488ae85aed66","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"public class NotificationMethodValidation {"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    private static final List\u003cInteger\u003e VALID_PERIODS \u003d Arrays.asList(0, 60);"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    public static void validate(NotificationMethodType type, String address, String period) {"},{"line_number":30,"context_line":"        int convertedPeriod \u003d Validation.parseAndValidateNumber(period, \"period\");"}],"source_content_type":"text/x-java","patch_set":18,"id":"bab6814e_0547a477","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":11},"in_reply_to":"bab6814e_f52a2a8f","updated":"2016-05-20 14:24:05.000000000","message":"that is what we are doing, Just have not put up the changes yet for it","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"}],"java/src/main/java/monasca/api/domain/model/notificationmethod/NotificationMethod.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"d362d009fadbde0a5237504f0317227aad02b9ae","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    return periodicInterval;"},{"line_number":88,"context_line":"  }"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  @Override"},{"line_number":92,"context_line":"  public int hashCode() {"},{"line_number":93,"context_line":"    final int prime \u003d 31;"}],"source_content_type":"text/x-java","patch_set":8,"id":"1a122d0e_bf77fcd2","line":90,"updated":"2016-04-25 22:17:58.000000000","message":"too many blank lines","commit_id":"a2db46c0a2975dee042dd62f426ecd6ffc3d6e29"}],"java/src/main/resources/api-config.yml":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"392a35e971f20fd862b4a25b9364fa823a9a9fdf","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# Valid periods for notification"},{"line_number":18,"context_line":"validNotificationPeriods:"},{"line_number":19,"context_line":"  - 60"},{"line_number":20,"context_line":"  - 150"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"kafka:"},{"line_number":23,"context_line":"  brokerUris:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"7aa08908_f375d431","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":7},"updated":"2016-06-08 15:56:56.000000000","message":"I thought 60 was the only valid one?","commit_id":"bf15151240a1b918a8e84d8f0555504da961dc7d"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"f7c3c1e3f3a40cd5834558fe86fed609ad6404b4","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# Valid periods for notification"},{"line_number":18,"context_line":"validNotificationPeriods:"},{"line_number":19,"context_line":"  - 60"},{"line_number":20,"context_line":"  - 150"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"kafka:"},{"line_number":23,"context_line":"  brokerUris:"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"7aa08908_2ee7ee40","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":7},"in_reply_to":"7aa08908_f375d431","updated":"2016-06-08 16:55:41.000000000","message":"it is in our case, but we made it configureable in terms of what they want to set it to. 150 is here as i think i was testing if we added another period we behaved correctly on devstack. It needs to be removed i can do that real quick","commit_id":"bf15151240a1b918a8e84d8f0555504da961dc7d"}],"java/src/test/java/monasca/api/domain/model/NotificationMethodTest.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"d362d009fadbde0a5237504f0317227aad02b9ae","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  public NotificationMethodTest() {"},{"line_number":33,"context_line":"    notificationMethod \u003d"},{"line_number":34,"context_line":"        new NotificationMethod(\"123\", \"MyEmail\", NotificationMethodType.EMAIL, \"a@b\", 0);"},{"line_number":35,"context_line":"    notificationMethod.setLinks(Arrays.asList(new Link(\"self\","},{"line_number":36,"context_line":"        \"https://cloudsvc.example.com/v1.0\")));"},{"line_number":37,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":8,"id":"1a122d0e_9f59605e","line":34,"range":{"start_line":34,"start_character":86,"end_line":34,"end_character":87},"updated":"2016-04-25 22:17:58.000000000","message":"1 is a better test","commit_id":"a2db46c0a2975dee042dd62f426ecd6ffc3d6e29"}],"java/src/test/java/monasca/api/resource/NotificationMethodResourceTest.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"d362d009fadbde0a5237504f0317227aad02b9ae","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    notificationMethod \u003d"},{"line_number":50,"context_line":"        new NotificationMethod(\"123\", \"Joe\u0027s Email\", NotificationMethodType.EMAIL, \"a@b\", 0);"},{"line_number":51,"context_line":"    notificationMethodWebhook \u003d"},{"line_number":52,"context_line":"        new NotificationMethod(\"1234\", \"MyWh\", NotificationMethodType.WEBHOOK, \"http://localhost\", 0);"},{"line_number":53,"context_line":"    notificationMethodPagerduty \u003d"},{"line_number":54,"context_line":"        new NotificationMethod(\"12345\", \"MyPd\", NotificationMethodType.PAGERDUTY, \"nzH2LVRdMzun11HNC2oD\", 0);"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-java","patch_set":8,"id":"1a122d0e_bf253cc3","line":52,"range":{"start_line":52,"start_character":99,"end_line":52,"end_character":100},"updated":"2016-04-25 22:17:58.000000000","message":"Set it to 1, test more cases","commit_id":"a2db46c0a2975dee042dd62f426ecd6ffc3d6e29"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"d362d009fadbde0a5237504f0317227aad02b9ae","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    repo \u003d mock(NotificationMethodRepo.class);"},{"line_number":57,"context_line":"    when(repo.create(eq(\"abc\"), eq(\"MyEmail\"), eq(NotificationMethodType.EMAIL), anyString(), eq(0)))"},{"line_number":58,"context_line":"        .thenReturn(notificationMethod);"},{"line_number":59,"context_line":"    when(repo.create(eq(\"abc\"), eq(\"MyWh\"), eq(NotificationMethodType.WEBHOOK), anyString(), anyInt()))"},{"line_number":60,"context_line":"        .thenReturn(notificationMethodWebhook);"},{"line_number":61,"context_line":"    when(repo.create(eq(\"abc\"), eq(\"MyPd\"), eq(NotificationMethodType.PAGERDUTY), anyString(), eq(0)))"},{"line_number":62,"context_line":"        .thenReturn(notificationMethodPagerduty);"}],"source_content_type":"text/x-java","patch_set":8,"id":"1a122d0e_9f2040b2","line":59,"range":{"start_line":59,"start_character":93,"end_line":59,"end_character":101},"updated":"2016-04-25 22:17:58.000000000","message":"eq(1) if you do the above","commit_id":"a2db46c0a2975dee042dd62f426ecd6ffc3d6e29"}],"java/src/test/resources/monasca/api/infrastructure/persistence/mysql/notification_method.sql":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"d362d009fadbde0a5237504f0317227aad02b9ae","unresolved":false,"context_lines":[{"line_number":4,"context_line":"  `name` varchar(250) NOT NULL DEFAULT \u0027\u0027,"},{"line_number":5,"context_line":"  `type` varchar(10) NOT NULL DEFAULT \u0027EMAIL\u0027 check type in (\u0027EMAIL\u0027, \u0027WEBHOOK\u0027, \u0027PAGERDUTY\u0027),"},{"line_number":6,"context_line":"  `address` varchar(100) NOT NULL DEFAULT \u0027\u0027,"},{"line_number":7,"context_line":"  `periodic_interval` tinyint NOT NULL DEFAULT 0,"},{"line_number":8,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":9,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":10,"context_line":"  PRIMARY KEY (`id`)"}],"source_content_type":"text/x-sql","patch_set":8,"id":"1a122d0e_5f150847","line":7,"range":{"start_line":7,"start_character":22,"end_line":7,"end_character":29},"updated":"2016-04-25 22:17:58.000000000","message":"What is the max value of tinyint? Seems like it is not worth limiting it. There are few of these created","commit_id":"a2db46c0a2975dee042dd62f426ecd6ffc3d6e29"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c145272b5813253f896deb920853ab6a78529d8e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"  `name` varchar(250) NOT NULL DEFAULT \u0027\u0027,"},{"line_number":5,"context_line":"  `type` varchar(10) NOT NULL DEFAULT \u0027EMAIL\u0027 check type in (\u0027EMAIL\u0027, \u0027WEBHOOK\u0027, \u0027PAGERDUTY\u0027),"},{"line_number":6,"context_line":"  `address` varchar(100) NOT NULL DEFAULT \u0027\u0027,"},{"line_number":7,"context_line":"  `period` int NOT NULL DEFAULT 0,"},{"line_number":8,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":9,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":10,"context_line":"  PRIMARY KEY (`id`)"}],"source_content_type":"text/x-sql","patch_set":18,"id":"bab6814e_87a8d5dc","line":7,"range":{"start_line":7,"start_character":19,"end_line":7,"end_character":23},"updated":"2016-05-20 03:05:24.000000000","message":"so, here you set the default to 0, but in the other sql file, it isn\u0027t\n\njust wondering if this should be the same in the other sql file?","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"ebf6a68bca5a426e239f6f5711bd488ae85aed66","unresolved":false,"context_lines":[{"line_number":4,"context_line":"  `name` varchar(250) NOT NULL DEFAULT \u0027\u0027,"},{"line_number":5,"context_line":"  `type` varchar(10) NOT NULL DEFAULT \u0027EMAIL\u0027 check type in (\u0027EMAIL\u0027, \u0027WEBHOOK\u0027, \u0027PAGERDUTY\u0027),"},{"line_number":6,"context_line":"  `address` varchar(100) NOT NULL DEFAULT \u0027\u0027,"},{"line_number":7,"context_line":"  `period` int NOT NULL DEFAULT 0,"},{"line_number":8,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":9,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":10,"context_line":"  PRIMARY KEY (`id`)"}],"source_content_type":"text/x-sql","patch_set":18,"id":"bab6814e_053e84d9","line":7,"range":{"start_line":7,"start_character":19,"end_line":7,"end_character":23},"in_reply_to":"bab6814e_87a8d5dc","updated":"2016-05-20 14:24:05.000000000","message":"it should be","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"}],"monasca_api/tests/sqlite_alarm.sql":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c145272b5813253f896deb920853ab6a78529d8e","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  `name` varchar(250) DEFAULT NULL,"},{"line_number":20,"context_line":"  `type` varchar(20) NOT NULL,"},{"line_number":21,"context_line":"  `address` varchar(512) DEFAULT NULL,"},{"line_number":22,"context_line":"  `period` int DEFAULT NULL,"},{"line_number":23,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":24,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":25,"context_line":"  PRIMARY KEY (`id`)"}],"source_content_type":"text/x-sql","patch_set":18,"id":"bab6814e_47f0adfe","line":22,"range":{"start_line":22,"start_character":3,"end_line":22,"end_character":9},"updated":"2016-05-20 03:05:24.000000000","message":"and here the default is null?","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"c4f4dd319b26fc5def102a02fb12c5a24dcc68d4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  `name` varchar(250) DEFAULT NULL,"},{"line_number":20,"context_line":"  `type` varchar(20) NOT NULL,"},{"line_number":21,"context_line":"  `address` varchar(512) DEFAULT NULL,"},{"line_number":22,"context_line":"  `period` int DEFAULT NULL,"},{"line_number":23,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":24,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":25,"context_line":"  PRIMARY KEY (`id`)"}],"source_content_type":"text/x-sql","patch_set":18,"id":"bab6814e_6ad5b81a","line":22,"range":{"start_line":22,"start_character":3,"end_line":22,"end_character":9},"in_reply_to":"bab6814e_47f0adfe","updated":"2016-05-20 03:59:59.000000000","message":"Maybe that\u0027s because","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"ebf6a68bca5a426e239f6f5711bd488ae85aed66","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  `name` varchar(250) DEFAULT NULL,"},{"line_number":20,"context_line":"  `type` varchar(20) NOT NULL,"},{"line_number":21,"context_line":"  `address` varchar(512) DEFAULT NULL,"},{"line_number":22,"context_line":"  `period` int DEFAULT NULL,"},{"line_number":23,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":24,"context_line":"  `updated_at` datetime NOT NULL,"},{"line_number":25,"context_line":"  PRIMARY KEY (`id`)"}],"source_content_type":"text/x-sql","patch_set":18,"id":"bab6814e_2510e858","line":22,"range":{"start_line":22,"start_character":3,"end_line":22,"end_character":9},"in_reply_to":"bab6814e_6ad5b81a","updated":"2016-05-20 14:24:05.000000000","message":"Did this wrong will make sure the schema is the same across","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"}],"monasca_api/tests/test_validation.py":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"8277358d165726bdef2f9e60cb587bda2259ac55","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        ex \u003d ve.exception"},{"line_number":298,"context_line":"        self.assertEqual(\"Address ftp://somedomain.com scheme is not in [\u0027http\u0027, \u0027https\u0027]\", ex.message)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    def test_validation_exception_for_webhook_invalid_periodic_interval(self):"},{"line_number":301,"context_line":"        notification \u003d {\"name\": \"MyWebhook\", \"type\": \"WEBHOOK\", \"address\": \"//somedomain.com\","},{"line_number":302,"context_line":"                        \"periodic_interval\": \"10\"}"},{"line_number":303,"context_line":"        with self.assertRaises(schemas_exceptions.ValidationException) as ve:"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_3da16a47","line":300,"range":{"start_line":300,"start_character":8,"end_line":300,"end_character":78},"updated":"2016-05-03 19:23:55.000000000","message":"Is there a test for a valid setting of periodic_interval?","commit_id":"ff0560b33eb548745cb190a4e1589e8b7443b14a"}],"monasca_api/v2/common/schemas/notifications_request_body_schema.py":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"8277358d165726bdef2f9e60cb587bda2259ac55","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"schemes \u003d [\u0027http\u0027, \u0027https\u0027]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"valid_periodic_intervals \u003d [0, 1]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"notification_schema \u003d {"},{"line_number":34,"context_line":"    Required(\u0027name\u0027): Schema(All(Any(str, unicode), Length(max\u003d250))),"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_5d6c2608","line":31,"range":{"start_line":31,"start_character":27,"end_line":31,"end_character":33},"updated":"2016-05-03 19:23:55.000000000","message":"Isn\u0027t this set in a config file somewhere? Will it always be only 1?","commit_id":"ff0560b33eb548745cb190a4e1589e8b7443b14a"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c145272b5813253f896deb920853ab6a78529d8e","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"schemes \u003d [\u0027http\u0027, \u0027https\u0027]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"valid_periods \u003d [0, 60]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"notification_schema \u003d {"},{"line_number":34,"context_line":"    Required(\u0027name\u0027): Schema(All(Any(str, unicode), Length(max\u003d250))),"}],"source_content_type":"text/x-python","patch_set":18,"id":"bab6814e_07ba250a","line":31,"range":{"start_line":31,"start_character":16,"end_line":31,"end_character":17},"updated":"2016-05-20 03:05:24.000000000","message":"I thought the valid periods were goin to be in the yamlconfig file?","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"e302d603d175dfa5c65aa1544c0a59f5aa35881f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        _validate_url(msg[\u0027address\u0027])"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    if notification_type !\u003d \u0027WEBHOOK\u0027 and msg[\u0027period\u0027] !\u003d 0:"},{"line_number":65,"context_line":"        raise exceptions.ValidationException(\"Period can only be set with webhooks\")"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"def _validate_email(address):"}],"source_content_type":"text/x-python","patch_set":18,"id":"dab17558_8297e8ea","line":65,"range":{"start_line":65,"start_character":25,"end_line":65,"end_character":44},"updated":"2016-05-17 04:32:55.000000000","message":"I am little confused. From documentation point of view it looks like period has a meaning only if notification method is webhook. Correct if I am wrong, but if that\u0027s the case, I think that any period parsing and validation makes sense only if webhook is used.\n\nPS. Same thinking goes for java.","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"c9bccdc1dae3ac34edf6315a26663dc3f1152b7f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        _validate_url(msg[\u0027address\u0027])"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    if notification_type !\u003d \u0027WEBHOOK\u0027 and msg[\u0027period\u0027] !\u003d 0:"},{"line_number":65,"context_line":"        raise exceptions.ValidationException(\"Period can only be set with webhooks\")"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"def _validate_email(address):"}],"source_content_type":"text/x-python","patch_set":18,"id":"dab17558_1b018705","line":65,"range":{"start_line":65,"start_character":25,"end_line":65,"end_character":44},"in_reply_to":"dab17558_8297e8ea","updated":"2016-05-17 14:10:17.000000000","message":"The reason why I validate that it is only zero and throw an error if it isnt for non webhook notifications is because i dont want the behavior of someone trying to set it to a non zero period expecting that it will be sent periodically  . I dont see any negatives of doing that and removes any confusion on the user side.","commit_id":"2a14276a0cf5f03a1acc5a6854772041abfe9c83"}],"monasca_tempest_tests/tests/api/test_notification_methods.py":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"392a35e971f20fd862b4a25b9364fa823a9a9fdf","unresolved":false,"context_lines":[{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    @test.attr(type\u003d\"gate\")"},{"line_number":627,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":628,"context_line":"    def test_update_webhook_notification_method_with_invalid_period(self):"},{"line_number":629,"context_line":"        name \u003d data_utils.rand_name(\u0027notification-\u0027)"},{"line_number":630,"context_line":"        notification \u003d helpers.create_notification(name\u003dname,"},{"line_number":631,"context_line":"                                                   type\u003d\u0027WEBHOOK\u0027,"}],"source_content_type":"text/x-python","patch_set":25,"id":"7aa08908_935c504c","line":628,"range":{"start_line":628,"start_character":8,"end_line":628,"end_character":67},"updated":"2016-06-08 15:56:56.000000000","message":"Is there a positive test for a web hook with period \u003d 60?","commit_id":"bf15151240a1b918a8e84d8f0555504da961dc7d"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"f7c3c1e3f3a40cd5834558fe86fed609ad6404b4","unresolved":false,"context_lines":[{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    @test.attr(type\u003d\"gate\")"},{"line_number":627,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":628,"context_line":"    def test_update_webhook_notification_method_with_invalid_period(self):"},{"line_number":629,"context_line":"        name \u003d data_utils.rand_name(\u0027notification-\u0027)"},{"line_number":630,"context_line":"        notification \u003d helpers.create_notification(name\u003dname,"},{"line_number":631,"context_line":"                                                   type\u003d\u0027WEBHOOK\u0027,"}],"source_content_type":"text/x-python","patch_set":25,"id":"7aa08908_2e81ae8f","line":628,"range":{"start_line":628,"start_character":8,"end_line":628,"end_character":67},"in_reply_to":"7aa08908_935c504c","updated":"2016-06-08 16:55:41.000000000","message":"i dont believe there is an individual test although we create one below with 60 and then update it. I can add another positive test for it.","commit_id":"bf15151240a1b918a8e84d8f0555504da961dc7d"}]}
