IP Library Granted Patent US 10,417,331
Granted Patent B2
US 10,417,331 · App. 15/074,880 · Granted Sep 17, 2019

System and method for processing command line interface commands

Inventors: Ashish Singh (San Jose, CA); Kaushal Gala (Round Rock, CA); Srikkanth Sundararajan (Sunnyvale, CA); Raghavendra Kolli (Sunnyvale, CA); Lakshmi Kiran Soppadandi (Sunnyvale, CA)
Assignee: VMware, Inc.
G06F17/276G06F9/453G06F9/45512
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,417,331
App. No.
15/074,880
Granted
Sep 17, 2019
Kind
B2
Abstract

System and method for processing command line interface (CLI) commands of a CLI-based application, which include a help-like function to expose usage information of the CLI commands, use a database of CLI usage information to search for at least partial match to user query without user input to call the help-like function of CLI commands. As a result, at least one candidate CLI command from the CLI commands that corresponds to the at least partial match is selected and presented on a user interface for user selection to execute a CLI command.

Claims (61)

1. A method for processing command line interface (CLI) commands of a CLI-based application, the CLI commands including a help-like function to expose usage information of the CLI commands, the method comprising:

receiving user query at a user interface;

searching a database of CLI usage information for at least partial match to the user query without user input to call the help-like function of the CLI commands to access the usage information of the CLI commands;

selecting at least one candidate CLI command from the CLI commands that corresponds to the at least partial match;

presenting the at least one candidate CLI command on the user interface for user selection to execute a CLI command;

determining that an output of a candidate CLI command is dynamic, wherein a dynamic output is a transient output of a CLI command with at least one input parameter that is non-transient;

searching the output of the candidate CLI command in a cache pool to find the output; and

using the output in the cache pool for the candidate CLI command without actually executing the candidate CLI command at the CLI-based application to deploy the output for immediate consumption.

2. The method of claim 1 , further comprising automatically filling in a parameter for a selected candidate CLI command in the user interface in response to user input.

3. The method of claim 1 , further comprising automatically validating a parameter for a selected candidate CLI command at the user interface before the selected candidate CLI command is executed by the CLI-based application.

4. The method of claim 1 , further comprising:

determining that an output of another candidate CLI command is not transient, wherein a transient output is a non-cacheable output of a CLI command with at least one input parameter that is transient;

searching the output of the another candidate CLI command in the cache pool to find the output of the another candidate CLI command; and

using the output of the another candidate CLI command in the cache pool for the another candidate CLI command without actually executing the another candidate CLI command at the CLI-based application to deploy the output of the another candidate CLI command for immediate consumption.

5. The method of claim 4 , further comprising, when an output of a target candidate CLI command is not found in the output cache, executing the target candidate CLI command at the CLI-based application and storing a resulting output of the target candidate CLI command in the output cache for future use.

6. The method of claim 1 , further comprising:

determining that an output of another candidate CLI command is dynamic, wherein a dynamic output is a transient output of a CLI command with at least one input parameter that is non-transient;

searching the output of the another candidate CLI command in the cache pool and determining that the output of the another candidate CLI command is not in the cache pool; and

executing the another candidate CLI command at the CLI-based application twice to deploy a first resulting processing component for immediate consumption and to deploy a second resulting processing component for storing the second resulting processing component of the another candidate CLI command in the cache pool for future use.

7. The method of claim 6 , wherein the second resulting processing component is stored in the cache pool in a quiesced state.

8. A non-transitory computer-readable storage medium containing program instructions for a method for processing command line interface (CLI) commands of a CLI-based application, the CLI commands including a help-like function to expose usage information of the CLI commands, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to perform steps comprising:

receiving user query at a user interface;

searching a database of CLI usage information for at least partial match to the user query without user input to call the help-like function of the CLI commands to access the usage information of the CLI commands;

selecting at least one candidate CLI command from the CLI commands that corresponds to the at least partial match;

presenting the at least one candidate CLI command on the user interface for user selection to execute a CLI command;

determining that an output of a candidate CLI command is dynamic, wherein a dynamic output is a transient output of a CLI command with at least one input parameter that is non-transient:

searching the output of the candidate CLI command in a cache pool to find the output; and

