)]}'
{"etc/vcenter.cfg":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"c5ee728f526d250dd7a78d8c83c22af1f8e09f94","unresolved":false,"context_lines":[{"line_number":3,"context_line":"# vCenter Server target system."},{"line_number":4,"context_line":"# The server value can be an IP address or a DNS name"},{"line_number":5,"context_line":"# e.g. 127.0.0.1, 127.0.0.1:443, www.vmware-infra.com"},{"line_number":6,"context_line":"#server_host \u003d \u003cNone\u003e"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# Server username (string value)"},{"line_number":9,"context_line":"#server_username \u003d \u003cNone\u003e"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"baada198_e022b6a1","line":6,"updated":"2014-07-07 17:00:39.000000000","message":"Why do we need this?","commit_id":"5bae8564ca2170d9b903f6ade7561957e23f0cd6"}],"oslo/vmware/metadata/base.py":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"6d6732a31ddd3135fe5fcce0c64fccf5f2f19f3c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class API(object):"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    def set(self, key, value):"},{"line_number":20,"context_line":"        \"\"\"Store a key-value pair in the underlying store.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_40df6b3a","line":17,"updated":"2014-06-25 12:40:11.000000000","message":"so why do we need this? do we expect other implementations besides the one using CustomFieldManager? I suggest to keep things simple in the beginning and add this if needed.","commit_id":"5bae8564ca2170d9b903f6ade7561957e23f0cd6"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"c5ee728f526d250dd7a78d8c83c22af1f8e09f94","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class API(object):"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    def set(self, key, value):"},{"line_number":20,"context_line":"        \"\"\"Store a key-value pair in the underlying store.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_20ad8ee9","line":17,"in_reply_to":"1ae5cdf2_40df6b3a","updated":"2014-07-07 17:00:39.000000000","message":"Please change the name to a more relevant one.\nAlso consider providing doc comments.","commit_id":"5bae8564ca2170d9b903f6ade7561957e23f0cd6"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"c5ee728f526d250dd7a78d8c83c22af1f8e09f94","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class API(object):"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    def set(self, key, value):"},{"line_number":20,"context_line":"        \"\"\"Store a key-value pair in the underlying store.\"\"\""},{"line_number":21,"context_line":"        raise NotImplemented"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_00988a76","line":19,"updated":"2014-07-07 17:00:39.000000000","message":"What if the key already exists? Will it overwrite or throw an exception?","commit_id":"5bae8564ca2170d9b903f6ade7561957e23f0cd6"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"6d6732a31ddd3135fe5fcce0c64fccf5f2f19f3c","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    def set(self, key, value):"},{"line_number":20,"context_line":"        \"\"\"Store a key-value pair in the underlying store.\"\"\""},{"line_number":21,"context_line":"        raise NotImplemented"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def get(self, key):"},{"line_number":24,"context_line":"        \"\"\"Retrieve the value of a given key.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_00280384","line":21,"updated":"2014-06-25 12:40:11.000000000","message":"you should raise NotImplementedError()\n\nsame for the other methods","commit_id":"5bae8564ca2170d9b903f6ade7561957e23f0cd6"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"c5ee728f526d250dd7a78d8c83c22af1f8e09f94","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        \"\"\"Store a key-value pair in the underlying store.\"\"\""},{"line_number":21,"context_line":"        raise NotImplemented"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def get(self, key):"},{"line_number":24,"context_line":"        \"\"\"Retrieve the value of a given key.\"\"\""},{"line_number":25,"context_line":"        raise NotImplemented"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_c098526c","line":23,"updated":"2014-07-07 17:00:39.000000000","message":"what if the key doesn\u0027t exist?","commit_id":"5bae8564ca2170d9b903f6ade7561957e23f0cd6"}],"oslo/vmware/metadata/vc_metadata.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"c5ee728f526d250dd7a78d8c83c22af1f8e09f94","unresolved":false,"context_lines":[{"line_number":27,"context_line":"OPENSTACK_NS \u003d \"OSTACK_NS\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class VcMetadata(metadata.API):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def __init__(self, session, cluster, namespace\u003dOPENSTACK_NS):"},{"line_number":33,"context_line":"        self._session \u003d session"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_a0bc3ebc","line":30,"updated":"2014-07-07 17:00:39.000000000","message":"Consider adding a doc comment here and in other public methods.","commit_id":"5bae8564ca2170d9b903f6ade7561957e23f0cd6"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"6d6732a31ddd3135fe5fcce0c64fccf5f2f19f3c","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def __init__(self, session, cluster, namespace\u003dOPENSTACK_NS):"},{"line_number":33,"context_line":"        self._session \u003d session"},{"line_number":34,"context_line":"        self._cluster \u003d cluster"},{"line_number":35,"context_line":"        self._vim \u003d self._session.vim"},{"line_number":36,"context_line":"        self._fields_manager \u003d self._vim.service_content.customFieldsManager"},{"line_number":37,"context_line":"        self._namespace \u003d namespace"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_40e92bb6","line":34,"updated":"2014-06-25 12:40:11.000000000","message":"the cluster name is not unique and creates ambiguity\n\nactually why limiting this api only to clusters? I suggest to simply require a managed object reference and the client will decide what object to use for custom fields","commit_id":"5bae8564ca2170d9b903f6ade7561957e23f0cd6"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"c5ee728f526d250dd7a78d8c83c22af1f8e09f94","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        if vc_key is None:"},{"line_number":50,"context_line":"            msg \u003d gettextutils._(\"Key %s not found\") % key"},{"line_number":51,"context_line":"            LOG.error(msg)"},{"line_number":52,"context_line":"            raise exceptions.VimException(msg)"},{"line_number":53,"context_line":"        cluster_moref \u003d self._get_cluster_moref()"},{"line_number":54,"context_line":"        fields \u003d vim_util.get_object_property("},{"line_number":55,"context_line":"            self._vim, cluster_moref, \u0027customValue\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_60df86d6","line":52,"updated":"2014-07-07 17:00:39.000000000","message":"VimException is supposed to be sub-classed by other specific exceptions. What about defining a new exception so that the clients can easily distinguish between a \"key not found\" vs connection errors?","commit_id":"5bae8564ca2170d9b903f6ade7561957e23f0cd6"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"c5ee728f526d250dd7a78d8c83c22af1f8e09f94","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        return field.value"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _get_cluster_moref(self):"},{"line_number":68,"context_line":"        # NOTE (arnaud): this could be moved somewhere else."},{"line_number":69,"context_line":"        objects \u003d self._session.invoke_api("},{"line_number":70,"context_line":"            vim_util, \"get_objects\","},{"line_number":71,"context_line":"            self._vim, \"ClusterComputeResource\", 100)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_203d8e2b","line":68,"updated":"2014-07-07 17:00:39.000000000","message":"Please move this to vim_util just like get_moref.","commit_id":"5bae8564ca2170d9b903f6ade7561957e23f0cd6"}]}
