)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"9ac0efab696d8bae5ee99d53fcc0d53ea6ae0d1c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Replaced deprecated timeutils methods (isotime() and strtime())"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Since oslo 1.6.0 timeutils.isotime() and timeutils.strtime() methods are deprecated."},{"line_number":10,"context_line":" DeprecationWarning: Using function/method \u0027oslo_utils.timeutils.strtime()\u0027 is deprecated in version \u00271.6\u0027 and will be removed in a future version: use either datetime.datetime.isoformat() or datetime.datetime.strftime() instead"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: If69bd8a6bee052556ba8853afef3941bcd1e7b13"},{"line_number":13,"context_line":"Closes-Bug: 1479056"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa80f949_6d7e4eb0","line":10,"updated":"2015-11-03 15:00:02.000000000","message":"You have to cut these lines, they are too long..","commit_id":"c748eb19372fd5305c4bc163201e7794d23d1189"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"0f1fbc2bdc46518b9674eb6221730ca6793dd6eb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gábor Antal \u003cantal@inf.u-szeged.hu\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-04 15:19:01 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Replaced deprecated timeutils methods (isotime() and strtime())"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Since oslo 1.6.0 timeutils.isotime() and timeutils.strtime() methods are deprecated."},{"line_number":10,"context_line":" DeprecationWarning: Using function/method \u0027oslo_utils.timeutils.strtime()\u0027 is deprecated"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa80f949_b673e57f","line":7,"updated":"2015-11-04 22:23:42.000000000","message":"The first line of the commit message should be limited to 50 characters.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages\n\nAnd subsequent lines should be wrapped at 72 characters.","commit_id":"05463a7b9f15658e93e6784b44f6d1957edf2180"}],"nova/CA/geninter.sh":[{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"0f1fbc2bdc46518b9674eb6221730ca6793dd6eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fa80f949_f6e72de2","updated":"2015-11-04 22:23:42.000000000","message":"Did you intend to commit these file mode changes? I would revert them...","commit_id":"05463a7b9f15658e93e6784b44f6d1957edf2180"}],"nova/CA/genrootca.sh":[{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"0f1fbc2bdc46518b9674eb6221730ca6793dd6eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fa80f949_16ebd1b1","updated":"2015-11-04 22:23:42.000000000","message":"Did you intend to commit these file mode changes? I would revert them...","commit_id":"05463a7b9f15658e93e6784b44f6d1957edf2180"}],"nova/api/openstack/compute/views/limits.py":[{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"d692415fa7a46d825603710dc089b329edf3f46e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import datetime"},{"line_number":17,"context_line":"from nova import utils"},{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa80f949_038b75c4","line":17,"updated":"2015-11-05 14:23:00.000000000","message":"This import doesn\u0027t belong here. It belongs after the six import in it\u0027s own section.\n\nhttps://www.python.org/dev/peps/pep-0008/#imports","commit_id":"c0d624d86358f7b591e92bc88b143d21894a84c9"}],"nova/api/openstack/compute/views/servers.py":[{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"d692415fa7a46d825603710dc089b329edf3f46e","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from nova.i18n import _LW"},{"line_number":25,"context_line":"from nova.objects import base as obj_base"},{"line_number":26,"context_line":"from nova import utils"},{"line_number":27,"context_line":"from oslo_log import log as logging"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa80f949_a3cb891d","line":27,"updated":"2015-11-05 14:23:00.000000000","message":"This import doesn\u0027t belong here. While oslo libraries are indeed openstack too, it is considered a third party import as far as nova is concerned.\n\nhttps://www.python.org/dev/peps/pep-0008/#imports","commit_id":"c0d624d86358f7b591e92bc88b143d21894a84c9"}],"nova/cloudpipe/bootscript.template":[{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"d692415fa7a46d825603710dc089b329edf3f46e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"fa80f949_632a812e","updated":"2015-11-05 14:23:00.000000000","message":"This mode change has nothing to do with this patch, correct? I would revert it.","commit_id":"c0d624d86358f7b591e92bc88b143d21894a84c9"}],"nova/compute/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a3024a541e5328f14b474f5f7a34ea217fb0a45","unresolved":false,"context_lines":[{"line_number":5730,"context_line":""},{"line_number":5731,"context_line":"        to_gc \u003d []"},{"line_number":5732,"context_line":"        for instance in shelved_instances:"},{"line_number":5733,"context_line":"            sys_meta \u003d instance.system_metadata"},{"line_number":5734,"context_line":"            shelved_at \u003d timeutils.parse_strtime(sys_meta[\u0027shelved_at\u0027])"},{"line_number":5735,"context_line":"            if timeutils.is_older_than(shelved_at, CONF.shelved_offload_time):"},{"line_number":5736,"context_line":"                to_gc.append(instance)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a8ffd7b_a0ed11f1","line":5733,"updated":"2015-11-30 20:32:49.000000000","message":"Does this still work correctly? The shelved_at time was changed from strtime to isotime, but this wasn\u0027t also changed.","commit_id":"630aad025e2d7010d60a2b2257959692e35bbb3f"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"116134f5135db66591b563b2a442ff5485bed0e1","unresolved":false,"context_lines":[{"line_number":5730,"context_line":""},{"line_number":5731,"context_line":"        to_gc \u003d []"},{"line_number":5732,"context_line":"        for instance in shelved_instances:"},{"line_number":5733,"context_line":"            sys_meta \u003d instance.system_metadata"},{"line_number":5734,"context_line":"            shelved_at \u003d timeutils.parse_strtime(sys_meta[\u0027shelved_at\u0027])"},{"line_number":5735,"context_line":"            if timeutils.is_older_than(shelved_at, CONF.shelved_offload_time):"},{"line_number":5736,"context_line":"                to_gc.append(instance)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a8ffd7b_f9e670af","line":5733,"in_reply_to":"9a8ffd7b_a0ed11f1","updated":"2015-11-30 22:00:34.000000000","message":"Assuming you\u0027re talking about this change:\n\nBefore:\n\n    instance.system_metadata[\u0027shelved_at\u0027] \u003d timeutils.strtime()\n\nAfter: \n\n    instance.system_metadata[\u0027shelved_at\u0027] \u003d timeutils.utcnow().isoformat()\n\nCalling timeutils.strtime() without an argument before this change[1], would have called timeutils.utcnow().(\u0027\u0027%Y-%m-%dT%H:%M:%S.%f\u0027\u0027) under the hood which is largely \"equivalent\" to timeutils.utcnow().isoformat() unless microsecond is 0 (see [2], highly unlikely for a utcnow() call).\n\n[1]https://github.com/openstack/oslo.utils/blob/bd0d191ec3058e6f6d7ae8b0cb545e172f3d6eb8/oslo_utils/timeutils.py#L77\n\n[2]https://docs.python.org/2/library/datetime.html#datetime.datetime.isoformat\n\nHere are some examples that demonstrate how replaceable these different approaches are:\n\n    \u003e\u003e\u003e from oslo_utils import timeutils\n\n    \u003e\u003e\u003e timeutils.strtime()\n    \u00272015-11-30T21:49:19.838591\u0027\n\n    \u003e\u003e\u003e timeutils.utcnow().isoformat() \n    \u00272015-11-30T21:49:33.300466\u0027\n\n    \u003e\u003e\u003e timeutils.utcnow().strftime(\u0027%Y-%m-%dT%H:%M:%S.%f\u0027)\n    \u00272015-11-30T21:49:42.065998\u0027\n\nDo let me know if that didn\u0027t answer your question. I may have misunderstood your original concern.\n\nPS. Do you have reason to believe it\u0027s not working? That is, is something broken, or acting suspiciously? It\u0027s always possible we made a mistake ;)\n\nThanks!","commit_id":"630aad025e2d7010d60a2b2257959692e35bbb3f"}],"nova/context.py":[{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"9ac0efab696d8bae5ee99d53fcc0d53ea6ae0d1c","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            \u0027roles\u0027: getattr(self, \u0027roles\u0027, None),"},{"line_number":179,"context_line":"            \u0027remote_address\u0027: getattr(self, \u0027remote_address\u0027, None),"},{"line_number":180,"context_line":"            \u0027timestamp\u0027: self.timestamp.strftime("},{"line_number":181,"context_line":"            \u0027%Y-%m-%dT%H:%M:%S.%f\u0027) if hasattr("},{"line_number":182,"context_line":"            self, \u0027timestamp\u0027) else None,"},{"line_number":183,"context_line":"            \u0027request_id\u0027: getattr(self, \u0027request_id\u0027, None),"},{"line_number":184,"context_line":"            \u0027quota_class\u0027: getattr(self, \u0027quota_class\u0027, None),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_c8a4080a","line":181,"updated":"2015-11-03 15:00:02.000000000","message":"indentation","commit_id":"c748eb19372fd5305c4bc163201e7794d23d1189"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"9ac0efab696d8bae5ee99d53fcc0d53ea6ae0d1c","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            \u0027remote_address\u0027: getattr(self, \u0027remote_address\u0027, None),"},{"line_number":180,"context_line":"            \u0027timestamp\u0027: self.timestamp.strftime("},{"line_number":181,"context_line":"            \u0027%Y-%m-%dT%H:%M:%S.%f\u0027) if hasattr("},{"line_number":182,"context_line":"            self, \u0027timestamp\u0027) else None,"},{"line_number":183,"context_line":"            \u0027request_id\u0027: getattr(self, \u0027request_id\u0027, None),"},{"line_number":184,"context_line":"            \u0027quota_class\u0027: getattr(self, \u0027quota_class\u0027, None),"},{"line_number":185,"context_line":"            \u0027user_name\u0027: getattr(self, \u0027user_name\u0027, None),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_c8c968ae","line":182,"updated":"2015-11-03 15:00:02.000000000","message":"indentation","commit_id":"c748eb19372fd5305c4bc163201e7794d23d1189"}],"nova/objects/base.py":[{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"d692415fa7a46d825603710dc089b329edf3f46e","unresolved":false,"context_lines":[{"line_number":333,"context_line":"def serialize_args(fn):"},{"line_number":334,"context_line":"    \"\"\"Decorator that will do the arguments serialization before remoting.\"\"\""},{"line_number":335,"context_line":"    def wrapper(obj, *args, **kwargs):"},{"line_number":336,"context_line":"        args \u003d [arg.isoformat() if isinstance(arg, datetime.datetime)"},{"line_number":337,"context_line":"                else arg for arg in args]"},{"line_number":338,"context_line":"        for k, v in six.iteritems(kwargs):"},{"line_number":339,"context_line":"            if k \u003d\u003d \u0027exc_val\u0027 and v:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa80f949_43cbbda5","line":336,"updated":"2015-11-05 14:23:00.000000000","message":"This is prod path code vs. test code, and not 100% backwards compatible. Perhaps an explicit strftime(\"%Y-%m-%dT%H:%M:%S.%f\") should be used here to remain backwards compatible (handle the microseconds\u003d0 case).","commit_id":"c0d624d86358f7b591e92bc88b143d21894a84c9"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"d692415fa7a46d825603710dc089b329edf3f46e","unresolved":false,"context_lines":[{"line_number":341,"context_line":"            elif k \u003d\u003d \u0027exc_tb\u0027 and v and not isinstance(v, six.string_types):"},{"line_number":342,"context_line":"                kwargs[k] \u003d \u0027\u0027.join(traceback.format_tb(v))"},{"line_number":343,"context_line":"            elif isinstance(v, datetime.datetime):"},{"line_number":344,"context_line":"                kwargs[k] \u003d v.isoformat()"},{"line_number":345,"context_line":"        if hasattr(fn, \u0027__call__\u0027):"},{"line_number":346,"context_line":"            return fn(obj, *args, **kwargs)"},{"line_number":347,"context_line":"        # NOTE(danms): We wrap a descriptor, so use that protocol"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa80f949_63ce01b6","line":344,"updated":"2015-11-05 14:23:00.000000000","message":"This is prod path code vs. test code, and not 100% backwards compatible. Perhaps an explicit strftime(\"%Y-%m-%dT%H:%M:%S.%f\") should be used here to remain backwards compatible (handle the microseconds\u003d0 case).","commit_id":"c0d624d86358f7b591e92bc88b143d21894a84c9"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"2c78f44b472454be239c176c2324226e0945ade2","unresolved":false,"context_lines":[{"line_number":333,"context_line":"def serialize_args(fn):"},{"line_number":334,"context_line":"    \"\"\"Decorator that will do the arguments serialization before remoting.\"\"\""},{"line_number":335,"context_line":"    def wrapper(obj, *args, **kwargs):"},{"line_number":336,"context_line":"        args \u003d [arg.strftime(\"%Y-%m-%dT%H:%M:%S.%f\" if arg.microsecond"},{"line_number":337,"context_line":"                             else \"%Y-%m-%dT%H:%M:%S\")"},{"line_number":338,"context_line":"                if isinstance(arg, datetime.datetime)"},{"line_number":339,"context_line":"                else arg for arg in args]"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa80f949_edadc59b","line":336,"updated":"2015-11-06 16:49:00.000000000","message":"Why the \u0027if microseconds\u0027 check? Always returning arg.strftime(\"%Y-%m-%dT%H:%M:%S.%f\") is fine, is it not (since that\u0027s what timeutils did)?\n\nhttps://github.com/openstack/oslo.utils/blob/e16cb5d790f91f9e6eb7086b775e2df14922ba07/oslo_utils/timeutils.py#L77","commit_id":"41a4c69a0be42b6050ca2cf851071a86686563b8"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"2c78f44b472454be239c176c2324226e0945ade2","unresolved":false,"context_lines":[{"line_number":343,"context_line":"            elif k \u003d\u003d \u0027exc_tb\u0027 and v and not isinstance(v, six.string_types):"},{"line_number":344,"context_line":"                kwargs[k] \u003d \u0027\u0027.join(traceback.format_tb(v))"},{"line_number":345,"context_line":"            elif isinstance(v, datetime.datetime):"},{"line_number":346,"context_line":"                kwargs[k] \u003d v.strftime(\"%Y-%m-%dT%H:%M:%S.%f\" if v.microsecond"},{"line_number":347,"context_line":"                                       else \"%Y-%m-%dT%H:%M:%S\")"},{"line_number":348,"context_line":"        if hasattr(fn, \u0027__call__\u0027):"},{"line_number":349,"context_line":"            return fn(obj, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa80f949_8d975947","line":346,"updated":"2015-11-06 16:49:00.000000000","message":"Why the \u0027if microseconds\u0027 check? Always returning arg.strftime(\"%Y-%m-%dT%H:%M:%S.%f\") is fine, is it not (since that\u0027s what timeutils did)?\n\nhttps://github.com/openstack/oslo.utils/blob/e16cb5d790f91f9e6eb7086b775e2df14922ba07/oslo_utils/timeutils.py#L77","commit_id":"41a4c69a0be42b6050ca2cf851071a86686563b8"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"ef28bfae4a37269b3ac6a7b32f49c4f98d2f55af","unresolved":false,"context_lines":[{"line_number":333,"context_line":"def serialize_args(fn):"},{"line_number":334,"context_line":"    \"\"\"Decorator that will do the arguments serialization before remoting.\"\"\""},{"line_number":335,"context_line":"    def wrapper(obj, *args, **kwargs):"},{"line_number":336,"context_line":"        args \u003d [arg.strftime(\"%Y-%m-%dT%H:%M:%S.%f\" if arg.microsecond"},{"line_number":337,"context_line":"                             else \"%Y-%m-%dT%H:%M:%S\")"},{"line_number":338,"context_line":"                if isinstance(arg, datetime.datetime)"},{"line_number":339,"context_line":"                else arg for arg in args]"}],"source_content_type":"text/x-python","patch_set":6,"id":"da85f559_83d5a1e5","line":336,"updated":"2015-11-12 14:48:38.000000000","message":"It\u0027s still not clear to me why you have the if statement here. Just doing arg.strftime(\"%Y-%m-%dT%H:%M:%S.%f\") in both cases is backwards compatible, correct?\n\nhttps://github.com/openstack/oslo.utils/blob/c5d9e6cde8d5f7ab2915996bcd54347a9fa521f9/oslo_utils/timeutils.py#L77\n\nDo you have the if statement here because a test is failing or something? If so, perhaps the test isn\u0027t correct. I\u0027m nervous about adding +1 a non-backwards compatible change in non-test code.","commit_id":"76dd10b02288b75ffc8d9a61dd70729fb0815825"}],"nova/objects/fixed_ip.py":[{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"d692415fa7a46d825603710dc089b329edf3f46e","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    @classmethod"},{"line_number":172,"context_line":"    def disassociate_all_by_timeout(cls, context, host, time):"},{"line_number":173,"context_line":"        return cls._disassociate_all_by_timeout(context, host,"},{"line_number":174,"context_line":"                                                time.strftime("},{"line_number":175,"context_line":"                                                    \"%Y-%m-%dT%H:%M:%SZ\"))"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    @obj_base.remotable"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa80f949_a3086992","line":174,"updated":"2015-11-05 14:23:00.000000000","message":"Why didn\u0027t you use the utils.isotime() function you created here?","commit_id":"c0d624d86358f7b591e92bc88b143d21894a84c9"}],"nova/objects/instance.py":[{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"d692415fa7a46d825603710dc089b329edf3f46e","unresolved":false,"context_lines":[{"line_number":1212,"context_line":"        # NOTE(mriedem): We have to convert the datetime objects to string"},{"line_number":1213,"context_line":"        # primitives for the remote call."},{"line_number":1214,"context_line":"        begin \u003d begin.strftime(\"%Y-%m-%dT%H:%M:%SZ\")"},{"line_number":1215,"context_line":"        end \u003d end.strftime(\"%Y-%m-%dT%H:%M:%SZ\") if end else None"},{"line_number":1216,"context_line":"        return cls._get_active_by_window_joined(context, begin, end,"},{"line_number":1217,"context_line":"                                                project_id, host,"},{"line_number":1218,"context_line":"                                                expected_attrs,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa80f949_a3baa9be","line":1215,"updated":"2015-11-05 14:23:00.000000000","message":"Perhaps I\u0027m missing something, but why didn\u0027t you use the utils.isotime() function you created here?","commit_id":"c0d624d86358f7b591e92bc88b143d21894a84c9"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"2c78f44b472454be239c176c2324226e0945ade2","unresolved":false,"context_lines":[{"line_number":2047,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":2048,"context_line":"        image \u003d {\u0027id\u0027: \u0027fake_id\u0027}"},{"line_number":2049,"context_line":"        # Adding shelved information to instance system metadata."},{"line_number":2050,"context_line":"        shelved_time \u003d timeutils.utcnow().strftime(\"%Y-%m-%dT%H:%M:%S.%f\")"},{"line_number":2051,"context_line":"        instance.system_metadata[\u0027shelved_at\u0027] \u003d shelved_time"},{"line_number":2052,"context_line":"        instance.system_metadata[\u0027shelved_image_id\u0027] \u003d image[\u0027id\u0027]"},{"line_number":2053,"context_line":"        instance.system_metadata[\u0027shelved_host\u0027] \u003d \u0027fake-mini\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa80f949_4d4c11c8","line":2050,"updated":"2015-11-06 16:49:00.000000000","message":"this one can just be utcnow().isoformat()","commit_id":"41a4c69a0be42b6050ca2cf851071a86686563b8"}],"nova/tests/unit/objects/test_monitor_metric.py":[{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"d692415fa7a46d825603710dc089b329edf3f46e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"_monitor_numa_metric_spec \u003d {"},{"line_number":36,"context_line":"    \u0027name\u0027: fields.MonitorMetricType.NUMA_MEM_BW_CURRENT,"},{"line_number":37,"context_line":"    \u0027numa_membw_values\u0027: {\"0\": 10, \"1\": 43},"},{"line_number":38,"context_line":"    \u0027timestamp\u0027: timeutils.strtime(_ts_now),"},{"line_number":39,"context_line":"    \u0027source\u0027: \u0027nova.virt.libvirt.driver\u0027"},{"line_number":40,"context_line":"}"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa80f949_7039e940","line":38,"updated":"2015-11-05 14:23:00.000000000","message":"missed a timeutils.strtime call","commit_id":"c0d624d86358f7b591e92bc88b143d21894a84c9"}],"nova/utils.py":[{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"9ac0efab696d8bae5ee99d53fcc0d53ea6ae0d1c","unresolved":false,"context_lines":[{"line_number":1543,"context_line":""},{"line_number":1544,"context_line":"def isotime(at\u003dNone):"},{"line_number":1545,"context_line":"    \"\"\"Current time as ISO string,"},{"line_number":1546,"context_line":"    as timeutils.isotime() is deprecated"},{"line_number":1547,"context_line":"    :returns: Current time in ISO format"},{"line_number":1548,"context_line":"    \"\"\""},{"line_number":1549,"context_line":"    if not at:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_ad099633","line":1546,"updated":"2015-11-03 15:00:02.000000000","message":"blank line here","commit_id":"c748eb19372fd5305c4bc163201e7794d23d1189"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"b5c87364425ac77b32e9fca7c7fb6147239d5cf8","unresolved":false,"context_lines":[{"line_number":1549,"context_line":"    \"\"\""},{"line_number":1550,"context_line":"    if not at:"},{"line_number":1551,"context_line":"        at \u003d timeutils.utcnow()"},{"line_number":1552,"context_line":"    return at.strftime(\"%Y-%m-%dT%H:%M:%SZ\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_e5d1fe30","line":1552,"updated":"2015-11-12 21:09:07.000000000","message":"Why is this different than the timeutils.utcnow().isoformat() or at.isoformat() that\u0027s recommended in timeutils.isotime()?  If there is an issue with the recommendation a patch should be made to update it.","commit_id":"8ab72502d29980cb3c37cd9ec41b539905243b72"}]}
