×

Converting CQL query results into user-controllable objects

  • US 8,171,046 B1
  • Filed: 06/29/2009
  • Issued: 05/01/2012
  • Est. Priority Date: 06/29/2009
  • Status: Active Grant
First Claim
Patent Images

1. A method comprising:

  • sending, from a client device to a data storage system, a query regarding elements of the data storage system;

    receiving, at the client device, from the data storage system, a query result, the query result containing information about a set of elements within the data storage system presented in tabular format, the set of elements being defined by the query;

    parsing the query result, at the client device, to obtain a class object representing an element of the set of elements; and

    performing an operation associated with the element on the class object;

    wherein;

    the query result includes a table, the table including a plurality of rows, each row storing a fixed number of data values and each row corresponding to at least one unique element of the data storage system;

    parsing the query result to obtain the class object includes;

    reading a header row of the plurality of rows, the header row defining a list of properties stored within each row of the table;

    reading one row of the query result, the one row being distinct from the header row;

    dividing the one row into a set of individual data values;

    correlating each data value with a corresponding property defined within the header row;

    creating, in memory, an instance of a class corresponding to an element of the data storage system; and

    storing each individual data value within a variable of the instance of the class having a name corresponding to the respective corresponding property name; and

    each element of the data storage system has exactly one type, the type being chosen from a set including disks, logical units of storage (LUNs), array groups (RAID groups), subsystems, and servers;

    creating, in memory, the instance of a class corresponding to the element of the data storage system includes;

    detecting that the one row includes some data values corresponding to properties of a first element of the data storage system and other data values corresponding to properties of a second element of the data storage system, the first element and the second element being of different types;

    instantiating a first class that represents elements of a type of the first element; and

    instantiating a second class that represents elements of a type of the second element;

    storing each individual data value within the variable of the instance of the class having the name corresponding to the respective corresponding property name includes;

    storing each data value that corresponds to a property of the first element within a variable of the first class having a name corresponding to the respective corresponding property name; and

    storing each data value that corresponds to a property of the second element within a variable of the second class having a name corresponding to the respective corresponding property name;

    the first element is a disk;

    the first class is a class that represents disks, the instantiated first class being a disk object;

    the second element is a RAID group, the disk being a member of the RAID group, the RAID group having a RAID group identifier;

    the second class is a class that represents RAID groups, the instantiated second class being a RAID group object;

    storing each data value that corresponds to a property of the first element within a variable of the first class having a name corresponding to the respective corresponding property name includes;

    storing a value representing a capacity of the disk in a capacity variable of the disk object;

    storing a value representing a speed of the disk in a speed variable of the disk object;

    storing the RAID group identifier in a RAID group ID variable of the disk object; and

    storing each data value that corresponds to a property of the second element within a variable of the second class having a name corresponding to the respective corresponding property name includes;

    storing a value representing the RAID group ID in a name variable of the RAID group object; and

    storing a value representing a number of logical units in the RAID group in a Number of LUNs variable of the RAID group object.

View all claims
  • 9 Assignments
Timeline View
Assignment View
    ×
    ×