IP Library Granted Patent US 9,674,109
Granted Patent B2
US 9,674,109 · App. 15/194,392 · Granted Jun 6, 2017

Configuration management for a resource with prerequisites

Inventors: Daniel Stephen DeLeo (Seattle, WA); Adam Brent Jacob (San Francisco, CA); Christopher James Brown (Issaquah, WA); Marc Alan Paradise (Bear, DE)
Assignee: Chef Software Inc.
H04L47/70H04L41/0813H04L43/0817
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 9,674,109
App. No.
15/194,392
Granted
Jun 6, 2017
Kind
B2
Abstract

Embodiments are directed towards employing a configuration management system to report one or more assumptions based on whether or not prerequisites for a resource are satisfied. The configuration management system may determine at least one prerequisite that corresponds to a provided resource. The prerequisites may indicate what the resource requires in order to put the system into the target state. If the prerequisites are unsatisfied, then assumptions regarding the system may be determined and reported to a user of the system. The assumptions may include at least a state transition that upon occurrence puts the system into the target state. If the system is in a non-operational mode, such that state actions and state transitions are simulated, rather than being executed, the system may be enabled to perform other actions as if the prerequisites were satisfied and the state transition occurred, even if it is not.

Claims (65)

1. A method for providing configuration management of computer resources for a computing system of at least one network device, wherein at least one other network device enables actions to be performed, comprising:

providing a computer resource that includes one or more attributes that define a target state of the computing system;

employing one or more state machines to use the one or more attributes to generate one or more requirement functions that determine one or more prerequisites that correspond to the computer resource, wherein the state machine provides instructions for moving the computer resource from the current state to the target state;

determining one or more assumptions that correspond to the one or more requirement functions regarding the computing system based on whether the one or more prerequisites is unsatisfied for the computer resource or the computing system is in a non-operational mode, wherein the one or more assumptions includes one or more state transitions that upon occurrence puts the computing system into the target state; and

providing one or more of the one or more assumptions or one or more other assumptions in a report to a user of the computing system.

2. The method of claim 1 , wherein employing the one or more state machines, further comprises configuring each different state machine to perform separate actions for different computing systems to move the computing system from a current state into the target state based on at least the at least one attribute for the computer resource.

3. The method of claim 1 , further comprising when another computer resource is converged with the computer resource, determining the one or more other assumptions based on whether one or more other prerequisites are unsatisfied for the other computer resource, wherein the one or more other assumptions include one or more other state transitions that upon occurrence puts the computing system in the target state.

4. The method of claim 1 , further comprising employing the one or more state machines to instantiate a lower-level state machine and to pass the one or more requirement functions to the lower-level state machine.

5. The method of claim 1 , further comprising:

when the system is in the non-operational mode, enabling the computing system to perform other actions as if the prerequisites are satisfied and the state transition occurred.

6. The method of claim 1 , further comprising:

determining one or more other prerequisites that correspond to another computer resource;

determining one or more other assumptions based on whether the one or more other prerequisites are unsatisfied for the other computer resource; and

providing the one or more other assumptions in the report.

7. The method of claim 1 , wherein the one or more state transitions that upon occurrence puts the computing system into the target state is determined based on the current state of the computing system and the target state.

8. A system for providing configuration management of computer resources for a computing system of one or more network devices, comprising:

one or more other network devices, comprising:

a memory for storing data and instructions; and

one or more processors that execute the instructions to enable actions, comprising:

providing a computer resource that includes one or more attributes that define a target state of the computing system;

employing one or more state machines to use the one or more attributes to generate one or more requirement functions that determine one or more prerequisites that correspond to the computer resource, wherein the state machine provides instructions for moving the computer resource from the current state to the target state;

determining one or more assumptions that correspond to the one or more requirement functions regarding the computing system based on whether the one or more prerequisites is unsatisfied for the computer resource or the computing system is in a non-operational mode, wherein the one or more assumptions includes one or more state transitions that upon occurrence puts the computing system into the target state; and

providing one or more of the one or more assumptions or one or more other assumptions in a report to a user of the computing system.

9. The system of claim 8 , wherein employing the one or more state machines, further comprises configuring each different state machine to perform separate actions for different computing systems to move the computing system from a current state into the target state based on at least the at least one attribute for the computer resource.

10. The system of claim 8 , further comprising when another computer resource is converged with the computer resource, determining the one or more other assumptions based on whether one or more other prerequisites are unsatisfied for the other computer resource, wherein the one or more other assumptions include one or more other state transitions that upon occurrence puts the computing system in the target state.

11. The system of claim 8 , further comprising employing the one or more state machines to instantiate a lower-level state machine and to pass the one or more requirement functions to the lower-level state machine.

12. The system of claim 8 , further comprising:

when the system is in the non-operational mode, enabling the computing system to perform other actions as if the prerequisites are satisfied and the state transition occurred.

13. The system of claim 8 , further comprising:

determining one or more other prerequisites that correspond to another computer resource;

determining one or more other assumptions based on whether the one or more other prerequisites are unsatisfied for the other computer resource; and

providing the one or more other assumptions in the report.

14. The system of claim 8 , wherein the one or more state transitions that upon occurrence puts the computing system into the target state is determined based on the current state of the computing system and the target state.

15. A processor readable non-transitory storage media that includes instructions for providing configuration management of computer resources for a computing system of one or more network devices, wherein the execution of the instructions by one or more processors enables actions, comprising:

