)]}'
{"magnum/api/controllers/v1/cluster_template.py":[{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"c6539b0bdf6c2f207dd533a785c4276f42db556d","unresolved":false,"context_lines":[{"line_number":378,"context_line":"                                                 new_cluster_template.uuid)"},{"line_number":379,"context_line":"        return ClusterTemplate.convert_with_links(new_cluster_template)"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    @base.Controller.api_version(\"1.5\")"},{"line_number":382,"context_line":"    @expose.expose(ClusterTemplate, body\u003dClusterTemplate, status_code\u003d201)"},{"line_number":383,"context_line":"    @validation.enforce_cluster_driver()"},{"line_number":384,"context_line":"    @validation.enforce_network_driver_types_create()"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_2de60015","line":381,"updated":"2017-01-23 21:19:04.000000000","message":"./magnum/api/controllers/v1/cluster_template.py:381:5: F811 redefinition of unused \u0027post\u0027 from line 333","commit_id":"89143b0cf7fcada96af27777727992eb6b93ac88"},{"author":{"_account_id":20031,"name":"Mathieu Velten","email":"mathieu.velten@cern.ch","username":"MatMaul"},"change_message_id":"7c8b288a8cce950588ead9b6f50f859cfa1326dd","unresolved":false,"context_lines":[{"line_number":384,"context_line":"    @validation.enforce_network_driver_types_create()"},{"line_number":385,"context_line":"    @validation.enforce_volume_driver_types_create()"},{"line_number":386,"context_line":"    @validation.enforce_volume_storage_size_create()"},{"line_number":387,"context_line":"    def post(self, cluster_template):"},{"line_number":388,"context_line":"        \"\"\"Create a new ClusterTemplate."},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        :param cluster_template: a ClusterTemplate within the request body."}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_14015538","line":387,"updated":"2017-01-23 20:07:41.000000000","message":"Half of the code is common between the 2 post methods, can you either call on from the other or create a new method where to put the common code ?","commit_id":"89143b0cf7fcada96af27777727992eb6b93ac88"}],"magnum/api/validation.py":[{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"c6539b0bdf6c2f207dd533a785c4276f42db556d","unresolved":false,"context_lines":[{"line_number":222,"context_line":"def get_driver_validator(driver_name):"},{"line_number":223,"context_line":"    cluster_driver \u003d driver.Driver.get_driver(driver_name)"},{"line_number":224,"context_line":"    return cluster_driver.get_validator()"},{"line_number":225,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_2d1fe008","line":225,"updated":"2017-01-23 21:19:04.000000000","message":"./magnum/api/validation.py:225:1: W391 blank line at end of file","commit_id":"89143b0cf7fcada96af27777727992eb6b93ac88"}],"magnum/common/exception.py":[{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"291eca11df3ae00c273b251febe128f55bc9096e","unresolved":false,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"class ClusterDriverNotSupported(MagnumException):"},{"line_number":274,"context_line":"    message \u003d _(\"Cluster driver (%(cluster_driver)s not supported.\")"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"class RequiredParameterNotProvided(MagnumException):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_1251abd8","line":274,"range":{"start_line":274,"start_character":15,"end_line":274,"end_character":68},"updated":"2016-12-09 17:29:15.000000000","message":"Looks like this is missing a \u0027)\u0027","commit_id":"4919b8c5bf9cca6e27f0cbd5b87620539b34cc6d"},{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"822c86bf7b03e225aab9182a9544558287ae2810","unresolved":false,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"class ClusterDriverNotSupported(MagnumException):"},{"line_number":274,"context_line":"    message \u003d _(\"Cluster driver (%(cluster_driver)s not supported.\")"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"class RequiredParameterNotProvided(MagnumException):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_b2ce3781","line":274,"range":{"start_line":274,"start_character":14,"end_line":274,"end_character":68},"updated":"2016-12-09 17:30:30.000000000","message":"Looks like this is missing a \u0027)\u0027","commit_id":"cfa4c637078328c3f2b1f2fbf56167fdd21734f8"}],"magnum/drivers/common/driver.py":[{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"57eacaef88fd4a7d984982cfe2005a2bb267fcca","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            [driver_nameX, driver_nameY, driver_nameZ]"},{"line_number":55,"context_line":"        )"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        :return: tuple"},{"line_number":58,"context_line":"        \u0027\u0027\u0027"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        if not cls.definitions or not cls.drivers:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_78952285","line":57,"range":{"start_line":57,"start_character":17,"end_line":57,"end_character":22},"updated":"2016-12-15 18:52:16.000000000","message":"This is a bit more restrictive of an interface than a dict. In the future, I anticipate having more permutations of drivers, and may need more than a tuple to express them. Why not use a dict to begin with? I thought get_driver() returned the driver class anyway.","commit_id":"571a9870b8e4b4099bcd4598031f26cd1a327718"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"f210ca397a983322e0f3e6ae019922d2e01e8b6b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            [driver_nameX, driver_nameY, driver_nameZ]"},{"line_number":55,"context_line":"        )"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        :return: tuple"},{"line_number":58,"context_line":"        \u0027\u0027\u0027"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        if not cls.definitions or not cls.drivers:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_c6000237","line":57,"range":{"start_line":57,"start_character":17,"end_line":57,"end_character":22},"in_reply_to":"1a6eadb0_78952285","updated":"2016-12-16 10:04:48.000000000","message":"This tuple contains a dict and a list so, it doesn\u0027t restrict us.","commit_id":"571a9870b8e4b4099bcd4598031f26cd1a327718"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"03053c1599a458849dedeb57500923c3bd8cbefe","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            [driver_nameX, driver_nameY, driver_nameZ]"},{"line_number":55,"context_line":"        )"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        :return: tuple"},{"line_number":58,"context_line":"        \u0027\u0027\u0027"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        if not cls.definitions or not cls.drivers:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_92fc80b9","line":57,"range":{"start_line":57,"start_character":17,"end_line":57,"end_character":22},"in_reply_to":"1a6eadb0_c6000237","updated":"2016-12-16 10:37:27.000000000","message":"Also, this method is get_drivers which retrieves all the cluster drivers. get_driver_for_cluster, get_driver_by_cluster_type and and get_driver return a requested driver.","commit_id":"571a9870b8e4b4099bcd4598031f26cd1a327718"},{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"92e59a2966cd06fc3f42a1d2a93a3c4b5de9fa0b","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        if driver_name not in drivers:"},{"line_number":143,"context_line":"            raise exception.ClusterDriverNotSupported("},{"line_number":144,"context_line":"                cluster_driver\u003ddriver_name)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        return driver.DriverManager(\"magnum.drivers\", driver_name).driver()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_7341caa8","line":145,"updated":"2016-12-15 17:28:09.000000000","message":"what about the case where 2 drivers have the exact same name?","commit_id":"571a9870b8e4b4099bcd4598031f26cd1a327718"},{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"57eacaef88fd4a7d984982cfe2005a2bb267fcca","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        if driver_name not in drivers:"},{"line_number":143,"context_line":"            raise exception.ClusterDriverNotSupported("},{"line_number":144,"context_line":"                cluster_driver\u003ddriver_name)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        return driver.DriverManager(\"magnum.drivers\", driver_name).driver()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_d85f16e3","line":145,"in_reply_to":"1a6eadb0_7341caa8","updated":"2016-12-15 18:52:16.000000000","message":"Good question!","commit_id":"571a9870b8e4b4099bcd4598031f26cd1a327718"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"f210ca397a983322e0f3e6ae019922d2e01e8b6b","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        if driver_name not in drivers:"},{"line_number":143,"context_line":"            raise exception.ClusterDriverNotSupported("},{"line_number":144,"context_line":"                cluster_driver\u003ddriver_name)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        return driver.DriverManager(\"magnum.drivers\", driver_name).driver()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_1150720a","line":145,"in_reply_to":"1a6eadb0_d85f16e3","updated":"2016-12-16 10:04:48.000000000","message":"The driver name follows the entrypoint name. When you specify a name, in practice, you tell magnum which entrypoint to use. In python you can\u0027t have two entrypoints with same name in the same module. So two driver with the same name won\u0027t happen.","commit_id":"571a9870b8e4b4099bcd4598031f26cd1a327718"},{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"c6539b0bdf6c2f207dd533a785c4276f42db556d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import abc"},{"line_number":16,"context_line":"import itertools"},{"line_number":17,"context_line":"import six"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_edb6b8f7","line":16,"updated":"2017-01-23 21:19:04.000000000","message":"./magnum/drivers/common/driver.py:16:1: F401 \u0027itertools\u0027 imported but unused","commit_id":"89143b0cf7fcada96af27777727992eb6b93ac88"},{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"c6539b0bdf6c2f207dd533a785c4276f42db556d","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from stevedore import driver"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from magnum.common import exception"},{"line_number":25,"context_line":"from magnum.objects import cluster_template"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_2dcd2085","line":25,"updated":"2017-01-23 21:19:04.000000000","message":"./magnum/drivers/common/driver.py:25:1: F401 \u0027cluster_template\u0027 imported but unused","commit_id":"89143b0cf7fcada96af27777727992eb6b93ac88"}],"magnum/drivers/common/validators.py":[{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"c6539b0bdf6c2f207dd533a785c4276f42db556d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# limitations under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import magnum.conf"},{"line_number":15,"context_line":"from magnum.common import exception"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"CONF \u003d magnum.conf.CONF"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_cd573cc8","line":15,"updated":"2017-01-23 21:19:04.000000000","message":"2017-01-23 19:40:18.636880 | ./magnum/drivers/common/validators.py:15:1: H306  imports not in alphabetical order (magnum.conf, magnum.common.exception)","commit_id":"89143b0cf7fcada96af27777727992eb6b93ac88"},{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"c6539b0bdf6c2f207dd533a785c4276f42db556d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    def _validate_network_driver_supported(cls, driver):"},{"line_number":29,"context_line":"        \"\"\"Confirm that driver is supported by Magnum for this COE.\"\"\""},{"line_number":30,"context_line":"        if driver not in cls.supported_network_drivers:"},{"line_number":31,"context_line":"            raise exception.InvalidParameterValue(_("},{"line_number":32,"context_line":"                \u0027Network driver type %(driver)s is not supported, \u0027"},{"line_number":33,"context_line":"                \u0027expecting a %(supported_drivers)s network driver.\u0027) % {"},{"line_number":34,"context_line":"                    \u0027driver\u0027: driver,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_2d71a076","line":31,"updated":"2017-01-23 21:19:04.000000000","message":"./magnum/drivers/common/validators.py:31:13: M340  Found use of _() without explicit import of _ !","commit_id":"89143b0cf7fcada96af27777727992eb6b93ac88"},{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"c6539b0bdf6c2f207dd533a785c4276f42db556d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        \"\"\"Confirm that driver is allowed via configuration for this COE.\"\"\""},{"line_number":41,"context_line":"        if (\u0027all\u0027 not in cls.allowed_network_drivers and"},{"line_number":42,"context_line":"           driver not in cls.allowed_network_drivers):"},{"line_number":43,"context_line":"            raise exception.InvalidParameterValue(_("},{"line_number":44,"context_line":"                \u0027Network driver type %(driver)s is not allowed, \u0027"},{"line_number":45,"context_line":"                \u0027expecting a %(allowed_drivers)s network driver. \u0027) % {"},{"line_number":46,"context_line":"                    \u0027driver\u0027: driver,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_8d08d4db","line":43,"updated":"2017-01-23 21:19:04.000000000","message":"./magnum/drivers/common/validators.py:43:13: M340  Found use of _() without explicit import of _ !","commit_id":"89143b0cf7fcada96af27777727992eb6b93ac88"},{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"c6539b0bdf6c2f207dd533a785c4276f42db556d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def _validate_volume_driver_supported(cls, driver):"},{"line_number":56,"context_line":"        \"\"\"Confirm that volume driver is supported by Magnum for this COE.\"\"\""},{"line_number":57,"context_line":"        if driver not in cls.supported_volume_driver:"},{"line_number":58,"context_line":"            raise exception.InvalidParameterValue(_("},{"line_number":59,"context_line":"                \u0027Volume driver type %(driver)s is not supported, \u0027"},{"line_number":60,"context_line":"                \u0027expecting a %(supported_volume_driver)s volume driver.\u0027) % {"},{"line_number":61,"context_line":"                    \u0027driver\u0027: driver,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_ed115805","line":58,"updated":"2017-01-23 21:19:04.000000000","message":"./magnum/drivers/common/validators.py:58:13: M340  Found use of _() without explicit import of _ !","commit_id":"89143b0cf7fcada96af27777727992eb6b93ac88"},{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"c6539b0bdf6c2f207dd533a785c4276f42db556d","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    def _validate_server_type(cls, server_type):"},{"line_number":71,"context_line":"        \"\"\"Confirm that server type is supported by Magnum for this COE.\"\"\""},{"line_number":72,"context_line":"        if server_type not in cls.supported_server_types:"},{"line_number":73,"context_line":"            raise exception.InvalidParameterValue(_("},{"line_number":74,"context_line":"                \u0027Server type %(server_type)s is not supported, \u0027"},{"line_number":75,"context_line":"                \u0027expecting a %(supported_server_types)s server type.\u0027) % {"},{"line_number":76,"context_line":"                    \u0027server_type\u0027: server_type,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_6dfe48af","line":73,"updated":"2017-01-23 21:19:04.000000000","message":"./magnum/drivers/common/validators.py:73:13: M340  Found use of _() without explicit import of _ !","commit_id":"89143b0cf7fcada96af27777727992eb6b93ac88"},{"author":{"_account_id":668,"name":"Adrian Otto","email":"aotto@aotto.com","username":"aotto"},"change_message_id":"c6539b0bdf6c2f207dd533a785c4276f42db556d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                              mesos_default_network_driver)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    supported_volume_driver \u003d [\u0027rexray\u0027]"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5a3905b3_8d2ff43d","line":115,"updated":"2017-01-23 21:19:04.000000000","message":"./magnum/drivers/common/validators.py:115:1: W391 blank line at end of file","commit_id":"89143b0cf7fcada96af27777727992eb6b93ac88"}],"magnum/tests/unit/drivers/test_template_definition.py":[{"author":{"_account_id":21469,"name":"Jaycen Grant","email":"jaycen.v.grant@intel.com","username":"jvgrant"},"change_message_id":"92e59a2966cd06fc3f42a1d2a93a3c4b5de9fa0b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    @mock.patch(\u0027magnum.drivers.common.driver.Driver.get_driver\u0027)"},{"line_number":58,"context_line":"    def test_get_vm_atomic_kubernetes_definition(self, mock_driver):"},{"line_number":59,"context_line":"        mock_driver.return_value \u003d k8sa_dr.Driver()"},{"line_number":60,"context_line":"        cluster_driver \u003d driver.Driver.get_driver(\u0027k8s_fedora_atomic_v1\u0027)"},{"line_number":61,"context_line":"        definition \u003d cluster_driver.get_template_definition()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        self.assertIsInstance(definition,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_d3729e10","line":60,"updated":"2016-12-15 17:28:09.000000000","message":"Need to add tests for coverage of get_driver_by_cluster_type.","commit_id":"571a9870b8e4b4099bcd4598031f26cd1a327718"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"f210ca397a983322e0f3e6ae019922d2e01e8b6b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    @mock.patch(\u0027magnum.drivers.common.driver.Driver.get_driver\u0027)"},{"line_number":58,"context_line":"    def test_get_vm_atomic_kubernetes_definition(self, mock_driver):"},{"line_number":59,"context_line":"        mock_driver.return_value \u003d k8sa_dr.Driver()"},{"line_number":60,"context_line":"        cluster_driver \u003d driver.Driver.get_driver(\u0027k8s_fedora_atomic_v1\u0027)"},{"line_number":61,"context_line":"        definition \u003d cluster_driver.get_template_definition()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        self.assertIsInstance(definition,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_6c854dcd","line":60,"in_reply_to":"1a6eadb0_d3729e10","updated":"2016-12-16 10:04:48.000000000","message":"True, thanks!","commit_id":"571a9870b8e4b4099bcd4598031f26cd1a327718"}]}
