)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1ef7872e026996414d539e7b6de7fd6ce961df02","unresolved":false,"context_lines":[{"line_number":9,"context_line":"VMAX plugin is the plugin which manages the VMAX to"},{"line_number":10,"context_line":"provide shared filesystems using the Dell EMC manila"},{"line_number":11,"context_line":"driver framework."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I0b69f013443217f2053bbbfdec36dff226664b34"},{"line_number":14,"context_line":"Implements: blueprint vmax-manila-support"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a74a57a_b1dbd01a","line":12,"updated":"2016-11-30 18:21:20.000000000","message":"Add a DocImpact flag here.","commit_id":"09264a892de6d52a240d1b7b7a800af35201c352"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"a12e4dc8a32023c959e65307e5c0107bbc79ac09","unresolved":false,"context_lines":[{"line_number":9,"context_line":"VMAX plugin is the plugin which manages the VMAX to"},{"line_number":10,"context_line":"provide shared filesystems using the Dell EMC manila"},{"line_number":11,"context_line":"driver framework."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I0b69f013443217f2053bbbfdec36dff226664b34"},{"line_number":14,"context_line":"Implements: blueprint vmax-manila-support"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a71b18c_e8567b05","line":12,"in_reply_to":"5a74a57a_b1dbd01a","updated":"2016-12-01 08:59:14.000000000","message":"I will. Thanks","commit_id":"09264a892de6d52a240d1b7b7a800af35201c352"}],"doc/source/devref/index.rst":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"578f28a05d4ce156070b5387039717090c3751fa","unresolved":false,"context_lines":[{"line_number":110,"context_line":"   netapp_cluster_mode_driver"},{"line_number":111,"context_line":"   emc_isilon_driver"},{"line_number":112,"context_line":"   emc_vnx_driver"},{"line_number":113,"context_line":"   emc_vmax_driver"},{"line_number":114,"context_line":"   emc_unity_driver"},{"line_number":115,"context_line":"   generic_driver"},{"line_number":116,"context_line":"   glusterfs_driver"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a3905b3_21f3ff9f","line":113,"range":{"start_line":113,"start_character":3,"end_line":113,"end_character":18},"updated":"2017-01-19 22:33:16.000000000","message":"All changes to this file should be removed. Exactly this list is list of filenames. It is completely differnt thing compared to requested one. Only [1] should be changed.\n\n[1] doc/source/devref/share_back_ends_feature_support_mapping.rst","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":110,"context_line":"   netapp_cluster_mode_driver"},{"line_number":111,"context_line":"   emc_isilon_driver"},{"line_number":112,"context_line":"   emc_vnx_driver"},{"line_number":113,"context_line":"   emc_vmax_driver"},{"line_number":114,"context_line":"   emc_unity_driver"},{"line_number":115,"context_line":"   generic_driver"},{"line_number":116,"context_line":"   glusterfs_driver"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a3905b3_8e35b7db","line":113,"range":{"start_line":113,"start_character":3,"end_line":113,"end_character":18},"in_reply_to":"5a3905b3_21f3ff9f","updated":"2017-01-20 01:56:52.000000000","message":"Are you saying the following change should not happen?\n\nhttps://review.openstack.org/#/c/350035/26/doc/source/devref/index.rst","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ee7326b965dc12adc4d71da54c707d7631e40bdc","unresolved":false,"context_lines":[{"line_number":110,"context_line":"   netapp_cluster_mode_driver"},{"line_number":111,"context_line":"   emc_isilon_driver"},{"line_number":112,"context_line":"   emc_vnx_driver"},{"line_number":113,"context_line":"   emc_vmax_driver"},{"line_number":114,"context_line":"   emc_unity_driver"},{"line_number":115,"context_line":"   generic_driver"},{"line_number":116,"context_line":"   glusterfs_driver"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a3905b3_f977e79c","line":113,"range":{"start_line":113,"start_character":3,"end_line":113,"end_character":18},"in_reply_to":"5a3905b3_8e35b7db","updated":"2017-01-20 02:07:23.000000000","message":"I got it now.  This is an index to a file named emc_vmax_driver.rst located in manila/doc/source/devref.  We used to add driver docs there, but we no longer do that.  So please don\u0027t make any changes to this index.rst file.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"41aa0ea9df4478362ab84babfa63c1b73edc06d9","unresolved":false,"context_lines":[{"line_number":110,"context_line":"   netapp_cluster_mode_driver"},{"line_number":111,"context_line":"   emc_isilon_driver"},{"line_number":112,"context_line":"   emc_vnx_driver"},{"line_number":113,"context_line":"   emc_vmax_driver"},{"line_number":114,"context_line":"   emc_unity_driver"},{"line_number":115,"context_line":"   generic_driver"},{"line_number":116,"context_line":"   glusterfs_driver"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a3905b3_38424011","line":113,"range":{"start_line":113,"start_character":3,"end_line":113,"end_character":18},"in_reply_to":"5a3905b3_f977e79c","updated":"2017-01-20 07:26:33.000000000","message":"Sure. I will remove it","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"62c2c1e38220b6d11c4773f53ff5f7fcb23373ad","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* :ref:`genindex`"},{"line_number":130,"context_line":"* :ref:`search`"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5a3905b3_9c2c034c","side":"PARENT","line":131,"updated":"2017-01-20 09:34:59.000000000","message":"?","commit_id":"dc43f741f860340edf391e83c0bfddba35892223"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"3d4f57915c6dd7b13b0c550f43269d0eed1af257","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* :ref:`genindex`"},{"line_number":130,"context_line":"* :ref:`search`"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5a3905b3_ad2fc73c","side":"PARENT","line":131,"in_reply_to":"5a3905b3_9c2c034c","updated":"2017-01-20 10:19:04.000000000","message":"Is this a missing line?  I will check","commit_id":"dc43f741f860340edf391e83c0bfddba35892223"}],"doc/source/devref/share_back_ends_feature_support_mapping.rst":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"578f28a05d4ce156070b5387039717090c3751fa","unresolved":false,"context_lines":[{"line_number":43,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"},{"line_number":44,"context_line":"|                 EMC VNX                |           J           |          \\-           |      \\-      |       \\-     |            J           |              J             |            \\-            |          \\-        |"},{"line_number":45,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"},{"line_number":46,"context_line":"|                 EMC VMAX               |           J           |          \\-           |      \\-      |       \\-     |            J           |              J             |            \\-            |          \\-        |"},{"line_number":47,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"},{"line_number":48,"context_line":"|                EMC Unity               |           N           |          \\-           |       N      |       \\-     |            N           |              N             |            \\-            |          \\-        |"},{"line_number":49,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a3905b3_013d232b","line":46,"updated":"2017-01-19 22:33:16.000000000","message":"All tables in this file should be updated.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":43,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"},{"line_number":44,"context_line":"|                 EMC VNX                |           J           |          \\-           |      \\-      |       \\-     |            J           |              J             |            \\-            |          \\-        |"},{"line_number":45,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"},{"line_number":46,"context_line":"|                 EMC VMAX               |           J           |          \\-           |      \\-      |       \\-     |            J           |              J             |            \\-            |          \\-        |"},{"line_number":47,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"},{"line_number":48,"context_line":"|                EMC Unity               |           N           |          \\-           |       N      |       \\-     |            N           |              N             |            \\-            |          \\-        |"},{"line_number":49,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a3905b3_4e974f90","line":46,"in_reply_to":"5a3905b3_013d232b","updated":"2017-01-20 01:56:52.000000000","message":"\"VMAX\" should be added before \"VNX\".  This is in alphabetical order.  \"J\" refers to \"Juno\".  VMAX driver is new in Ocata, so you should replace J with O.  Also search for other places in this file where VNX has a record.  It\u0027s more than just this line.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"41aa0ea9df4478362ab84babfa63c1b73edc06d9","unresolved":false,"context_lines":[{"line_number":43,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"},{"line_number":44,"context_line":"|                 EMC VNX                |           J           |          \\-           |      \\-      |       \\-     |            J           |              J             |            \\-            |          \\-        |"},{"line_number":45,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"},{"line_number":46,"context_line":"|                 EMC VMAX               |           J           |          \\-           |      \\-      |       \\-     |            J           |              J             |            \\-            |          \\-        |"},{"line_number":47,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"},{"line_number":48,"context_line":"|                EMC Unity               |           N           |          \\-           |       N      |       \\-     |            N           |              N             |            \\-            |          \\-        |"},{"line_number":49,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a3905b3_d8ba1c0a","line":46,"in_reply_to":"5a3905b3_4e974f90","updated":"2017-01-20 07:26:33.000000000","message":"Sure.  Thanks","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7c0893df52d94fcd0344ef6a2c77da77a9595e8a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"},{"line_number":42,"context_line":"|       NetApp Clustered Data ONTAP      |           J           |           L           |       L      |       L      |            J           |              J             |            N             |          \\-        |"},{"line_number":43,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"},{"line_number":44,"context_line":"|                 EMC VMAX               |           O           |          \\-           |      \\-      |       \\-     |            O           |              O             |            \\-            |          \\-        |"},{"line_number":45,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"},{"line_number":46,"context_line":"|                 EMC VNX                |           J           |          \\-           |      \\-      |       \\-     |            J           |              J             |            \\-            |          \\-        |"},{"line_number":47,"context_line":"+----------------------------------------+-----------------------+-----------------------+--------------+--------------+------------------------+----------------------------+--------------------------+--------------------+"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a3905b3_7ff1d200","line":44,"range":{"start_line":44,"start_character":96,"end_line":44,"end_character":99},"updated":"2017-01-21 21:59:05.000000000","message":"This should be \"O\".  extend_share is implemented in this driver.","commit_id":"0a88db1340fe14f8ccab1a490877ad9e8c8f5875"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7c0893df52d94fcd0344ef6a2c77da77a9595e8a","unresolved":false,"context_lines":[{"line_number":218,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+"},{"line_number":219,"context_line":"|       NetApp Clustered Data ONTAP      |     J     |      K     |   M    |      M      |         M         |          L         | \\-  |              J             |          \\-        |"},{"line_number":220,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+"},{"line_number":221,"context_line":"|                EMC VMAX                |     O     |      \\-    |   \\-   |      \\-     |         O         |          \\-        | \\-  |              O             |          \\-        |"},{"line_number":222,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+"},{"line_number":223,"context_line":"|                 EMC VNX                |     J     |      \\-    |   \\-   |      \\-     |        \\-         |          L         | \\-  |              J             |          \\-        |"},{"line_number":224,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a3905b3_1fe36e34","line":221,"range":{"start_line":221,"start_character":99,"end_line":221,"end_character":100},"updated":"2017-01-21 21:59:05.000000000","message":"Should be \"\\-\".  thin_provisioning is not supported.","commit_id":"0a88db1340fe14f8ccab1a490877ad9e8c8f5875"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c2851f36da1f1573d80f6af03a2036b884196db9","unresolved":false,"context_lines":[{"line_number":218,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+"},{"line_number":219,"context_line":"|       NetApp Clustered Data ONTAP      |     J     |      K     |   M    |      M      |         M         |          L         | \\-  |              J             |          \\-        |"},{"line_number":220,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+"},{"line_number":221,"context_line":"|                EMC VMAX                |     O     |      \\-    |   \\-   |      \\-     |        \\-         |          \\-        | \\-  |              O             |          \\-        |"},{"line_number":222,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+"},{"line_number":223,"context_line":"|                 EMC VNX                |     J     |      \\-    |   \\-   |      \\-     |        \\-         |          L         | \\-  |              J             |          \\-        |"},{"line_number":224,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a3905b3_f0533169","line":221,"range":{"start_line":221,"start_character":120,"end_line":221,"end_character":122},"updated":"2017-01-22 03:36:17.000000000","message":"Should be \"O\" for thick_provisioning.","commit_id":"8461d5aab64b96bd9ef5ecb1f939f93f7afd871a"}],"manila/opts.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"fb7afb70a86856ed482acd7ff38ee375b6514c12","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    manila.share.drivers.container.driver.container_opts,"},{"line_number":124,"context_line":"    manila.share.drivers.container.storage_helper.lv_opts,"},{"line_number":125,"context_line":"    manila.share.drivers.dell_emc.driver.EMC_NAS_OPTS,"},{"line_number":126,"context_line":"    manila.share.drivers.dell_emc.driver.VMAX_OPTS,"},{"line_number":127,"context_line":"    manila.share.drivers.generic.share_opts,"},{"line_number":128,"context_line":"    manila.share.drivers.glusterfs.common.glusterfs_common_opts,"},{"line_number":129,"context_line":"    manila.share.drivers.glusterfs.GlusterfsManilaShare_opts,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_41e3aba3","line":126,"range":{"start_line":126,"start_character":41,"end_line":126,"end_character":50},"updated":"2017-01-19 22:36:38.000000000","message":"These opts are located in manila/share/drivers/dell_emc/plugins/vmax/connection.py","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    manila.share.drivers.container.driver.container_opts,"},{"line_number":124,"context_line":"    manila.share.drivers.container.storage_helper.lv_opts,"},{"line_number":125,"context_line":"    manila.share.drivers.dell_emc.driver.EMC_NAS_OPTS,"},{"line_number":126,"context_line":"    manila.share.drivers.dell_emc.driver.VMAX_OPTS,"},{"line_number":127,"context_line":"    manila.share.drivers.generic.share_opts,"},{"line_number":128,"context_line":"    manila.share.drivers.glusterfs.common.glusterfs_common_opts,"},{"line_number":129,"context_line":"    manila.share.drivers.glusterfs.GlusterfsManilaShare_opts,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_eb1b8d7e","line":126,"range":{"start_line":126,"start_character":41,"end_line":126,"end_character":50},"in_reply_to":"5a3905b3_41e3aba3","updated":"2017-01-20 01:56:52.000000000","message":"Helen,\n\nThere is a failure here because the path is wrong.\n\nFile \"/home/jenkins/workspace/gate-manila-tox-genconfig-ubuntu-xenial/manila/opts.py\", line 126, in \u003cmodule\u003e\n2017-01-19 22:33:13.143251 |     manila.share.drivers.dell_emc.driver.VMAX_OPTS,\n2017-01-19 22:33:13.143269 | AttributeError: \u0027module\u0027 object has no attribute \u0027VMAX_OPTS\u0027\n2017-01-19 22:33:13.180124 | ERROR: InvocationError: \u0027/home/jenkins/workspace/gate-manila-tox-genconfig-ubuntu-xenial/.tox/genconfig/bin/oslo-config-generator --config-file etc/oslo-config-generator/manila.conf\u0027","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"41aa0ea9df4478362ab84babfa63c1b73edc06d9","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    manila.share.drivers.container.driver.container_opts,"},{"line_number":124,"context_line":"    manila.share.drivers.container.storage_helper.lv_opts,"},{"line_number":125,"context_line":"    manila.share.drivers.dell_emc.driver.EMC_NAS_OPTS,"},{"line_number":126,"context_line":"    manila.share.drivers.dell_emc.driver.VMAX_OPTS,"},{"line_number":127,"context_line":"    manila.share.drivers.generic.share_opts,"},{"line_number":128,"context_line":"    manila.share.drivers.glusterfs.common.glusterfs_common_opts,"},{"line_number":129,"context_line":"    manila.share.drivers.glusterfs.GlusterfsManilaShare_opts,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_d8685c8a","line":126,"range":{"start_line":126,"start_character":41,"end_line":126,"end_character":50},"in_reply_to":"5a3905b3_eb1b8d7e","updated":"2017-01-20 07:26:33.000000000","message":"Of course, I will fix that","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"}],"manila/share/drivers/dell_emc/driver.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"738fbe96857815c7fc242696e4edd7a4aeee26f5","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    cfg.ListOpt(\u0027emc_interface_ports\u0027,"},{"line_number":58,"context_line":"                help\u003d\u0027Comma separated list specifying the ports that can be \u0027"},{"line_number":59,"context_line":"                     \u0027used for share server interfaces. Members of the list \u0027"},{"line_number":60,"context_line":"                     \u0027can be Unix-style glob expressions.\u0027),"},{"line_number":61,"context_line":"]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_a4574f24","side":"PARENT","line":60,"updated":"2017-01-18 13:18:03.000000000","message":"Rebase is not done right.  All these options are already removed from the master:\n\nhttps://github.com/openstack/manila/blob/master/manila/share/drivers/dell_emc/driver.py","commit_id":"d9be8fa62ba9baf50337821bfa20d9894739e765"}],"manila/share/drivers/dell_emc/plugin_manager.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"738fbe96857815c7fc242696e4edd7a4aeee26f5","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"        self.extension_manager \u003d extension.ExtensionManager(namespace)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def load_plugin(self, name, *args, **kwargs):"},{"line_number":26,"context_line":"        for ext in self.extension_manager.extensions:"},{"line_number":27,"context_line":"            if ext.name \u003d\u003d name:"},{"line_number":28,"context_line":"                storage_conn \u003d ext.plugin(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_4414eb4b","line":25,"updated":"2017-01-18 13:18:03.000000000","message":"Same here.  This change is already in the master.  You should not be making this change.  Your code is not based on the code in the master.\n\nhttps://github.com/openstack/manila/blob/master/manila/share/drivers/dell_emc/plugin_manager.py#L25","commit_id":"d919dd277c64c8540b840b80d4d120372c7d6653"}],"manila/share/drivers/dell_emc/plugins/base.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9d3157b56792029c5d8e2ff53143e24636226799","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    def update_access(self, context, share, access_rules, add_rules,"},{"line_number":65,"context_line":"                      delete_rules, share_server\u003dNone):"},{"line_number":66,"context_line":"        \"\"\"Update access rules for given share.\"\"\""},{"line_number":67,"context_line":"        raise NotImplementedError()"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def raise_connect_error(self):"},{"line_number":70,"context_line":"        \"\"\"Check for setup error.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_cfa4feba","line":67,"updated":"2016-12-23 16:45:38.000000000","message":"Looks like you didn\u0027t get the latest code in the trunk.  update_access is already in dell_emc/plugins/base.py.  You need to do a rebase.\n\nhttps://github.com/openstack/manila/blob/master/manila/share/drivers/dell_emc/plugins/base.py#L64","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"738fbe96857815c7fc242696e4edd7a4aeee26f5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class StorageConnection(object):"},{"line_number":24,"context_line":"    \"\"\"Subclasses should implement storage backend specific functionality.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":27,"context_line":"        # NOTE(vponomaryov): redefine \u0027driver_handles_share_servers\u0027 within"},{"line_number":28,"context_line":"        #                    plugin."},{"line_number":29,"context_line":"        self.driver_handles_share_servers \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_57165f4c","line":26,"updated":"2017-01-18 13:18:03.000000000","message":"Same here.  This change is already in the master.\n\nhttps://github.com/openstack/manila/blob/master/manila/share/drivers/dell_emc/plugins/base.py#L26","commit_id":"d919dd277c64c8540b840b80d4d120372c7d6653"}],"manila/share/drivers/dell_emc/plugins/vmax/connection.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1ef7872e026996414d539e7b6de7fd6ce961df02","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 EMC Corporation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_b1c83076","line":1,"updated":"2016-11-30 18:21:20.000000000","message":"Please use the new header as you added a new file:\n\nCopyright (c) 2016 Dell Inc. or its subsidiaries.\n\nPlease use the new header for all added files.","commit_id":"09264a892de6d52a240d1b7b7a800af35201c352"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"e94df0eba76fd15c3694d77f0e3f61633761aea9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 EMC Corporation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_e8083b2b","line":1,"in_reply_to":"5a74a57a_b1c83076","updated":"2016-12-01 08:58:25.000000000","message":"I will.  Thank you","commit_id":"09264a892de6d52a240d1b7b7a800af35201c352"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        share_name \u003d snapshot[\u0027share_id\u0027]"},{"line_number":217,"context_line":"        status, filesystem \u003d self._get_context(\u0027FileSystem\u0027).get(share_name)"},{"line_number":218,"context_line":"        if status !\u003d constants.STATUS_OK:"},{"line_number":219,"context_line":"                message \u003d (_(\"File System %s not found.\") % share_name)"},{"line_number":220,"context_line":"                LOG.error(message)"},{"line_number":221,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        pool_id \u003d filesystem[\u0027pools_id\u0027][0]"},{"line_number":224,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_c7777ad2","line":221,"range":{"start_line":219,"start_character":16,"end_line":221,"end_character":63},"updated":"2016-12-09 17:03:55.000000000","message":"Wrong indentation.","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"529db05191dde8d60025f7a2fd2bb901a20cf1ab","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        share_name \u003d snapshot[\u0027share_id\u0027]"},{"line_number":217,"context_line":"        status, filesystem \u003d self._get_context(\u0027FileSystem\u0027).get(share_name)"},{"line_number":218,"context_line":"        if status !\u003d constants.STATUS_OK:"},{"line_number":219,"context_line":"                message \u003d (_(\"File System %s not found.\") % share_name)"},{"line_number":220,"context_line":"                LOG.error(message)"},{"line_number":221,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        pool_id \u003d filesystem[\u0027pools_id\u0027][0]"},{"line_number":224,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_99a130ac","line":221,"range":{"start_line":219,"start_character":16,"end_line":221,"end_character":63},"in_reply_to":"3a71b18c_c7777ad2","updated":"2016-12-12 11:26:23.000000000","message":"Will update...Thanks for the feedback","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        try:"},{"line_number":275,"context_line":"            # Delete mount point"},{"line_number":276,"context_line":"            self._get_context(\u0027MountPoint\u0027).delete(path, vdm_name)"},{"line_number":277,"context_line":"        except Exception:"},{"line_number":278,"context_line":"            LOG.debug(\"Skip the failure of mount point %s deletion.\", path)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_87e8227e","line":277,"range":{"start_line":277,"start_character":15,"end_line":277,"end_character":25},"updated":"2016-12-09 17:03:55.000000000","message":"Here","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"c47f9a2c15e6bd9f5ca7b1a6d57dc6794e2644fe","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        try:"},{"line_number":275,"context_line":"            # Delete mount point"},{"line_number":276,"context_line":"            self._get_context(\u0027MountPoint\u0027).delete(path, vdm_name)"},{"line_number":277,"context_line":"        except Exception:"},{"line_number":278,"context_line":"            LOG.debug(\"Skip the failure of mount point %s deletion.\", path)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_fa2bf3e8","line":277,"range":{"start_line":277,"start_character":15,"end_line":277,"end_character":25},"in_reply_to":"3a71b18c_87e8227e","updated":"2016-12-12 11:29:19.000000000","message":"Will analyse and update","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        try:"},{"line_number":281,"context_line":"            # Delete file system"},{"line_number":282,"context_line":"            self._get_context(\u0027FileSystem\u0027).delete(share_name)"},{"line_number":283,"context_line":"        except Exception:"},{"line_number":284,"context_line":"            LOG.debug(\"Skip the failure of file system %s deletion.\","},{"line_number":285,"context_line":"                      share_name)"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_c7b05a8e","line":283,"range":{"start_line":283,"start_character":15,"end_line":283,"end_character":25},"updated":"2016-12-09 17:03:55.000000000","message":"and here you catch ANY exception and do not log it. So, you hide any errors that are not related to impossibility to delete share. So, you should expect some specific exception here.","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"529db05191dde8d60025f7a2fd2bb901a20cf1ab","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        try:"},{"line_number":281,"context_line":"            # Delete file system"},{"line_number":282,"context_line":"            self._get_context(\u0027FileSystem\u0027).delete(share_name)"},{"line_number":283,"context_line":"        except Exception:"},{"line_number":284,"context_line":"            LOG.debug(\"Skip the failure of file system %s deletion.\","},{"line_number":285,"context_line":"                      share_name)"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_19a440a4","line":283,"range":{"start_line":283,"start_character":15,"end_line":283,"end_character":25},"in_reply_to":"3a71b18c_c7b05a8e","updated":"2016-12-12 11:26:23.000000000","message":"Will update to log a more specific exception","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        self._get_context(\u0027FileSystem\u0027).extend("},{"line_number":305,"context_line":"            share_name, pool_name, new_size * units.Ki)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def allow_access(self, context, share, access, share_server\u003dNone):"},{"line_number":308,"context_line":"        \"\"\"Allow access to a share.\"\"\""},{"line_number":309,"context_line":"        access_level \u003d access[\u0027access_level\u0027]"},{"line_number":310,"context_line":"        if access_level not in const.ACCESS_LEVELS:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_a7e0befb","line":307,"range":{"start_line":307,"start_character":8,"end_line":307,"end_character":20},"updated":"2016-12-09 17:03:55.000000000","message":"Need to implement \"update_access\" method, because support of \"allow_access\" and \"deny_access\" methods is going to be dropped.","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"2e764b660fb4e5690f8785395637dbb47f29fba0","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        self._get_context(\u0027FileSystem\u0027).extend("},{"line_number":305,"context_line":"            share_name, pool_name, new_size * units.Ki)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def allow_access(self, context, share, access, share_server\u003dNone):"},{"line_number":308,"context_line":"        \"\"\"Allow access to a share.\"\"\""},{"line_number":309,"context_line":"        access_level \u003d access[\u0027access_level\u0027]"},{"line_number":310,"context_line":"        if access_level not in const.ACCESS_LEVELS:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_b771890e","line":307,"range":{"start_line":307,"start_character":8,"end_line":307,"end_character":20},"in_reply_to":"3a71b18c_59c1582e","updated":"2016-12-12 15:29:13.000000000","message":"As this is a coordinated effort between all the dell_emc plugins, the change from allow_access and deny_access to update_access would be done at a later date","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"529db05191dde8d60025f7a2fd2bb901a20cf1ab","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        self._get_context(\u0027FileSystem\u0027).extend("},{"line_number":305,"context_line":"            share_name, pool_name, new_size * units.Ki)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def allow_access(self, context, share, access, share_server\u003dNone):"},{"line_number":308,"context_line":"        \"\"\"Allow access to a share.\"\"\""},{"line_number":309,"context_line":"        access_level \u003d access[\u0027access_level\u0027]"},{"line_number":310,"context_line":"        if access_level not in const.ACCESS_LEVELS:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_59c1582e","line":307,"range":{"start_line":307,"start_character":8,"end_line":307,"end_character":20},"in_reply_to":"3a71b18c_a7e0befb","updated":"2016-12-12 11:26:23.000000000","message":"Will update...thanks","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b3a598065ef16b9a9d5299acfae1e8ae24b89486","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        self._get_context(\u0027FileSystem\u0027).extend("},{"line_number":305,"context_line":"            share_name, pool_name, new_size * units.Ki)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def allow_access(self, context, share, access, share_server\u003dNone):"},{"line_number":308,"context_line":"        \"\"\"Allow access to a share.\"\"\""},{"line_number":309,"context_line":"        access_level \u003d access[\u0027access_level\u0027]"},{"line_number":310,"context_line":"        if access_level not in const.ACCESS_LEVELS:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_5df8f4e5","line":307,"range":{"start_line":307,"start_character":8,"end_line":307,"end_character":20},"in_reply_to":"3a71b18c_b771890e","updated":"2016-12-13 05:05:50.000000000","message":"See example of VNX driver\u0027s implementation of update_access.  It is already added to the base driver.\n\nhttps://review.openstack.org/#/c/395404/","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        status, server \u003d self._get_context(\u0027CIFSServer\u0027).get(server_name,"},{"line_number":345,"context_line":"                                                             vdm_name)"},{"line_number":346,"context_line":"        if status !\u003d constants.STATUS_OK:"},{"line_number":347,"context_line":"                message \u003d (_(\"CIFS server %s not found.\") % server_name)"},{"line_number":348,"context_line":"                LOG.error(message)"},{"line_number":349,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"        self._get_context(\u0027CIFSShare\u0027).allow_share_access("},{"line_number":352,"context_line":"            vdm_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_077892f1","line":349,"range":{"start_line":347,"start_character":0,"end_line":349,"end_character":63},"updated":"2016-12-09 17:03:55.000000000","message":"Wrong indentation.","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"529db05191dde8d60025f7a2fd2bb901a20cf1ab","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        status, server \u003d self._get_context(\u0027CIFSServer\u0027).get(server_name,"},{"line_number":345,"context_line":"                                                             vdm_name)"},{"line_number":346,"context_line":"        if status !\u003d constants.STATUS_OK:"},{"line_number":347,"context_line":"                message \u003d (_(\"CIFS server %s not found.\") % server_name)"},{"line_number":348,"context_line":"                LOG.error(message)"},{"line_number":349,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"        self._get_context(\u0027CIFSShare\u0027).allow_share_access("},{"line_number":352,"context_line":"            vdm_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_19d28000","line":349,"range":{"start_line":347,"start_character":0,"end_line":349,"end_character":63},"in_reply_to":"3a71b18c_077892f1","updated":"2016-12-12 11:26:23.000000000","message":"will update","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":361,"context_line":"        vdm_name \u003d self._get_share_server_name(share_server)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        access_type \u003d access[\u0027access_type\u0027]"},{"line_number":364,"context_line":"        if access_type !\u003d \u0027ip\u0027:"},{"line_number":365,"context_line":"            reason \u003d _(\u0027Only ip access type allowed.\u0027)"},{"line_number":366,"context_line":"            raise exception.InvalidShareAccess(reason\u003dreason)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"        host_ip \u003d access[\u0027access_to\u0027]"},{"line_number":369,"context_line":"        access_level \u003d access[\u0027access_level\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_c7269a15","line":366,"range":{"start_line":364,"start_character":8,"end_line":366,"end_character":61},"updated":"2016-12-09 17:03:55.000000000","message":"How then are you going to delete invalid access rule?","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"c47f9a2c15e6bd9f5ca7b1a6d57dc6794e2644fe","unresolved":false,"context_lines":[{"line_number":361,"context_line":"        vdm_name \u003d self._get_share_server_name(share_server)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        access_type \u003d access[\u0027access_type\u0027]"},{"line_number":364,"context_line":"        if access_type !\u003d \u0027ip\u0027:"},{"line_number":365,"context_line":"            reason \u003d _(\u0027Only ip access type allowed.\u0027)"},{"line_number":366,"context_line":"            raise exception.InvalidShareAccess(reason\u003dreason)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"        host_ip \u003d access[\u0027access_to\u0027]"},{"line_number":369,"context_line":"        access_level \u003d access[\u0027access_level\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_7a40c3a5","line":366,"range":{"start_line":364,"start_character":8,"end_line":366,"end_character":61},"in_reply_to":"3a71b18c_c7269a15","updated":"2016-12-12 11:29:19.000000000","message":"Will analyse and update as needed...thanks","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":389,"context_line":"        vdm_name \u003d self._get_share_server_name(share_server)"},{"line_number":390,"context_line":"        share_name \u003d share[\u0027id\u0027]"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        if access[\u0027access_type\u0027] !\u003d \u0027user\u0027:"},{"line_number":393,"context_line":"            reason \u003d _(\u0027Only user access type allowed for CIFS share\u0027)"},{"line_number":394,"context_line":"            raise exception.InvalidShareAccess(reason\u003dreason)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        user_name \u003d access[\u0027access_to\u0027]"},{"line_number":397,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_27458eb2","line":394,"range":{"start_line":392,"start_character":8,"end_line":394,"end_character":61},"updated":"2016-12-09 17:03:55.000000000","message":"How then are you going to delete invalid access rule?","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"2e764b660fb4e5690f8785395637dbb47f29fba0","unresolved":false,"context_lines":[{"line_number":389,"context_line":"        vdm_name \u003d self._get_share_server_name(share_server)"},{"line_number":390,"context_line":"        share_name \u003d share[\u0027id\u0027]"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        if access[\u0027access_type\u0027] !\u003d \u0027user\u0027:"},{"line_number":393,"context_line":"            reason \u003d _(\u0027Only user access type allowed for CIFS share\u0027)"},{"line_number":394,"context_line":"            raise exception.InvalidShareAccess(reason\u003dreason)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        user_name \u003d access[\u0027access_to\u0027]"},{"line_number":397,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_17387ded","line":394,"range":{"start_line":392,"start_character":8,"end_line":394,"end_character":61},"in_reply_to":"3a71b18c_27458eb2","updated":"2016-12-12 15:29:13.000000000","message":"I dont think I follow. we only support user access type for CIFS","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"c47f9a2c15e6bd9f5ca7b1a6d57dc6794e2644fe","unresolved":false,"context_lines":[{"line_number":389,"context_line":"        vdm_name \u003d self._get_share_server_name(share_server)"},{"line_number":390,"context_line":"        share_name \u003d share[\u0027id\u0027]"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        if access[\u0027access_type\u0027] !\u003d \u0027user\u0027:"},{"line_number":393,"context_line":"            reason \u003d _(\u0027Only user access type allowed for CIFS share\u0027)"},{"line_number":394,"context_line":"            raise exception.InvalidShareAccess(reason\u003dreason)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        user_name \u003d access[\u0027access_to\u0027]"},{"line_number":397,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_fa1213b3","line":394,"range":{"start_line":392,"start_character":8,"end_line":394,"end_character":61},"in_reply_to":"3a71b18c_27458eb2","updated":"2016-12-12 11:29:19.000000000","message":"Will analyse and update as required...thanks","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":698,"context_line":"    def teardown_server(self, server_details, security_services\u003dNone):"},{"line_number":699,"context_line":"        \"\"\"Teardown share server.\"\"\""},{"line_number":700,"context_line":"        if not server_details:"},{"line_number":701,"context_line":"            LOG.debug(\u0027Server details are empty.\u0027)"},{"line_number":702,"context_line":"            return"},{"line_number":703,"context_line":""},{"line_number":704,"context_line":"        vdm_name \u003d server_details.get(\u0027share_server_name\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_678b061f","line":701,"range":{"start_line":701,"start_character":23,"end_line":701,"end_character":48},"updated":"2016-12-09 17:03:55.000000000","message":"Which server?","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"529db05191dde8d60025f7a2fd2bb901a20cf1ab","unresolved":false,"context_lines":[{"line_number":698,"context_line":"    def teardown_server(self, server_details, security_services\u003dNone):"},{"line_number":699,"context_line":"        \"\"\"Teardown share server.\"\"\""},{"line_number":700,"context_line":"        if not server_details:"},{"line_number":701,"context_line":"            LOG.debug(\u0027Server details are empty.\u0027)"},{"line_number":702,"context_line":"            return"},{"line_number":703,"context_line":""},{"line_number":704,"context_line":"        vdm_name \u003d server_details.get(\u0027share_server_name\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_79ec54bb","line":701,"range":{"start_line":701,"start_character":23,"end_line":701,"end_character":48},"in_reply_to":"3a71b18c_678b061f","updated":"2016-12-12 11:26:23.000000000","message":"Will update to log a more specific error...Thanks","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":778,"context_line":"        # Only support single security service with type \u0027active_directory\u0027"},{"line_number":779,"context_line":"        service_number \u003d len(security_services)"},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"        if (service_number \u003e 1 or"},{"line_number":782,"context_line":"                security_services[0][\u0027type\u0027] !\u003d \u0027active_directory\u0027):"},{"line_number":783,"context_line":"            return False, _(\"Unsupported security services. \""},{"line_number":784,"context_line":"                            \"Only support single security service and \""},{"line_number":785,"context_line":"                            \"only support type \u0027active_directory\u0027\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_07a0929e","line":782,"range":{"start_line":781,"start_character":8,"end_line":782,"end_character":68},"updated":"2016-12-09 17:03:55.000000000","message":"If list of sec services is empty, then you will get IndexError exception on line 782.","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"c47f9a2c15e6bd9f5ca7b1a6d57dc6794e2644fe","unresolved":false,"context_lines":[{"line_number":778,"context_line":"        # Only support single security service with type \u0027active_directory\u0027"},{"line_number":779,"context_line":"        service_number \u003d len(security_services)"},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"        if (service_number \u003e 1 or"},{"line_number":782,"context_line":"                security_services[0][\u0027type\u0027] !\u003d \u0027active_directory\u0027):"},{"line_number":783,"context_line":"            return False, _(\"Unsupported security services. \""},{"line_number":784,"context_line":"                            \"Only support single security service and \""},{"line_number":785,"context_line":"                            \"only support type \u0027active_directory\u0027\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_ba1dfbbf","line":782,"range":{"start_line":781,"start_character":8,"end_line":782,"end_character":68},"in_reply_to":"3a71b18c_07a0929e","updated":"2016-12-12 11:29:19.000000000","message":"Will analyse and update as required....thanks","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"9cd611e7b27217b65f20bf708bf2d04bb03210e7","unresolved":false,"context_lines":[{"line_number":152,"context_line":"            LOG.error(message)"},{"line_number":153,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        interface \u003d server[\u0027interfaces\u0027][0]"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        self._get_context(\u0027CIFSShare\u0027).create(share_name, server[\u0027name\u0027],"},{"line_number":158,"context_line":"                                              vdm_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_8c7826c6","line":155,"range":{"start_line":155,"start_character":8,"end_line":155,"end_character":43},"updated":"2017-01-04 17:59:36.000000000","message":"If you have multiple interfaces, why not report them?  And if it helps, there is support in manila for marking some paths as preferred.","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"bf1e2b4a10844a9c67725d0c0c2986b14baf34f0","unresolved":false,"context_lines":[{"line_number":152,"context_line":"            LOG.error(message)"},{"line_number":153,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        interface \u003d server[\u0027interfaces\u0027][0]"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        self._get_context(\u0027CIFSShare\u0027).create(share_name, server[\u0027name\u0027],"},{"line_number":158,"context_line":"                                              vdm_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_e9c7b295","line":155,"range":{"start_line":155,"start_character":8,"end_line":155,"end_character":43},"in_reply_to":"ba5201f7_8c7826c6","updated":"2017-01-17 15:08:11.000000000","message":"Will update and check in","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"9cd611e7b27217b65f20bf708bf2d04bb03210e7","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        self._get_context(\u0027CIFSShare\u0027).disable_share_access(share_name,"},{"line_number":161,"context_line":"                                                            vdm_name)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        location \u003d (r\u0027\\\\%(interface)s\\%(name)s\u0027 %"},{"line_number":164,"context_line":"                    {\u0027interface\u0027: interface, \u0027name\u0027: share_name})"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        return location"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_0cbd1668","line":164,"range":{"start_line":163,"start_character":8,"end_line":164,"end_character":65},"updated":"2017-01-04 17:59:36.000000000","message":"For new drivers, it makes more sense to use the dict form for export locations.  And you can return a list, even if there is only one export location.\n\nSee: https://github.com/openstack/manila/blob/master/manila/share/drivers/helpers.py#L93","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"bf1e2b4a10844a9c67725d0c0c2986b14baf34f0","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        self._get_context(\u0027CIFSShare\u0027).disable_share_access(share_name,"},{"line_number":161,"context_line":"                                                            vdm_name)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        location \u003d (r\u0027\\\\%(interface)s\\%(name)s\u0027 %"},{"line_number":164,"context_line":"                    {\u0027interface\u0027: interface, \u0027name\u0027: share_name})"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        return location"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_49c36689","line":164,"range":{"start_line":163,"start_character":8,"end_line":164,"end_character":65},"in_reply_to":"ba5201f7_0cbd1668","updated":"2017-01-17 15:08:11.000000000","message":"Will update","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"9cd611e7b27217b65f20bf708bf2d04bb03210e7","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        self._get_context(\u0027NFSShare\u0027).create(share_name, vdm_name)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        return (\u0027%(nfs_if)s:/%(share_name)s\u0027"},{"line_number":176,"context_line":"                % {\u0027nfs_if\u0027: share_server[\u0027backend_details\u0027][\u0027nfs_if\u0027],"},{"line_number":177,"context_line":"                   \u0027share_name\u0027: share_name})"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def create_share_from_snapshot(self, context, share, snapshot,"},{"line_number":180,"context_line":"                                   share_server\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_4c455e6e","line":177,"range":{"start_line":175,"start_character":7,"end_line":177,"end_character":45},"updated":"2017-01-04 17:59:36.000000000","message":"Same, return a list of dicts here.","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"bf1e2b4a10844a9c67725d0c0c2986b14baf34f0","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        self._get_context(\u0027NFSShare\u0027).create(share_name, vdm_name)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        return (\u0027%(nfs_if)s:/%(share_name)s\u0027"},{"line_number":176,"context_line":"                % {\u0027nfs_if\u0027: share_server[\u0027backend_details\u0027][\u0027nfs_if\u0027],"},{"line_number":177,"context_line":"                   \u0027share_name\u0027: share_name})"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def create_share_from_snapshot(self, context, share, snapshot,"},{"line_number":180,"context_line":"                                   share_server\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_e93ed289","line":177,"range":{"start_line":175,"start_character":7,"end_line":177,"end_character":45},"in_reply_to":"ba5201f7_4c455e6e","updated":"2017-01-17 15:08:11.000000000","message":"Will update","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9d3157b56792029c5d8e2ff53143e24636226799","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        # Get the pool name from share host field"},{"line_number":193,"context_line":"        pool_name \u003d share_utils.extract_host(share[\u0027host\u0027], level\u003d\u0027pool\u0027)"},{"line_number":194,"context_line":"        if not pool_name:"},{"line_number":195,"context_line":"            message \u003d (_(\"Pool is not available in the share host %s.\") %"},{"line_number":196,"context_line":"                       share[\u0027host\u0027])"},{"line_number":197,"context_line":"            raise exception.InvalidHost(reason\u003dmessage)"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_2f73ca81","line":195,"updated":"2016-12-23 16:45:38.000000000","message":"s/in/on","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"9cd611e7b27217b65f20bf708bf2d04bb03210e7","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        if share_proto \u003d\u003d \u0027NFS\u0027:"},{"line_number":205,"context_line":"            self._create_nfs_share(share_name, share_server)"},{"line_number":206,"context_line":"            location \u003d (\u0027%(nfs_if)s:/%(share_name)s\u0027"},{"line_number":207,"context_line":"                        % {\u0027nfs_if\u0027: share_server[\u0027backend_details\u0027][\u0027nfs_if\u0027],"},{"line_number":208,"context_line":"                           \u0027share_name\u0027: share_name})"},{"line_number":209,"context_line":"        elif share_proto \u003d\u003d \u0027CIFS\u0027:"},{"line_number":210,"context_line":"            location \u003d self._create_cifs_share(share_name, share_server)"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_2c357af6","line":208,"range":{"start_line":206,"start_character":12,"end_line":208,"end_character":53},"updated":"2017-01-04 17:59:36.000000000","message":"Same, return a list of dicts here.","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"bf1e2b4a10844a9c67725d0c0c2986b14baf34f0","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        if share_proto \u003d\u003d \u0027NFS\u0027:"},{"line_number":205,"context_line":"            self._create_nfs_share(share_name, share_server)"},{"line_number":206,"context_line":"            location \u003d (\u0027%(nfs_if)s:/%(share_name)s\u0027"},{"line_number":207,"context_line":"                        % {\u0027nfs_if\u0027: share_server[\u0027backend_details\u0027][\u0027nfs_if\u0027],"},{"line_number":208,"context_line":"                           \u0027share_name\u0027: share_name})"},{"line_number":209,"context_line":"        elif share_proto \u003d\u003d \u0027CIFS\u0027:"},{"line_number":210,"context_line":"            location \u003d self._create_cifs_share(share_name, share_server)"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_294d3a3e","line":208,"range":{"start_line":206,"start_character":12,"end_line":208,"end_character":53},"in_reply_to":"ba5201f7_2c357af6","updated":"2017-01-17 15:08:11.000000000","message":"will update","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"9cd611e7b27217b65f20bf708bf2d04bb03210e7","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        \"\"\"Delete a share.\"\"\""},{"line_number":231,"context_line":"        if share_server is None:"},{"line_number":232,"context_line":"            LOG.warning(_LW(\"Driver does not support share deletion without \""},{"line_number":233,"context_line":"                            \"share network specified. Return directly because \""},{"line_number":234,"context_line":"                            \"there is nothing to clean.\"))"},{"line_number":235,"context_line":"            return"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_07008f00","line":233,"range":{"start_line":233,"start_character":54,"end_line":233,"end_character":69},"updated":"2017-01-04 17:59:36.000000000","message":"I don\u0027t think you need to describe the driver\u0027s control flow quite so precisely in your warning message.","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"bf1e2b4a10844a9c67725d0c0c2986b14baf34f0","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        \"\"\"Delete a share.\"\"\""},{"line_number":231,"context_line":"        if share_server is None:"},{"line_number":232,"context_line":"            LOG.warning(_LW(\"Driver does not support share deletion without \""},{"line_number":233,"context_line":"                            \"share network specified. Return directly because \""},{"line_number":234,"context_line":"                            \"there is nothing to clean.\"))"},{"line_number":235,"context_line":"            return"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_8972ae0f","line":233,"range":{"start_line":233,"start_character":54,"end_line":233,"end_character":69},"in_reply_to":"ba5201f7_07008f00","updated":"2017-01-17 15:08:11.000000000","message":"Will update message","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9d3157b56792029c5d8e2ff53143e24636226799","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        try:"},{"line_number":275,"context_line":"            # Delete mount point"},{"line_number":276,"context_line":"            self._get_context(\u0027MountPoint\u0027).delete(path, vdm_name)"},{"line_number":277,"context_line":"        except exception.EMCVmaxXMLAPIError:"},{"line_number":278,"context_line":"            LOG.debug(_LW(\"CIFS server %(name)s on mover %(mover_name)s \""},{"line_number":279,"context_line":"                          \"not found due to error %(err)s. Skip the \""},{"line_number":280,"context_line":"                          \"deletion.\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_6f94f2e1","line":277,"range":{"start_line":277,"start_character":8,"end_line":277,"end_character":44},"updated":"2016-12-23 16:45:38.000000000","message":"except exception.EMCVmaxXMLAPIError as e:","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9d3157b56792029c5d8e2ff53143e24636226799","unresolved":false,"context_lines":[{"line_number":275,"context_line":"            # Delete mount point"},{"line_number":276,"context_line":"            self._get_context(\u0027MountPoint\u0027).delete(path, vdm_name)"},{"line_number":277,"context_line":"        except exception.EMCVmaxXMLAPIError:"},{"line_number":278,"context_line":"            LOG.debug(_LW(\"CIFS server %(name)s on mover %(mover_name)s \""},{"line_number":279,"context_line":"                          \"not found due to error %(err)s. Skip the \""},{"line_number":280,"context_line":"                          \"deletion.\"),"},{"line_number":281,"context_line":"                      {\u0027name\u0027: path, \u0027mover_name\u0027: vdm_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_cf923e4b","line":278,"updated":"2016-12-23 16:45:38.000000000","message":"Use LOG.error","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"bf1e2b4a10844a9c67725d0c0c2986b14baf34f0","unresolved":false,"context_lines":[{"line_number":275,"context_line":"            # Delete mount point"},{"line_number":276,"context_line":"            self._get_context(\u0027MountPoint\u0027).delete(path, vdm_name)"},{"line_number":277,"context_line":"        except exception.EMCVmaxXMLAPIError:"},{"line_number":278,"context_line":"            LOG.debug(_LW(\"CIFS server %(name)s on mover %(mover_name)s \""},{"line_number":279,"context_line":"                          \"not found due to error %(err)s. Skip the \""},{"line_number":280,"context_line":"                          \"deletion.\"),"},{"line_number":281,"context_line":"                      {\u0027name\u0027: path, \u0027mover_name\u0027: vdm_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_cc95a433","line":278,"in_reply_to":"ba5201f7_279f53b5","updated":"2017-01-17 15:08:11.000000000","message":"will update to LOG.exception","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"9cd611e7b27217b65f20bf708bf2d04bb03210e7","unresolved":false,"context_lines":[{"line_number":275,"context_line":"            # Delete mount point"},{"line_number":276,"context_line":"            self._get_context(\u0027MountPoint\u0027).delete(path, vdm_name)"},{"line_number":277,"context_line":"        except exception.EMCVmaxXMLAPIError:"},{"line_number":278,"context_line":"            LOG.debug(_LW(\"CIFS server %(name)s on mover %(mover_name)s \""},{"line_number":279,"context_line":"                          \"not found due to error %(err)s. Skip the \""},{"line_number":280,"context_line":"                          \"deletion.\"),"},{"line_number":281,"context_line":"                      {\u0027name\u0027: path, \u0027mover_name\u0027: vdm_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_279f53b5","line":278,"in_reply_to":"da4df55a_cf923e4b","updated":"2017-01-04 17:59:36.000000000","message":"Or LOG.exception so it includes the exception message automatically.","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9d3157b56792029c5d8e2ff53143e24636226799","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                          \"not found due to error %(err)s. Skip the \""},{"line_number":280,"context_line":"                          \"deletion.\"),"},{"line_number":281,"context_line":"                      {\u0027name\u0027: path, \u0027mover_name\u0027: vdm_name,"},{"line_number":282,"context_line":"                      \u0027err\u0027: exception.EMCVmaxXMLAPIError.message})"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        try:"},{"line_number":285,"context_line":"            # Delete file system"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_cf987e1e","line":282,"range":{"start_line":282,"start_character":29,"end_line":282,"end_character":65},"updated":"2016-12-23 16:45:38.000000000","message":"This is wrong.  Should be e.msg","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"bf1e2b4a10844a9c67725d0c0c2986b14baf34f0","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                          \"not found due to error %(err)s. Skip the \""},{"line_number":280,"context_line":"                          \"deletion.\"),"},{"line_number":281,"context_line":"                      {\u0027name\u0027: path, \u0027mover_name\u0027: vdm_name,"},{"line_number":282,"context_line":"                      \u0027err\u0027: exception.EMCVmaxXMLAPIError.message})"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        try:"},{"line_number":285,"context_line":"            # Delete file system"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_4ca2949a","line":282,"range":{"start_line":282,"start_character":29,"end_line":282,"end_character":65},"in_reply_to":"da4df55a_cf987e1e","updated":"2017-01-17 15:08:11.000000000","message":"will update","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9d3157b56792029c5d8e2ff53143e24636226799","unresolved":false,"context_lines":[{"line_number":284,"context_line":"        try:"},{"line_number":285,"context_line":"            # Delete file system"},{"line_number":286,"context_line":"            self._get_context(\u0027FileSystem\u0027).delete(share_name)"},{"line_number":287,"context_line":"        except exception.EMCVmaxXMLAPIError:"},{"line_number":288,"context_line":"            LOG.debug(_LW(\"File system  %(share_name)s not found due to\""},{"line_number":289,"context_line":"                          \"error %(err)s. Skip the deletion.\"),"},{"line_number":290,"context_line":"                      {\u0027share_name\u0027: share_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_0fba866e","line":287,"updated":"2016-12-23 16:45:38.000000000","message":"as e","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9d3157b56792029c5d8e2ff53143e24636226799","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            # Delete file system"},{"line_number":286,"context_line":"            self._get_context(\u0027FileSystem\u0027).delete(share_name)"},{"line_number":287,"context_line":"        except exception.EMCVmaxXMLAPIError:"},{"line_number":288,"context_line":"            LOG.debug(_LW(\"File system  %(share_name)s not found due to\""},{"line_number":289,"context_line":"                          \"error %(err)s. Skip the deletion.\"),"},{"line_number":290,"context_line":"                      {\u0027share_name\u0027: share_name,"},{"line_number":291,"context_line":"                       \u0027err\u0027: exception.EMCVmaxXMLAPIError.message})"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_0f9d2659","line":288,"updated":"2016-12-23 16:45:38.000000000","message":"Use LOG.error","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"9cd611e7b27217b65f20bf708bf2d04bb03210e7","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            # Delete file system"},{"line_number":286,"context_line":"            self._get_context(\u0027FileSystem\u0027).delete(share_name)"},{"line_number":287,"context_line":"        except exception.EMCVmaxXMLAPIError:"},{"line_number":288,"context_line":"            LOG.debug(_LW(\"File system  %(share_name)s not found due to\""},{"line_number":289,"context_line":"                          \"error %(err)s. Skip the deletion.\"),"},{"line_number":290,"context_line":"                      {\u0027share_name\u0027: share_name,"},{"line_number":291,"context_line":"                       \u0027err\u0027: exception.EMCVmaxXMLAPIError.message})"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_67a95bdf","line":288,"in_reply_to":"da4df55a_0f9d2659","updated":"2017-01-04 17:59:36.000000000","message":"Or LOG.exception","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9d3157b56792029c5d8e2ff53143e24636226799","unresolved":false,"context_lines":[{"line_number":288,"context_line":"            LOG.debug(_LW(\"File system  %(share_name)s not found due to\""},{"line_number":289,"context_line":"                          \"error %(err)s. Skip the deletion.\"),"},{"line_number":290,"context_line":"                      {\u0027share_name\u0027: share_name,"},{"line_number":291,"context_line":"                       \u0027err\u0027: exception.EMCVmaxXMLAPIError.message})"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def delete_snapshot(self, context, snapshot, share_server\u003dNone):"},{"line_number":294,"context_line":"        \"\"\"Delete a snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_2fb10a90","line":291,"range":{"start_line":291,"start_character":30,"end_line":291,"end_character":66},"updated":"2016-12-23 16:45:38.000000000","message":"e.msg","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9d3157b56792029c5d8e2ff53143e24636226799","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                total_size \u003d float(pool[\u0027total_size\u0027])"},{"line_number":595,"context_line":"                used_size \u003d float(pool[\u0027used_size\u0027])"},{"line_number":596,"context_line":""},{"line_number":597,"context_line":"                pool_stat \u003d dict("},{"line_number":598,"context_line":"                    pool_name\u003dpool[\u0027name\u0027],"},{"line_number":599,"context_line":"                    total_capacity_gb\u003dtotal_size,"},{"line_number":600,"context_line":"                    free_capacity_gb\u003dtotal_size - used_size,"},{"line_number":601,"context_line":"                    qos\u003dFalse,"},{"line_number":602,"context_line":"                    reserved_percentage\u003dself.reserved_percentage,"},{"line_number":603,"context_line":"                )"},{"line_number":604,"context_line":"                stats_dict[\u0027pools\u0027].append(pool_stat)"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"        if not stats_dict[\u0027pools\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_8f2bd693","line":603,"range":{"start_line":597,"start_character":28,"end_line":603,"end_character":17},"updated":"2016-12-23 16:45:38.000000000","message":"Use dictionary comprehension {} rather than dict()","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"bf1e2b4a10844a9c67725d0c0c2986b14baf34f0","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                total_size \u003d float(pool[\u0027total_size\u0027])"},{"line_number":595,"context_line":"                used_size \u003d float(pool[\u0027used_size\u0027])"},{"line_number":596,"context_line":""},{"line_number":597,"context_line":"                pool_stat \u003d dict("},{"line_number":598,"context_line":"                    pool_name\u003dpool[\u0027name\u0027],"},{"line_number":599,"context_line":"                    total_capacity_gb\u003dtotal_size,"},{"line_number":600,"context_line":"                    free_capacity_gb\u003dtotal_size - used_size,"},{"line_number":601,"context_line":"                    qos\u003dFalse,"},{"line_number":602,"context_line":"                    reserved_percentage\u003dself.reserved_percentage,"},{"line_number":603,"context_line":"                )"},{"line_number":604,"context_line":"                stats_dict[\u0027pools\u0027].append(pool_stat)"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"        if not stats_dict[\u0027pools\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_4276dbd7","line":603,"range":{"start_line":597,"start_character":28,"end_line":603,"end_character":17},"in_reply_to":"da4df55a_8f2bd693","updated":"2017-01-17 15:08:11.000000000","message":"will update","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"87878320afd390e96093f8db6d44930c1804b9f2","unresolved":false,"context_lines":[{"line_number":647,"context_line":"        \"\"\"Set up and configures share server with given network parameters.\"\"\""},{"line_number":648,"context_line":"        # Only support single security service with type \u0027active_directory\u0027"},{"line_number":649,"context_line":"        vdm_name \u003d network_info[\u0027server_id\u0027]"},{"line_number":650,"context_line":"        vlan_id \u003d network_info[\u0027segmentation_id\u0027]"},{"line_number":651,"context_line":"        active_directory \u003d None"},{"line_number":652,"context_line":"        allocated_interfaces \u003d []"},{"line_number":653,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_098c217e","line":650,"range":{"start_line":650,"start_character":8,"end_line":650,"end_character":49},"updated":"2017-01-04 19:04:19.000000000","message":"There can be other network types besides VLANs.  For example, if you don\u0027t support VXLAN, you\u0027ll want to check for that.\n\nSee: https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_multi_svm.py#L143","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"bf1e2b4a10844a9c67725d0c0c2986b14baf34f0","unresolved":false,"context_lines":[{"line_number":647,"context_line":"        \"\"\"Set up and configures share server with given network parameters.\"\"\""},{"line_number":648,"context_line":"        # Only support single security service with type \u0027active_directory\u0027"},{"line_number":649,"context_line":"        vdm_name \u003d network_info[\u0027server_id\u0027]"},{"line_number":650,"context_line":"        vlan_id \u003d network_info[\u0027segmentation_id\u0027]"},{"line_number":651,"context_line":"        active_directory \u003d None"},{"line_number":652,"context_line":"        allocated_interfaces \u003d []"},{"line_number":653,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_7d537ce2","line":650,"range":{"start_line":650,"start_character":8,"end_line":650,"end_character":49},"in_reply_to":"ba5201f7_098c217e","updated":"2017-01-17 15:08:11.000000000","message":"Will update","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"5d80de0fc37efef901015edec98812a31d2626d7","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"VMAX_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027vmax_server_container\u0027,"},{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_9de7ca11","line":40,"range":{"start_line":40,"start_character":0,"end_line":40,"end_character":9},"updated":"2017-01-19 16:19:11.000000000","message":"These opts are not added to generator of opt samples.","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"792565daf77b8f43fb4c5152bac1efa97db91777","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"VMAX_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027vmax_server_container\u0027,"},{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_5fd1d2cc","line":40,"range":{"start_line":40,"start_character":0,"end_line":40,"end_character":9},"in_reply_to":"5a3905b3_2426bbba","updated":"2017-01-19 18:15:10.000000000","message":"Yes","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"17c79b06f085a31d79686067edadef6ca51bfa60","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"VMAX_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027vmax_server_container\u0027,"},{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_2426bbba","line":40,"range":{"start_line":40,"start_character":0,"end_line":40,"end_character":9},"in_reply_to":"5a3905b3_53571302","updated":"2017-01-19 17:35:27.000000000","message":"Do you mean add VMAX_OPTS to opts.py in the following way:\n\nmanila.share.drivers.dell_emc.driver.VMAX_OPTS","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"3bf7f4076ba9e9555420d9688571effd5b8f32af","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"VMAX_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027vmax_server_container\u0027,"},{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_99e271d4","line":40,"range":{"start_line":40,"start_character":0,"end_line":40,"end_character":9},"in_reply_to":"5a3905b3_5fd1d2cc","updated":"2017-01-19 20:36:54.000000000","message":"Thanks Xing. I will make that change now","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"eebd41074880a470ced94c7590308c5b47ee5bb7","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"VMAX_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027vmax_server_container\u0027,"},{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_53571302","line":40,"range":{"start_line":40,"start_character":0,"end_line":40,"end_character":9},"in_reply_to":"5a3905b3_9de7ca11","updated":"2017-01-19 16:49:07.000000000","message":"See the following example.  You need to add something similar for VMAX_OPTS:\n\nhttps://github.com/openstack/manila/blob/master/manila/opts.py#L55\nhttps://github.com/openstack/manila/blob/master/manila/opts.py#L125","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e4999cc7bdf760e8e1db88ed65e36cc74d06eec2","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            self._delete_cifs_share(share, share_server)"},{"line_number":266,"context_line":"        else:"},{"line_number":267,"context_line":"            raise exception.InvalidShare("},{"line_number":268,"context_line":"                reason\u003d\u0027Unsupported share type\u0027)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    @vmax_utils.log_enter_exit"},{"line_number":271,"context_line":"    def _delete_cifs_share(self, share, share_server):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_b0102d50","line":268,"range":{"start_line":268,"start_character":24,"end_line":268,"end_character":46},"updated":"2017-01-19 16:33:38.000000000","message":"Shouldn\u0027t it be \"Unsupported share protocol\"?","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"17c79b06f085a31d79686067edadef6ca51bfa60","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            self._delete_cifs_share(share, share_server)"},{"line_number":266,"context_line":"        else:"},{"line_number":267,"context_line":"            raise exception.InvalidShare("},{"line_number":268,"context_line":"                reason\u003d\u0027Unsupported share type\u0027)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    @vmax_utils.log_enter_exit"},{"line_number":271,"context_line":"    def _delete_cifs_share(self, share, share_server):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_c43ed7b7","line":268,"range":{"start_line":268,"start_character":24,"end_line":268,"end_character":46},"in_reply_to":"5a3905b3_b0102d50","updated":"2017-01-19 17:35:27.000000000","message":"Sure, We can change that","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e4999cc7bdf760e8e1db88ed65e36cc74d06eec2","unresolved":false,"context_lines":[{"line_number":465,"context_line":"            self._cifs_deny_access(share, access, share_server)"},{"line_number":466,"context_line":"        else:"},{"line_number":467,"context_line":"            raise exception.InvalidShare("},{"line_number":468,"context_line":"                reason\u003d_(\u0027Unsupported share type\u0027))"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    @vmax_utils.log_enter_exit"},{"line_number":471,"context_line":"    def _cifs_deny_access(self, share, access, share_server):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_90ddf172","line":468,"range":{"start_line":468,"start_character":25,"end_line":468,"end_character":48},"updated":"2017-01-19 16:33:38.000000000","message":"ditto","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"17c79b06f085a31d79686067edadef6ca51bfa60","unresolved":false,"context_lines":[{"line_number":465,"context_line":"            self._cifs_deny_access(share, access, share_server)"},{"line_number":466,"context_line":"        else:"},{"line_number":467,"context_line":"            raise exception.InvalidShare("},{"line_number":468,"context_line":"                reason\u003d_(\u0027Unsupported share type\u0027))"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    @vmax_utils.log_enter_exit"},{"line_number":471,"context_line":"    def _cifs_deny_access(self, share, access, share_server):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_a4af0be2","line":468,"range":{"start_line":468,"start_character":25,"end_line":468,"end_character":48},"in_reply_to":"5a3905b3_90ddf172","updated":"2017-01-19 17:35:27.000000000","message":"Sure, thanks","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e4999cc7bdf760e8e1db88ed65e36cc74d06eec2","unresolved":false,"context_lines":[{"line_number":613,"context_line":"                total_size \u003d float(pool[\u0027total_size\u0027])"},{"line_number":614,"context_line":"                used_size \u003d float(pool[\u0027used_size\u0027])"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"                pool_stat \u003d dict("},{"line_number":617,"context_line":"                    pool_name\u003dpool[\u0027name\u0027],"},{"line_number":618,"context_line":"                    total_capacity_gb\u003dtotal_size,"},{"line_number":619,"context_line":"                    free_capacity_gb\u003dtotal_size - used_size,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_100581c1","line":616,"updated":"2017-01-19 16:33:38.000000000","message":"Would be great to see explicit list of capabilities, including new ones.","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"eebd41074880a470ced94c7590308c5b47ee5bb7","unresolved":false,"context_lines":[{"line_number":613,"context_line":"                total_size \u003d float(pool[\u0027total_size\u0027])"},{"line_number":614,"context_line":"                used_size \u003d float(pool[\u0027used_size\u0027])"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"                pool_stat \u003d dict("},{"line_number":617,"context_line":"                    pool_name\u003dpool[\u0027name\u0027],"},{"line_number":618,"context_line":"                    total_capacity_gb\u003dtotal_size,"},{"line_number":619,"context_line":"                    free_capacity_gb\u003dtotal_size - used_size,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_13058bc1","line":616,"in_reply_to":"5a3905b3_100581c1","updated":"2017-01-19 16:49:07.000000000","message":"Hi Valeriy,\n\nCan you please give an example of what you are asking for?  Thanks.","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2844c9a37dc5b49f1e42cf7c783771da3e2129f4","unresolved":false,"context_lines":[{"line_number":613,"context_line":"                total_size \u003d float(pool[\u0027total_size\u0027])"},{"line_number":614,"context_line":"                used_size \u003d float(pool[\u0027used_size\u0027])"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"                pool_stat \u003d dict("},{"line_number":617,"context_line":"                    pool_name\u003dpool[\u0027name\u0027],"},{"line_number":618,"context_line":"                    total_capacity_gb\u003dtotal_size,"},{"line_number":619,"context_line":"                    free_capacity_gb\u003dtotal_size - used_size,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_8e0eae32","line":616,"in_reply_to":"5a3905b3_13058bc1","updated":"2017-01-19 16:54:34.000000000","message":"Like this:\nhttps://github.com/openstack/manila/blob/d4a379d0/manila/share/drivers/lvm.py#L192-L194","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"eebd41074880a470ced94c7590308c5b47ee5bb7","unresolved":false,"context_lines":[{"line_number":619,"context_line":"                    free_capacity_gb\u003dtotal_size - used_size,"},{"line_number":620,"context_line":"                    qos\u003dFalse,"},{"line_number":621,"context_line":"                    reserved_percentage\u003dself.reserved_percentage,"},{"line_number":622,"context_line":"                )"},{"line_number":623,"context_line":"                stats_dict[\u0027pools\u0027].append(pool_stat)"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"        if not stats_dict[\u0027pools\u0027]:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_53263369","line":622,"updated":"2017-01-19 16:49:07.000000000","message":"Helen, it\u0027s better to use {} instead of dict() here.","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"a6749a700634b89e19c9d00768a0fa70a151e2d8","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                    \u0027reserved_percentage\u0027: self.reserved_percentage,"},{"line_number":622,"context_line":"                    \u0027snapshot_support\u0027: True,"},{"line_number":623,"context_line":"                    \u0027create_share_from_snapshot_support\u0027: True,"},{"line_number":624,"context_line":"                    \u0027revert_to_snapshot_support\u0027: True,"},{"line_number":625,"context_line":"                }"},{"line_number":626,"context_line":"                stats_dict[\u0027pools\u0027].append(pool_stat)"},{"line_number":627,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_e744901c","line":624,"range":{"start_line":624,"start_character":20,"end_line":624,"end_character":55},"updated":"2017-01-20 09:47:14.000000000","message":"It has wrong value, you do not support \"revert to snapshot\".","commit_id":"84cdd140d2bc8ec807e4461dc619daf940b4f322"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"a774521fd9dce307b7afe21d2de62a3e9591c477","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                    \u0027reserved_percentage\u0027: self.reserved_percentage,"},{"line_number":622,"context_line":"                    \u0027snapshot_support\u0027: True,"},{"line_number":623,"context_line":"                    \u0027create_share_from_snapshot_support\u0027: True,"},{"line_number":624,"context_line":"                    \u0027revert_to_snapshot_support\u0027: True,"},{"line_number":625,"context_line":"                }"},{"line_number":626,"context_line":"                stats_dict[\u0027pools\u0027].append(pool_stat)"},{"line_number":627,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_ed154f49","line":624,"range":{"start_line":624,"start_character":20,"end_line":624,"end_character":55},"in_reply_to":"5a3905b3_8d4dab74","updated":"2017-01-20 10:30:26.000000000","message":"Not remove, set \"False\" value.","commit_id":"84cdd140d2bc8ec807e4461dc619daf940b4f322"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"3d4f57915c6dd7b13b0c550f43269d0eed1af257","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                    \u0027reserved_percentage\u0027: self.reserved_percentage,"},{"line_number":622,"context_line":"                    \u0027snapshot_support\u0027: True,"},{"line_number":623,"context_line":"                    \u0027create_share_from_snapshot_support\u0027: True,"},{"line_number":624,"context_line":"                    \u0027revert_to_snapshot_support\u0027: True,"},{"line_number":625,"context_line":"                }"},{"line_number":626,"context_line":"                stats_dict[\u0027pools\u0027].append(pool_stat)"},{"line_number":627,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_8d4dab74","line":624,"range":{"start_line":624,"start_character":20,"end_line":624,"end_character":55},"in_reply_to":"5a3905b3_e744901c","updated":"2017-01-20 10:19:04.000000000","message":"I will remove it","commit_id":"84cdd140d2bc8ec807e4461dc619daf940b4f322"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"070200d753619622952a4cd563a95fa3b5350085","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                    \u0027reserved_percentage\u0027: self.reserved_percentage,"},{"line_number":622,"context_line":"                    \u0027snapshot_support\u0027: True,"},{"line_number":623,"context_line":"                    \u0027create_share_from_snapshot_support\u0027: True,"},{"line_number":624,"context_line":"                    \u0027revert_to_snapshot_support\u0027: True,"},{"line_number":625,"context_line":"                }"},{"line_number":626,"context_line":"                stats_dict[\u0027pools\u0027].append(pool_stat)"},{"line_number":627,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_3c96aa4c","line":624,"range":{"start_line":624,"start_character":20,"end_line":624,"end_character":55},"in_reply_to":"5a3905b3_ed154f49","updated":"2017-01-20 11:21:10.000000000","message":"I will.  Thank you for the great feedback.","commit_id":"84cdd140d2bc8ec807e4461dc619daf940b4f322"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"1ea44c403c520dfa38d80631a98c87d57dcfcd9f","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":"        except Exception as ex:"},{"line_number":724,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":725,"context_line":"                LOG.error(_LE(\u0027Could not setup server. Reason: %s.\u0027), ex)"},{"line_number":726,"context_line":"                server_details \u003d self._construct_backend_details("},{"line_number":727,"context_line":"                    vdm_name, allocated_interfaces)"},{"line_number":728,"context_line":"                self.teardown_server("}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_470484bf","line":725,"range":{"start_line":725,"start_character":16,"end_line":725,"end_character":73},"updated":"2017-01-20 09:48:45.000000000","message":"LOG.exception(_LE(\u0027Could not setup server.\u0027))","commit_id":"84cdd140d2bc8ec807e4461dc619daf940b4f322"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"3d4f57915c6dd7b13b0c550f43269d0eed1af257","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":"        except Exception as ex:"},{"line_number":724,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":725,"context_line":"                LOG.error(_LE(\u0027Could not setup server. Reason: %s.\u0027), ex)"},{"line_number":726,"context_line":"                server_details \u003d self._construct_backend_details("},{"line_number":727,"context_line":"                    vdm_name, allocated_interfaces)"},{"line_number":728,"context_line":"                self.teardown_server("}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_ed238fa5","line":725,"range":{"start_line":725,"start_character":16,"end_line":725,"end_character":73},"in_reply_to":"5a3905b3_470484bf","updated":"2017-01-20 10:19:04.000000000","message":"Sure","commit_id":"84cdd140d2bc8ec807e4461dc619daf940b4f322"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d1161410c7ec1abf55ba9bb6b3c0846c9614a682","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                    \u0027qos\u0027: False,"},{"line_number":621,"context_line":"                    \u0027reserved_percentage\u0027: self.reserved_percentage,"},{"line_number":622,"context_line":"                    \u0027snapshot_support\u0027: True,"},{"line_number":623,"context_line":"                    \u0027create_share_from_snapshot_support\u0027: True,"},{"line_number":624,"context_line":"                }"},{"line_number":625,"context_line":"                stats_dict[\u0027pools\u0027].append(pool_stat)"},{"line_number":626,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_7fae6486","line":623,"updated":"2017-01-20 11:23:19.000000000","message":"+\n\u0027revert_to_snapshot_support\u0027: False,","commit_id":"02bc607db11f9a72a4308615ef60c84f8f016627"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"a51b206e51a1c22364f4cdce31e8ae5ea9ff4ef6","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                    \u0027qos\u0027: False,"},{"line_number":621,"context_line":"                    \u0027reserved_percentage\u0027: self.reserved_percentage,"},{"line_number":622,"context_line":"                    \u0027snapshot_support\u0027: True,"},{"line_number":623,"context_line":"                    \u0027create_share_from_snapshot_support\u0027: True,"},{"line_number":624,"context_line":"                }"},{"line_number":625,"context_line":"                stats_dict[\u0027pools\u0027].append(pool_stat)"},{"line_number":626,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_df07587f","line":623,"in_reply_to":"5a3905b3_7fae6486","updated":"2017-01-20 11:30:26.000000000","message":"Apologies, committed to soon","commit_id":"02bc607db11f9a72a4308615ef60c84f8f016627"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d1161410c7ec1abf55ba9bb6b3c0846c9614a682","unresolved":false,"context_lines":[{"line_number":721,"context_line":""},{"line_number":722,"context_line":"        except Exception:"},{"line_number":723,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":724,"context_line":"                LOG.exception(_LE(\u0027Could not setup server. Reason: %s.\u0027))"},{"line_number":725,"context_line":"                server_details \u003d self._construct_backend_details("},{"line_number":726,"context_line":"                    vdm_name, allocated_interfaces)"},{"line_number":727,"context_line":"                self.teardown_server("}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_3fa4dca4","line":724,"range":{"start_line":724,"start_character":58,"end_line":724,"end_character":70},"updated":"2017-01-20 11:23:19.000000000","message":"left-over.","commit_id":"02bc607db11f9a72a4308615ef60c84f8f016627"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"a51b206e51a1c22364f4cdce31e8ae5ea9ff4ef6","unresolved":false,"context_lines":[{"line_number":721,"context_line":""},{"line_number":722,"context_line":"        except Exception:"},{"line_number":723,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":724,"context_line":"                LOG.exception(_LE(\u0027Could not setup server. Reason: %s.\u0027))"},{"line_number":725,"context_line":"                server_details \u003d self._construct_backend_details("},{"line_number":726,"context_line":"                    vdm_name, allocated_interfaces)"},{"line_number":727,"context_line":"                self.teardown_server("}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_bfc7ec10","line":724,"range":{"start_line":724,"start_character":58,"end_line":724,"end_character":70},"in_reply_to":"5a3905b3_3fa4dca4","updated":"2017-01-20 11:30:26.000000000","message":"sure","commit_id":"02bc607db11f9a72a4308615ef60c84f8f016627"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3b8bca0ca5c35f12cbe927df5cfd1c56e7a336b5","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        share_proto \u003d share[\u0027share_proto\u0027]"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Validate the share protocol"},{"line_number":86,"context_line":"        if share_proto.upper() not in (\u0027NFS\u0027, \u0027CIFS\u0027):"},{"line_number":87,"context_line":"            raise exception.InvalidShare("},{"line_number":88,"context_line":"                reason\u003d(_(\u0027Invalid NAS protocol supplied: %s.\u0027)"},{"line_number":89,"context_line":"                        % share_proto))"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_ec69c7bf","line":86,"range":{"start_line":86,"start_character":22,"end_line":86,"end_character":30},"updated":"2017-01-20 13:58:46.000000000","message":"This \"upper\" translation should have been done on line 83. But, according to the fact, that it works, you do not need this translation and it is in uppercase always.","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"083fd23d30824b4d27557c3f3913f8cae2e3f4e0","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        share_proto \u003d share[\u0027share_proto\u0027]"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Validate the share protocol"},{"line_number":86,"context_line":"        if share_proto.upper() not in (\u0027NFS\u0027, \u0027CIFS\u0027):"},{"line_number":87,"context_line":"            raise exception.InvalidShare("},{"line_number":88,"context_line":"                reason\u003d(_(\u0027Invalid NAS protocol supplied: %s.\u0027)"},{"line_number":89,"context_line":"                        % share_proto))"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_0c79b32f","line":86,"range":{"start_line":86,"start_character":22,"end_line":86,"end_character":30},"in_reply_to":"5a3905b3_ec69c7bf","updated":"2017-01-20 14:05:03.000000000","message":"I will move it to line 83","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"5020540639327c96258a168d9dc5e673bd0a73e1","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        vdm_name \u003d self._get_share_server_name(share_server)"},{"line_number":474,"context_line":"        share_name \u003d share[\u0027id\u0027]"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        if access[\u0027access_type\u0027] !\u003d \u0027user\u0027:"},{"line_number":477,"context_line":"            reason \u003d _(\u0027Only user access type allowed for CIFS share\u0027)"},{"line_number":478,"context_line":"            raise exception.InvalidShareAccess(reason\u003dreason)"},{"line_number":479,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_c9a31d4e","line":476,"range":{"start_line":476,"start_character":8,"end_line":476,"end_character":43},"updated":"2017-01-20 13:55:23.000000000","message":"Here","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"5020540639327c96258a168d9dc5e673bd0a73e1","unresolved":false,"context_lines":[{"line_number":507,"context_line":"        vdm_name \u003d self._get_share_server_name(share_server)"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        access_type \u003d access[\u0027access_type\u0027]"},{"line_number":510,"context_line":"        if access_type !\u003d \u0027ip\u0027:"},{"line_number":511,"context_line":"            reason \u003d _(\u0027Only ip access type allowed.\u0027)"},{"line_number":512,"context_line":"            raise exception.InvalidShareAccess(reason\u003dreason)"},{"line_number":513,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_29aca133","line":510,"range":{"start_line":510,"start_character":8,"end_line":510,"end_character":31},"updated":"2017-01-20 13:55:23.000000000","message":"and here you really should not raise errors because right after you added it by mistake, you cannot delete it. In this case you should just do nothing and write \"warning\" message that nothing really was done.","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"083fd23d30824b4d27557c3f3913f8cae2e3f4e0","unresolved":false,"context_lines":[{"line_number":507,"context_line":"        vdm_name \u003d self._get_share_server_name(share_server)"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        access_type \u003d access[\u0027access_type\u0027]"},{"line_number":510,"context_line":"        if access_type !\u003d \u0027ip\u0027:"},{"line_number":511,"context_line":"            reason \u003d _(\u0027Only ip access type allowed.\u0027)"},{"line_number":512,"context_line":"            raise exception.InvalidShareAccess(reason\u003dreason)"},{"line_number":513,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_4c481b5c","line":510,"range":{"start_line":510,"start_character":8,"end_line":510,"end_character":31},"in_reply_to":"5a3905b3_29aca133","updated":"2017-01-20 14:05:03.000000000","message":"Ok","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"ba96de323f30dc4f72007d3bd6d624a7b3c0ae03","unresolved":false,"context_lines":[{"line_number":507,"context_line":"        vdm_name \u003d self._get_share_server_name(share_server)"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        access_type \u003d access[\u0027access_type\u0027]"},{"line_number":510,"context_line":"        if access_type !\u003d \u0027ip\u0027:"},{"line_number":511,"context_line":"            reason \u003d _(\u0027Only ip access type allowed.\u0027)"},{"line_number":512,"context_line":"            raise exception.InvalidShareAccess(reason\u003dreason)"},{"line_number":513,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_b77d3e1e","line":510,"range":{"start_line":510,"start_character":8,"end_line":510,"end_character":31},"in_reply_to":"5a3905b3_4c481b5c","updated":"2017-01-20 18:31:17.000000000","message":"Hi Valeriy, if I remove raise exception, I will have to remove two tests from the unit tests.  Hope that is ok.  Thank you","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"5020540639327c96258a168d9dc5e673bd0a73e1","unresolved":false,"context_lines":[{"line_number":859,"context_line":"        \"\"\""},{"line_number":860,"context_line":""},{"line_number":861,"context_line":"        # Only support single security service with type \u0027active_directory\u0027"},{"line_number":862,"context_line":"        service_number \u003d len(security_services)"},{"line_number":863,"context_line":""},{"line_number":864,"context_line":"        if (service_number \u003e 1 or"},{"line_number":865,"context_line":"                (security_services and"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_499c8d69","line":862,"range":{"start_line":862,"start_character":8,"end_line":862,"end_character":22},"updated":"2017-01-20 13:55:23.000000000","message":"It is used only once, so, you could calculate it in place avoiding creating this var.","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"083fd23d30824b4d27557c3f3913f8cae2e3f4e0","unresolved":false,"context_lines":[{"line_number":859,"context_line":"        \"\"\""},{"line_number":860,"context_line":""},{"line_number":861,"context_line":"        # Only support single security service with type \u0027active_directory\u0027"},{"line_number":862,"context_line":"        service_number \u003d len(security_services)"},{"line_number":863,"context_line":""},{"line_number":864,"context_line":"        if (service_number \u003e 1 or"},{"line_number":865,"context_line":"                (security_services and"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_2c64afe2","line":862,"range":{"start_line":862,"start_character":8,"end_line":862,"end_character":22},"in_reply_to":"5a3905b3_499c8d69","updated":"2017-01-20 14:05:03.000000000","message":"sure","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"5020540639327c96258a168d9dc5e673bd0a73e1","unresolved":false,"context_lines":[{"line_number":878,"context_line":"                      share_server)"},{"line_number":879,"context_line":"        return share_server[\u0027id\u0027]"},{"line_number":880,"context_line":""},{"line_number":881,"context_line":"    def _get_context(self, type):"},{"line_number":882,"context_line":"        return self.manager.getStorageContext(type)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_c9131d0c","line":881,"range":{"start_line":881,"start_character":27,"end_line":881,"end_character":31},"updated":"2017-01-20 13:55:23.000000000","message":"\"type\" is built-in, better not to redefine built-ins if it is possible not to do it.","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"083fd23d30824b4d27557c3f3913f8cae2e3f4e0","unresolved":false,"context_lines":[{"line_number":878,"context_line":"                      share_server)"},{"line_number":879,"context_line":"        return share_server[\u0027id\u0027]"},{"line_number":880,"context_line":""},{"line_number":881,"context_line":"    def _get_context(self, type):"},{"line_number":882,"context_line":"        return self.manager.getStorageContext(type)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_2cf3cfd7","line":881,"range":{"start_line":881,"start_character":27,"end_line":881,"end_character":31},"in_reply_to":"5a3905b3_c9131d0c","updated":"2017-01-20 14:05:03.000000000","message":"Sure.  We will change the name","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7c0893df52d94fcd0344ef6a2c77da77a9595e8a","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            self._delete_cifs_share(share, share_server)"},{"line_number":266,"context_line":"        else:"},{"line_number":267,"context_line":"            raise exception.InvalidShare("},{"line_number":268,"context_line":"                reason\u003d\u0027Unsupported share protocol\u0027)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    @vmax_utils.log_enter_exit"},{"line_number":271,"context_line":"    def _delete_cifs_share(self, share, share_server):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a3905b3_9f867ed9","line":268,"range":{"start_line":268,"start_character":23,"end_line":268,"end_character":51},"updated":"2017-01-21 21:59:05.000000000","message":"Need _(\u0027xxxx\u0027)","commit_id":"0a88db1340fe14f8ccab1a490877ad9e8c8f5875"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7c0893df52d94fcd0344ef6a2c77da77a9595e8a","unresolved":false,"context_lines":[{"line_number":298,"context_line":"            # Delete mount point"},{"line_number":299,"context_line":"            self._get_context(\u0027MountPoint\u0027).delete(path, vdm_name)"},{"line_number":300,"context_line":"        except exception.EMCVmaxXMLAPIError as e:"},{"line_number":301,"context_line":"            LOG.exception(_LW(\"CIFS server %(name)s on mover %(mover_name)s \""},{"line_number":302,"context_line":"                          \"not found due to error %(err)s. Skip the \""},{"line_number":303,"context_line":"                              \"deletion.\"),"},{"line_number":304,"context_line":"                          {\u0027name\u0027: path, \u0027mover_name\u0027: vdm_name,"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a3905b3_9fcd9eb9","line":301,"range":{"start_line":301,"start_character":26,"end_line":301,"end_character":29},"updated":"2017-01-21 21:59:05.000000000","message":"This should be _LE","commit_id":"0a88db1340fe14f8ccab1a490877ad9e8c8f5875"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7c0893df52d94fcd0344ef6a2c77da77a9595e8a","unresolved":false,"context_lines":[{"line_number":308,"context_line":"            # Delete file system"},{"line_number":309,"context_line":"            self._get_context(\u0027FileSystem\u0027).delete(share_name)"},{"line_number":310,"context_line":"        except exception.EMCVmaxXMLAPIError as e:"},{"line_number":311,"context_line":"            LOG.exception(_LW(\"File system  %(share_name)s not found due to\""},{"line_number":312,"context_line":"                          \"error %(err)s. Skip the deletion.\"),"},{"line_number":313,"context_line":"                          {\u0027share_name\u0027: share_name,"},{"line_number":314,"context_line":"                          \u0027err\u0027: e.message})"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a3905b3_dfc3a687","line":311,"range":{"start_line":311,"start_character":26,"end_line":311,"end_character":29},"updated":"2017-01-21 21:59:05.000000000","message":"Should be _LE","commit_id":"0a88db1340fe14f8ccab1a490877ad9e8c8f5875"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"86950203d2a3e598f3882c3745c46db2d430f134","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"VMAX_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027vmax_server_container\u0027,"},{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"},{"line_number":44,"context_line":"    cfg.ListOpt(\u0027vmax_share_data_pools\u0027,"},{"line_number":45,"context_line":"                deprecated_name\u003d\u0027emc_nas_pool_names\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_3eb48380","line":42,"range":{"start_line":42,"start_character":15,"end_line":42,"end_character":58},"updated":"2017-01-23 13:46:41.000000000","message":"It is new option, related to new driver, and I guess it should be removed. Same for toher two.","commit_id":"21f6b458b063e45c4f6f1627d8ceeebfd9822173"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fa9b21ef3470af6e041c00cff956a58bbb60e21e","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"VMAX_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027vmax_server_container\u0027,"},{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"},{"line_number":44,"context_line":"    cfg.ListOpt(\u0027vmax_share_data_pools\u0027,"},{"line_number":45,"context_line":"                deprecated_name\u003d\u0027emc_nas_pool_names\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_69b3b3e9","line":42,"range":{"start_line":42,"start_character":15,"end_line":42,"end_character":58},"in_reply_to":"5a3905b3_3eb48380","updated":"2017-01-23 13:56:10.000000000","message":"Please remove line 42.  \"deprecated_name\" is only applicable to a driver that is in-tree in Newton and earlier.","commit_id":"21f6b458b063e45c4f6f1627d8ceeebfd9822173"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fa9b21ef3470af6e041c00cff956a58bbb60e21e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"},{"line_number":44,"context_line":"    cfg.ListOpt(\u0027vmax_share_data_pools\u0027,"},{"line_number":45,"context_line":"                deprecated_name\u003d\u0027emc_nas_pool_names\u0027,"},{"line_number":46,"context_line":"                help\u003d\u0027Comma separated list of pools that can be used to \u0027"},{"line_number":47,"context_line":"                     \u0027persist share data.\u0027),"},{"line_number":48,"context_line":"    cfg.ListOpt(\u0027vmax_ethernet_ports\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_c9c2e733","line":45,"range":{"start_line":45,"start_character":16,"end_line":45,"end_character":53},"updated":"2017-01-23 13:56:10.000000000","message":"Remove this line.","commit_id":"21f6b458b063e45c4f6f1627d8ceeebfd9822173"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fa9b21ef3470af6e041c00cff956a58bbb60e21e","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                help\u003d\u0027Comma separated list of pools that can be used to \u0027"},{"line_number":47,"context_line":"                     \u0027persist share data.\u0027),"},{"line_number":48,"context_line":"    cfg.ListOpt(\u0027vmax_ethernet_ports\u0027,"},{"line_number":49,"context_line":"                deprecated_name\u003d\u0027emc_interface_ports\u0027,"},{"line_number":50,"context_line":"                help\u003d\u0027Comma separated list of ports that can be used for \u0027"},{"line_number":51,"context_line":"                     \u0027share server interfaces. Members of the list \u0027"},{"line_number":52,"context_line":"                     \u0027can be Unix-style glob expressions.\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_49e517da","line":49,"range":{"start_line":49,"start_character":16,"end_line":49,"end_character":54},"updated":"2017-01-23 13:56:10.000000000","message":"Remove this line.","commit_id":"21f6b458b063e45c4f6f1627d8ceeebfd9822173"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"84d904ed74ce59dc1fe51ca95dc7057a2aa947d3","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        share_proto \u003d share[\u0027share_proto\u0027]"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Validate the share protocol"},{"line_number":211,"context_line":"        if share_proto.upper() not in (\u0027NFS\u0027, \u0027CIFS\u0027):"},{"line_number":212,"context_line":"            raise exception.InvalidShare("},{"line_number":213,"context_line":"                reason\u003d(_(\u0027Invalid NAS protocol supplied: %s.\u0027)"},{"line_number":214,"context_line":"                        % share_proto))"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_29652bb4","line":211,"range":{"start_line":211,"start_character":12,"end_line":211,"end_character":30},"updated":"2017-01-23 13:50:26.000000000","message":"Same situation as in \"create_share\" method.","commit_id":"21f6b458b063e45c4f6f1627d8ceeebfd9822173"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2cad3f05459fa61184358891cf75364712db84c4","unresolved":false,"context_lines":[{"line_number":257,"context_line":"                            \"share deletion.\"))"},{"line_number":258,"context_line":"            return"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        share_proto \u003d share[\u0027share_proto\u0027]"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        if share_proto \u003d\u003d \u0027NFS\u0027:"},{"line_number":263,"context_line":"            self._delete_nfs_share(share, share_server)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_098a2f1b","line":260,"range":{"start_line":260,"start_character":8,"end_line":260,"end_character":42},"updated":"2017-01-23 13:52:16.000000000","message":"And here, you are not cosistent in usage of \"share[\u0027share_proto\u0027]\"","commit_id":"21f6b458b063e45c4f6f1627d8ceeebfd9822173"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"62c7c9cfc25df87faccd4565daa35b151e3f22f7","unresolved":false,"context_lines":[{"line_number":474,"context_line":"        share_name \u003d share[\u0027id\u0027]"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        if access[\u0027access_type\u0027] !\u003d \u0027user\u0027:"},{"line_number":477,"context_line":"            LOG.warning(_LW(\"Only user access type allowed for CIFS share.\"))"},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"        user_name \u003d access[\u0027access_to\u0027]"},{"line_number":480,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_438098f7","line":477,"updated":"2017-01-23 13:36:52.000000000","message":"You should \"return\" after making warning. Also, the fact that unit tests has passed means this case is not covered there.","commit_id":"21f6b458b063e45c4f6f1627d8ceeebfd9822173"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"62c7c9cfc25df87faccd4565daa35b151e3f22f7","unresolved":false,"context_lines":[{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        access_type \u003d access[\u0027access_type\u0027]"},{"line_number":509,"context_line":"        if access_type !\u003d \u0027ip\u0027:"},{"line_number":510,"context_line":"            LOG.warning(_LW(\"Only ip access type allowed.\"))"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"        host_ip \u003d access[\u0027access_to\u0027]"},{"line_number":513,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_c3c2c833","line":510,"updated":"2017-01-23 13:36:52.000000000","message":"ditto","commit_id":"21f6b458b063e45c4f6f1627d8ceeebfd9822173"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"6a1c5850e839644673b0b72ae53f76b7d0642ff2","unresolved":false,"context_lines":[{"line_number":664,"context_line":"        return constants.IP_ALLOCATIONS"},{"line_number":665,"context_line":""},{"line_number":666,"context_line":"    def setup_server(self, network_info, metadata\u003dNone):"},{"line_number":667,"context_line":"        \"\"\"Set up and configures share server with given network parameters.\"\"\""},{"line_number":668,"context_line":"        # Only support single security service with type \u0027active_directory\u0027"},{"line_number":669,"context_line":"        vdm_name \u003d network_info[\u0027server_id\u0027]"},{"line_number":670,"context_line":"        vlan_id \u003d network_info[\u0027segmentation_id\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_c92d87a9","line":667,"updated":"2017-01-23 14:02:56.000000000","message":"\"setS up\"?..","commit_id":"21f6b458b063e45c4f6f1627d8ceeebfd9822173"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"08648d393ae75cde5cc18786f6a42be4c71c4801","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"VMAX_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027vmax_server_container\u0027,"},{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"},{"line_number":44,"context_line":"    cfg.ListOpt(\u0027vmax_share_data_pools\u0027,"},{"line_number":45,"context_line":"                deprecated_name\u003d\u0027emc_nas_pool_names\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_183431dc","line":42,"range":{"start_line":42,"start_character":15,"end_line":42,"end_character":58},"updated":"2017-01-23 16:51:08.000000000","message":"https://review.openstack.org/#/c/404859/15..16/manila/share/drivers/dell_emc/plugins/vmax/connection.py","commit_id":"a3c28a0afc62c90a781715ff45de1c385e411ff6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c3f8ec447b1859f4962f1cd973150014ebe2348a","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"VMAX_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027vmax_server_container\u0027,"},{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"},{"line_number":44,"context_line":"    cfg.ListOpt(\u0027vmax_share_data_pools\u0027,"},{"line_number":45,"context_line":"                deprecated_name\u003d\u0027emc_nas_pool_names\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_f8492532","line":42,"range":{"start_line":42,"start_character":15,"end_line":42,"end_character":58},"in_reply_to":"5a3905b3_183431dc","updated":"2017-01-23 16:53:30.000000000","message":"+1.  Previous comments are not addressed.","commit_id":"a3c28a0afc62c90a781715ff45de1c385e411ff6"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"08648d393ae75cde5cc18786f6a42be4c71c4801","unresolved":false,"context_lines":[{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"},{"line_number":44,"context_line":"    cfg.ListOpt(\u0027vmax_share_data_pools\u0027,"},{"line_number":45,"context_line":"                deprecated_name\u003d\u0027emc_nas_pool_names\u0027,"},{"line_number":46,"context_line":"                help\u003d\u0027Comma separated list of pools that can be used to \u0027"},{"line_number":47,"context_line":"                     \u0027persist share data.\u0027),"},{"line_number":48,"context_line":"    cfg.ListOpt(\u0027vmax_ethernet_ports\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_5850790b","line":45,"range":{"start_line":45,"start_character":16,"end_line":45,"end_character":53},"updated":"2017-01-23 16:51:08.000000000","message":"https://review.openstack.org/#/c/404859/15..16/manila/share/drivers/dell_emc/plugins/vmax/connection.py","commit_id":"a3c28a0afc62c90a781715ff45de1c385e411ff6"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"08648d393ae75cde5cc18786f6a42be4c71c4801","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                help\u003d\u0027Comma separated list of pools that can be used to \u0027"},{"line_number":47,"context_line":"                     \u0027persist share data.\u0027),"},{"line_number":48,"context_line":"    cfg.ListOpt(\u0027vmax_ethernet_ports\u0027,"},{"line_number":49,"context_line":"                deprecated_name\u003d\u0027emc_interface_ports\u0027,"},{"line_number":50,"context_line":"                help\u003d\u0027Comma separated list of ports that can be used for \u0027"},{"line_number":51,"context_line":"                     \u0027share server interfaces. Members of the list \u0027"},{"line_number":52,"context_line":"                     \u0027can be Unix-style glob expressions.\u0027)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_f83f65b1","line":49,"range":{"start_line":49,"start_character":16,"end_line":49,"end_character":54},"updated":"2017-01-23 16:51:08.000000000","message":"https://review.openstack.org/#/c/404859/15..16/manila/share/drivers/dell_emc/plugins/vmax/connection.py","commit_id":"a3c28a0afc62c90a781715ff45de1c385e411ff6"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"08648d393ae75cde5cc18786f6a42be4c71c4801","unresolved":false,"context_lines":[{"line_number":666,"context_line":"        return constants.IP_ALLOCATIONS"},{"line_number":667,"context_line":""},{"line_number":668,"context_line":"    def setup_server(self, network_info, metadata\u003dNone):"},{"line_number":669,"context_line":"        \"\"\"Set up and configures share server with given network parameters.\"\"\""},{"line_number":670,"context_line":"        # Only support single security service with type \u0027active_directory\u0027"},{"line_number":671,"context_line":"        vdm_name \u003d network_info[\u0027server_id\u0027]"},{"line_number":672,"context_line":"        vlan_id \u003d network_info[\u0027segmentation_id\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_f83845d5","line":669,"updated":"2017-01-23 16:51:08.000000000","message":"https://review.openstack.org/#/c/404859/15..16/manila/share/drivers/dell_emc/plugins/vmax/connection.py","commit_id":"a3c28a0afc62c90a781715ff45de1c385e411ff6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b14883bc32c3b3d96ecf64790f1a5d611b52fe30","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"VMAX_OPTS \u003d ["},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027vmax_server_container\u0027,"},{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"},{"line_number":44,"context_line":"    cfg.ListOpt(\u0027vmax_share_data_pools\u0027,"},{"line_number":45,"context_line":"                deprecated_name\u003d\u0027emc_nas_pool_names\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"5a3905b3_c7dff9d3","line":42,"range":{"start_line":42,"start_character":15,"end_line":42,"end_character":58},"updated":"2017-01-24 13:13:26.000000000","message":"Remove this.\n\nIn CI config, vmax_server_container should be used instead of emc_nas_server_container.","commit_id":"cf213af104c7de8e4028545ec4ad2dfd38f527dd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b14883bc32c3b3d96ecf64790f1a5d611b52fe30","unresolved":false,"context_lines":[{"line_number":42,"context_line":"               deprecated_name\u003d\u0027emc_nas_server_container\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027Data mover to host the NAS server.\u0027),"},{"line_number":44,"context_line":"    cfg.ListOpt(\u0027vmax_share_data_pools\u0027,"},{"line_number":45,"context_line":"                deprecated_name\u003d\u0027emc_nas_pool_names\u0027,"},{"line_number":46,"context_line":"                help\u003d\u0027Comma separated list of pools that can be used to \u0027"},{"line_number":47,"context_line":"                     \u0027persist share data.\u0027),"},{"line_number":48,"context_line":"    cfg.ListOpt(\u0027vmax_ethernet_ports\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"5a3905b3_279efd06","line":45,"range":{"start_line":45,"start_character":16,"end_line":45,"end_character":52},"updated":"2017-01-24 13:13:26.000000000","message":"Remove this.\n\nIn CI config, vmax_share_data_pools should be used instead of emc_nas_pool_names.","commit_id":"cf213af104c7de8e4028545ec4ad2dfd38f527dd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b14883bc32c3b3d96ecf64790f1a5d611b52fe30","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                help\u003d\u0027Comma separated list of pools that can be used to \u0027"},{"line_number":47,"context_line":"                     \u0027persist share data.\u0027),"},{"line_number":48,"context_line":"    cfg.ListOpt(\u0027vmax_ethernet_ports\u0027,"},{"line_number":49,"context_line":"                deprecated_name\u003d\u0027emc_interface_ports\u0027,"},{"line_number":50,"context_line":"                help\u003d\u0027Comma separated list of ports that can be used for \u0027"},{"line_number":51,"context_line":"                     \u0027share server interfaces. Members of the list \u0027"},{"line_number":52,"context_line":"                     \u0027can be Unix-style glob expressions.\u0027)"}],"source_content_type":"text/x-python","patch_set":18,"id":"5a3905b3_87aed12b","line":49,"range":{"start_line":49,"start_character":16,"end_line":49,"end_character":54},"updated":"2017-01-24 13:13:26.000000000","message":"Remove this.\n\nvmax_ethernet_ports should be used instead of emc_interface_ports  in CI.","commit_id":"cf213af104c7de8e4028545ec4ad2dfd38f527dd"}],"manila/share/drivers/dell_emc/plugins/vmax/connector.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"448086f7781b693afe50616e75fa0011a6ad925d","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                return out, err"},{"line_number":155,"context_line":"            except processutils.ProcessExecutionError as e:"},{"line_number":156,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":157,"context_line":"                    msg \u003d (_LE(\u0027Error running SSH command: %(cmd)s. \u0027"},{"line_number":158,"context_line":"                               \u0027Error: %(excmsg)s.\u0027),"},{"line_number":159,"context_line":"                           {\u0027cmd\u0027: command, \u0027excmsg\u0027: six.text_type(e)})"},{"line_number":160,"context_line":"                    LOG.error(msg)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def log_request(self, cmd, out, err):"},{"line_number":163,"context_line":"        if not self.debug:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_5cf75bd2","line":160,"range":{"start_line":157,"start_character":0,"end_line":160,"end_character":34},"updated":"2017-01-18 15:41:31.000000000","message":"This will not print the message properly.  The string substitution will not happen.  Change to this:\n\n                    LOG.error(_LE(\u0027Error running SSH command: %(cmd)s. \u0027\n                               \u0027Error: %(excmsg)s.\u0027),\n                           {\u0027cmd\u0027: command, \u0027excmsg\u0027: six.text_type(e)})\n\nPlease check if you have other places like this and fix them all.","commit_id":"c94ce3b72148565db896083113bab2583da8127b"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"404226dce80e9fe222a97a856aa25af5df028688","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                return out, err"},{"line_number":155,"context_line":"            except processutils.ProcessExecutionError as e:"},{"line_number":156,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":157,"context_line":"                    msg \u003d (_LE(\u0027Error running SSH command: %(cmd)s. \u0027"},{"line_number":158,"context_line":"                               \u0027Error: %(excmsg)s.\u0027),"},{"line_number":159,"context_line":"                           {\u0027cmd\u0027: command, \u0027excmsg\u0027: six.text_type(e)})"},{"line_number":160,"context_line":"                    LOG.error(msg)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def log_request(self, cmd, out, err):"},{"line_number":163,"context_line":"        if not self.debug:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_7cc33738","line":160,"range":{"start_line":157,"start_character":0,"end_line":160,"end_character":34},"in_reply_to":"7a3c09a3_5cf75bd2","updated":"2017-01-18 15:43:58.000000000","message":"Sure.  Thanks Xing","commit_id":"c94ce3b72148565db896083113bab2583da8127b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"12b3247729bc26a2477b708ec377f22f78033f91","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":157,"context_line":"                    msg \u003d (_LE(\u0027Error running SSH command: %(cmd)s. \u0027"},{"line_number":158,"context_line":"                               \u0027Error: %(excmsg)s.\u0027),"},{"line_number":159,"context_line":"                           {\u0027cmd\u0027: command, \u0027excmsg\u0027: six.text_type(e)})"},{"line_number":160,"context_line":"                    LOG.error(msg)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def log_request(self, cmd, out, err):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_b1bf7a5f","line":159,"updated":"2017-01-18 18:21:31.000000000","message":"My comment in patch set 5 is not addressed.","commit_id":"054ee0ad0e1d78922e9d41477c64d88771e431e0"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"fd8ae9f6c9f5a09e7f2bf195c7ec337412ee3dbf","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":157,"context_line":"                    msg \u003d (_LE(\u0027Error running SSH command: %(cmd)s. \u0027"},{"line_number":158,"context_line":"                               \u0027Error: %(excmsg)s.\u0027),"},{"line_number":159,"context_line":"                           {\u0027cmd\u0027: command, \u0027excmsg\u0027: six.text_type(e)})"},{"line_number":160,"context_line":"                    LOG.error(msg)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def log_request(self, cmd, out, err):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_1124cec4","line":159,"in_reply_to":"7a3c09a3_b1bf7a5f","updated":"2017-01-18 18:22:57.000000000","message":"Sure.  Will fix it now","commit_id":"054ee0ad0e1d78922e9d41477c64d88771e431e0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86c4bf63422608aa8946b2def41e8812390049e4","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":157,"context_line":"                    LOG.error(_LE(\u0027Error running SSH command: %(cmd)s. \u0027"},{"line_number":158,"context_line":"                                  \u0027Error: %(excmsg)s.\u0027),"},{"line_number":159,"context_line":"                              {\u0027cmd\u0027: command, \u0027excmsg\u0027: six.text_type(e)})"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def log_request(self, cmd, out, err):"},{"line_number":162,"context_line":"        if not self.debug:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_e36bf0ef","line":159,"range":{"start_line":159,"start_character":57,"end_line":159,"end_character":70},"updated":"2017-01-18 20:08:28.000000000","message":"Remove six.text_type as the logger will apply it.","commit_id":"bb5c1daaa21efd7cde85783fa7325e8e2f4ae5ca"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"1a00a390cc774f3652bb0ed1b64e1bc3ccde5c7d","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":157,"context_line":"                    LOG.error(_LE(\u0027Error running SSH command: %(cmd)s. \u0027"},{"line_number":158,"context_line":"                                  \u0027Error: %(excmsg)s.\u0027),"},{"line_number":159,"context_line":"                              {\u0027cmd\u0027: command, \u0027excmsg\u0027: six.text_type(e)})"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def log_request(self, cmd, out, err):"},{"line_number":162,"context_line":"        if not self.debug:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_38f7e68d","line":159,"range":{"start_line":159,"start_character":57,"end_line":159,"end_character":70},"in_reply_to":"7a3c09a3_e36bf0ef","updated":"2017-01-18 20:22:06.000000000","message":"Sure.","commit_id":"bb5c1daaa21efd7cde85783fa7325e8e2f4ae5ca"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"064735874061182e22afbe4467ba307c24c51628","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            resp_body \u003d resp.read()"},{"line_number":103,"context_line":"            self._http_log_resp(resp, resp_body)"},{"line_number":104,"context_line":"        except url_error.HTTPError as http_err:"},{"line_number":105,"context_line":"            err \u003d {\u0027errorCode\u0027: -1,"},{"line_number":106,"context_line":"                   \u0027httpStatusCode\u0027: http_err.code,"},{"line_number":107,"context_line":"                   \u0027messages\u0027: six.text_type(http_err),"},{"line_number":108,"context_line":"                   \u0027request\u0027: req_body}"},{"line_number":109,"context_line":"            msg \u003d (_(\"The request is invalid. Reason: %(reason)s\") %"},{"line_number":110,"context_line":"                   {\u0027reason\u0027: err})"},{"line_number":111,"context_line":"            if \u0027403\u0027 \u003d\u003d six.text_type(http_err.code):"},{"line_number":112,"context_line":"                raise exception.NotAuthorized()"},{"line_number":113,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_e45d0a16","line":110,"range":{"start_line":105,"start_character":12,"end_line":110,"end_character":35},"updated":"2017-01-23 14:05:04.000000000","message":"It should be done in else block that starts on line 113, because you use it only there.","commit_id":"21f6b458b063e45c4f6f1627d8ceeebfd9822173"}],"manila/share/drivers/dell_emc/plugins/vmax/constants.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"# Necessary to retry when VMAX database is locked for provisioning operation"},{"line_number":43,"context_line":"MSG_CODE_RETRY \u003d \u002713421840537\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"IP_ALLOCATIONS \u003d 2"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"CONTENT_TYPE_URLENCODE \u003d {\u0027Content-Type\u0027: \u0027application/x-www-form-urlencoded\u0027}"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_dc910c9c","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":14},"updated":"2016-12-09 17:03:55.000000000","message":"Are you sure that you need 2?","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"}],"manila/share/drivers/dell_emc/plugins/vmax/object_manager.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        return out, err"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def _copy_properties(self, source, target, property_map, deep_copy\u003dTrue):"},{"line_number":189,"context_line":"        for property in property_map:"},{"line_number":190,"context_line":"            if isinstance(property, tuple):"},{"line_number":191,"context_line":"                target_key, src_key \u003d property"},{"line_number":192,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_dcccac63","line":189,"range":{"start_line":189,"start_character":12,"end_line":189,"end_character":20},"updated":"2016-12-09 17:03:55.000000000","message":"This should be renamed because \"property\" is built-in and you redefine it to last value of a loop.","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"2e764b660fb4e5690f8785395637dbb47f29fba0","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        return out, err"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def _copy_properties(self, source, target, property_map, deep_copy\u003dTrue):"},{"line_number":189,"context_line":"        for property in property_map:"},{"line_number":190,"context_line":"            if isinstance(property, tuple):"},{"line_number":191,"context_line":"                target_key, src_key \u003d property"},{"line_number":192,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_9a003f36","line":189,"range":{"start_line":189,"start_character":12,"end_line":189,"end_character":20},"in_reply_to":"3a71b18c_dcccac63","updated":"2016-12-12 15:29:13.000000000","message":"will update...thanks","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":316,"context_line":"            LOG.error(message)"},{"line_number":317,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        id \u003d self.filesystem_map[name][\u0027id\u0027]"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        request \u003d self._build_task_package("},{"line_number":322,"context_line":"            self.elt_maker.DeleteFileSystem(fileSystem\u003did)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_dcd66cc2","line":319,"range":{"start_line":319,"start_character":8,"end_line":319,"end_character":44},"updated":"2016-12-09 17:03:55.000000000","message":"Same here.","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"f24f046f359b076a816e3a58626edfd800e9a39a","unresolved":false,"context_lines":[{"line_number":316,"context_line":"            LOG.error(message)"},{"line_number":317,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        id \u003d self.filesystem_map[name][\u0027id\u0027]"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        request \u003d self._build_task_package("},{"line_number":322,"context_line":"            self.elt_maker.DeleteFileSystem(fileSystem\u003did)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_eff018cc","line":319,"range":{"start_line":319,"start_character":8,"end_line":319,"end_character":44},"in_reply_to":"3a71b18c_dcd66cc2","updated":"2016-12-19 15:46:49.000000000","message":"Will upate","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e998716c7fad50e61093b8e39e07905ca8feaa7b","unresolved":false,"context_lines":[{"line_number":342,"context_line":"            LOG.error(message)"},{"line_number":343,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"        id \u003d out[\u0027id\u0027]"},{"line_number":346,"context_line":"        size \u003d int(out[\u0027size\u0027])"},{"line_number":347,"context_line":"        if new_size \u003c size:"},{"line_number":348,"context_line":"            message \u003d (_(\"Failed to extend file system %(name)s because new \""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_bc02903c","line":345,"range":{"start_line":345,"start_character":8,"end_line":345,"end_character":10},"updated":"2016-12-09 17:03:55.000000000","message":"ditto","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":22021,"name":"Unana Okpoyo","email":"tomitu@yahoo.com","username":"UnanaOkpoyo"},"change_message_id":"2e764b660fb4e5690f8785395637dbb47f29fba0","unresolved":false,"context_lines":[{"line_number":342,"context_line":"            LOG.error(message)"},{"line_number":343,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"        id \u003d out[\u0027id\u0027]"},{"line_number":346,"context_line":"        size \u003d int(out[\u0027size\u0027])"},{"line_number":347,"context_line":"        if new_size \u003c size:"},{"line_number":348,"context_line":"            message \u003d (_(\"Failed to extend file system %(name)s because new \""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_9d3839d5","line":345,"range":{"start_line":345,"start_character":8,"end_line":345,"end_character":10},"in_reply_to":"3a71b18c_bc02903c","updated":"2016-12-12 15:29:13.000000000","message":"Will update","commit_id":"df2f1b5c5062f4f185cc13e12171a36e9545ec84"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"9cd611e7b27217b65f20bf708bf2d04bb03210e7","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            out, err \u003d self.conn[\u0027SSH\u0027].run_ssh(cmd, check_exit_code)"},{"line_number":179,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":180,"context_line":"            for pattern in retry_patterns:"},{"line_number":181,"context_line":"                if re.search(pattern[0], e.stdout):"},{"line_number":182,"context_line":"                    raise pattern[1]"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"            raise e"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_e28ff9c9","line":182,"range":{"start_line":181,"start_character":0,"end_line":182,"end_character":36},"updated":"2017-01-04 17:59:36.000000000","message":"This is a little confusing at first.  Using a named tuple (or a dict) for your retry_patterns would make this much clearer.","commit_id":"e2d60e7fece9250c5899ec0608310fcce51e77d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6dc0046d63a0d2fbc16ca912e06ce715d85a1aa9","unresolved":false,"context_lines":[{"line_number":440,"context_line":"        try:"},{"line_number":441,"context_line":"            self._execute_cmd(copy_ckpt_cmd, check_exit_code\u003dTrue)"},{"line_number":442,"context_line":"        except processutils.ProcessExecutionError as expt:"},{"line_number":443,"context_line":"            message \u003d (_(\"Failed to copy content from snapshot %(snap)s to \""},{"line_number":444,"context_line":"                         \"file system %(filesystem)s. Reason: %(err)s.\") %"},{"line_number":445,"context_line":"                       {\u0027snap\u0027: snap_name,"},{"line_number":446,"context_line":"                        \u0027filesystem\u0027: name,"},{"line_number":447,"context_line":"                        \u0027err\u0027: six.text_type(expt)})"},{"line_number":448,"context_line":"            LOG.error(message)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"        # When an error happens during nas_copy, we need to continue"},{"line_number":451,"context_line":"        # deleting the checkpoint of the target file system if it exists."}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_9770bc41","line":448,"range":{"start_line":443,"start_character":0,"end_line":448,"end_character":30},"updated":"2017-01-18 16:00:49.000000000","message":"This message does not go to an exception.   Should use _LE() instead and change % to ,\n\nLOG.error(_LE(\"Failed to copy content from snapshot %(snap)s to \"\n                         \"file system %(filesystem)s. Reason: %(err)s.\"),\n                       {\u0027snap\u0027: snap_name,\n                        \u0027filesystem\u0027: name,\n                        \u0027err\u0027: six.text_type(expt)})","commit_id":"c94ce3b72148565db896083113bab2583da8127b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6dc0046d63a0d2fbc16ca912e06ce715d85a1aa9","unresolved":false,"context_lines":[{"line_number":1415,"context_line":"        if mover_name in self.cifs_server_map:"},{"line_number":1416,"context_line":"            self.cifs_server_map.pop(mover_name)"},{"line_number":1417,"context_line":""},{"line_number":1418,"context_line":"        self.cifs_server_map[mover_name] \u003d dict()"},{"line_number":1419,"context_line":""},{"line_number":1420,"context_line":"        for item in response[\u0027objects\u0027]:"},{"line_number":1421,"context_line":"            self.cifs_server_map[mover_name][item[\u0027compName\u0027].lower()] \u003d item"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_f742e066","line":1418,"range":{"start_line":1418,"start_character":43,"end_line":1418,"end_character":49},"updated":"2017-01-18 16:00:49.000000000","message":"self.cifs_server_map[mover_name] \u003d {}\n\n{} has better performance than dict().","commit_id":"c94ce3b72148565db896083113bab2583da8127b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3f2e6ef5053c8e22c7bcd0a27bbcd2ce2762cc30","unresolved":false,"context_lines":[{"line_number":444,"context_line":"                          \"file system %(filesystem)s. Reason: %(err)s.\"),"},{"line_number":445,"context_line":"                      {\u0027snap\u0027: snap_name,"},{"line_number":446,"context_line":"                       \u0027filesystem\u0027: name,"},{"line_number":447,"context_line":"                       \u0027err\u0027: six.text_type(expt)})"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        # When an error happens during nas_copy, we need to continue"},{"line_number":450,"context_line":"        # deleting the checkpoint of the target file system if it exists."}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_b134dafb","line":447,"range":{"start_line":447,"start_character":30,"end_line":447,"end_character":43},"updated":"2017-01-18 18:24:00.000000000","message":"Remove six.text_type from here.  The logger will do six.text_type if needed.","commit_id":"054ee0ad0e1d78922e9d41477c64d88771e431e0"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"2118fbdb5e71b0ad3b22feda91a41a20f8f109e2","unresolved":false,"context_lines":[{"line_number":444,"context_line":"                          \"file system %(filesystem)s. Reason: %(err)s.\"),"},{"line_number":445,"context_line":"                      {\u0027snap\u0027: snap_name,"},{"line_number":446,"context_line":"                       \u0027filesystem\u0027: name,"},{"line_number":447,"context_line":"                       \u0027err\u0027: six.text_type(expt)})"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        # When an error happens during nas_copy, we need to continue"},{"line_number":450,"context_line":"        # deleting the checkpoint of the target file system if it exists."}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_b477689e","line":447,"range":{"start_line":447,"start_character":30,"end_line":447,"end_character":43},"in_reply_to":"7a3c09a3_b134dafb","updated":"2017-01-18 18:25:36.000000000","message":"Ok.  Thanks","commit_id":"054ee0ad0e1d78922e9d41477c64d88771e431e0"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4a32af427fa44844bdec1f2be38dfbb56b915a0d","unresolved":false,"context_lines":[{"line_number":485,"context_line":"class StoragePool(StorageObject):"},{"line_number":486,"context_line":"    def __init__(self, conn, elt_maker, xml_parser, manager):"},{"line_number":487,"context_line":"        super(StoragePool, self).__init__(conn, elt_maker, xml_parser, manager)"},{"line_number":488,"context_line":"        self.pool_map \u003d dict()"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"    def get(self, name, force\u003dFalse):"},{"line_number":491,"context_line":"        if name not in self.pool_map or force:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_104ae183","line":488,"range":{"start_line":488,"start_character":24,"end_line":488,"end_character":30},"updated":"2017-01-19 16:43:18.000000000","message":"We should use dict comprehensions instead of dict classes, see following:\n\nhttps://www.python.org/dev/peps/pep-0274/\n\nsame in all other similar places.","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"eebd41074880a470ced94c7590308c5b47ee5bb7","unresolved":false,"context_lines":[{"line_number":485,"context_line":"class StoragePool(StorageObject):"},{"line_number":486,"context_line":"    def __init__(self, conn, elt_maker, xml_parser, manager):"},{"line_number":487,"context_line":"        super(StoragePool, self).__init__(conn, elt_maker, xml_parser, manager)"},{"line_number":488,"context_line":"        self.pool_map \u003d dict()"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"    def get(self, name, force\u003dFalse):"},{"line_number":491,"context_line":"        if name not in self.pool_map or force:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_b3cbd771","line":488,"range":{"start_line":488,"start_character":24,"end_line":488,"end_character":30},"in_reply_to":"5a3905b3_104ae183","updated":"2017-01-19 16:49:07.000000000","message":"+1.  Please search for dict() and replace them with {}.","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"17c79b06f085a31d79686067edadef6ca51bfa60","unresolved":false,"context_lines":[{"line_number":485,"context_line":"class StoragePool(StorageObject):"},{"line_number":486,"context_line":"    def __init__(self, conn, elt_maker, xml_parser, manager):"},{"line_number":487,"context_line":"        super(StoragePool, self).__init__(conn, elt_maker, xml_parser, manager)"},{"line_number":488,"context_line":"        self.pool_map \u003d dict()"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"    def get(self, name, force\u003dFalse):"},{"line_number":491,"context_line":"        if name not in self.pool_map or force:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_497e80e5","line":488,"range":{"start_line":488,"start_character":24,"end_line":488,"end_character":30},"in_reply_to":"5a3905b3_b3cbd771","updated":"2017-01-19 17:35:27.000000000","message":"Will do","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2844c9a37dc5b49f1e42cf7c783771da3e2129f4","unresolved":false,"context_lines":[{"line_number":938,"context_line":""},{"line_number":939,"context_line":"        if constants.STATUS_OK !\u003d response[\u0027maxSeverity\u0027]:"},{"line_number":940,"context_line":"            message \u003d (_(\"Failed to delete VDM %(name)s. \""},{"line_number":941,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":942,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":943,"context_line":"            LOG.error(message)"},{"line_number":944,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":945,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_f3f9df4e","line":942,"range":{"start_line":941,"start_character":45,"end_line":942,"end_character":66},"updated":"2017-01-19 16:54:34.000000000","message":"It is recommended that \"substitution data\" is provided as other argument for \"LOG.foo\" command instead of making substitution explicitly. For the moment I could not find link with detailed description \"why\".","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"3bf7f4076ba9e9555420d9688571effd5b8f32af","unresolved":false,"context_lines":[{"line_number":938,"context_line":""},{"line_number":939,"context_line":"        if constants.STATUS_OK !\u003d response[\u0027maxSeverity\u0027]:"},{"line_number":940,"context_line":"            message \u003d (_(\"Failed to delete VDM %(name)s. \""},{"line_number":941,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":942,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":943,"context_line":"            LOG.error(message)"},{"line_number":944,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":945,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_59e3a9a3","line":942,"range":{"start_line":941,"start_character":45,"end_line":942,"end_character":66},"in_reply_to":"5a3905b3_9f6339b1","updated":"2017-01-19 20:36:54.000000000","message":"If it is ok by both of you, I will leave it as is for now until we have further clarification. I can always open a patch for a bug fix after this gets merged.  Thank you","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"792565daf77b8f43fb4c5152bac1efa97db91777","unresolved":false,"context_lines":[{"line_number":938,"context_line":""},{"line_number":939,"context_line":"        if constants.STATUS_OK !\u003d response[\u0027maxSeverity\u0027]:"},{"line_number":940,"context_line":"            message \u003d (_(\"Failed to delete VDM %(name)s. \""},{"line_number":941,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":942,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":943,"context_line":"            LOG.error(message)"},{"line_number":944,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":945,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_9f6339b1","line":942,"range":{"start_line":941,"start_character":45,"end_line":942,"end_character":66},"in_reply_to":"5a3905b3_a9db64ec","updated":"2017-01-19 18:15:10.000000000","message":"In this particular case, because the same message is used in LOG.error as well as exception.EMCVmaxXMLAPIError, it is better to format them once and then pass to both LOG and exception.EMCVmaxXMLAPIError so that the message will be translated once and used in both places.  So I think the current style is better.\n\nIf the message is used in LOG.error only and not in exception.EMCVmaxXMLAPIError, then I can see some value in passing \"substitution data\" as other argument.  It will be great if we know why that is recommended and have a reference of that in some guidelines.","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"17c79b06f085a31d79686067edadef6ca51bfa60","unresolved":false,"context_lines":[{"line_number":938,"context_line":""},{"line_number":939,"context_line":"        if constants.STATUS_OK !\u003d response[\u0027maxSeverity\u0027]:"},{"line_number":940,"context_line":"            message \u003d (_(\"Failed to delete VDM %(name)s. \""},{"line_number":941,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":942,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":943,"context_line":"            LOG.error(message)"},{"line_number":944,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":945,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_a9db64ec","line":942,"range":{"start_line":941,"start_character":45,"end_line":942,"end_character":66},"in_reply_to":"5a3905b3_f3f9df4e","updated":"2017-01-19 17:35:27.000000000","message":"HI Valeriy, I am not exactly sure what you mean.  This convention is all over the code.  Perhaps if you still wish it to be changed we could do a bug fix after the feature gets merged?","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"cc6a1ad8f1711738f13db077c6644bad8742a404","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"        if ckpt_size:"},{"line_number":1036,"context_line":"            elt_pool \u003d self.elt_maker.StoragePool("},{"line_number":1037,"context_line":"                pool\u003dpool_id,"},{"line_number":1038,"context_line":"                size\u003dsix.text_type(ckpt_size)"},{"line_number":1039,"context_line":"            )"},{"line_number":1040,"context_line":"        else:"},{"line_number":1041,"context_line":"            elt_pool \u003d self.elt_maker.StoragePool(pool\u003dpool_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_aeafeae1","line":1038,"updated":"2017-01-19 17:03:19.000000000","message":"For ease of future updates it would be better to leave comma after the last argument each time, so could just add new line, instead of updating this one and adding new one.","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"17c79b06f085a31d79686067edadef6ca51bfa60","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"        if ckpt_size:"},{"line_number":1036,"context_line":"            elt_pool \u003d self.elt_maker.StoragePool("},{"line_number":1037,"context_line":"                pool\u003dpool_id,"},{"line_number":1038,"context_line":"                size\u003dsix.text_type(ckpt_size)"},{"line_number":1039,"context_line":"            )"},{"line_number":1040,"context_line":"        else:"},{"line_number":1041,"context_line":"            elt_pool \u003d self.elt_maker.StoragePool(pool\u003dpool_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_29c77413","line":1038,"in_reply_to":"5a3905b3_aeafeae1","updated":"2017-01-19 17:35:27.000000000","message":"Ok","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"cc6a1ad8f1711738f13db077c6644bad8742a404","unresolved":false,"context_lines":[{"line_number":1184,"context_line":"                response, constants.MSG_INTERFACE_NAME_EXIST):"},{"line_number":1185,"context_line":"            LOG.warning(_LW(\"Mover interface name %s already exists. \""},{"line_number":1186,"context_line":"                            \"Skip the creation.\"), name)"},{"line_number":1187,"context_line":"            return"},{"line_number":1188,"context_line":"        elif self._response_validation("},{"line_number":1189,"context_line":"                response, constants.MSG_INTERFACE_EXIST):"},{"line_number":1190,"context_line":"            LOG.warning(_LW(\"Mover interface IP %s already exists. \""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_eebe52fe","line":1187,"range":{"start_line":1187,"start_character":12,"end_line":1187,"end_character":18},"updated":"2017-01-19 17:03:19.000000000","message":"this","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"cc6a1ad8f1711738f13db077c6644bad8742a404","unresolved":false,"context_lines":[{"line_number":1189,"context_line":"                response, constants.MSG_INTERFACE_EXIST):"},{"line_number":1190,"context_line":"            LOG.warning(_LW(\"Mover interface IP %s already exists. \""},{"line_number":1191,"context_line":"                            \"Skip the creation.\"), ip_addr)"},{"line_number":1192,"context_line":"            return"},{"line_number":1193,"context_line":"        elif self._response_validation("},{"line_number":1194,"context_line":"                response, constants.MSG_INTERFACE_INVALID_VLAN_ID):"},{"line_number":1195,"context_line":"            # When fail to create a mover interface with the specified"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_2e5e9ae9","line":1192,"range":{"start_line":1192,"start_character":12,"end_line":1192,"end_character":18},"updated":"2017-01-19 17:03:19.000000000","message":"and this are redundant according to current logic of this method. You return anyway leaving this condition.","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"cc6a1ad8f1711738f13db077c6644bad8742a404","unresolved":false,"context_lines":[{"line_number":1792,"context_line":"            message \u003d (_(\u0027Failed to create NFS share %(name)s on mover \u0027"},{"line_number":1793,"context_line":"                         \u0027%(mover_name)s. Reason: %(err)s.\u0027) %"},{"line_number":1794,"context_line":"                       {\u0027name\u0027: name, \u0027mover_name\u0027: mover_name, \u0027err\u0027: expt})"},{"line_number":1795,"context_line":"            LOG.error(message)"},{"line_number":1796,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1797,"context_line":""},{"line_number":1798,"context_line":"    def delete(self, name, mover_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_2eb69adc","line":1795,"range":{"start_line":1795,"start_character":12,"end_line":1795,"end_character":21},"updated":"2017-01-19 17:03:19.000000000","message":"For such cases we have \"LOG.exception\" that logs traceback automatically.","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"17c79b06f085a31d79686067edadef6ca51bfa60","unresolved":false,"context_lines":[{"line_number":1792,"context_line":"            message \u003d (_(\u0027Failed to create NFS share %(name)s on mover \u0027"},{"line_number":1793,"context_line":"                         \u0027%(mover_name)s. Reason: %(err)s.\u0027) %"},{"line_number":1794,"context_line":"                       {\u0027name\u0027: name, \u0027mover_name\u0027: mover_name, \u0027err\u0027: expt})"},{"line_number":1795,"context_line":"            LOG.error(message)"},{"line_number":1796,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1797,"context_line":""},{"line_number":1798,"context_line":"    def delete(self, name, mover_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_64ca83a3","line":1795,"range":{"start_line":1795,"start_character":12,"end_line":1795,"end_character":21},"in_reply_to":"5a3905b3_2eb69adc","updated":"2017-01-19 17:35:27.000000000","message":"Sure, I will change them all to LOG.exception where relevant","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            return self.context[type]"},{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            message \u003d (_(\"Invalid storage object type %s.\") % type)"},{"line_number":63,"context_line":"            LOG.exception(message)"},{"line_number":64,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_c1bb1b71","line":63,"range":{"start_line":63,"start_character":16,"end_line":63,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"It will fail. \"LOG.exception\" should be used only when exception was raised, when you have stacktrace.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"41aa0ea9df4478362ab84babfa63c1b73edc06d9","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            return self.context[type]"},{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            message \u003d (_(\"Invalid storage object type %s.\") % type)"},{"line_number":63,"context_line":"            LOG.exception(message)"},{"line_number":64,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_78e848e3","line":63,"range":{"start_line":63,"start_character":16,"end_line":63,"end_character":25},"in_reply_to":"5a3905b3_6e924ba1","updated":"2017-01-20 07:26:33.000000000","message":"Sure.  I will change them all","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            return self.context[type]"},{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            message \u003d (_(\"Invalid storage object type %s.\") % type)"},{"line_number":63,"context_line":"            LOG.exception(message)"},{"line_number":64,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_6e924ba1","line":63,"range":{"start_line":63,"start_character":16,"end_line":63,"end_character":25},"in_reply_to":"5a3905b3_c1bb1b71","updated":"2017-01-20 01:56:52.000000000","message":"Replace this with LOG.error","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            message \u003d (_(\"Failed to create file system %(name)s. \""},{"line_number":260,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":261,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":262,"context_line":"            LOG.exception(message)"},{"line_number":263,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    def get(self, name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_41a80b20","line":262,"range":{"start_line":262,"start_character":16,"end_line":262,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            message \u003d (_(\"Failed to get file system by name %(name)s. \""},{"line_number":314,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":315,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: out})"},{"line_number":316,"context_line":"            LOG.exception(message)"},{"line_number":317,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        enas_id \u003d self.filesystem_map[name][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_6163471b","line":316,"range":{"start_line":316,"start_character":16,"end_line":316,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":328,"context_line":"            message \u003d (_(\"Failed to delete file system %(name)s. \""},{"line_number":329,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":330,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":331,"context_line":"            LOG.exception(message)"},{"line_number":332,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        self.filesystem_map.pop(name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_816833f7","line":331,"range":{"start_line":331,"start_character":16,"end_line":331,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":339,"context_line":"            message \u003d (_(\"Failed to get file system by name %(name)s. \""},{"line_number":340,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":341,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: out})"},{"line_number":342,"context_line":"            LOG.exception(message)"},{"line_number":343,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"        enas_id \u003d out[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_a16d2f06","line":342,"range":{"start_line":342,"start_character":16,"end_line":342,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":349,"context_line":"                         \"size %(new_size)d is smaller than old size \""},{"line_number":350,"context_line":"                         \"%(size)d.\") %"},{"line_number":351,"context_line":"                       {\u0027name\u0027: name, \u0027new_size\u0027: new_size, \u0027size\u0027: size})"},{"line_number":352,"context_line":"            LOG.exception(message)"},{"line_number":353,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":354,"context_line":"        elif new_size \u003d\u003d size:"},{"line_number":355,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_e17737d2","line":352,"range":{"start_line":352,"start_character":16,"end_line":352,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":374,"context_line":"                       {\u0027name\u0027: name,"},{"line_number":375,"context_line":"                        \u0027new_size\u0027: new_size,"},{"line_number":376,"context_line":"                        \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":377,"context_line":"            LOG.exception(message)"},{"line_number":378,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def get_id(self, name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_21821f95","line":377,"range":{"start_line":377,"start_character":16,"end_line":377,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":374,"context_line":"                       {\u0027name\u0027: name,"},{"line_number":375,"context_line":"                        \u0027new_size\u0027: new_size,"},{"line_number":376,"context_line":"                        \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":377,"context_line":"            LOG.exception(message)"},{"line_number":378,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def get_id(self, name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_6ed96b83","line":377,"range":{"start_line":377,"start_character":16,"end_line":377,"end_character":25},"in_reply_to":"5a3905b3_21821f95","updated":"2017-01-20 01:56:52.000000000","message":"Same.  Replace with LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":383,"context_line":"            message \u003d (_(\"Failed to get file system by name %(name)s. \""},{"line_number":384,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":385,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: out})"},{"line_number":386,"context_line":"            LOG.exception(message)"},{"line_number":387,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"        return self.filesystem_map[name][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_814f5391","line":386,"range":{"start_line":386,"start_character":16,"end_line":386,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":536,"context_line":"            message \u003d (_(\"Failed to get storage pool by name %(name)s. \""},{"line_number":537,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":538,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: out})"},{"line_number":539,"context_line":"            LOG.exception(message)"},{"line_number":540,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"        return out[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_e15e5744","line":539,"range":{"start_line":539,"start_character":16,"end_line":539,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":585,"context_line":"                       {\u0027mount\u0027: mount_path,"},{"line_number":586,"context_line":"                        \u0027fs_name\u0027: fs_name,"},{"line_number":587,"context_line":"                        \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":588,"context_line":"            LOG.exception(message)"},{"line_number":589,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"    @utils.retry(exception.EMCVmaxInvalidMoverID)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_015c434a","line":588,"range":{"start_line":588,"start_character":16,"end_line":588,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":653,"context_line":"                       {\u0027mount\u0027: mount_path,"},{"line_number":654,"context_line":"                        \u0027mover_name\u0027: mover_name,"},{"line_number":655,"context_line":"                        \u0027err\u0027: response})"},{"line_number":656,"context_line":"            LOG.exception(message)"},{"line_number":657,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"    def _is_mount_point_nonexistent(self, response):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_21593f5b","line":656,"range":{"start_line":656,"start_character":16,"end_line":656,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":786,"context_line":"        if constants.STATUS_OK !\u003d status:"},{"line_number":787,"context_line":"            message \u003d (_(\"Failed to get mover by name %(name)s.\") %"},{"line_number":788,"context_line":"                       {\u0027name\u0027: name})"},{"line_number":789,"context_line":"            LOG.exception(message)"},{"line_number":790,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":791,"context_line":""},{"line_number":792,"context_line":"        return mover_ref[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_6131870b","line":789,"range":{"start_line":789,"start_character":16,"end_line":789,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":882,"context_line":"                       {\u0027name\u0027: name,"},{"line_number":883,"context_line":"                        \u0027mover_name\u0027: mover_name,"},{"line_number":884,"context_line":"                        \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":885,"context_line":"            LOG.exception(message)"},{"line_number":886,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"    def get(self, name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_a13b6fea","line":885,"range":{"start_line":885,"start_character":16,"end_line":885,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":925,"context_line":"            message \u003d (_(\"Failed to get VDM by name %(name)s. \""},{"line_number":926,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":927,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: out})"},{"line_number":928,"context_line":"            LOG.exception(message)"},{"line_number":929,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":930,"context_line":""},{"line_number":931,"context_line":"        vdm_id \u003d self.vdm_map[name][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_012363be","line":928,"range":{"start_line":928,"start_character":16,"end_line":928,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":940,"context_line":"            message \u003d (_(\"Failed to delete VDM %(name)s. \""},{"line_number":941,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":942,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":943,"context_line":"            LOG.exception(message)"},{"line_number":944,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":945,"context_line":""},{"line_number":946,"context_line":"        self.vdm_map.pop(name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_6118a785","line":943,"range":{"start_line":943,"start_character":16,"end_line":943,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":950,"context_line":"        if constants.STATUS_OK !\u003d status:"},{"line_number":951,"context_line":"            message \u003d (_(\"Failed to get VDM by name %(name)s.\") %"},{"line_number":952,"context_line":"                       {\u0027name\u0027: name})"},{"line_number":953,"context_line":"            LOG.exception(message)"},{"line_number":954,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":955,"context_line":""},{"line_number":956,"context_line":"        return vdm[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_811d9375","line":953,"range":{"start_line":953,"start_character":16,"end_line":953,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":986,"context_line":"                message \u003d (_(\"Failed to detach interface %(interface)s \""},{"line_number":987,"context_line":"                             \"from mover %(mover_name)s.\") %"},{"line_number":988,"context_line":"                           {\u0027interface\u0027: if_name, \u0027mover_name\u0027: vdm_name})"},{"line_number":989,"context_line":"                LOG.exception(message)"},{"line_number":990,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"    def get_interfaces(self, vdm_name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_a1128f60","line":989,"range":{"start_line":989,"start_character":20,"end_line":989,"end_character":29},"updated":"2017-01-19 22:41:11.000000000","message":"ditto, will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":986,"context_line":"                message \u003d (_(\"Failed to detach interface %(interface)s \""},{"line_number":987,"context_line":"                             \"from mover %(mover_name)s.\") %"},{"line_number":988,"context_line":"                           {\u0027interface\u0027: if_name, \u0027mover_name\u0027: vdm_name})"},{"line_number":989,"context_line":"                LOG.exception(message)"},{"line_number":990,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"    def get_interfaces(self, vdm_name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_0e10e700","line":989,"range":{"start_line":989,"start_character":20,"end_line":989,"end_character":29},"in_reply_to":"5a3905b3_a1128f60","updated":"2017-01-20 01:56:52.000000000","message":"Actually this one will not fail.  This is in the exception block.  Exception was caught on line 979.  So this is correct.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1105,"context_line":"            message \u003d (_(\"Failed to get snapshot by name %(name)s. \""},{"line_number":1106,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":1107,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: out})"},{"line_number":1108,"context_line":"            LOG.exception(message)"},{"line_number":1109,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1110,"context_line":""},{"line_number":1111,"context_line":"        chpt_id \u003d self.snap_map[name][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_6e1c0b14","line":1108,"range":{"start_line":1108,"start_character":12,"end_line":1108,"end_character":25},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1119,"context_line":"            message \u003d (_(\"Failed to delete snapshot %(name)s. \""},{"line_number":1120,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":1121,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":1122,"context_line":"            LOG.exception(message)"},{"line_number":1123,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1124,"context_line":""},{"line_number":1125,"context_line":"        self.snap_map.pop(name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_ae16f3ee","line":1122,"range":{"start_line":1122,"start_character":12,"end_line":1122,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1131,"context_line":"            message \u003d (_(\"Failed to get snapshot by %(name)s. \""},{"line_number":1132,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":1133,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: out})"},{"line_number":1134,"context_line":"            LOG.exception(message)"},{"line_number":1135,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        return self.snap_map[name][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_4ee82fe3","line":1134,"range":{"start_line":1134,"start_character":12,"end_line":1134,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1199,"context_line":"                pass"},{"line_number":1200,"context_line":"            message \u003d (_(\"Invalid vlan id %s. Other interfaces on this \""},{"line_number":1201,"context_line":"                         \"subnet are in a different vlan.\") % vlan_id)"},{"line_number":1202,"context_line":"            LOG.exception(message)"},{"line_number":1203,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1204,"context_line":"        elif constants.STATUS_OK !\u003d response[\u0027maxSeverity\u0027]:"},{"line_number":1205,"context_line":"            message \u003d (_(\"Failed to create mover interface %(interface)s. \""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_cea17fab","line":1202,"range":{"start_line":1202,"start_character":12,"end_line":1202,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1206,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":1207,"context_line":"                       {\u0027interface\u0027: interface,"},{"line_number":1208,"context_line":"                        \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":1209,"context_line":"            LOG.exception(message)"},{"line_number":1210,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1211,"context_line":""},{"line_number":1212,"context_line":"    def get(self, name, mover_name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_0eac679f","line":1209,"range":{"start_line":1209,"start_character":12,"end_line":1209,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1255,"context_line":"                       {\u0027ip\u0027: ip_addr,"},{"line_number":1256,"context_line":"                        \u0027mover\u0027: mover_name,"},{"line_number":1257,"context_line":"                        \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":1258,"context_line":"            LOG.exception(message)"},{"line_number":1259,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1260,"context_line":""},{"line_number":1261,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_0e838705","line":1258,"range":{"start_line":1258,"start_character":12,"end_line":1258,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1292,"context_line":"            message \u003d (_(\"Failed to create DNS domain %(name)s. \""},{"line_number":1293,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":1294,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":1295,"context_line":"            LOG.exception(message)"},{"line_number":1296,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1297,"context_line":""},{"line_number":1298,"context_line":"    @utils.retry(exception.EMCVmaxInvalidMoverID)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_ae727347","line":1295,"range":{"start_line":1295,"start_character":12,"end_line":1295,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1381,"context_line":"                             \"Reason: %(err)s.\") %"},{"line_number":1382,"context_line":"                           {\u0027name\u0027: name,"},{"line_number":1383,"context_line":"                            \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":1384,"context_line":"                LOG.exception(message)"},{"line_number":1385,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1386,"context_line":""},{"line_number":1387,"context_line":"    @utils.retry(exception.EMCVmaxInvalidMoverID)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_4ea4afa5","line":1384,"range":{"start_line":1384,"start_character":16,"end_line":1384,"end_character":38},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1492,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":1493,"context_line":"                       {\u0027name\u0027: name,"},{"line_number":1494,"context_line":"                        \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":1495,"context_line":"            LOG.exception(message)"},{"line_number":1496,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1497,"context_line":""},{"line_number":1498,"context_line":"    def _ignore_modification_error(self, response, join_domain):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_eeb9dbcc","line":1495,"range":{"start_line":1495,"start_character":12,"end_line":1495,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1536,"context_line":"            message \u003d (_(\"Failed to delete CIFS server %(name)s. \""},{"line_number":1537,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":1538,"context_line":"                       {\u0027name\u0027: computer_name, \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":1539,"context_line":"            LOG.exception(message)"},{"line_number":1540,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1541,"context_line":""},{"line_number":1542,"context_line":"        self.cifs_server_map[mover_name].pop(computer_name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_0eb1c7e1","line":1539,"range":{"start_line":1539,"start_character":11,"end_line":1539,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1581,"context_line":"            message \u003d (_(\"Failed to create file share %(name)s. \""},{"line_number":1582,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":1583,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":1584,"context_line":"            LOG.exception(message)"},{"line_number":1585,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1586,"context_line":""},{"line_number":1587,"context_line":"    def get(self, name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_2eb4c3cf","line":1584,"range":{"start_line":1584,"start_character":12,"end_line":1584,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1613,"context_line":"            message \u003d (_(\"Failed to get CIFS share by name %(name)s. \""},{"line_number":1614,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":1615,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: out})"},{"line_number":1616,"context_line":"            LOG.exception(message)"},{"line_number":1617,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1618,"context_line":""},{"line_number":1619,"context_line":"        mover_id \u003d self._get_mover_id(mover_name, is_vdm)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_6ec6cb4a","line":1616,"range":{"start_line":1616,"start_character":12,"end_line":1616,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1644,"context_line":"            message \u003d (_(\"Failed to delete file system %(name)s. \""},{"line_number":1645,"context_line":"                         \"Reason: %(err)s.\") %"},{"line_number":1646,"context_line":"                       {\u0027name\u0027: name, \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":1647,"context_line":"            LOG.exception(message)"},{"line_number":1648,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1649,"context_line":""},{"line_number":1650,"context_line":"        self.cifs_share_map.pop(name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_8ec5b73d","line":1647,"range":{"start_line":1647,"start_character":12,"end_line":1647,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1662,"context_line":"            message \u003d (_(\u0027Failed to disable the access to CIFS share \u0027"},{"line_number":1663,"context_line":"                         \u0027%(name)s. Reason: %(err)s.\u0027) %"},{"line_number":1664,"context_line":"                       {\u0027name\u0027: share_name, \u0027err\u0027: expt})"},{"line_number":1665,"context_line":"            LOG.exception(message)"},{"line_number":1666,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1667,"context_line":""},{"line_number":1668,"context_line":"    def allow_share_access(self, mover_name, share_name, user_name, domain,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_0ee8e7b3","line":1665,"range":{"start_line":1665,"start_character":12,"end_line":1665,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"This is correct because it is inside an exception block.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1690,"context_line":"                message \u003d (_(\u0027Failed to allow the access %(access)s to \u0027"},{"line_number":1691,"context_line":"                             \u0027CIFS share %(name)s. Reason: %(err)s.\u0027) %"},{"line_number":1692,"context_line":"                           {\u0027access\u0027: access, \u0027name\u0027: share_name, \u0027err\u0027: expt})"},{"line_number":1693,"context_line":"                LOG.exception(message)"},{"line_number":1694,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1695,"context_line":""},{"line_number":1696,"context_line":"    def deny_share_access(self, mover_name, share_name, user_name, domain,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_4ed2ef01","line":1693,"range":{"start_line":1693,"start_character":16,"end_line":1693,"end_character":38},"updated":"2017-01-20 01:56:52.000000000","message":"Correct.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1724,"context_line":"                message \u003d (_(\u0027Failed to deny the access %(access)s to \u0027"},{"line_number":1725,"context_line":"                             \u0027CIFS share %(name)s. Reason: %(err)s.\u0027) %"},{"line_number":1726,"context_line":"                           {\u0027access\u0027: access, \u0027name\u0027: share_name, \u0027err\u0027: expt})"},{"line_number":1727,"context_line":"                LOG.exception(message)"},{"line_number":1728,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1729,"context_line":""},{"line_number":1730,"context_line":"    def get_share_access(self, mover_name, share_name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_aed7d3eb","line":1727,"range":{"start_line":1727,"start_character":16,"end_line":1727,"end_character":38},"updated":"2017-01-20 01:56:52.000000000","message":"Correct","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1738,"context_line":"            out, err \u003d self._execute_cmd(get_access, check_exit_code\u003dTrue)"},{"line_number":1739,"context_line":"        except processutils.ProcessExecutionError:"},{"line_number":1740,"context_line":"            msg \u003d _(\u0027Failed to get access list of CIFS share %s.\u0027) % share_name"},{"line_number":1741,"context_line":"            LOG.exception(msg)"},{"line_number":1742,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmsg)"},{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"        ret \u003d {}"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_ce041f80","line":1741,"range":{"start_line":1741,"start_character":12,"end_line":1741,"end_character":30},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":1786,"context_line":""},{"line_number":1787,"context_line":"        try:"},{"line_number":1788,"context_line":"            self._execute_cmd(create_nfs_share_cmd, check_exit_code\u003dTrue)"},{"line_number":1789,"context_line":"        except processutils.ProcessExecutionError as expt:"},{"line_number":1790,"context_line":"            message \u003d (_(\u0027Failed to create NFS share %(name)s on mover \u0027"},{"line_number":1791,"context_line":"                         \u0027%(mover_name)s. Reason: %(err)s.\u0027) %"},{"line_number":1792,"context_line":"                       {\u0027name\u0027: name, \u0027mover_name\u0027: mover_name, \u0027err\u0027: expt})"},{"line_number":1793,"context_line":"            LOG.exception(message)"},{"line_number":1794,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1795,"context_line":""},{"line_number":1796,"context_line":"    def delete(self, name, mover_name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_41048b16","line":1793,"range":{"start_line":1789,"start_character":8,"end_line":1793,"end_character":34},"updated":"2017-01-19 22:41:11.000000000","message":"HERE it is correct usage of \"LOG.exception\" - in \"try\"-block in \"except\" part - only when exception was raised.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":1815,"context_line":"            message \u003d (_(\u0027Failed to delete NFS share %(name)s on \u0027"},{"line_number":1816,"context_line":"                         \u0027%(mover_name)s. Reason: %(err)s.\u0027) %"},{"line_number":1817,"context_line":"                       {\u0027name\u0027: name, \u0027mover_name\u0027: mover_name, \u0027err\u0027: expt})"},{"line_number":1818,"context_line":"            LOG.exception(message)"},{"line_number":1819,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1820,"context_line":""},{"line_number":1821,"context_line":"        self.nfs_share_map.pop(name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_7c04ce14","line":1818,"range":{"start_line":1818,"start_character":16,"end_line":1818,"end_character":25},"updated":"2017-01-19 22:41:11.000000000","message":"and here is ok.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"432a95000e4850c09c79a5cf3e0457be6de6f7fd","unresolved":false,"context_lines":[{"line_number":1857,"context_line":"                           {\u0027name\u0027: name,"},{"line_number":1858,"context_line":"                            \u0027mover_name\u0027: mover_name,"},{"line_number":1859,"context_line":"                            \u0027err\u0027: expt})"},{"line_number":1860,"context_line":"                LOG.exception(message)"},{"line_number":1861,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1862,"context_line":""},{"line_number":1863,"context_line":"        re_exports \u003d \u0027%s\\s*:\\s*\\nexport\\s*(.*)\\n\u0027 % mover_name"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_dc13025b","line":1860,"range":{"start_line":1860,"start_character":20,"end_line":1860,"end_character":29},"updated":"2017-01-19 22:41:11.000000000","message":"but here will fail.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1857,"context_line":"                           {\u0027name\u0027: name,"},{"line_number":1858,"context_line":"                            \u0027mover_name\u0027: mover_name,"},{"line_number":1859,"context_line":"                            \u0027err\u0027: expt})"},{"line_number":1860,"context_line":"                LOG.exception(message)"},{"line_number":1861,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1862,"context_line":""},{"line_number":1863,"context_line":"        re_exports \u003d \u0027%s\\s*:\\s*\\nexport\\s*(.*)\\n\u0027 % mover_name"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_ae4513b4","line":1860,"range":{"start_line":1860,"start_character":20,"end_line":1860,"end_character":29},"in_reply_to":"5a3905b3_dc13025b","updated":"2017-01-20 01:56:52.000000000","message":"Valeriy,\n\nWhy will it fail here?  This is inside the exception block.  Exception occurred on line 1848.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1891,"context_line":"            status, share \u003d self.get(share_name, mover_name)"},{"line_number":1892,"context_line":"            if constants.STATUS_NOT_FOUND \u003d\u003d status:"},{"line_number":1893,"context_line":"                message \u003d (_(\u0027NFS share %s not found.\u0027) % share_name)"},{"line_number":1894,"context_line":"                LOG.exception(message)"},{"line_number":1895,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1896,"context_line":""},{"line_number":1897,"context_line":"            changed \u003d False"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_ce797ffe","line":1894,"range":{"start_line":1894,"start_character":16,"end_line":1894,"end_character":38},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":1947,"context_line":"            if constants.STATUS_OK !\u003d status:"},{"line_number":1948,"context_line":"                message \u003d (_(\u0027Query nfs share %(path)s failed. \u0027"},{"line_number":1949,"context_line":"                             \u0027Reason %(err)s.\u0027) %"},{"line_number":1950,"context_line":"                           {\u0027path\u0027: share_name, \u0027err\u0027: share})"},{"line_number":1951,"context_line":"                LOG.exception(message)"},{"line_number":1952,"context_line":"                raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1953,"context_line":""},{"line_number":1954,"context_line":"            changed \u003d False"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_6e696b25","line":1951,"range":{"start_line":1950,"start_character":40,"end_line":1951,"end_character":16},"updated":"2017-01-20 01:56:52.000000000","message":"Change to LOG.error.","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52c1384599c01c0ffda7b5e35f45bdb3b09a7ce6","unresolved":false,"context_lines":[{"line_number":2048,"context_line":"                       {\u0027name\u0027: path[1:],"},{"line_number":2049,"context_line":"                        \u0027mover_name\u0027: mover_name,"},{"line_number":2050,"context_line":"                        \u0027err\u0027: expt})"},{"line_number":2051,"context_line":"            LOG.exception(message)"},{"line_number":2052,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a3905b3_0e5b8788","line":2051,"range":{"start_line":2051,"start_character":12,"end_line":2051,"end_character":34},"updated":"2017-01-20 01:56:52.000000000","message":"Correct","commit_id":"b9073a2278a507b2be8afffb8ecfc3e59327e977"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"c7b0c36e0aa050a0c05e31b5b952e49cb7f8ad39","unresolved":false,"context_lines":[{"line_number":1062,"context_line":"                       {\u0027name\u0027: name,"},{"line_number":1063,"context_line":"                        \u0027fs_name\u0027: fs_name,"},{"line_number":1064,"context_line":"                        \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":1065,"context_line":"            LOG.exception(message)"},{"line_number":1066,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1067,"context_line":""},{"line_number":1068,"context_line":"    def get(self, name):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_1c55734f","line":1065,"range":{"start_line":1065,"start_character":16,"end_line":1065,"end_character":25},"updated":"2017-01-20 09:45:27.000000000","message":"error","commit_id":"84cdd140d2bc8ec807e4461dc619daf940b4f322"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"3d4f57915c6dd7b13b0c550f43269d0eed1af257","unresolved":false,"context_lines":[{"line_number":1062,"context_line":"                       {\u0027name\u0027: name,"},{"line_number":1063,"context_line":"                        \u0027fs_name\u0027: fs_name,"},{"line_number":1064,"context_line":"                        \u0027err\u0027: response[\u0027problems\u0027]})"},{"line_number":1065,"context_line":"            LOG.exception(message)"},{"line_number":1066,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1067,"context_line":""},{"line_number":1068,"context_line":"    def get(self, name):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_eda8efdd","line":1065,"range":{"start_line":1065,"start_character":16,"end_line":1065,"end_character":25},"in_reply_to":"5a3905b3_1c55734f","updated":"2017-01-20 10:19:04.000000000","message":"Sure","commit_id":"84cdd140d2bc8ec807e4461dc619daf940b4f322"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"c7b0c36e0aa050a0c05e31b5b952e49cb7f8ad39","unresolved":false,"context_lines":[{"line_number":1661,"context_line":"        except processutils.ProcessExecutionError as expt:"},{"line_number":1662,"context_line":"            message \u003d (_(\u0027Failed to disable the access to CIFS share \u0027"},{"line_number":1663,"context_line":"                         \u0027%(name)s. Reason: %(err)s.\u0027) %"},{"line_number":1664,"context_line":"                       {\u0027name\u0027: share_name, \u0027err\u0027: expt})"},{"line_number":1665,"context_line":"            LOG.error(message)"},{"line_number":1666,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1667,"context_line":""},{"line_number":1668,"context_line":"    def allow_share_access(self, mover_name, share_name, user_name, domain,"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_6747c04b","line":1665,"range":{"start_line":1664,"start_character":23,"end_line":1665,"end_character":30},"updated":"2017-01-20 09:45:27.000000000","message":"message \u003d _(\u0027Failed to disable the access to CIFS share %(name)s.\u0027)\nLOG.exception(message, {\u0027name\u0027: share_name})","commit_id":"84cdd140d2bc8ec807e4461dc619daf940b4f322"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"3d4f57915c6dd7b13b0c550f43269d0eed1af257","unresolved":false,"context_lines":[{"line_number":1661,"context_line":"        except processutils.ProcessExecutionError as expt:"},{"line_number":1662,"context_line":"            message \u003d (_(\u0027Failed to disable the access to CIFS share \u0027"},{"line_number":1663,"context_line":"                         \u0027%(name)s. Reason: %(err)s.\u0027) %"},{"line_number":1664,"context_line":"                       {\u0027name\u0027: share_name, \u0027err\u0027: expt})"},{"line_number":1665,"context_line":"            LOG.error(message)"},{"line_number":1666,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1667,"context_line":""},{"line_number":1668,"context_line":"    def allow_share_access(self, mover_name, share_name, user_name, domain,"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_6d8cff7f","line":1665,"range":{"start_line":1664,"start_character":23,"end_line":1665,"end_character":30},"in_reply_to":"5a3905b3_6747c04b","updated":"2017-01-20 10:19:04.000000000","message":"Thank you.  I will change this","commit_id":"84cdd140d2bc8ec807e4461dc619daf940b4f322"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"c7b0c36e0aa050a0c05e31b5b952e49cb7f8ad39","unresolved":false,"context_lines":[{"line_number":1738,"context_line":"            out, err \u003d self._execute_cmd(get_access, check_exit_code\u003dTrue)"},{"line_number":1739,"context_line":"        except processutils.ProcessExecutionError:"},{"line_number":1740,"context_line":"            msg \u003d _(\u0027Failed to get access list of CIFS share %s.\u0027) % share_name"},{"line_number":1741,"context_line":"            LOG.error(msg)"},{"line_number":1742,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmsg)"},{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"        ret \u003d {}"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_fcb9877a","line":1741,"range":{"start_line":1741,"start_character":16,"end_line":1741,"end_character":21},"updated":"2017-01-20 09:45:27.000000000","message":"It is ok to have here \"exception\" type of message.","commit_id":"84cdd140d2bc8ec807e4461dc619daf940b4f322"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"3d4f57915c6dd7b13b0c550f43269d0eed1af257","unresolved":false,"context_lines":[{"line_number":1738,"context_line":"            out, err \u003d self._execute_cmd(get_access, check_exit_code\u003dTrue)"},{"line_number":1739,"context_line":"        except processutils.ProcessExecutionError:"},{"line_number":1740,"context_line":"            msg \u003d _(\u0027Failed to get access list of CIFS share %s.\u0027) % share_name"},{"line_number":1741,"context_line":"            LOG.error(msg)"},{"line_number":1742,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmsg)"},{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"        ret \u003d {}"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_edcd4fb8","line":1741,"range":{"start_line":1741,"start_character":16,"end_line":1741,"end_character":21},"in_reply_to":"5a3905b3_fcb9877a","updated":"2017-01-20 10:19:04.000000000","message":"I will change","commit_id":"84cdd140d2bc8ec807e4461dc619daf940b4f322"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"a0ee11656cb5827f4b2e923221e8b5a07ac7cddd","unresolved":false,"context_lines":[{"line_number":1659,"context_line":"        try:"},{"line_number":1660,"context_line":"            self._execute_cmd(disable_access, check_exit_code\u003dTrue)"},{"line_number":1661,"context_line":"        except processutils.ProcessExecutionError:"},{"line_number":1662,"context_line":"            message \u003d (_(\u0027Failed to disable the access to CIFS share \u0027"},{"line_number":1663,"context_line":"                         \u0027%(name)s.\u0027))"},{"line_number":1664,"context_line":"            LOG.exception(message, {\u0027name\u0027: share_name})"},{"line_number":1665,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1666,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_3ff93c81","line":1663,"range":{"start_line":1662,"start_character":0,"end_line":1663,"end_character":38},"updated":"2017-01-20 11:25:01.000000000","message":"It can be 79 chars per line:\n\n\"\"\"\n            message \u003d _(\u0027Failed to disable the access to CIFS share %(name)s.\u0027)\n\"\"\"","commit_id":"02bc607db11f9a72a4308615ef60c84f8f016627"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"a51b206e51a1c22364f4cdce31e8ae5ea9ff4ef6","unresolved":false,"context_lines":[{"line_number":1659,"context_line":"        try:"},{"line_number":1660,"context_line":"            self._execute_cmd(disable_access, check_exit_code\u003dTrue)"},{"line_number":1661,"context_line":"        except processutils.ProcessExecutionError:"},{"line_number":1662,"context_line":"            message \u003d (_(\u0027Failed to disable the access to CIFS share \u0027"},{"line_number":1663,"context_line":"                         \u0027%(name)s.\u0027))"},{"line_number":1664,"context_line":"            LOG.exception(message, {\u0027name\u0027: share_name})"},{"line_number":1665,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1666,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_df98381e","line":1663,"range":{"start_line":1662,"start_character":0,"end_line":1663,"end_character":38},"in_reply_to":"5a3905b3_3ff93c81","updated":"2017-01-20 11:30:26.000000000","message":"Pretty sure its too long and must be moved to the next line which is why I have the extra parenthesis.Perhaps not needed. Let me double check","commit_id":"02bc607db11f9a72a4308615ef60c84f8f016627"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7c0893df52d94fcd0344ef6a2c77da77a9595e8a","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                if re.search(pattern[0], e.stdout):"},{"line_number":182,"context_line":"                    raise pattern[1]"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"            raise e"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        return out, err"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"5a3905b3_7f58f28a","line":184,"range":{"start_line":184,"start_character":12,"end_line":184,"end_character":19},"updated":"2017-01-21 21:59:05.000000000","message":"Just \"raise\" without e.","commit_id":"0a88db1340fe14f8ccab1a490877ad9e8c8f5875"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7c0893df52d94fcd0344ef6a2c77da77a9595e8a","unresolved":false,"context_lines":[{"line_number":1659,"context_line":"        try:"},{"line_number":1660,"context_line":"            self._execute_cmd(disable_access, check_exit_code\u003dTrue)"},{"line_number":1661,"context_line":"        except processutils.ProcessExecutionError:"},{"line_number":1662,"context_line":"            message \u003d _(\u0027Failed to disable the access to CIFS share %(name)s.\u0027)"},{"line_number":1663,"context_line":"            LOG.exception(message, {\u0027name\u0027: share_name})"},{"line_number":1664,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1665,"context_line":""},{"line_number":1666,"context_line":"    def allow_share_access(self, mover_name, share_name, user_name, domain,"},{"line_number":1667,"context_line":"                           access\u003dconstants.CIFS_ACL_FULLCONTROL):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a3905b3_7fe632b1","line":1664,"range":{"start_line":1662,"start_character":0,"end_line":1664,"end_character":59},"updated":"2017-01-21 21:59:05.000000000","message":"message \u003d _(\u0027Failed to disable the access to CIFS share %(name)s.\u0027) %  {\u0027name\u0027: share_name}\nLOG.exception(message)\nraise exception.EMCVmaxXMLAPIError(err\u003dmessage)","commit_id":"0a88db1340fe14f8ccab1a490877ad9e8c8f5875"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"41ce14d60b953bf3b794ec751de1ce5fc9cc6533","unresolved":false,"context_lines":[{"line_number":1659,"context_line":"        try:"},{"line_number":1660,"context_line":"            self._execute_cmd(disable_access, check_exit_code\u003dTrue)"},{"line_number":1661,"context_line":"        except processutils.ProcessExecutionError:"},{"line_number":1662,"context_line":"            message \u003d _(\u0027Failed to disable the access to CIFS share %(name)s.\u0027)"},{"line_number":1663,"context_line":"            LOG.exception(message, {\u0027name\u0027: share_name})"},{"line_number":1664,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1665,"context_line":""},{"line_number":1666,"context_line":"    def allow_share_access(self, mover_name, share_name, user_name, domain,"},{"line_number":1667,"context_line":"                           access\u003dconstants.CIFS_ACL_FULLCONTROL):"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_b001a96c","line":1664,"range":{"start_line":1662,"start_character":0,"end_line":1664,"end_character":59},"updated":"2017-01-22 03:27:37.000000000","message":"This is wrong.  You will get the following exception printed out: \n\nFailed to disable the access to CIFS share %(name)s.\n\nThe name string will not be substituted.\n\nIn this case, because the same message is both sent to the logger and the exception, the message should be formatted once and used in both places so that the same message will be translated just once.  Please change to the following:\n\nmessage \u003d _(\u0027Failed to disable the access to CIFS share %(name)s.\u0027) %  {\u0027name\u0027: share_name}\nLOG.exception(message)\nraise exception.EMCVmaxXMLAPIError(err\u003dmessage)","commit_id":"8461d5aab64b96bd9ef5ecb1f939f93f7afd871a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"587908f4079ce562e0a8055a253c869d1e79a485","unresolved":false,"context_lines":[{"line_number":1659,"context_line":"        try:"},{"line_number":1660,"context_line":"            self._execute_cmd(disable_access, check_exit_code\u003dTrue)"},{"line_number":1661,"context_line":"        except processutils.ProcessExecutionError:"},{"line_number":1662,"context_line":"            message \u003d _(\u0027Failed to disable the access to CIFS share %(name)s.\u0027)"},{"line_number":1663,"context_line":"            LOG.exception(message, {\u0027name\u0027: share_name})"},{"line_number":1664,"context_line":"            raise exception.EMCVmaxXMLAPIError(err\u003dmessage)"},{"line_number":1665,"context_line":""},{"line_number":1666,"context_line":"    def allow_share_access(self, mover_name, share_name, user_name, domain,"},{"line_number":1667,"context_line":"                           access\u003dconstants.CIFS_ACL_FULLCONTROL):"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_91890e78","line":1664,"range":{"start_line":1662,"start_character":0,"end_line":1664,"end_character":59},"in_reply_to":"5a3905b3_b001a96c","updated":"2017-01-22 09:12:51.000000000","message":"Thanks Xing, I will make that change","commit_id":"8461d5aab64b96bd9ef5ecb1f939f93f7afd871a"}],"manila/share/drivers/dell_emc/plugins/vmax/utils.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"daa3dd55bf7ac86cea11c7d1b3e4a906843b755a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import types"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_log import log"},{"line_number":20,"context_line":"from oslo_utils import fnmatch"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_6cdeb712","line":17,"updated":"2017-01-20 14:05:43.000000000","message":"Whole this module is copy-paste of the existing one:\n\nhttps://github.com/openstack/manila/blob/master/manila/share/drivers/dell_emc/plugins/vnx/utils.py\n\nSo, it should be reused.","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"9e1a4d4100d32e5781b98c443b412f17d7080c5b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import types"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_log import log"},{"line_number":20,"context_line":"from oslo_utils import fnmatch"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_cc87abd5","line":17,"in_reply_to":"5a3905b3_6cdeb712","updated":"2017-01-20 14:07:53.000000000","message":"We have decided to keep them separate for future maintanability","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"}],"manila/share/drivers/dell_emc/plugins/vmax/xml_api_parser.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2239a5fe7a91e058cb925342adc6d89f239d5bfa","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import re"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from lxml import etree"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_ecdc67e6","line":15,"updated":"2017-01-20 14:08:41.000000000","message":"Same here. It is identical copy-paste of the existing module:\n\nhttps://github.com/openstack/manila/blob/master/manila/share/drivers/dell_emc/plugins/vnx/xml_api_parser.py\n\nShould be reused.","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"}],"manila/tests/share/drivers/dell_emc/plugins/vmax/test_connection.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7008657e2532d05befbc565ad2673687878675dd","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        ssh_cmd_mock.assert_has_calls(ssh_calls)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        self.assertEqual(location, [r\u0027\\\\192.168.1.1\\%s\u0027 % share[\u0027name\u0027]],"},{"line_number":177,"context_line":"                         \u0027CIFS export path is incorrect\u0027)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def test_create_nfs_share(self):"},{"line_number":180,"context_line":"        share_server \u003d fakes.SHARE_SERVER"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_c5cc4737","line":177,"updated":"2017-01-18 17:21:48.000000000","message":"This is reversed.","commit_id":"c94ce3b72148565db896083113bab2583da8127b"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"1ef9001bb2aba2e1c1e08618d4b6394c21534bc3","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        ssh_cmd_mock.assert_has_calls(ssh_calls)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        self.assertEqual(location, [r\u0027\\\\192.168.1.1\\%s\u0027 % share[\u0027name\u0027]],"},{"line_number":177,"context_line":"                         \u0027CIFS export path is incorrect\u0027)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def test_create_nfs_share(self):"},{"line_number":180,"context_line":"        share_server \u003d fakes.SHARE_SERVER"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_9e84505e","line":177,"in_reply_to":"7a3c09a3_c5cc4737","updated":"2017-01-18 17:23:16.000000000","message":"Sure.  I will change it","commit_id":"c94ce3b72148565db896083113bab2583da8127b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7008657e2532d05befbc565ad2673687878675dd","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        ssh_cmd_mock.assert_has_calls(ssh_calls)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        self.assertEqual(location, \u0027192.168.1.2:/%s\u0027 % share[\u0027name\u0027],"},{"line_number":208,"context_line":"                         \u0027NFS export path is incorrect\u0027)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def test_create_cifs_share_without_share_server(self):"},{"line_number":211,"context_line":"        share \u003d fakes.CIFS_SHARE"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_05d3afd5","line":208,"updated":"2017-01-18 17:21:48.000000000","message":"Same","commit_id":"c94ce3b72148565db896083113bab2583da8127b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7008657e2532d05befbc565ad2673687878675dd","unresolved":false,"context_lines":[{"line_number":334,"context_line":"        ssh_cmd_mock.assert_has_calls(ssh_calls)"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"        self.assertEqual(location, [r\u0027\\\\192.168.1.1\\%s\u0027 % share[\u0027name\u0027]],"},{"line_number":337,"context_line":"                         \u0027CIFS export path is incorrect\u0027)"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def test_create_nfs_share_from_snapshot(self):"},{"line_number":340,"context_line":"        share_server \u003d fakes.SHARE_SERVER"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_68752a30","line":337,"updated":"2017-01-18 17:21:48.000000000","message":"Reversed.","commit_id":"c94ce3b72148565db896083113bab2583da8127b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7008657e2532d05befbc565ad2673687878675dd","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        ssh_cmd_mock.assert_has_calls(ssh_calls)"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"        self.assertEqual(location, \u0027192.168.1.2:/%s\u0027 % share[\u0027name\u0027],"},{"line_number":386,"context_line":"                         \u0027NFS export path is incorrect\u0027)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    def test_create_share_with_incorrect_proto(self):"},{"line_number":389,"context_line":"        share_server \u003d fakes.SHARE_SERVER"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_65e473ab","line":386,"updated":"2017-01-18 17:21:48.000000000","message":"Same","commit_id":"c94ce3b72148565db896083113bab2583da8127b"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"c5404eb02aa4ab428daa8c3f26ad98629ee52bbc","unresolved":false,"context_lines":[{"line_number":1441,"context_line":""},{"line_number":1442,"context_line":"        self.assertRaises(exception.InvalidShareAccess,"},{"line_number":1443,"context_line":"                          self.connection.deny_access,"},{"line_number":1444,"context_line":"                          None, share, access, share_server)"},{"line_number":1445,"context_line":""},{"line_number":1446,"context_line":"    def test_update_share_stats(self):"},{"line_number":1447,"context_line":"        hook \u003d utils.RequestSideEffect()"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_e3726410","line":1444,"updated":"2017-01-23 13:37:25.000000000","message":"Those should have been reworked, now you have uncovered bug when trying to delete access rule of wrong type your driver will attempt to do it.","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"08648d393ae75cde5cc18786f6a42be4c71c4801","unresolved":false,"context_lines":[{"line_number":1437,"context_line":"        ssh_hook.append(self.nfs_share.output_get_succeed("},{"line_number":1438,"context_line":"            rw_hosts\u003drw_hosts,"},{"line_number":1439,"context_line":"            ro_hosts\u003dfakes.FakeData.ro_hosts))"},{"line_number":1440,"context_line":"        ssh_hook.append(self.nfs_share.output_set_access_success())"},{"line_number":1441,"context_line":"        ssh_hook.append(self.nfs_share.output_get_succeed("},{"line_number":1442,"context_line":"            rw_hosts\u003dfakes.FakeData.rw_hosts,"},{"line_number":1443,"context_line":"            ro_hosts\u003dfakes.FakeData.ro_hosts))"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_956c6c09","line":1440,"range":{"start_line":1440,"start_character":29,"end_line":1440,"end_character":38},"updated":"2017-01-23 16:51:08.000000000","message":"cifs_share?","commit_id":"a3c28a0afc62c90a781715ff45de1c385e411ff6"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"08648d393ae75cde5cc18786f6a42be4c71c4801","unresolved":false,"context_lines":[{"line_number":1438,"context_line":"            rw_hosts\u003drw_hosts,"},{"line_number":1439,"context_line":"            ro_hosts\u003dfakes.FakeData.ro_hosts))"},{"line_number":1440,"context_line":"        ssh_hook.append(self.nfs_share.output_set_access_success())"},{"line_number":1441,"context_line":"        ssh_hook.append(self.nfs_share.output_get_succeed("},{"line_number":1442,"context_line":"            rw_hosts\u003dfakes.FakeData.rw_hosts,"},{"line_number":1443,"context_line":"            ro_hosts\u003dfakes.FakeData.ro_hosts))"},{"line_number":1444,"context_line":"        ssh_cmd_mock \u003d utils.EMCNFSShareMock(side_effect\u003dssh_hook)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_d57a74bc","line":1441,"range":{"start_line":1441,"start_character":29,"end_line":1441,"end_character":38},"updated":"2017-01-23 16:51:08.000000000","message":"cifs_share?","commit_id":"a3c28a0afc62c90a781715ff45de1c385e411ff6"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"08648d393ae75cde5cc18786f6a42be4c71c4801","unresolved":false,"context_lines":[{"line_number":1449,"context_line":"        ssh_calls \u003d []"},{"line_number":1450,"context_line":"        ssh_cmd_mock.assert_has_calls(ssh_calls)"},{"line_number":1451,"context_line":""},{"line_number":1452,"context_line":"    def test_deny_nfs_access_with_incorrect_access_type(self):"},{"line_number":1453,"context_line":"        share_server \u003d fakes.SHARE_SERVER"},{"line_number":1454,"context_line":"        share \u003d fakes.NFS_SHARE"},{"line_number":1455,"context_line":"        access \u003d fake_share.fake_access(access_type\u003d\u0027fake_type\u0027)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_98a4a108","line":1452,"range":{"start_line":1452,"start_character":8,"end_line":1452,"end_character":62},"updated":"2017-01-23 16:51:08.000000000","message":"This and one above could be combined using \"ddt\" module.","commit_id":"a3c28a0afc62c90a781715ff45de1c385e411ff6"}],"manila/tests/share/drivers/dell_emc/plugins/vmax/test_connector.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"05515230501067cf85feaec87d48cd45f3e2118d","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        sshpool \u003d MockSSHPool()"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        with mock.patch.object(utils, \"SSHPool\","},{"line_number":208,"context_line":"                               mock.Mock(return_value\u003dsshpool)):"},{"line_number":209,"context_line":"            self.CmdHelper \u003d connector.SSHConnector(self.configuration)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"            self.assertRaises(processutils.ProcessExecutionError,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_2eee9a8b","line":208,"range":{"start_line":207,"start_character":8,"end_line":208,"end_character":64},"updated":"2017-01-19 17:07:33.000000000","message":"Why do you need \"with\" statement here? Why not using \"self.mock_object\" ?","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"17c79b06f085a31d79686067edadef6ca51bfa60","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        sshpool \u003d MockSSHPool()"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        with mock.patch.object(utils, \"SSHPool\","},{"line_number":208,"context_line":"                               mock.Mock(return_value\u003dsshpool)):"},{"line_number":209,"context_line":"            self.CmdHelper \u003d connector.SSHConnector(self.configuration)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"            self.assertRaises(processutils.ProcessExecutionError,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_491760a3","line":208,"range":{"start_line":207,"start_character":8,"end_line":208,"end_character":64},"in_reply_to":"5a3905b3_2eee9a8b","updated":"2017-01-19 17:35:27.000000000","message":"We were recommended to use this instead","commit_id":"a02589b961797a2943ed8f3c0cd9ccc02cb4831e"}],"manila/tests/share/drivers/dell_emc/plugins/vmax/utils.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"0bdf1f862c607d1f893a2d1e4eb4df06de233803","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        return True"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"def patch_get_managed_ports(*arg, **kwargs):"},{"line_number":165,"context_line":"    return mock.patch(\u0027manila.share.drivers.dell_emc.plugins.vmax.connection.\u0027"},{"line_number":166,"context_line":"                      \u0027VMAXStorageConnection.get_managed_ports\u0027,"},{"line_number":167,"context_line":"                      mock.Mock(*arg, **kwargs))"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_0cad3331","line":167,"range":{"start_line":164,"start_character":0,"end_line":167,"end_character":48},"updated":"2017-01-20 14:10:41.000000000","message":"This is the only part of this module that differs from following existing one:\n\nhttps://github.com/openstack/manila/blob/master/manila/tests/share/drivers/dell_emc/plugins/vnx/utils.py\n\nShould be reused.","commit_id":"e5c39da6b903181772777b8825ddb7934ea87bab"}],"releasenotes/notes/vmax-manila-support-7c655fc094c09367.yaml":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7c0893df52d94fcd0344ef6a2c77da77a9595e8a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Support for VMAX in Manila"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"5a3905b3_3f658a1d","line":3,"updated":"2017-01-21 21:59:05.000000000","message":"Add a period.","commit_id":"0a88db1340fe14f8ccab1a490877ad9e8c8f5875"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c2851f36da1f1573d80f6af03a2036b884196db9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Support for VMAX in Manila"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"5a3905b3_10e43daa","line":3,"updated":"2017-01-22 03:36:17.000000000","message":"Add a period at the end of this release note.","commit_id":"8461d5aab64b96bd9ef5ecb1f939f93f7afd871a"}]}