using the output in the cache pool for the candidate CLI command without actually executing the candidate CLI command at the CLI-based application to deploy the output for immediate consumption.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises automatically filling in a parameter for a selected candidate CLI command in the user interface in response to user input.

10. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises automatically validating a parameter for a selected candidate CLI command at the user interface before the selected candidate CLI command is executed by the CLI-based application.

11. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises:

determining that an output of another candidate CLI command is not transient, wherein a transient output is a non-cacheable output of a CLI command with at least one input parameter that is transient;

searching the output of the another candidate CLI command in the cache pool to find the output of the another candidate CLI command; and

using the output of the another candidate CLI command in the cache pool for the another candidate CLI command without actually executing the another candidate CLI command at the CLI-based application to deploy the output of the another candidate CLI command for immediate consumption.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the method further comprises, when an output of a target candidate CLI command is not found in the output cache, executing the target candidate CLI command at the CLI-based application and storing a resulting output of the target candidate CLI command in the output cache for future use.

13. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises:

determining that an output of another candidate CLI command is dynamic, wherein a dynamic output is a transient output of a CLI command with at least one input parameter that is non-transient;

searching the output of the another candidate CLI command in the cache pool and determining that the output of the another candidate CLI command is not in the cache pool; and

executing the another candidate CLI command at the CLI-based application twice to deploy a first resulting processing component for immediate consumption and to deploy a second resulting processing component for storing the second resulting processing component of the another candidate CLI command in the cache pool for future use.

14. The non-transitory computer-readable storage medium of claim 8 , wherein the second resulting processing component is stored in the cache pool in a quiesced state.

15. A system comprising:

memory; and

at least one processor programmed to:

receive user query at a user interface;

search a database of CLI usage information for at least partial match to the user query without user input to call a help-like function of CLI commands of a CLI-based application to access usage information of the CLI commands;

select at least one candidate CLI command from the CLI commands that corresponds to the at least partial match;

present the at least one candidate CLI command on the user interface for user selection to execute a CLI command;

determine that an output of a candidate CLI command is dynamic, wherein a dynamic output is a transient output of a CLI command with at least one input parameter that is non-transient;

search the output of the candidate CLI command in a cache pool to find the output; and

use the output in the cache pool for the candidate CLI command without actually executing the candidate CLI command at the CLI-based application to deploy the output for immediate consumption.

16. The system of claim 15 , wherein the at least one processor is programmed to automatically fill in a parameter for a selected candidate CLI command in the user interface in response to user input.

17. The system of claim 15 , wherein the at least one processor is programmed to automatically validate a parameter for a selected candidate CLI command at the user interface before the selected candidate CLI command is executed by the CLI-based application.

18. The system of claim 15 , wherein the at least one processor is programmed to:

determine that an output of another candidate CLI command is not transient, wherein a transient output is a non-cacheable output of a CLI command with at least one input parameter that is transient:

search the output of the another candidate CLI command in the cache pool to find the output of the another candidate CLI command; and

use the output of the another candidate CLI command in the cache pool for the another candidate CLI command without actually executing the another candidate CLI command at the CLI-based application to deploy the output of the another candidate CLI command for immediate consumption.

19. The system of claim 18 , wherein the at least one processor is programmed to: when an output of a target candidate CLI command is not found in the output cache, executing the target candidate CLI command at the CLI-based application and storing a resulting output of the target candidate CLI command in the output cache for future use.

20. The system of claim 15 , wherein the at least one processor is programmed to:

determine that an output of another candidate CLI command is dynamic, wherein a dynamic output is a transient output of a CLI command with at least one input parameter that is non-transient;

search the output of the another candidate CLI command in the cache pool and determine that the output of the another candidate CLI command is not in the cache pool; and

execute the another candidate CLI command at the CLI-based application twice to deploy a first resulting processing component for immediate consumption and to deploy a second resulting processing component for storing the second resulting processing component of the another candidate CLI command in the cache pool for future use.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2016
From: SINGH, ASHISH; GALA, KAUSHAL; SUNDARARAJAN, SRIKKANTH; KOLLI, RAGHAVENDRA; SOPPADANDI, LAKSHMI KIRAN
To: VMWARE, INC.
Reel/Frame 038037/0162 →
Continuity (1)
Related Publication 20170270091A1 · Sep 21, 2017
Cited By (1)
US 12,710,957