Skip to content

Use Case: Attaching Metadata to any Object

This sequence diagram illustrates a generic process for attaching metadata to any object (e.g., SVM, LUN, file share) by creating an associated event with a custom annotation.

sequenceDiagram
    participant User as User/Admin
    participant Console as ActiveIQ Unified Manager
    participant API as NetApp ActiveIQ API

    User->>+Console: 1. Log in to ActiveIQ Console
    Console-->>-User: Authentication Successful

    User->>+Console: 2. Navigate to Object Explorer
    Console-->>-User: Display Object Inventory (SVMs, LUNs, etc.)

    User->>+Console: 3. Select Object to Tag
    Console-->>-User: Display Object Details

    User->>+Console: 4. Initiate "Add Annotation" Action
    Note right of Console: Console prepares event creation request<br/>with object key and user-provided metadata
    Console->>+API: 5. POST /management-server/events (Create Event)
    API-->>-Console: 202 Accepted (Job Key)

    loop Poll Job Status
        Console->>+API: GET /management-server/jobs/{job_key}
        API-->>-Console: 200 OK (Job Status)
    end

    Console->>+User: 6. Display Confirmation (Annotation Added)

    User->>+Console: 7. View Object Annotations
    Console->>+API: 8. GET /management-server/events?resource.key={object_key}
    API-->>-Console: 200 OK (List of Events with Annotations)
    Console-->>-User: Display Associated Annotations

Inputs

Authentication

  • Username: NetApp ActiveIQ Unified Manager username with appropriate privileges
  • Password: Corresponding password for console/API authentication
  • Base URL: ActiveIQ Unified Manager console URL (e.g., https://aiq-um.example.com)

Object Identification

  • Object Type: Type of object to annotate (svm, lun, volume, cluster, node, fileshare)
  • Object Key: Unique identifier for the target object (e.g., UUID or composite key)
  • Object Name: Human-readable name of the object (alternative identifier)
  • SVM Context: Storage Virtual Machine context (if applicable)

Search/Filter Criteria (for Object Explorer)

  • Resource Type Filter: Filter objects by type
  • Status Filter: Filter by operational status (online, offline, degraded)
  • Location Filter: Filter by cluster, node, or SVM location
  • Size Range: Filter by capacity or size ranges
  • Performance Thresholds: Filter by performance metrics

Metadata/Annotation Information

  • Annotation Key: Metadata key/label (e.g., environment, business_unit, criticality)
  • Annotation Value: Metadata value (e.g., production, finance, high)
  • Annotation Type: Type of metadata (tag, label, comment, custom_field)
  • Multiple Tags: Array of key-value pairs for bulk annotation

Event Creation Parameters (for API)

  • Event Type: Custom event type for metadata annotation
  • Severity: Event severity level (information, warning)
  • Message: Descriptive message for the annotation event
  • Resource Association: Link between event and target object

Console UI Inputs

  • Navigation Path: Steps to reach the target object in the UI
  • Action Menu Selection: UI menu option for adding annotations
  • Form Fields: Input fields in the annotation dialog
  • Confirmation Actions: UI confirmation steps

API Request Body Example

{
  "name": "metadata_annotation_event",
  "message": {
    "text": "Object tagged with metadata"
  },
  "severity": "information",
  "resource": {
    "key": "1d1c3198-fc57-11e8-99ca-00a098d38e12",
    "type": "svm"
  },
  "annotation": {
    "environment": "production",
    "business_unit": "finance",
    "criticality": "high"
  }
}

Input Validation Requirements

  • Object must exist and be accessible to the authenticated user
  • Annotation keys must follow naming conventions (alphanumeric, underscores)
  • Annotation values must not exceed character limits
  • User must have appropriate permissions for object modification
  • Metadata format must be valid JSON or key-value pairs

Error Handling

  • Object Not Found (404 Not Found): If the target object for annotation does not exist, the console should provide a user-friendly error message.
  • Invalid Metadata (400 Bad Request): The console should validate the metadata format (e.g., key-value pairs) before submitting the request to the API.
  • Permission Denied (403 Forbidden): If the user does not have the necessary permissions to create events or annotate objects, the console should display an access denied message.
  • Job Failure: If the event creation job fails, the console should provide detailed error information to help the user diagnose the issue.
  • Concurrent Modifications (409 Conflict): If the object is being modified by another user, the console should handle the conflict gracefully, perhaps by asking the user to retry.