| 464 | } |
| 465 | |
| 466 | func attributeValueAsString(v *v11.AnyValue) (string, error) { |
| 467 | switch v := v.Value.(type) { |
| 468 | case *v11.AnyValue_StringValue: |
| 469 | return v.StringValue, nil |
| 470 | case *v11.AnyValue_ArrayValue: |
| 471 | var values []string |
| 472 | for _, a := range v.ArrayValue.GetValues() { |
| 473 | s, err := attributeValueAsString(a) |
| 474 | if err != nil { |
| 475 | klog.Warningf("error converting array value: %v", err) |
| 476 | s = "<?error>" |
| 477 | } |
| 478 | values = append(values, s) |
| 479 | } |
| 480 | return "[" + strings.Join(values, ",") + "]", nil |
| 481 | default: |
| 482 | return "", fmt.Errorf("unhandled attribute type %T", v) |
| 483 | } |
| 484 | } |
| 485 | |
| 486 | // RunJaegerOptions are the options for runJaeger |
| 487 | type RunJaegerOptions struct { |