code: def get_strings_for_plugin(plugin):
      nodes_to_visit = []
      path_prefixes = []
      nodes_to_visit_added_by = []
      traversal_stack = []
  
      strings = []
      paths = []
  
      nodes_to_visit.append(plugin)
      path_prefixes.append("<root>")
      nodes_to_visit_added_by.append(None)
  
      while len(nodes_to_visit) > 0:
          node = nodes_to_visit.pop(0)
          path_prefix = path_prefixes.pop(0)
          added_by = nodes_to_visit_added_by.pop(0)
  
          if len(traversal_stack) != 0:
              while traversal_stack[-1] != added_by:
                  traversal_stack.pop()
  
          if isinstance(node, str):
              strings.append(node)
              paths.append(path_prefix)
  
          if isinstance(node, vray.Plugin) and not isinstance(
              node, vray.PluginRef
          ):
              strings.append(str(node))
              paths.append(path_prefix)
  
              node_key = str(node)
              traversal_stack.append(node_key)
  
              tmp_nodes_to_visit = []
              tmp_path_prefixes = []
              tmp_nodes_to_visit_added_by = []
  
              for param_name in sort(list(node.getMeta().keys())):
                  param = node.__getitem__(param_name)
                  param_meta = node.getMeta()[param_name]
  
                  if isinstance(param, str):
                      tmp_nodes_to_visit.append(param)
                      tmp_path_prefixes.append(
                          path_prefix + "." + param_name
                      )
                      tmp_nodes_to_visit_added_by.append(node_key)
  
                  if isinstance(param, vray.Plugin) and not isinstance(
                      param, vray.PluginRef
                  ):
                      param_key = str(param)
                      if param_key not in traversal_stack:
                          tmp_nodes_to_visit.append(param)
                          tmp_path_prefixes.append(
                              path_prefix + "." + param_name
                          )
                          tmp_nodes_to_visit_added_by.append(node_key)
  
                  if (
                      isinstance(param, vray.List)
                      and param_meta["type"] == "List<String>"
                  ):
                      for i in range(len(param)):
                          pi_ = param[i]
                          tmp_nodes_to_visit.append(pi_)
                          tmp_path_prefixes.append(
                              path_prefix
                              + "."
                              + param_name
                              + "["
                              + str(i)
                              + "]"
                          )
                          tmp_nodes_to_visit_added_by.append(node_key)
  
                  if (
                      isinstance(param, vray.List)
                      and param_meta["type"] == "List<Plugin>"
                  ):
                      for i in range(len(param)):
                          pi_ = param[i]
                          param_key = str(pi_)
                          if (
                              not isinstance(pi_, vray.PluginRef)
                              and param_key not in traversal_stack
                          ):
                              tmp_nodes_to_visit.append(pi_)
                              tmp_path_prefixes.append(
                                  path_prefix
                                  + "."
                                  + param_name
                                  + "["
                                  + str(i)
                                  + "]"
                              )
                              tmp_nodes_to_visit_added_by.append(
                                  node_key
                              )
  
              nodes_to_visit = tmp_nodes_to_visit + nodes_to_visit
              path_prefixes = tmp_path_prefixes + path_prefixes
              nodes_to_visit_added_by = (
                  tmp_nodes_to_visit_added_by + nodes_to_visit_added_by
              )
  
      assert len(nodes_to_visit) == 0
      assert len(path_prefixes) == 0
      assert len(nodes_to_visit_added_by) == 0
  
      return paths, strings
  
imports: from pylab import *
  import argparse
  import os
  import pandas
  import time
  import vray
label_desc: Use image node_id 2 for calling a global function with example usage: get_strings_for_plugin(plugin) and returns: paths,  strings