)]}'
{"etc/octavia.conf":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"9a84987b527aa9c14113250e38a2be26bedce1a2","unresolved":false,"context_lines":[{"line_number":113,"context_line":"#"},{"line_number":114,"context_line":"# Controller Worker options are controller_worker"},{"line_number":115,"context_line":"#                               containers_controller_worker"},{"line_number":116,"context_line":"# controller_worker \u003d controller_worker"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"[task_flow]"},{"line_number":119,"context_line":"# engine \u003d serial"}],"source_content_type":"text/plain","patch_set":1,"id":"ba3cc151_fa0f6989","line":116,"updated":"2015-07-10 03:26:24.000000000","message":"seems redundant to have this in the controller_worker section, perhaps it should just be in the DEFAULT section.","commit_id":"5b39d8bc8fd36ec4894cb3c87f4b64eba9eeb9ee"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"84f13c4ffc2da3bd32162d3d6d68d12e2ead9a73","unresolved":false,"context_lines":[{"line_number":113,"context_line":"#"},{"line_number":114,"context_line":"# Controller Worker options are controller_worker"},{"line_number":115,"context_line":"#                               containers_controller_worker"},{"line_number":116,"context_line":"# controller_worker \u003d controller_worker"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"[task_flow]"},{"line_number":119,"context_line":"# engine \u003d serial"}],"source_content_type":"text/plain","patch_set":1,"id":"ba3cc151_fbda014b","line":116,"in_reply_to":"ba3cc151_fa0f6989","updated":"2015-07-10 11:07:04.000000000","message":"I agree, that sounds reasonable to me.","commit_id":"5b39d8bc8fd36ec4894cb3c87f4b64eba9eeb9ee"}],"octavia/amphorae/drivers/haproxy/ssh_driver.py":[{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"dd679d46ce922d481c91d0c5a8f60d5722641bbe","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        self.client.close()"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def _execute_command(self, command, run_as_root\u003dFalse):"},{"line_number":191,"context_line":"        if run_as_root:"},{"line_number":192,"context_line":"            if not self._is_root():"},{"line_number":193,"context_line":"                # Run only as root"},{"line_number":194,"context_line":"                command \u003d \"sudo {0}\".format(command)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_9296f34a","line":191,"updated":"2015-07-13 20:12:32.000000000","message":"nit:  Could be not nested:\nif run_as_root and not self._is_root():","commit_id":"90d26500b1f17b687d599712ed901076d9ee169b"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"dd679d46ce922d481c91d0c5a8f60d5722641bbe","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        for temp in temps:"},{"line_number":310,"context_line":"            temp.close()"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    def _is_root(self):"},{"line_number":313,"context_line":"        if cfg.CONF.haproxy_amphora.username \u003d\u003d \u0027root\u0027:"},{"line_number":314,"context_line":"            return True"},{"line_number":315,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_b2e3f704","line":312,"updated":"2015-07-13 20:12:32.000000000","message":"nit:  Could replace body with:\nreturn cfg.CONF.haproxy_amphora.username \u003d\u003d \u0027root\u0027","commit_id":"90d26500b1f17b687d599712ed901076d9ee169b"}],"octavia/api/v1/controllers/member.py":[{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"dd679d46ce922d481c91d0c5a8f60d5722641bbe","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            else:"},{"line_number":102,"context_line":"                raise exceptions.DuplicateMemberEntry("},{"line_number":103,"context_line":"                    ip_address\u003dmember_dict.get(\u0027ip_address\u0027),"},{"line_number":104,"context_line":"                    port\u003dmember_dict.get(\u0027protocol_port\u0027))"},{"line_number":105,"context_line":"        try:"},{"line_number":106,"context_line":"            LOG.info(_LI(\"Sending Creation of Member %s to handler\") %"},{"line_number":107,"context_line":"                     db_member.id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_72c00f2b","line":104,"updated":"2015-07-13 20:12:32.000000000","message":"This catch-all is the same body as the \"elif\" above.  Does that mean the \"elif\" could be removed and that situation will already be handled by the catch-all?","commit_id":"90d26500b1f17b687d599712ed901076d9ee169b"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"ccd856446be6377f623c31e3859a47c8d910e848","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            else:"},{"line_number":102,"context_line":"                raise exceptions.DuplicateMemberEntry("},{"line_number":103,"context_line":"                    ip_address\u003dmember_dict.get(\u0027ip_address\u0027),"},{"line_number":104,"context_line":"                    port\u003dmember_dict.get(\u0027protocol_port\u0027))"},{"line_number":105,"context_line":"        try:"},{"line_number":106,"context_line":"            LOG.info(_LI(\"Sending Creation of Member %s to handler\") %"},{"line_number":107,"context_line":"                     db_member.id)"}],"source_content_type":"text/x-python","patch_set":48,"id":"9a1a9d01_e56eaac8","line":104,"updated":"2015-09-25 22:16:29.000000000","message":"Nit:  If this is a catch all, why not just remove the elif above?  It throws the same exception...","commit_id":"71345d58337afeb17001f3732a0058d5698f288c"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"2f66f815b9bab5ac07b05a7203a3cc2592d42c71","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            else:"},{"line_number":102,"context_line":"                raise exceptions.DuplicateMemberEntry("},{"line_number":103,"context_line":"                    ip_address\u003dmember_dict.get(\u0027ip_address\u0027),"},{"line_number":104,"context_line":"                    port\u003dmember_dict.get(\u0027protocol_port\u0027))"},{"line_number":105,"context_line":"        try:"},{"line_number":106,"context_line":"            LOG.info(_LI(\"Sending Creation of Member %s to handler\") %"},{"line_number":107,"context_line":"                     db_member.id)"}],"source_content_type":"text/x-python","patch_set":48,"id":"9a1a9d01_bc2177fd","line":104,"in_reply_to":"9a1a9d01_e56eaac8","updated":"2015-09-28 16:48:28.000000000","message":"Not sure why I added that. I remove it, though something will probably fail.","commit_id":"71345d58337afeb17001f3732a0058d5698f288c"}],"octavia/common/constants.py":[{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"dd679d46ce922d481c91d0c5a8f60d5722641bbe","unresolved":false,"context_lines":[{"line_number":126,"context_line":"UPDATE_LOADBALANCER_FLOW \u003d \u0027octavia-update-loadbalancer-flow\u0027"},{"line_number":127,"context_line":"UPDATE_MEMBER_FLOW \u003d \u0027octavia-update-member-flow\u0027"},{"line_number":128,"context_line":"UPDATE_POOL_FLOW \u003d \u0027octavia-update-pool-flow\u0027"},{"line_number":129,"context_line":"RELOAD_LB_FOR_CREATE_MEMEBER \u003d \u0027octavia-reload-for-create-member\u0027"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# Task Names"},{"line_number":132,"context_line":"RELOAD_LB_FOR_NETWORKING_SUBFLOW \u003d \u0027octavia-reload-lb-networking-subflow\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_322fe7f7","line":129,"updated":"2015-07-13 20:12:32.000000000","message":"nit:  spelling of \"member\"... Is this a flow?  The rest of the names end in \"FLOW\u0027, so if it is, maybe rename accordingly? Thoughts?","commit_id":"90d26500b1f17b687d599712ed901076d9ee169b"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"0bc38d4eda478f5a9a864e876e8077bcc8131d29","unresolved":false,"context_lines":[{"line_number":126,"context_line":"UPDATE_LOADBALANCER_FLOW \u003d \u0027octavia-update-loadbalancer-flow\u0027"},{"line_number":127,"context_line":"UPDATE_MEMBER_FLOW \u003d \u0027octavia-update-member-flow\u0027"},{"line_number":128,"context_line":"UPDATE_POOL_FLOW \u003d \u0027octavia-update-pool-flow\u0027"},{"line_number":129,"context_line":"RELOAD_LB_FOR_CREATE_MEMEBER \u003d \u0027octavia-reload-for-create-member\u0027"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# Task Names"},{"line_number":132,"context_line":"RELOAD_LB_FOR_NETWORKING_SUBFLOW \u003d \u0027octavia-reload-lb-networking-subflow\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_78294e89","line":129,"in_reply_to":"9a41bdd9_322fe7f7","updated":"2015-07-15 21:48:32.000000000","message":"Its not misspelled, it\u0027s a MEMEber.. duh. These incredibly verbose messages are starting to cause line wrap issues. Ill update it...","commit_id":"90d26500b1f17b687d599712ed901076d9ee169b"},{"author":{"_account_id":16054,"name":"Matsumoto Yoshihide","email":"matsumoto333@gmail.com","username":"matchan"},"change_message_id":"cd17563c5354ae8f8d391872b305c6e88739fe19","unresolved":false,"context_lines":[{"line_number":82,"context_line":"NETWORK_IDS \u003d \u0027network_ids\u0027"},{"line_number":83,"context_line":"PORT_IDS \u003d \u0027port_ids\u0027"},{"line_number":84,"context_line":"NETWORK \u003d \u0027network\u0027"},{"line_number":85,"context_line":"SUBNET_ID \u003d \u0027subnet_idw\u0027"},{"line_number":86,"context_line":"DELTA \u003d \u0027delta\u0027"},{"line_number":87,"context_line":"DELTAS \u003d \u0027deltas\u0027"},{"line_number":88,"context_line":"LISTENER \u003d \u0027listener\u0027"}],"source_content_type":"text/x-python","patch_set":33,"id":"ba15a1d1_88da1c4b","line":85,"updated":"2015-09-16 14:28:35.000000000","message":"subnet_id?","commit_id":"4b1a274d27bf9619408102a108413c03f7b0db45"}],"octavia/compute/drivers/noop_driver/driver.py":[{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"df55fc6615adeb39e3f7dd041cb6e8d39eaac0cc","unresolved":false,"context_lines":[{"line_number":29,"context_line":"              config_drive_files\u003dNone, user_data\u003dNone):"},{"line_number":30,"context_line":"        LOG.debug(\"Compute %s no-op, build name %s, amphora_flavor %s, \""},{"line_number":31,"context_line":"                  \"image_id %s, key_name %s, sec_groups %s, network_ids %s,\""},{"line_number":32,"context_line":"                  \"config_drive_files %s, user_data %s\","},{"line_number":33,"context_line":"                  self.__class__.__name__, name, amphora_flavor, image_id,"},{"line_number":34,"context_line":"                  key_name, sec_groups, network_ids, config_drive_files,"},{"line_number":35,"context_line":"                  user_data)"}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_c1252309","line":32,"updated":"2015-09-29 23:58:05.000000000","message":"I just noticed this, but I\u0027m not going to -1 for it.  We should add the \"port_ids\" to the logging line here.","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"af0d8bf2891435fb3c1414fdddbdab1f17e43428","unresolved":false,"context_lines":[{"line_number":29,"context_line":"              config_drive_files\u003dNone, user_data\u003dNone):"},{"line_number":30,"context_line":"        LOG.debug(\"Compute %s no-op, build name %s, amphora_flavor %s, \""},{"line_number":31,"context_line":"                  \"image_id %s, key_name %s, sec_groups %s, network_ids %s,\""},{"line_number":32,"context_line":"                  \"config_drive_files %s, user_data %s\","},{"line_number":33,"context_line":"                  self.__class__.__name__, name, amphora_flavor, image_id,"},{"line_number":34,"context_line":"                  key_name, sec_groups, network_ids, config_drive_files,"},{"line_number":35,"context_line":"                  user_data)"}],"source_content_type":"text/x-python","patch_set":52,"id":"7a2fa921_7e5f8c72","line":32,"in_reply_to":"9a1a9d01_c1252309","updated":"2015-10-06 17:34:02.000000000","message":"Done","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"}],"octavia/compute/drivers/nova_driver.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"9a84987b527aa9c14113250e38a2be26bedce1a2","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                if isinstance(net_id, six.string_types):"},{"line_number":77,"context_line":"                    nics.append({\"net-id\": net_id})"},{"line_number":78,"context_line":"                else:"},{"line_number":79,"context_line":"                    nics.append(net_id)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"            # Remove nics with specified port_id in network_ids"},{"line_number":82,"context_line":"            for nic in nics:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_9acc1d63","line":79,"updated":"2015-07-10 03:26:24.000000000","message":"why cant this method just enforce that it needs to be a list of network_id strings instead of allowing both?","commit_id":"5b39d8bc8fd36ec4894cb3c87f4b64eba9eeb9ee"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"84f13c4ffc2da3bd32162d3d6d68d12e2ead9a73","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                if isinstance(net_id, six.string_types):"},{"line_number":77,"context_line":"                    nics.append({\"net-id\": net_id})"},{"line_number":78,"context_line":"                else:"},{"line_number":79,"context_line":"                    nics.append(net_id)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"            # Remove nics with specified port_id in network_ids"},{"line_number":82,"context_line":"            for nic in nics:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_41921e4d","line":79,"in_reply_to":"ba3cc151_9acc1d63","updated":"2015-07-10 11:07:04.000000000","message":"Good point, I fixed this.","commit_id":"5b39d8bc8fd36ec4894cb3c87f4b64eba9eeb9ee"}],"octavia/controller/worker/containers_controller_worker.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"9a84987b527aa9c14113250e38a2be26bedce1a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ba3cc151_fa60c90f","updated":"2015-07-10 03:26:24.000000000","message":"how much code would be different in this file if the original controller_worker was inherited from?","commit_id":"5b39d8bc8fd36ec4894cb3c87f4b64eba9eeb9ee"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"84f13c4ffc2da3bd32162d3d6d68d12e2ead9a73","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ba3cc151_0185f605","in_reply_to":"ba3cc151_fa60c90f","updated":"2015-07-10 11:07:04.000000000","message":"Two lines essentially at this point. We had talked about this and went with a pluggable approach which comes with some redundant code.  Though, to argue that point, theres not a lot going on here in terms of logic, so were not repeating things that require heavy testing. just a thought.","commit_id":"5b39d8bc8fd36ec4894cb3c87f4b64eba9eeb9ee"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"dd679d46ce922d481c91d0c5a8f60d5722641bbe","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                                         id\u003damphora_id)"},{"line_number":77,"context_line":"        delete_amp_tf \u003d self._taskflow_load(self._amphora_flows."},{"line_number":78,"context_line":"                                            get_delete_amphora_flow(),"},{"line_number":79,"context_line":"                                            store\u003d{\u0027amphora\u0027: amphora})"},{"line_number":80,"context_line":"        with tf_logging.DynamicLoggingListener(delete_amp_tf,"},{"line_number":81,"context_line":"                                               log\u003dLOG):"},{"line_number":82,"context_line":"            delete_amp_tf.run()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_f538893f","line":79,"updated":"2015-07-13 20:12:32.000000000","message":"nit: later on in this code you can see the constants that are used instead of the string literal \u0027amphora\u0027 you have here.  At some point we decided all \"stores\" would have those constants.  The review we talked about making to update them all is yet to be started, but instead of waiting for that to be a thing, could maybe update here first?","commit_id":"90d26500b1f17b687d599712ed901076d9ee169b"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"dd679d46ce922d481c91d0c5a8f60d5722641bbe","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        delete_hm_tf \u003d self._taskflow_load(self._health_monitor_flows."},{"line_number":127,"context_line":"                                           get_delete_health_monitor_flow(),"},{"line_number":128,"context_line":"                                           store\u003d{\u0027health_mon\u0027: health_mon,"},{"line_number":129,"context_line":"                                                  \u0027health_mon_id\u0027:"},{"line_number":130,"context_line":"                                                      pool_id,"},{"line_number":131,"context_line":"                                                  \u0027listener\u0027: listener,"},{"line_number":132,"context_line":"                                                  \u0027vip\u0027: vip})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_1505ed78","line":129,"updated":"2015-07-13 20:12:32.000000000","message":"nit: No such thing as \"health_mon_id\", so possible rename to \"pool_id\" for accuracy, so to speak.","commit_id":"90d26500b1f17b687d599712ed901076d9ee169b"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"e12a0f608ade29baf31ad9141b380a95a15d50a1","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        delete_hm_tf \u003d self._taskflow_load(self._health_monitor_flows."},{"line_number":127,"context_line":"                                           get_delete_health_monitor_flow(),"},{"line_number":128,"context_line":"                                           store\u003d{\u0027health_mon\u0027: health_mon,"},{"line_number":129,"context_line":"                                                  \u0027health_mon_id\u0027:"},{"line_number":130,"context_line":"                                                      pool_id,"},{"line_number":131,"context_line":"                                                  \u0027listener\u0027: listener,"},{"line_number":132,"context_line":"                                                  \u0027vip\u0027: vip})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_48bf5cfb","line":129,"in_reply_to":"9a41bdd9_1505ed78","updated":"2015-07-13 20:23:19.000000000","message":"This is still a wip and these methods were already in the other controller worker. I\u0027ll be inheriting from them so this would be a problem for another patch. Same goes to a few of the other comments regarding this and just WIP in general. In other words I\u0027ve fixed a majority of your nits already just havnt pushed it up and failed to put this back in WIP.","commit_id":"90d26500b1f17b687d599712ed901076d9ee169b"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"ccd856446be6377f623c31e3859a47c8d910e848","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            try:"},{"line_number":48,"context_line":"                create_amp_lb_tf.run()"},{"line_number":49,"context_line":"            except exceptions.ComputeBuildException as e:"},{"line_number":50,"context_line":"                raise exceptions.ComputeBuildException(msg\u003de.msg)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def create_member(self, member_id):"},{"line_number":53,"context_line":"        \"\"\"Creates a pool member."}],"source_content_type":"text/x-python","patch_set":48,"id":"9a1a9d01_458c3635","line":50,"updated":"2015-09-25 22:16:29.000000000","message":"I\u0027m not sure I understand this except... Why catch the same exception you throw?  Should be throwing one that is Octavia specific or something?","commit_id":"71345d58337afeb17001f3732a0058d5698f288c"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"2f66f815b9bab5ac07b05a7203a3cc2592d42c71","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            try:"},{"line_number":48,"context_line":"                create_amp_lb_tf.run()"},{"line_number":49,"context_line":"            except exceptions.ComputeBuildException as e:"},{"line_number":50,"context_line":"                raise exceptions.ComputeBuildException(msg\u003de.msg)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def create_member(self, member_id):"},{"line_number":53,"context_line":"        \"\"\"Creates a pool member."}],"source_content_type":"text/x-python","patch_set":48,"id":"9a1a9d01_5ceb7bb0","line":50,"in_reply_to":"9a1a9d01_458c3635","updated":"2015-09-28 16:48:28.000000000","message":"To add a message, same thing in the other controller worker, which this was a copy of.","commit_id":"71345d58337afeb17001f3732a0058d5698f288c"}],"octavia/controller/worker/flows/load_balancer_flows.py":[{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"ccd856446be6377f623c31e3859a47c8d910e848","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        #     provides\u003dconstants.AMPHORAE_NETWORK_CONFIG))"},{"line_number":141,"context_line":"        # new_LB_net_subflow.add(amphora_driver_tasks.AmphoraPostVIPPlug("},{"line_number":142,"context_line":"        #     requires\u003d(constants.LOADBALANCER,"},{"line_number":143,"context_line":"        #               constants.AMPHORAE_NETWORK_CONFIG)))"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        return new_LB_net_subflow"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"9a1a9d01_451676a8","line":143,"updated":"2015-09-25 22:16:29.000000000","message":"Should these be removed or uncommented?","commit_id":"71345d58337afeb17001f3732a0058d5698f288c"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"2f66f815b9bab5ac07b05a7203a3cc2592d42c71","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        #     provides\u003dconstants.AMPHORAE_NETWORK_CONFIG))"},{"line_number":141,"context_line":"        # new_LB_net_subflow.add(amphora_driver_tasks.AmphoraPostVIPPlug("},{"line_number":142,"context_line":"        #     requires\u003d(constants.LOADBALANCER,"},{"line_number":143,"context_line":"        #               constants.AMPHORAE_NETWORK_CONFIG)))"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        return new_LB_net_subflow"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"9a1a9d01_bcf3b79d","line":143,"in_reply_to":"9a1a9d01_451676a8","updated":"2015-09-28 16:48:28.000000000","message":"Was testing without them, need to remove.","commit_id":"71345d58337afeb17001f3732a0058d5698f288c"}],"octavia/controller/worker/flows/member_flows.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"9a84987b527aa9c14113250e38a2be26bedce1a2","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                provides\u003dconstants.LOADBALANCER))"},{"line_number":94,"context_line":"        container_member_flow.add("},{"line_number":95,"context_line":"            amphora_driver_tasks.ListenerUpdate(requires\u003d[\u0027listener\u0027, \u0027vip\u0027]))"},{"line_number":96,"context_line":"        return container_member_flow"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def get_delete_member_flow(self):"},{"line_number":99,"context_line":"        \"\"\"Create a flow to delete a member"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_1a4d6d99","line":96,"updated":"2015-07-10 03:26:24.000000000","message":"won\u0027t this need to rebind the original amphora port to the new amphora?","commit_id":"5b39d8bc8fd36ec4894cb3c87f4b64eba9eeb9ee"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"84f13c4ffc2da3bd32162d3d6d68d12e2ead9a73","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                provides\u003dconstants.LOADBALANCER))"},{"line_number":94,"context_line":"        container_member_flow.add("},{"line_number":95,"context_line":"            amphora_driver_tasks.ListenerUpdate(requires\u003d[\u0027listener\u0027, \u0027vip\u0027]))"},{"line_number":96,"context_line":"        return container_member_flow"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def get_delete_member_flow(self):"},{"line_number":99,"context_line":"        \"\"\"Create a flow to delete a member"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_a1e52a0b","line":96,"in_reply_to":"ba3cc151_1a4d6d99","updated":"2015-07-10 11:07:04.000000000","message":"Working on it, currently works with members on the same network as the vip.","commit_id":"5b39d8bc8fd36ec4894cb3c87f4b64eba9eeb9ee"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"82212470178f6bc5492bc7d2e60ee8b19d1e20d2","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                requires\u003dconstants.LOADBALANCER_ID,"},{"line_number":98,"context_line":"                provides\u003dconstants.LOADBALANCER))"},{"line_number":99,"context_line":"        container_member_flow.add("},{"line_number":100,"context_line":"            amphora_driver_tasks.ListenerUpdate(requires\u003d[\u0027listener\u0027, \u0027vip\u0027]))"},{"line_number":101,"context_line":"        return container_member_flow"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def get_delete_member_flow(self):"}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_c672a349","line":100,"updated":"2015-10-02 10:09:13.000000000","message":"use constants.LISTENER and constants.VIP","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"82212470178f6bc5492bc7d2e60ee8b19d1e20d2","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        \"\"\""},{"line_number":125,"context_line":"        delete_member_flow \u003d linear_flow.Flow(constants.DELETE_MEMBER_FLOW)"},{"line_number":126,"context_line":"        delete_member_flow.add(model_tasks."},{"line_number":127,"context_line":"                               DeleteModelObject(rebind\u003d{\u0027object\u0027: \u0027member\u0027}))"},{"line_number":128,"context_line":"        delete_member_flow.add(database_tasks.DeleteMemberInDB("},{"line_number":129,"context_line":"            requires\u003d\u0027member_id\u0027))"},{"line_number":130,"context_line":"        return delete_member_flow"}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_469d3358","line":127,"updated":"2015-10-02 10:09:13.000000000","message":"use constants.OBJECT and constants.MEMBER","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"82212470178f6bc5492bc7d2e60ee8b19d1e20d2","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        \"\"\""},{"line_number":137,"context_line":"        delete_member_flow \u003d linear_flow.Flow(constants.DELETE_MEMBER_FLOW)"},{"line_number":138,"context_line":"        delete_member_flow.add(database_tasks.DeleteMemberInDB("},{"line_number":139,"context_line":"            requires\u003d\u0027member_id\u0027))"},{"line_number":140,"context_line":"        delete_member_flow.add(self.get_container_member_flow())"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        return delete_member_flow"}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_e66c8738","line":139,"updated":"2015-10-02 10:09:13.000000000","message":"use constants.MEMBER_ID","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"82212470178f6bc5492bc7d2e60ee8b19d1e20d2","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        update_member_flow \u003d linear_flow.Flow(constants.UPDATE_MEMBER_FLOW)"},{"line_number":150,"context_line":"        update_member_flow.add(model_tasks."},{"line_number":151,"context_line":"                               UpdateAttributes("},{"line_number":152,"context_line":"                                   rebind\u003d{\u0027object\u0027: \u0027member\u0027},"},{"line_number":153,"context_line":"                                   requires\u003d[\u0027update_dict\u0027]))"},{"line_number":154,"context_line":"        update_member_flow.add(database_tasks.UpdateMemberInDB("},{"line_number":155,"context_line":"            requires\u003d[\u0027member\u0027, \u0027update_dict\u0027]))"}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_e6c9e75b","line":152,"updated":"2015-10-02 10:09:13.000000000","message":"use constants.OBJECT and constants.MEMBER","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"82212470178f6bc5492bc7d2e60ee8b19d1e20d2","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        update_member_flow.add(model_tasks."},{"line_number":151,"context_line":"                               UpdateAttributes("},{"line_number":152,"context_line":"                                   rebind\u003d{\u0027object\u0027: \u0027member\u0027},"},{"line_number":153,"context_line":"                                   requires\u003d[\u0027update_dict\u0027]))"},{"line_number":154,"context_line":"        update_member_flow.add(database_tasks.UpdateMemberInDB("},{"line_number":155,"context_line":"            requires\u003d[\u0027member\u0027, \u0027update_dict\u0027]))"},{"line_number":156,"context_line":"        update_member_flow.add(self.get_container_member_flow())"}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_a61f6fb6","line":153,"updated":"2015-10-02 10:09:13.000000000","message":"use constants.UPDATE_DICT","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"82212470178f6bc5492bc7d2e60ee8b19d1e20d2","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                                   rebind\u003d{\u0027object\u0027: \u0027member\u0027},"},{"line_number":153,"context_line":"                                   requires\u003d[\u0027update_dict\u0027]))"},{"line_number":154,"context_line":"        update_member_flow.add(database_tasks.UpdateMemberInDB("},{"line_number":155,"context_line":"            requires\u003d[\u0027member\u0027, \u0027update_dict\u0027]))"},{"line_number":156,"context_line":"        update_member_flow.add(self.get_container_member_flow())"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        return update_member_flow"}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_a6c3ef37","line":155,"updated":"2015-10-02 10:09:13.000000000","message":"use constants.MEMBER and constants.UPDATE_DICT","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"}],"octavia/controller/worker/tasks/compute_tasks.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"9a84987b527aa9c14113250e38a2be26bedce1a2","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            LOG.error(_LE(\"Nova create for amphora id: %(amp)s \""},{"line_number":140,"context_line":"                          \"failed: %(exp)s\"),"},{"line_number":141,"context_line":"                      {\u0027amp\u0027: amphora_id, \u0027exp\u0027: e})"},{"line_number":142,"context_line":"            raise e"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def revert(self, result, amphora_id, loadbalancer, *args, **kwargs):"},{"line_number":145,"context_line":"        \"\"\"This method will revert the creation of the"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_3a56312b","line":142,"updated":"2015-07-10 03:26:24.000000000","message":"would we need another method if the original compute create method took a list of network ids and a list of port_ids?","commit_id":"5b39d8bc8fd36ec4894cb3c87f4b64eba9eeb9ee"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"84f13c4ffc2da3bd32162d3d6d68d12e2ead9a73","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            LOG.error(_LE(\"Nova create for amphora id: %(amp)s \""},{"line_number":140,"context_line":"                          \"failed: %(exp)s\"),"},{"line_number":141,"context_line":"                      {\u0027amp\u0027: amphora_id, \u0027exp\u0027: e})"},{"line_number":142,"context_line":"            raise e"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def revert(self, result, amphora_id, loadbalancer, *args, **kwargs):"},{"line_number":145,"context_line":"        \"\"\"This method will revert the creation of the"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_e1233257","line":142,"in_reply_to":"ba3cc151_3a56312b","updated":"2015-07-10 11:07:04.000000000","message":"Good call, done.","commit_id":"5b39d8bc8fd36ec4894cb3c87f4b64eba9eeb9ee"}],"octavia/controller/worker/tasks/database_tasks.py":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"1f73fdce822c99f5e495b0a29b433cc27dd81135","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        :returns: None"},{"line_number":108,"context_line":"        \"\"\""},{"line_number":109,"context_line":"        for amp in loadbalancer.amphorae:"},{"line_number":110,"context_line":"            LOG.debug(\"DB delete amphora for id: %s \" % amp.id)"},{"line_number":111,"context_line":"            self.amphora_repo.delete(db_apis.get_session(), id\u003damp.id)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":72,"id":"fa80f949_77ce9183","line":110,"updated":"2015-11-06 12:16:50.000000000","message":"use: \n\n LOG.debug(\"...\", amp.id)\n\nit delegates string formatting to logger which performs it only when needed (ie: in debug mode)","commit_id":"fbfe12a5fc7db4740e22baddaf9666c5e209bd24"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"d8490279834e4930324a0d68067b32447b4f148a","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        :returns: None"},{"line_number":108,"context_line":"        \"\"\""},{"line_number":109,"context_line":"        for amp in loadbalancer.amphorae:"},{"line_number":110,"context_line":"            LOG.debug(\"DB delete amphora for id: %s \" % amp.id)"},{"line_number":111,"context_line":"            self.amphora_repo.delete(db_apis.get_session(), id\u003damp.id)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":72,"id":"da85f559_1e3a3e37","line":110,"in_reply_to":"fa80f949_77ce9183","updated":"2015-11-08 22:59:15.000000000","message":"Done","commit_id":"fbfe12a5fc7db4740e22baddaf9666c5e209bd24"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"6e953fcb3b87f2e58556ca24fd70b8a74d811deb","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        :returns: None"},{"line_number":108,"context_line":"        \"\"\""},{"line_number":109,"context_line":"        for amp in loadbalancer.amphorae:"},{"line_number":110,"context_line":"            LOG.debug(\"DB delete amphora for id: %s \" % amp.id)"},{"line_number":111,"context_line":"            self.amphora_repo.delete(db_apis.get_session(), id\u003damp.id)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":72,"id":"fa80f949_7301b605","line":110,"in_reply_to":"fa80f949_77ce9183","updated":"2015-11-06 17:27:41.000000000","message":"There\u0027s a bunch of places where logging was \u0027fixed\u0027 but ends up actually breaking. I\u0027ll wait to see what happens with that patch before we go breaking more log statements.","commit_id":"fbfe12a5fc7db4740e22baddaf9666c5e209bd24"}],"octavia/controller/worker/tasks/network_tasks.py":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"efda4448f0add0f42a12199ccace5a8d1e72a370","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def execute(self, loadbalancer, amphora):"},{"line_number":53,"context_line":"        LOG.debug(\"Calculating network delta for amphora id: %s\""},{"line_number":54,"context_line":"                  % amphora.id)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        # Figure out what networks we want"},{"line_number":57,"context_line":"        # seed with lb network(s)"}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_6874c1ce","line":54,"updated":"2015-10-02 11:35:53.000000000","message":"itto","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"efda4448f0add0f42a12199ccace5a8d1e72a370","unresolved":false,"context_lines":[{"line_number":318,"context_line":"    def execute(self, loadbalancer):"},{"line_number":319,"context_line":"        \"\"\"Plumb a vip to an amphora.\"\"\""},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        LOG.debug(\"Plumbing VIP for loadbalancer id: %s\" % loadbalancer.id)"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        amps_data \u003d self.network_driver.plug_vip(loadbalancer,"},{"line_number":324,"context_line":"                                                 loadbalancer.vip)"}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_e8c0d1e2","line":321,"updated":"2015-10-02 11:35:53.000000000","message":"use LOG.debug(\u0027...\u0027, loadbalancer.id)","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"82212470178f6bc5492bc7d2e60ee8b19d1e20d2","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                \"Unable to retrieve network id from subnet {id}: \""},{"line_number":364,"context_line":"                \"exception: {ex}\").format("},{"line_number":365,"context_line":"                id\u003dloadbalancer.vip.subnet_id,"},{"line_number":366,"context_line":"                ex\u003de.message))"},{"line_number":367,"context_line":"        return nics"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_a6e44fac","line":366,"updated":"2015-10-02 10:09:13.000000000","message":"try:\n   ...\n except ...:\n   LOG.exception(\"lorem ipsum\")\n\ninstead of:\n\n try:\n   ...\n except ... as e:\n   LOG.error(\"lorem ipsum: %s:\", e)","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"af0d8bf2891435fb3c1414fdddbdab1f17e43428","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                \"Unable to retrieve network id from subnet {id}: \""},{"line_number":364,"context_line":"                \"exception: {ex}\").format("},{"line_number":365,"context_line":"                id\u003dloadbalancer.vip.subnet_id,"},{"line_number":366,"context_line":"                ex\u003de.message))"},{"line_number":367,"context_line":"        return nics"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"7a2fa921_59098a2b","line":366,"in_reply_to":"9a1a9d01_a6e44fac","updated":"2015-10-06 17:34:02.000000000","message":"Done","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"efda4448f0add0f42a12199ccace5a8d1e72a370","unresolved":false,"context_lines":[{"line_number":377,"context_line":"        port_ids \u003d []"},{"line_number":378,"context_line":"        try:"},{"line_number":379,"context_line":"            for amp in loadbalancer.amphorae:"},{"line_number":380,"context_line":"                nics \u003d self.network_driver.get_plugged_networks(amp.compute_id)"},{"line_number":381,"context_line":"                if nics:"},{"line_number":382,"context_line":"                    port_ids.extend([port.port_id for port in nics])"},{"line_number":383,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_a8a3b94e","line":380,"updated":"2015-10-02 11:35:53.000000000","message":"it\u0027s a bit strange to call nics a port list","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"af0d8bf2891435fb3c1414fdddbdab1f17e43428","unresolved":false,"context_lines":[{"line_number":377,"context_line":"        port_ids \u003d []"},{"line_number":378,"context_line":"        try:"},{"line_number":379,"context_line":"            for amp in loadbalancer.amphorae:"},{"line_number":380,"context_line":"                nics \u003d self.network_driver.get_plugged_networks(amp.compute_id)"},{"line_number":381,"context_line":"                if nics:"},{"line_number":382,"context_line":"                    port_ids.extend([port.port_id for port in nics])"},{"line_number":383,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":52,"id":"7a2fa921_fe039c0d","line":380,"in_reply_to":"9a1a9d01_a8a3b94e","updated":"2015-10-06 17:34:02.000000000","message":"It\u0027s retrieving the nics from the plugged networks call then building the port list.","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"efda4448f0add0f42a12199ccace5a8d1e72a370","unresolved":false,"context_lines":[{"line_number":379,"context_line":"            for amp in loadbalancer.amphorae:"},{"line_number":380,"context_line":"                nics \u003d self.network_driver.get_plugged_networks(amp.compute_id)"},{"line_number":381,"context_line":"                if nics:"},{"line_number":382,"context_line":"                    port_ids.extend([port.port_id for port in nics])"},{"line_number":383,"context_line":"        except Exception as e:"},{"line_number":384,"context_line":"            LOG.error(_LE("},{"line_number":385,"context_line":"                \"Unable to retrieve port information: \""}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_28f9e94d","line":382,"updated":"2015-10-02 11:35:53.000000000","message":"prefer:\n\n port_ids.extend(port.port_id for port in nics)","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"af0d8bf2891435fb3c1414fdddbdab1f17e43428","unresolved":false,"context_lines":[{"line_number":379,"context_line":"            for amp in loadbalancer.amphorae:"},{"line_number":380,"context_line":"                nics \u003d self.network_driver.get_plugged_networks(amp.compute_id)"},{"line_number":381,"context_line":"                if nics:"},{"line_number":382,"context_line":"                    port_ids.extend([port.port_id for port in nics])"},{"line_number":383,"context_line":"        except Exception as e:"},{"line_number":384,"context_line":"            LOG.error(_LE("},{"line_number":385,"context_line":"                \"Unable to retrieve port information: \""}],"source_content_type":"text/x-python","patch_set":52,"id":"7a2fa921_99ff2201","line":382,"in_reply_to":"9a1a9d01_28f9e94d","updated":"2015-10-06 17:34:02.000000000","message":"That\u0027s not what needs to happen here. Doing as suggested will expand the ids, not extend the list.","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"82212470178f6bc5492bc7d2e60ee8b19d1e20d2","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        except Exception as e:"},{"line_number":384,"context_line":"            LOG.error(_LE("},{"line_number":385,"context_line":"                \"Unable to retrieve port information: \""},{"line_number":386,"context_line":"                \"exception: {ex}\").format(ex\u003de.message))"},{"line_number":387,"context_line":"        return port_ids"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"9a1a9d01_86f26b6e","line":386,"updated":"2015-10-02 10:09:13.000000000","message":"try:\n   ...\n except ...:\n   LOG.exception(\"lorem ipsum\")\n\ninstead of:\n\n try:\n   ...\n except ... as e:\n   LOG.error(\"lorem ipsum: %s:\", e)","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"af0d8bf2891435fb3c1414fdddbdab1f17e43428","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        except Exception as e:"},{"line_number":384,"context_line":"            LOG.error(_LE("},{"line_number":385,"context_line":"                \"Unable to retrieve port information: \""},{"line_number":386,"context_line":"                \"exception: {ex}\").format(ex\u003de.message))"},{"line_number":387,"context_line":"        return port_ids"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"7a2fa921_b9045e15","line":386,"in_reply_to":"9a1a9d01_86f26b6e","updated":"2015-10-06 17:34:02.000000000","message":"Done","commit_id":"ab8c4d11868e87ab2713f6ee3b4e798d9b910874"}],"octavia/network/drivers/neutron/allowed_address_pairs.py":[{"author":{"_account_id":10477,"name":"min wang","email":"swiftwangster@gmail.com","username":"minwang"},"change_message_id":"e56e322ac3f17fa0ea5b51b786691b1be478978f","unresolved":false,"context_lines":[{"line_number":404,"context_line":"                network \u003d self.neutron_client.show_network(network_id)"},{"line_number":405,"context_line":"            elif subnet_id:"},{"line_number":406,"context_line":"                subnet \u003d (self.neutron_client.show_subnet(subnet_id)"},{"line_number":407,"context_line":"                          .get(\u0027subnet\u0027).get(\u0027network_id\u0027))"},{"line_number":408,"context_line":"                network \u003d self.neutron_client.show_network(subnet)"},{"line_number":409,"context_line":"        except base.NetworkNotFound:"},{"line_number":410,"context_line":"            message \u003d _LE(\u0027Network not found \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_84ebda77","line":407,"updated":"2015-07-14 18:45:33.000000000","message":"shoud it be self.neutron_client.show_subnet(subnet_id).get(\u0027network_id\u0027))","commit_id":"90d26500b1f17b687d599712ed901076d9ee169b"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"0bc38d4eda478f5a9a864e876e8077bcc8131d29","unresolved":false,"context_lines":[{"line_number":404,"context_line":"                network \u003d self.neutron_client.show_network(network_id)"},{"line_number":405,"context_line":"            elif subnet_id:"},{"line_number":406,"context_line":"                subnet \u003d (self.neutron_client.show_subnet(subnet_id)"},{"line_number":407,"context_line":"                          .get(\u0027subnet\u0027).get(\u0027network_id\u0027))"},{"line_number":408,"context_line":"                network \u003d self.neutron_client.show_network(subnet)"},{"line_number":409,"context_line":"        except base.NetworkNotFound:"},{"line_number":410,"context_line":"            message \u003d _LE(\u0027Network not found \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_c5051714","line":407,"in_reply_to":"9a41bdd9_84ebda77","updated":"2015-07-15 21:48:32.000000000","message":"No, this is retrieving the sunet object and you need to pull the subnet\u0027 out of the dict to access the other fields, such as network_id.","commit_id":"90d26500b1f17b687d599712ed901076d9ee169b"}],"octavia/tests/unit/compute/drivers/test_nova_driver.py":[{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"ccd856446be6377f623c31e3859a47c8d910e848","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        amphora_id \u003d self.manager.build(amphora_flavor\u003d1, image_id\u003d1,"},{"line_number":73,"context_line":"                                        key_name\u003d1,"},{"line_number":74,"context_line":"                                        sec_groups\u003d1,"},{"line_number":75,"context_line":"                                        network_ids\u003d[\u00271\u0027],"},{"line_number":76,"context_line":"                                        user_data\u003d\u0027Blah\u0027,"},{"line_number":77,"context_line":"                                        config_drive_files\u003d\u0027Files Blah\u0027)"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"9a1a9d01_852b2e94","line":75,"updated":"2015-09-25 22:16:29.000000000","message":"Unable to test with port_ids?","commit_id":"71345d58337afeb17001f3732a0058d5698f288c"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"2f66f815b9bab5ac07b05a7203a3cc2592d42c71","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        amphora_id \u003d self.manager.build(amphora_flavor\u003d1, image_id\u003d1,"},{"line_number":73,"context_line":"                                        key_name\u003d1,"},{"line_number":74,"context_line":"                                        sec_groups\u003d1,"},{"line_number":75,"context_line":"                                        network_ids\u003d[\u00271\u0027],"},{"line_number":76,"context_line":"                                        user_data\u003d\u0027Blah\u0027,"},{"line_number":77,"context_line":"                                        config_drive_files\u003d\u0027Files Blah\u0027)"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"9a1a9d01_c73578da","line":75,"in_reply_to":"9a1a9d01_852b2e94","updated":"2015-09-28 16:48:28.000000000","message":"Done","commit_id":"71345d58337afeb17001f3732a0058d5698f288c"}],"octavia/tests/unit/controller/worker/flows/test_amphora_flows.py":[{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.assertIn(constants.AMPHORA, amp_flow.provides)"},{"line_number":45,"context_line":"        self.assertIn(constants.COMPUTE_ID, amp_flow.provides)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.assertEqual(len(amp_flow.provides), 4)"},{"line_number":48,"context_line":"        self.assertEqual(len(amp_flow.requires), 2)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def test_get_create_amphora_flow_cert(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_4afd3b39","line":47,"updated":"2015-11-04 16:03:10.000000000","message":"self.assertEqual(expected, observed)\n\nself.assertEqual(4, len(amp_flow.provides))","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.assertIn(constants.AMPHORA, amp_flow.provides)"},{"line_number":45,"context_line":"        self.assertIn(constants.COMPUTE_ID, amp_flow.provides)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.assertEqual(len(amp_flow.provides), 4)"},{"line_number":48,"context_line":"        self.assertEqual(len(amp_flow.requires), 2)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def test_get_create_amphora_flow_cert(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_decef659","line":47,"in_reply_to":"fa80f949_4afd3b39","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.assertIn(constants.COMPUTE_ID, amp_flow.provides)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.assertEqual(len(amp_flow.provides), 4)"},{"line_number":48,"context_line":"        self.assertEqual(len(amp_flow.requires), 2)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def test_get_create_amphora_flow_cert(self):"},{"line_number":51,"context_line":"        cfg.CONF.set_override(\u0027amphora_driver\u0027, \u0027amphora_haproxy_rest_driver\u0027,"}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_4a945be1","line":48,"updated":"2015-11-04 16:03:10.000000000","message":"itto","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.assertIn(constants.COMPUTE_ID, amp_flow.provides)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.assertEqual(len(amp_flow.provides), 4)"},{"line_number":48,"context_line":"        self.assertEqual(len(amp_flow.requires), 2)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def test_get_create_amphora_flow_cert(self):"},{"line_number":51,"context_line":"        cfg.CONF.set_override(\u0027amphora_driver\u0027, \u0027amphora_haproxy_rest_driver\u0027,"}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_7edb4a1c","line":48,"in_reply_to":"fa80f949_4a945be1","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        self.assertIn(constants.AMPHORA, amp_flow.provides)"},{"line_number":60,"context_line":"        self.assertIn(constants.COMPUTE_ID, amp_flow.provides)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        self.assertEqual(len(amp_flow.provides), 5)"},{"line_number":63,"context_line":"        self.assertEqual(len(amp_flow.requires), 2)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def test_get_create_amphora_for_lb_flow(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_0abdf367","line":62,"updated":"2015-11-04 16:03:10.000000000","message":"itto","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        self.assertIn(constants.AMPHORA, amp_flow.provides)"},{"line_number":60,"context_line":"        self.assertIn(constants.COMPUTE_ID, amp_flow.provides)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        self.assertEqual(len(amp_flow.provides), 5)"},{"line_number":63,"context_line":"        self.assertEqual(len(amp_flow.requires), 2)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def test_get_create_amphora_for_lb_flow(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_9ed86e1f","line":62,"in_reply_to":"fa80f949_0abdf367","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        self.assertIn(constants.COMPUTE_ID, amp_flow.provides)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        self.assertEqual(len(amp_flow.provides), 5)"},{"line_number":63,"context_line":"        self.assertEqual(len(amp_flow.requires), 2)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def test_get_create_amphora_for_lb_flow(self):"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_cab60b8a","line":63,"updated":"2015-11-04 16:03:10.000000000","message":"itto","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        self.assertIn(constants.COMPUTE_ID, amp_flow.provides)"},{"line_number":96,"context_line":"        self.assertIn(constants.COMPUTE_OBJ, amp_flow.provides)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        self.assertEqual(len(amp_flow.provides), 9)"},{"line_number":99,"context_line":"        self.assertEqual(len(amp_flow.requires), 1)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def test_get_amphora_ports_flow(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_eab98f7a","line":98,"updated":"2015-11-04 16:03:10.000000000","message":"itto","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        self.assertIn(constants.COMPUTE_ID, amp_flow.provides)"},{"line_number":96,"context_line":"        self.assertIn(constants.COMPUTE_OBJ, amp_flow.provides)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        self.assertEqual(len(amp_flow.provides), 9)"},{"line_number":99,"context_line":"        self.assertEqual(len(amp_flow.requires), 1)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def test_get_amphora_ports_flow(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_3eddc214","line":98,"in_reply_to":"fa80f949_eab98f7a","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        self.assertIn(constants.COMPUTE_OBJ, amp_flow.provides)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        self.assertEqual(len(amp_flow.provides), 9)"},{"line_number":99,"context_line":"        self.assertEqual(len(amp_flow.requires), 1)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def test_get_amphora_ports_flow(self):"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_8ab1e391","line":99,"updated":"2015-11-04 16:03:10.000000000","message":"itto","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        self.assertIn(constants.COMPUTE_OBJ, amp_flow.provides)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        self.assertEqual(len(amp_flow.provides), 9)"},{"line_number":99,"context_line":"        self.assertEqual(len(amp_flow.requires), 1)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def test_get_amphora_ports_flow(self):"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_5ee206d7","line":99,"in_reply_to":"fa80f949_8ab1e391","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        self.assertIn(constants.LOADBALANCER, amp_flow.provides)"},{"line_number":109,"context_line":"        self.assertIn(constants.PORT_IDS, amp_flow.provides)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self.assertEqual(len(amp_flow.provides), 2)"},{"line_number":112,"context_line":"        self.assertEqual(len(amp_flow.requires), 1)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def test_get_cert_create_amphora_for_lb_flow(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_4aabfb1d","line":111,"updated":"2015-11-04 16:03:10.000000000","message":"itto","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        self.assertIn(constants.LOADBALANCER, amp_flow.provides)"},{"line_number":109,"context_line":"        self.assertIn(constants.PORT_IDS, amp_flow.provides)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self.assertEqual(len(amp_flow.provides), 2)"},{"line_number":112,"context_line":"        self.assertEqual(len(amp_flow.requires), 1)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def test_get_cert_create_amphora_for_lb_flow(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_fee65ae7","line":111,"in_reply_to":"fa80f949_4aabfb1d","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        self.assertIn(constants.PORT_IDS, amp_flow.provides)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self.assertEqual(len(amp_flow.provides), 2)"},{"line_number":112,"context_line":"        self.assertEqual(len(amp_flow.requires), 1)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def test_get_cert_create_amphora_for_lb_flow(self):"},{"line_number":115,"context_line":"        cfg.CONF.set_override(\u0027amphora_driver\u0027, \u0027amphora_haproxy_rest_driver\u0027,"}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_ea70afde","line":112,"updated":"2015-11-04 16:03:10.000000000","message":"itto","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        self.assertIn(constants.PORT_IDS, amp_flow.provides)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self.assertEqual(len(amp_flow.provides), 2)"},{"line_number":112,"context_line":"        self.assertEqual(len(amp_flow.requires), 1)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def test_get_cert_create_amphora_for_lb_flow(self):"},{"line_number":115,"context_line":"        cfg.CONF.set_override(\u0027amphora_driver\u0027, \u0027amphora_haproxy_rest_driver\u0027,"}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_1eec7ec6","line":112,"in_reply_to":"fa80f949_ea70afde","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"}],"octavia/tests/unit/controller/worker/flows/test_member_flows.py":[{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"ccd856446be6377f623c31e3859a47c8d910e848","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        self.assertIsInstance(member_flow, flow.Flow)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        self.assertIn(\u0027listener\u0027, member_flow.requires)"},{"line_number":49,"context_line":"        self.assertIn(\u0027loadbalancer_id\u0027, member_flow.requires)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.assertEqual(len(member_flow.requires), 2)"}],"source_content_type":"text/x-python","patch_set":48,"id":"9a1a9d01_a50d1240","line":48,"updated":"2015-09-25 22:16:29.000000000","message":"Nit: Should maybe use the constants.","commit_id":"71345d58337afeb17001f3732a0058d5698f288c"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"2f66f815b9bab5ac07b05a7203a3cc2592d42c71","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        self.assertIsInstance(member_flow, flow.Flow)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        self.assertIn(\u0027listener\u0027, member_flow.requires)"},{"line_number":49,"context_line":"        self.assertIn(\u0027loadbalancer_id\u0027, member_flow.requires)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.assertEqual(len(member_flow.requires), 2)"}],"source_content_type":"text/x-python","patch_set":48,"id":"9a1a9d01_1c518362","line":48,"in_reply_to":"9a1a9d01_a50d1240","updated":"2015-09-28 16:48:28.000000000","message":"There\u0027s a lot of places this needs cleaned up. I\u0027d prefer to take a swing at it all in one go.","commit_id":"71345d58337afeb17001f3732a0058d5698f288c"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"ccd856446be6377f623c31e3859a47c8d910e848","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        self.assertEqual(len(member_flow.requires), 3)"},{"line_number":91,"context_line":"        # Figure out if taskflow or logic is causing different provides count"},{"line_number":92,"context_line":"        # self.assertEqual(len(member_flow.provides), 7)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_get_update_member_flow(self):"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"9a1a9d01_080df336","line":92,"updated":"2015-09-25 22:16:29.000000000","message":"Do you mean it randomly shows different provides counts?","commit_id":"71345d58337afeb17001f3732a0058d5698f288c"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"2f66f815b9bab5ac07b05a7203a3cc2592d42c71","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        self.assertEqual(len(member_flow.requires), 3)"},{"line_number":91,"context_line":"        # Figure out if taskflow or logic is causing different provides count"},{"line_number":92,"context_line":"        # self.assertEqual(len(member_flow.provides), 7)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_get_update_member_flow(self):"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"9a1a9d01_dc4a2bac","line":92,"in_reply_to":"9a1a9d01_080df336","updated":"2015-09-28 16:48:28.000000000","message":"Yes. Well, it bounces back and fourth between 7 and 8 i think.","commit_id":"71345d58337afeb17001f3732a0058d5698f288c"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        self.assertIn(\u0027loadbalancer_id\u0027, member_flow.requires)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.assertEqual(len(member_flow.requires), 1)"},{"line_number":51,"context_line":"        self.assertEqual(len(member_flow.provides), 10)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def test_get_delete_member_flow(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_6a7d9fb0","line":50,"updated":"2015-11-04 16:03:10.000000000","message":"self.assertEqual(expected, observed)","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        self.assertIn(\u0027loadbalancer_id\u0027, member_flow.requires)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.assertEqual(len(member_flow.requires), 1)"},{"line_number":51,"context_line":"        self.assertEqual(len(member_flow.provides), 10)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def test_get_delete_member_flow(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_5e09a694","line":50,"in_reply_to":"fa80f949_6a7d9fb0","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.assertEqual(len(member_flow.requires), 1)"},{"line_number":51,"context_line":"        self.assertEqual(len(member_flow.provides), 10)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def test_get_delete_member_flow(self):"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        member_flow \u003d self.MemberFlow.get_delete_member_flow()"}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_0a4bb388","line":52,"updated":"2015-11-04 16:03:10.000000000","message":"itto","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.assertEqual(len(member_flow.requires), 1)"},{"line_number":51,"context_line":"        self.assertEqual(len(member_flow.provides), 10)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def test_get_delete_member_flow(self):"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        member_flow \u003d self.MemberFlow.get_delete_member_flow()"}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_fefdfa6e","line":52,"in_reply_to":"fa80f949_0a4bb388","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.assertIn(\u0027member\u0027, member_flow.requires)"},{"line_number":75,"context_line":"        self.assertIn(\u0027member_id\u0027, member_flow.requires)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        self.assertEqual(len(member_flow.requires), 2)"},{"line_number":78,"context_line":"        self.assertEqual(len(member_flow.provides), 0)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def test_get_delete_container_member_flow(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_8a5fa340","line":77,"updated":"2015-11-04 16:03:10.000000000","message":"itto","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.assertIn(\u0027member\u0027, member_flow.requires)"},{"line_number":75,"context_line":"        self.assertIn(\u0027member_id\u0027, member_flow.requires)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        self.assertEqual(len(member_flow.requires), 2)"},{"line_number":78,"context_line":"        self.assertEqual(len(member_flow.provides), 0)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def test_get_delete_container_member_flow(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_1e031e75","line":77,"in_reply_to":"fa80f949_8a5fa340","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.assertIn(\u0027member_id\u0027, member_flow.requires)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        self.assertEqual(len(member_flow.requires), 2)"},{"line_number":78,"context_line":"        self.assertEqual(len(member_flow.provides), 0)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def test_get_delete_container_member_flow(self):"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_aa5aa74e","line":78,"updated":"2015-11-04 16:03:10.000000000","message":"itto","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.assertIn(\u0027member_id\u0027, member_flow.requires)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        self.assertEqual(len(member_flow.requires), 2)"},{"line_number":78,"context_line":"        self.assertEqual(len(member_flow.provides), 0)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def test_get_delete_container_member_flow(self):"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_bef8d27d","line":78,"in_reply_to":"fa80f949_aa5aa74e","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        self.assertIn(\u0027member_id\u0027, member_flow.requires)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        self.assertEqual(len(member_flow.requires), 2)"},{"line_number":89,"context_line":"        self.assertEqual(len(member_flow.provides), 10)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_get_update_member_flow(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_0a32d310","line":88,"updated":"2015-11-04 16:03:10.000000000","message":"itto","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        self.assertIn(\u0027member_id\u0027, member_flow.requires)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        self.assertEqual(len(member_flow.requires), 2)"},{"line_number":89,"context_line":"        self.assertEqual(len(member_flow.provides), 10)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_get_update_member_flow(self):"}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_def59683","line":88,"in_reply_to":"fa80f949_0a32d310","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"ce0569bb9c4c352d75eb0ca6feaddb8c320bfaaa","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.assertIn(\u0027member_id\u0027, member_flow.requires)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        self.assertEqual(len(member_flow.requires), 2)"},{"line_number":89,"context_line":"        self.assertEqual(len(member_flow.provides), 10)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_get_update_member_flow(self):"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":68,"id":"fa80f949_ea3e6fd9","line":89,"updated":"2015-11-04 16:03:10.000000000","message":"itto","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"44ade365b08b92f75a07c96dbf73c1ddb007aeb6","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.assertIn(\u0027member_id\u0027, member_flow.requires)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        self.assertEqual(len(member_flow.requires), 2)"},{"line_number":89,"context_line":"        self.assertEqual(len(member_flow.provides), 10)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_get_update_member_flow(self):"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":68,"id":"da85f559_7ef26a9c","line":89,"in_reply_to":"fa80f949_ea3e6fd9","updated":"2015-11-08 22:58:31.000000000","message":"Done","commit_id":"12654677a2c6072c5733c64cf1ff744ea0d5905f"}],"octavia/tests/unit/controller/worker/tasks/test_compute_tasks.py":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"1f73fdce822c99f5e495b0a29b433cc27dd81135","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"_amphora_mock \u003d mock.MagicMock()"},{"line_number":56,"context_line":"_amphora_mock.id \u003d AMPHORA_ID"},{"line_number":57,"context_line":"_amphora_mock.compute_id \u003d COMPUTE_ID   "},{"line_number":58,"context_line":"_load_balancer_mock \u003d mock.MagicMock()"},{"line_number":59,"context_line":"_load_balancer_mock.amphorae \u003d [_amphora_mock]"},{"line_number":60,"context_line":"_port \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":72,"id":"fa80f949_179e2563","line":57,"updated":"2015-11-06 12:16:50.000000000","message":"trailing spaces","commit_id":"fbfe12a5fc7db4740e22baddaf9666c5e209bd24"},{"author":{"_account_id":11302,"name":"Phillip Toohill","email":"phillip.toohill@rackspace.com","username":"ptoohill1"},"change_message_id":"09e1009d786fa01f3576d138e789433e0c460fb7","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"_amphora_mock \u003d mock.MagicMock()"},{"line_number":56,"context_line":"_amphora_mock.id \u003d AMPHORA_ID"},{"line_number":57,"context_line":"_amphora_mock.compute_id \u003d COMPUTE_ID   "},{"line_number":58,"context_line":"_load_balancer_mock \u003d mock.MagicMock()"},{"line_number":59,"context_line":"_load_balancer_mock.amphorae \u003d [_amphora_mock]"},{"line_number":60,"context_line":"_port \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":72,"id":"da85f559_abaf457c","line":57,"in_reply_to":"fa80f949_179e2563","updated":"2015-11-07 01:05:52.000000000","message":"Done","commit_id":"fbfe12a5fc7db4740e22baddaf9666c5e209bd24"}]}
