def handle_assignment_msg(self, pplan):
new_helper = PhysicalPlanHelper(pplan, self.instance.instance_id,<EOL>self.topo_pex_file_abs_path)<EOL>if self.my_pplan_helper is not None and(self.my_pplan_helper.my_component_name != new_helper.my_component_name or<EOL>self.my_pplan_helper.my_task_id != new_helper.my_task_id):<EOL><INDENT>raise RuntimeError("<STR_LIT>")<EOL><DEDENT>new_helper.set_topology_context(self.metrics_collector)<EOL>if self.my_pplan_helper is None:<EOL><INDENT>Log.info("<STR_LIT>")<EOL>Log.info("<STR_LIT>")<EOL>self._handle_assignment_msg(new_helper)<EOL><DEDENT>else:<EOL><INDENT>Log.info("<STR_LIT>")<EOL>Log.info("<STR_LIT>",<EOL>self.my_pplan_helper.get_topology_state(), new_helper.get_topology_state())<EOL>self._handle_state_change_msg(new_helper)<EOL><DEDENT>
Called when new NewInstanceAssignmentMessage arrives

        Tells this instance to become either spout/bolt.

        :param pplan: PhysicalPlan proto