)]}'
{"trove/common/cfg.py":[{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"ca01307d921175e22aa6b23b5b620f799b433d66","unresolved":false,"context_lines":[{"line_number":868,"context_line":"               default\u003d\u0027trove.common.strategies.cluster.experimental.vertica.\u0027"},{"line_number":869,"context_line":"                       \u0027guestagent.VerticaGuestAgentStrategy\u0027,"},{"line_number":870,"context_line":"               help\u003d\u0027Class that implements datastore-specific Guest Agent API \u0027"},{"line_number":871,"context_line":"                    \u0027logic.\u0027),"},{"line_number":872,"context_line":"]"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"# RPC version groups"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a6ced46_ccdd8816","line":871,"updated":"2015-03-24 01:51:29.000000000","message":"Can you please add these values to the sample conf as well? Thanks!","commit_id":"eaa84a54c9847290dc5fb4c67493a2f8c8cb02ee"}],"trove/common/strategies/cluster/experimental/vertica/api.py":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6790dc812405ce85a645afd11c7ae7e880fbc9b4","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        num_instances \u003d len(instances)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        # Matching number of instances with configured cluster_member_count"},{"line_number":63,"context_line":"        if num_instances !\u003d vertica_conf.cluster_member_count:"},{"line_number":64,"context_line":"            raise exception.ClusterNumInstancesNotSupported("},{"line_number":65,"context_line":"                num_instances\u003dvertica_conf.cluster_member_count)"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_24e3f405","line":63,"updated":"2015-03-20 18:28:42.000000000","message":"If the cluster_member_count \u003c 3 then Vertica will fail. AFAIK, it need at least 3 instances to create the cluster.","commit_id":"e46a486931b5dfa0a54e24f68d9f55fc1a67fd79"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"4b85775af62a331803e1333a304135a1cbccb5a3","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        num_instances \u003d len(instances)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        # Matching number of instances with configured cluster_member_count"},{"line_number":63,"context_line":"        if num_instances !\u003d vertica_conf.cluster_member_count:"},{"line_number":64,"context_line":"            raise exception.ClusterNumInstancesNotSupported("},{"line_number":65,"context_line":"                num_instances\u003dvertica_conf.cluster_member_count)"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a75e904_2fd80953","line":63,"in_reply_to":"9a80dd14_2455af1d","updated":"2015-03-21 04:23:47.000000000","message":"No this will not fail, this is the purpose of this parameter\nVertica can spawn a 2-node cluster and for an example sake even a 1-node cluster is also there in terminologies.\n\nBut not more than 3 for CE edition of Vertica, which is well documented.\n\nI did this for so that while testing the functionality someone can set it 2 and test if cluster strategies are working fine with lesser number of instances to improve cluster boot time.","commit_id":"e46a486931b5dfa0a54e24f68d9f55fc1a67fd79"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"a863bcf34b3a46e371552e612b1e67d6edc3d3b8","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        num_instances \u003d len(instances)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        # Matching number of instances with configured cluster_member_count"},{"line_number":63,"context_line":"        if num_instances !\u003d vertica_conf.cluster_member_count:"},{"line_number":64,"context_line":"            raise exception.ClusterNumInstancesNotSupported("},{"line_number":65,"context_line":"                num_instances\u003dvertica_conf.cluster_member_count)"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_d579e082","line":63,"in_reply_to":"9a80dd14_24e3f405","updated":"2015-03-20 19:41:43.000000000","message":"Yes it needs 3 instances to boot fault-tolerant vertica cluster\nas suggested in spec and in commit messages, it is a 3-node cluster for which this code is written\n\nVertica CE does not supports more than 3-node cluster","commit_id":"e46a486931b5dfa0a54e24f68d9f55fc1a67fd79"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"efa0bd4eb8e541e54750698dc3d174d8d0946a86","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        num_instances \u003d len(instances)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        # Matching number of instances with configured cluster_member_count"},{"line_number":63,"context_line":"        if num_instances !\u003d vertica_conf.cluster_member_count:"},{"line_number":64,"context_line":"            raise exception.ClusterNumInstancesNotSupported("},{"line_number":65,"context_line":"                num_instances\u003dvertica_conf.cluster_member_count)"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_2455af1d","line":63,"in_reply_to":"9a80dd14_d579e082","updated":"2015-03-20 21:40:51.000000000","message":"If for some reason someone configure it wrongly at set the option to cluster_member_count \u003d 2 this will fail. Should we take a proactive approach and stop the execution here if cluster_member_count \u003c 3?","commit_id":"e46a486931b5dfa0a54e24f68d9f55fc1a67fd79"}],"trove/common/strategies/cluster/experimental/vertica/guestagent.py":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6790dc812405ce85a645afd11c7ae7e880fbc9b4","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class VerticaGuestAgentAPI(guest_api.API):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def get_keys(self, user):"},{"line_number":34,"context_line":"        LOG.debug(\"Getting Keys for user: %s.\" % user)"},{"line_number":35,"context_line":"        return self._call(\"get_keys\", guest_api.AGENT_HIGH_TIMEOUT,"},{"line_number":36,"context_line":"                          self.version_cap, user\u003duser)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_84de600f","line":33,"updated":"2015-03-20 18:28:42.000000000","message":"Accordingly to a discussion in one of the weekly meetings, keys management should be done when baking the image. Personally, I\u0027d prefer that we use Nova\u0027s mechanism to inject keys, and do that for every datastore we support in Trove. What do you think about it? If you agree, we should implement this in the next cycle.","commit_id":"e46a486931b5dfa0a54e24f68d9f55fc1a67fd79"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"715ecdc727dca1363e0445525a800515c7d40b1b","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class VerticaGuestAgentAPI(guest_api.API):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def get_keys(self, user):"},{"line_number":34,"context_line":"        LOG.debug(\"Getting Keys for user: %s.\" % user)"},{"line_number":35,"context_line":"        return self._call(\"get_keys\", guest_api.AGENT_HIGH_TIMEOUT,"},{"line_number":36,"context_line":"                          self.version_cap, user\u003duser)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_ccd93e85","line":33,"in_reply_to":"7a75e904_4f26256a","updated":"2015-03-22 17:25:01.000000000","message":"This is used by and needed for cluster-member internal communication.\n\nAlso the private keys are never communicated out of guests, making the authorization of keys safe.\n\nThese keys are not stored on any other host except for the cluster members themselves.","commit_id":"e46a486931b5dfa0a54e24f68d9f55fc1a67fd79"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"a863bcf34b3a46e371552e612b1e67d6edc3d3b8","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class VerticaGuestAgentAPI(guest_api.API):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def get_keys(self, user):"},{"line_number":34,"context_line":"        LOG.debug(\"Getting Keys for user: %s.\" % user)"},{"line_number":35,"context_line":"        return self._call(\"get_keys\", guest_api.AGENT_HIGH_TIMEOUT,"},{"line_number":36,"context_line":"                          self.version_cap, user\u003duser)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_b53b8c9a","line":33,"in_reply_to":"9a80dd14_84de600f","updated":"2015-03-20 19:41:43.000000000","message":"This is not key injection of image or nova key-pair\nThese keys would be generated on the fly inside the guests for a secure password-less ssh between guests for vertica users.\n\nThis keys should never exist outside these guest instances, so they are very different from the key injection is now done for ubuntu user.","commit_id":"e46a486931b5dfa0a54e24f68d9f55fc1a67fd79"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"efa0bd4eb8e541e54750698dc3d174d8d0946a86","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class VerticaGuestAgentAPI(guest_api.API):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def get_keys(self, user):"},{"line_number":34,"context_line":"        LOG.debug(\"Getting Keys for user: %s.\" % user)"},{"line_number":35,"context_line":"        return self._call(\"get_keys\", guest_api.AGENT_HIGH_TIMEOUT,"},{"line_number":36,"context_line":"                          self.version_cap, user\u003duser)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_c7ddb542","line":33,"in_reply_to":"9a80dd14_b53b8c9a","updated":"2015-03-20 21:40:51.000000000","message":"So, in which case an instance would ssh to another instance? For debugging purposes?","commit_id":"e46a486931b5dfa0a54e24f68d9f55fc1a67fd79"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"4b85775af62a331803e1333a304135a1cbccb5a3","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class VerticaGuestAgentAPI(guest_api.API):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def get_keys(self, user):"},{"line_number":34,"context_line":"        LOG.debug(\"Getting Keys for user: %s.\" % user)"},{"line_number":35,"context_line":"        return self._call(\"get_keys\", guest_api.AGENT_HIGH_TIMEOUT,"},{"line_number":36,"context_line":"                          self.version_cap, user\u003duser)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a75e904_4f26256a","line":33,"in_reply_to":"9a80dd14_c7ddb542","updated":"2015-03-21 04:23:47.000000000","message":"It is needed for vertica to work.\nThe vertica runs installation and admintools commands from one member of the cluster and does all its tasks via ssh on other remote members.\n\nFor this they need ssh-setup between those instances.\n\nAnd using this key-copy method only a cluster members can ssh into another cluster member","commit_id":"e46a486931b5dfa0a54e24f68d9f55fc1a67fd79"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6790dc812405ce85a645afd11c7ae7e880fbc9b4","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        return self._call(\"get_keys\", guest_api.AGENT_HIGH_TIMEOUT,"},{"line_number":36,"context_line":"                          self.version_cap, user\u003duser)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def authorize_keys(self, user, keys):"},{"line_number":39,"context_line":"        LOG.debug(\"Authorizing keys for user: %s.\" % user)"},{"line_number":40,"context_line":"        return self._call(\"authorize_keys\", guest_api.AGENT_HIGH_TIMEOUT,"},{"line_number":41,"context_line":"                          self.version_cap, user\u003duser, keys\u003dkeys)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_04d270ff","line":38,"updated":"2015-03-20 18:28:42.000000000","message":"Ditto.","commit_id":"e46a486931b5dfa0a54e24f68d9f55fc1a67fd79"}]}