providing a computer resource that includes one or more attributes that define a target state of the computing system;

employing one or more state machines to use the one or more attributes to generate one or more requirement functions that determine one or more prerequisites that correspond to the computer resource, wherein the state machine provides instructions for moving the computer resource from the current state to the target state;

determining one or more assumptions that correspond to the one or more requirement functions regarding the computing system based on whether the one or more prerequisites is unsatisfied for the computer resource or the computing system is in a non-operational mode, wherein the one or more assumptions includes one or more state transitions that upon occurrence puts the computing system into the target state; and

providing one or more of the one or more assumptions or one or more other assumptions in a report to a user of the computing system.

16. The media of claim 15 , wherein employing the one or more state machines, further comprises configuring each different state machine to perform separate actions for different computing systems to move the computing system from a current state into the target state based on at least the at least one attribute for the computer resource.

17. The media of claim 15 , further comprising when another computer resource is converged with the computer resource, determining the one or more other assumptions based on whether one or more other prerequisites are unsatisfied for the other computer resource, wherein the one or more other assumptions include one or more other state transitions that upon occurrence puts the computing system in the target state.

18. The media of claim 15 , further comprising employing the one or more state machines to instantiate a lower-level state machine and to pass the one or more requirement functions to the lower-level state machine.

19. The media of claim 15 , further comprising:

when the system is in the non-operational mode, enabling the computing system to perform other actions as if the prerequisites are satisfied and the state transition occurred.

20. The media of claim 15 , further comprising:

determining one or more other prerequisites that correspond to another computer resource;

determining one or more other assumptions based on whether the one or more other prerequisites are unsatisfied for the other computer resource; and

providing the one or more other assumptions in the report.

21. The media of claim 15 , wherein the one or more state transitions that upon occurrence puts the computing system into the target state is determined based on the current state of the computing system and the target state.

22. A network device for providing configuration management of resources for a computing system of one or more network devices, comprising:

a memory for storing data and instructions; and

one or more processors that execute the instructions to enable actions, comprising:

providing a computer resource that includes one or more attributes that define a target state of the computing system;

employing one or more state machines to use the one or more attributes to generate one or more requirement functions that determine one or more prerequisites that correspond to the computer resource, wherein the state machine provides instructions for moving the computer resource from the current state to the target state;

determining one or more assumptions that correspond to the one or more requirement functions regarding the computing system based on whether the one or more prerequisites is unsatisfied for the computer resource or the computing system is in a non-operational mode, wherein the one or more assumptions includes one or more state transitions that upon occurrence puts the computing system into the target state; and

providing one or more of the one or more assumptions or one or more other assumptions in a report to a user of the computing system.

23. The network device of claim 22 , wherein employing the one or more state machines, further comprises configuring each different state machine to perform separate actions for different computing systems to move the computing system from a current state into the target state based on at least the at least one attribute for the computer resource.

24. The network device of claim 22 , further comprising when another computer resource is converged with the computer resource, determining the one or more other assumptions based on whether one or more other prerequisites are unsatisfied for the other computer resource, wherein the one or more other assumptions include one or more other state transitions that upon occurrence puts the computing system in the target state.

25. The network device of claim 22 , further comprising employing the one or more state machines to instantiate a lower-level state machine and to pass the one or more requirement functions to the lower-level state machine.

26. The network device of claim 22 , further comprising:

when the system is in the non-operational mode, enabling the computing system to perform other actions as if the prerequisites are satisfied and the state transition occurred.

27. The network device of claim 22 , further comprising:

determining one or more other prerequisites that correspond to another computer resource;

determining one or more other assumptions based on whether the one or more other prerequisites are unsatisfied for the other computer resource; and

providing the one or more other assumptions in the report.

28. The network device of claim 22 , wherein the one or more state transitions that upon occurrence puts the computing system into the target state is determined based on the current state of the computing system and the target state.

Assignments (8)
SECURITY INTEREST Recorded Jul 21, 2025
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 072094/0790 →
SECURITY INTEREST Recorded Mar 7, 2024
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 066762/0833 →
SECURITY INTEREST Recorded Jan 25, 2022
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058840/0099 →
MERGER AND CHANGE OF NAME Recorded Nov 16, 2020
From: CHEF SOFTWARE INC.; PROGRESS SOFTWARE CORPORATION
To: PROGRESS SOFTWARE CORPORATION
Reel/Frame 054380/0897 →
TERMINATION OF INTELLECTUAL PROPERTY SECURITY AGREEMENT RECORDED @ REEL 043894 AND FRAME 0608 Recorded Oct 5, 2020
From: SILICON VALLEY BANK
To: CHEF SOFTWARE INC.
Reel/Frame 053983/0056 →
SECURITY INTEREST Recorded Oct 18, 2017
From: CHEF SOFTWARE INC.
To: SILICON VALLEY BANK
Reel/Frame 043894/0608 →
CHANGE OF NAME Recorded Jun 27, 2016
From: OPSCODE, INC.
To: CHEF SOFTWARE INC.
Reel/Frame 039175/0161 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2016
From: DELEO, DANIEL STEPHEN; JACOB, ADAM BRENT; BROWN, CHRISTOPHER JAMES; PARADISE, MARC ALAN
To: OPSCODE, INC.
Reel/Frame 039175/0119 →
Continuity (2)
Continuation 13831932 · Mar 15, 2013
Related Publication 20160308778A1 · Oct 20, 2016