)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9591,"name":"Ton Ngo","email":"ton@us.ibm.com","username":"tango"},"change_message_id":"4b363b724fb54774dc40537cb05b374b6c5d2ada","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Adds network-driver and labels attributes to the"},{"line_number":10,"context_line":"magnum client."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements: blueprint extend-client-network-attributes"},{"line_number":13,"context_line":"Change-Id: Ie8465275646b82aa9bd7a9de756c519bdd6ec0e2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"da20952f_bd105e01","line":12,"updated":"2015-09-04 18:05:04.000000000","message":"I guess you mean the blueprint extend-api-network-attributes","commit_id":"6356e6ea426a92a2d7b02fee958afd13b7354ade"},{"author":{"_account_id":6836,"name":"Daneyon Hansen","email":"danehans@cisco.com","username":"danehans"},"change_message_id":"bd7a2c0cf5be3270221543cedba7222f2f51ea3d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Adds network-driver and labels attributes to the"},{"line_number":10,"context_line":"magnum client."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements: blueprint extend-client-network-attributes"},{"line_number":13,"context_line":"Change-Id: Ie8465275646b82aa9bd7a9de756c519bdd6ec0e2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"da20952f_b8586cfa","line":12,"in_reply_to":"da20952f_bd105e01","updated":"2015-09-11 21:58:36.000000000","message":"blueprint extend-api-network-attributes is for the server-side of things.\n\nhttps://blueprints.launchpad.net/magnum/+spec/extend-client-network-attributes\n\n^ is for the client side.","commit_id":"6356e6ea426a92a2d7b02fee958afd13b7354ade"}],"magnumclient/common/utils.py":[{"author":{"_account_id":9591,"name":"Ton Ngo","email":"ton@us.ibm.com","username":"tango"},"change_message_id":"4b363b724fb54774dc40537cb05b374b6c5d2ada","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        else:"},{"line_number":105,"context_line":"            if not isinstance(labels[k], list):"},{"line_number":106,"context_line":"                labels[k] \u003d [labels[k]]"},{"line_number":107,"context_line":"            labels[k].append(v)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    return labels"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_3800dc01","line":107,"updated":"2015-09-04 18:05:04.000000000","message":"This seems to allow a label to have a list of values instead of just one value.  What\u0027s the use case for a list?","commit_id":"6356e6ea426a92a2d7b02fee958afd13b7354ade"},{"author":{"_account_id":6836,"name":"Daneyon Hansen","email":"danehans@cisco.com","username":"danehans"},"change_message_id":"bd7a2c0cf5be3270221543cedba7222f2f51ea3d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        else:"},{"line_number":105,"context_line":"            if not isinstance(labels[k], list):"},{"line_number":106,"context_line":"                labels[k] \u003d [labels[k]]"},{"line_number":107,"context_line":"            labels[k].append(v)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    return labels"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_980a48d0","line":107,"in_reply_to":"da20952f_3800dc01","updated":"2015-09-11 21:58:36.000000000","message":"Example: --labels dns_servers\u003d1.1.1.1,2.2.2.2,3.3.3.3\n\nUsed for keys that take multiple values.","commit_id":"6356e6ea426a92a2d7b02fee958afd13b7354ade"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"a7cf5cac78cb76a2509c4e2918316b62f978ae5a","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        try:"},{"line_number":98,"context_line":"            (k, v) \u003d l.split((\u0027\u003d\u0027), 1)"},{"line_number":99,"context_line":"        except ValueError:"},{"line_number":100,"context_line":"            raise exc.CommandError(_(\u0027labels must be a list of KEY\u003dVALUE \u0027"},{"line_number":101,"context_line":"                                     \u0027not %s\u0027) % l)"},{"line_number":102,"context_line":"        if k not in labels:"},{"line_number":103,"context_line":"            labels[k] \u003d v"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba15a1d1_3759a035","line":100,"updated":"2015-09-17 22:30:20.000000000","message":"Nit. I like the error message in python-heatclient better:\nhttps://github.com/openstack/python-heatclient/blob/master/heatclient/common/utils.py#L201","commit_id":"ce8924bb435a14057ca29f3337358161d4425789"}],"magnumclient/tests/test_shell_args.py":[{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"acd09e7b017cbe555fa700dfa6d85d82b68b1443","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                               \u0027--flavor-id test_flavor \u0027"},{"line_number":212,"context_line":"                               \u0027--fixed-network public \u0027"},{"line_number":213,"context_line":"                               \u0027--network-driver test_driver \u0027"},{"line_number":214,"context_line":"                               \u0027--label key\u003dval \u0027"},{"line_number":215,"context_line":"                               \u0027--master-flavor-id test_flavor \u0027"},{"line_number":216,"context_line":"                               \u0027--docker-volume-size 10\u0027)"},{"line_number":217,"context_line":"        self.assertTrue(mock_create.called)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_6a24c3ae","line":214,"updated":"2015-08-23 04:50:29.000000000","message":"what label is for ?","commit_id":"f922f00c8b5392d87f377314decfa256b8f1bb62"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"ed774c5ee48002295e0f19b803ffc8964e2590ee","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                               \u0027--flavor-id test_flavor \u0027"},{"line_number":212,"context_line":"                               \u0027--fixed-network public \u0027"},{"line_number":213,"context_line":"                               \u0027--network-driver test_driver \u0027"},{"line_number":214,"context_line":"                               \u0027--label key\u003dval \u0027"},{"line_number":215,"context_line":"                               \u0027--master-flavor-id test_flavor \u0027"},{"line_number":216,"context_line":"                               \u0027--docker-volume-size 10\u0027)"},{"line_number":217,"context_line":"        self.assertTrue(mock_create.called)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_24aa7471","line":214,"in_reply_to":"fa1b9901_6a24c3ae","updated":"2015-08-24 03:43:51.000000000","message":"+1","commit_id":"f922f00c8b5392d87f377314decfa256b8f1bb62"},{"author":{"_account_id":9591,"name":"Ton Ngo","email":"ton@us.ibm.com","username":"tango"},"change_message_id":"b8209b53fa1c4c47ded51b0a3ad2e4247b0dc826","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                               \u0027--flavor-id test_flavor \u0027"},{"line_number":212,"context_line":"                               \u0027--fixed-network public \u0027"},{"line_number":213,"context_line":"                               \u0027--network-driver test_driver \u0027"},{"line_number":214,"context_line":"                               \u0027--label key\u003dval \u0027"},{"line_number":215,"context_line":"                               \u0027--master-flavor-id test_flavor \u0027"},{"line_number":216,"context_line":"                               \u0027--docker-volume-size 10\u0027)"},{"line_number":217,"context_line":"        self.assertTrue(mock_create.called)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_072f32a2","line":214,"in_reply_to":"fa1b9901_6a24c3ae","updated":"2015-08-24 05:41:24.000000000","message":"Label is part of the networking spec recently merged.  It\u0027s basically a set of arbitrary key/value pairs to pass parameters to the network driver in the backend.  There was a lot of discussion on labels.","commit_id":"f922f00c8b5392d87f377314decfa256b8f1bb62"},{"author":{"_account_id":9591,"name":"Ton Ngo","email":"ton@us.ibm.com","username":"tango"},"change_message_id":"b8209b53fa1c4c47ded51b0a3ad2e4247b0dc826","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    @mock.patch(\u0027magnumclient.v1.baymodels.BayModelManager.create\u0027)"},{"line_number":284,"context_line":"    def test_baymodel_create_label_success(self, mock_create):"},{"line_number":285,"context_line":"        self._test_arg_success(\u0027baymodel-create \u0027"},{"line_number":286,"context_line":"                               \u0027--name test --label key\u003dval \u0027"},{"line_number":287,"context_line":"                               \u0027--keypair-id test_keypair \u0027"},{"line_number":288,"context_line":"                               \u0027--external-network-id test_net \u0027"},{"line_number":289,"context_line":"                               \u0027--image-id test_image \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_4a68d1ba","line":286,"updated":"2015-08-24 05:41:24.000000000","message":"If label is a list of key\u003dvalue pairs, it might be good to test with more than one pair to check the \"append\" action.","commit_id":"f922f00c8b5392d87f377314decfa256b8f1bb62"},{"author":{"_account_id":6836,"name":"Daneyon Hansen","email":"danehans@cisco.com","username":"danehans"},"change_message_id":"52212ef8dc30270ec7fedd097de9b4b0c1a12762","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    @mock.patch(\u0027magnumclient.v1.baymodels.BayModelManager.create\u0027)"},{"line_number":284,"context_line":"    def test_baymodel_create_label_success(self, mock_create):"},{"line_number":285,"context_line":"        self._test_arg_success(\u0027baymodel-create \u0027"},{"line_number":286,"context_line":"                               \u0027--name test --label key\u003dval \u0027"},{"line_number":287,"context_line":"                               \u0027--keypair-id test_keypair \u0027"},{"line_number":288,"context_line":"                               \u0027--external-network-id test_net \u0027"},{"line_number":289,"context_line":"                               \u0027--image-id test_image \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_58afd0e2","line":286,"in_reply_to":"fa1b9901_4a68d1ba","updated":"2015-09-11 21:54:53.000000000","message":"Done","commit_id":"f922f00c8b5392d87f377314decfa256b8f1bb62"},{"author":{"_account_id":9591,"name":"Ton Ngo","email":"ton@us.ibm.com","username":"tango"},"change_message_id":"4b363b724fb54774dc40537cb05b374b6c5d2ada","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                               \u0027--keypair-id test_keypair \u0027"},{"line_number":324,"context_line":"                               \u0027--external-network-id test_net \u0027"},{"line_number":325,"context_line":"                               \u0027--image-id test_image \u0027"},{"line_number":326,"context_line":"                               \u0027--coe swarm\u0027)"},{"line_number":327,"context_line":"        self.assertTrue(mock_create.called)"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    @mock.patch(\u0027magnumclient.v1.baymodels.BayModelManager.create\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_b3e88fb4","line":326,"updated":"2015-09-04 18:05:04.000000000","message":"Suggest adding a test where --labels is specified multiple times to check that they get appended","commit_id":"6356e6ea426a92a2d7b02fee958afd13b7354ade"},{"author":{"_account_id":6836,"name":"Daneyon Hansen","email":"danehans@cisco.com","username":"danehans"},"change_message_id":"bd7a2c0cf5be3270221543cedba7222f2f51ea3d","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                               \u0027--keypair-id test_keypair \u0027"},{"line_number":324,"context_line":"                               \u0027--external-network-id test_net \u0027"},{"line_number":325,"context_line":"                               \u0027--image-id test_image \u0027"},{"line_number":326,"context_line":"                               \u0027--coe swarm\u0027)"},{"line_number":327,"context_line":"        self.assertTrue(mock_create.called)"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    @mock.patch(\u0027magnumclient.v1.baymodels.BayModelManager.create\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_b80f0cdf","line":326,"in_reply_to":"da20952f_b3e88fb4","updated":"2015-09-11 21:58:36.000000000","message":"Done","commit_id":"6356e6ea426a92a2d7b02fee958afd13b7354ade"}],"magnumclient/tests/v1/test_baymodels.py":[{"author":{"_account_id":9591,"name":"Ton Ngo","email":"ton@us.ibm.com","username":"tango"},"change_message_id":"b8209b53fa1c4c47ded51b0a3ad2e4247b0dc826","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                         baymodel.docker_volume_size)"},{"line_number":147,"context_line":"        self.assertEqual(BAYMODEL1[\u0027fixed_network\u0027], baymodel.fixed_network)"},{"line_number":148,"context_line":"        self.assertEqual(BAYMODEL1[\u0027ssh_authorized_key\u0027],"},{"line_number":149,"context_line":"                         baymodel.ssh_authorized_key)"},{"line_number":150,"context_line":"        self.assertEqual(BAYMODEL1[\u0027coe\u0027], baymodel.coe)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_baymodel_show_by_name(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_eaed2526","line":149,"updated":"2015-08-24 05:41:24.000000000","message":"Suggest adding a check for the new attributes network_driver and labels.","commit_id":"f922f00c8b5392d87f377314decfa256b8f1bb62"},{"author":{"_account_id":6836,"name":"Daneyon Hansen","email":"danehans@cisco.com","username":"danehans"},"change_message_id":"52212ef8dc30270ec7fedd097de9b4b0c1a12762","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                         baymodel.docker_volume_size)"},{"line_number":147,"context_line":"        self.assertEqual(BAYMODEL1[\u0027fixed_network\u0027], baymodel.fixed_network)"},{"line_number":148,"context_line":"        self.assertEqual(BAYMODEL1[\u0027ssh_authorized_key\u0027],"},{"line_number":149,"context_line":"                         baymodel.ssh_authorized_key)"},{"line_number":150,"context_line":"        self.assertEqual(BAYMODEL1[\u0027coe\u0027], baymodel.coe)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_baymodel_show_by_name(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_9877a88d","line":149,"in_reply_to":"fa1b9901_eaed2526","updated":"2015-09-11 21:54:53.000000000","message":"Done","commit_id":"f922f00c8b5392d87f377314decfa256b8f1bb62"},{"author":{"_account_id":9591,"name":"Ton Ngo","email":"ton@us.ibm.com","username":"tango"},"change_message_id":"b8209b53fa1c4c47ded51b0a3ad2e4247b0dc826","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                         baymodel.docker_volume_size)"},{"line_number":162,"context_line":"        self.assertEqual(BAYMODEL1[\u0027fixed_network\u0027], baymodel.fixed_network)"},{"line_number":163,"context_line":"        self.assertEqual(BAYMODEL1[\u0027ssh_authorized_key\u0027],"},{"line_number":164,"context_line":"                         baymodel.ssh_authorized_key)"},{"line_number":165,"context_line":"        self.assertEqual(BAYMODEL1[\u0027coe\u0027], baymodel.coe)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def test_baymodel_create(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_2a8d5d7b","line":164,"updated":"2015-08-24 05:41:24.000000000","message":"Suggest adding a check for the new attributes network_driver and labels.","commit_id":"f922f00c8b5392d87f377314decfa256b8f1bb62"},{"author":{"_account_id":6836,"name":"Daneyon Hansen","email":"danehans@cisco.com","username":"danehans"},"change_message_id":"52212ef8dc30270ec7fedd097de9b4b0c1a12762","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                         baymodel.docker_volume_size)"},{"line_number":162,"context_line":"        self.assertEqual(BAYMODEL1[\u0027fixed_network\u0027], baymodel.fixed_network)"},{"line_number":163,"context_line":"        self.assertEqual(BAYMODEL1[\u0027ssh_authorized_key\u0027],"},{"line_number":164,"context_line":"                         baymodel.ssh_authorized_key)"},{"line_number":165,"context_line":"        self.assertEqual(BAYMODEL1[\u0027coe\u0027], baymodel.coe)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def test_baymodel_create(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_b87cec71","line":164,"in_reply_to":"fa1b9901_2a8d5d7b","updated":"2015-09-11 21:54:53.000000000","message":"Done","commit_id":"f922f00c8b5392d87f377314decfa256b8f1bb62"}],"magnumclient/v1/shell.py":[{"author":{"_account_id":9591,"name":"Ton Ngo","email":"ton@us.ibm.com","username":"tango"},"change_message_id":"b8209b53fa1c4c47ded51b0a3ad2e4247b0dc826","unresolved":false,"context_lines":[{"line_number":187,"context_line":"           metavar\u003d\u0027\u003cdocker-volume-size\u003e\u0027,"},{"line_number":188,"context_line":"           help\u003d\u0027Specify the size of the docker volume to use.\u0027)"},{"line_number":189,"context_line":"@utils.arg(\u0027--label\u0027, metavar\u003d\u0027\u003ckey\u003dvalue\u003e\u0027, action\u003d\u0027append\u0027, default\u003d[],"},{"line_number":190,"context_line":"           help\u003d\u0027Arbitrary label to associate with baymodel. \u0027"},{"line_number":191,"context_line":"           \u0027May be used multiple times.\u0027)"},{"line_number":192,"context_line":"def do_baymodel_create(cs, args):"},{"line_number":193,"context_line":"    \"\"\"Create a baymodel.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_0a9f3960","line":190,"updated":"2015-08-24 05:41:24.000000000","message":"Instead of \"Arbitrary label...\", may be \"Arbitrary key/value pair ...\"  is more to the point?","commit_id":"f922f00c8b5392d87f377314decfa256b8f1bb62"},{"author":{"_account_id":6836,"name":"Daneyon Hansen","email":"danehans@cisco.com","username":"danehans"},"change_message_id":"52212ef8dc30270ec7fedd097de9b4b0c1a12762","unresolved":false,"context_lines":[{"line_number":187,"context_line":"           metavar\u003d\u0027\u003cdocker-volume-size\u003e\u0027,"},{"line_number":188,"context_line":"           help\u003d\u0027Specify the size of the docker volume to use.\u0027)"},{"line_number":189,"context_line":"@utils.arg(\u0027--label\u0027, metavar\u003d\u0027\u003ckey\u003dvalue\u003e\u0027, action\u003d\u0027append\u0027, default\u003d[],"},{"line_number":190,"context_line":"           help\u003d\u0027Arbitrary label to associate with baymodel. \u0027"},{"line_number":191,"context_line":"           \u0027May be used multiple times.\u0027)"},{"line_number":192,"context_line":"def do_baymodel_create(cs, args):"},{"line_number":193,"context_line":"    \"\"\"Create a baymodel.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_584b502b","line":190,"in_reply_to":"fa1b9901_0a9f3960","updated":"2015-09-11 21:54:53.000000000","message":"Done","commit_id":"f922f00c8b5392d87f377314decfa256b8f1bb62"},{"author":{"_account_id":9591,"name":"Ton Ngo","email":"ton@us.ibm.com","username":"tango"},"change_message_id":"a806cbddd7fa9a1ba1bdfbb35abe706b9f41f857","unresolved":false,"context_lines":[{"line_number":172,"context_line":"@utils.arg(\u0027--network-driver\u0027,"},{"line_number":173,"context_line":"           metavar\u003d\u0027\u003cnetwork-driver\u003e\u0027,"},{"line_number":174,"context_line":"           help\u003d\u0027The network driver name for instantiating container\u0027"},{"line_number":175,"context_line":"           \u0027 networks.\u0027)"},{"line_number":176,"context_line":"@utils.arg(\u0027--ssh-authorized-key\u0027,"},{"line_number":177,"context_line":"           metavar\u003d\u0027\u003cssh-authorized-key\u003e\u0027,"},{"line_number":178,"context_line":"           help\u003d\u0027The SSH authorized key to use\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_99f35c9e","line":175,"updated":"2015-08-28 16:41:00.000000000","message":"Is there a default driver?  Somehow I remember this being mentioned in the discussion, maybe flannel as the default for k8s.  If so, we may want to mention in the help message.  I guess setting the actual default would be done in later patch and may be specific to the coe type.","commit_id":"1a55eb543049fb973ce648df6f7ab802d3e6afc5"}]}
