Bootable system image delta generator
A request is received from a fleet device to be provided with a delta system image that includes differences between a system image currently residing on the fleet device and a most recent revised system image. It is determined that a first revised system image has been generated, and a second revised system image has been generated, wherein the second revised system image is the most recent revised system image. It is determined that the system image currently residing on the fleet device is the first system image. A first delta system image that includes differences between the first system image and the second revised system image is accessed. The first delta system image is sent to the fleet device.
1 . A method comprising:
determining, by a computing device in communication with a first fleet device of a plurality of fleet devices, that a delta system image that includes differences between a system image currently residing on the first fleet device and a most recent revised system image stored in a repository external to the first fleet device can be generated;
responsive to determining that the delta system image can be generated, determining, by the computing device, that a first revision has been made to a first system image to generate a first revised system image;
responsive to determining that the delta system image can be generated, determining, by the computing device, that a second subsequent revision has been made to the first revised system image to generate a second revised system image, wherein the second revised system image comprises the most recent revised system image;
determining, by the computing device, that the system image currently residing on the first fleet device comprises the first system image;
accessing, by the computing device, a first delta system image that comprises differences between the first system image and the second revised system image; and
sending, by the computing device to the first fleet device, the first delta system image or a reference to the first delta system image.
2 . The method of claim 1 , wherein determining, by the computing device, that the system image currently residing on the first fleet device comprises the first system image comprises receiving, by the computing device from the first fleet device, information that indicates that the first system image currently resides on the first fleet device.
3 . The method of claim 1 , wherein determining, by the computing device, that the system image currently residing on the first fleet device comprises the first system image comprises:
accessing, by the computing device, a data structure that contains information indicating that the first system image currently resides on the first fleet device; and
modifying, by the computing device, the data structure to contain information indicating that the second revised system image currently resides on the first fleet device.
4 . The method of claim 1 further comprising:
generating, by the computing device, the first delta system image that comprises differences between the first system image and the second revised system image; and
storing, by the computing device, the first delta system image in a memory.
5 . The method of claim 4 further comprising:
receiving, by the computing device, a request from a second fleet device to be provided with a delta that includes differences between a system image currently residing on the second fleet device and the most recent revised system image;
determining, by the computing device, that the system image currently residing on the second fleet device comprises the first system image; and
sending, by the computing device to the second fleet device, the first delta system image stored in the memory or a reference to the first delta system image stored in the memory.
6 . The method of claim 1 , further comprising:
subsequent to determining that the second revised system image has been generated, accessing, by the computing device, a data structure that identifies a third fleet device, and identifies a current system image currently residing on the third fleet device;
accessing, by the computing device, information that indicates that, upon a generation of a revised system image, a delta system image is to be generated that comprises differences between a system image currently residing on the third fleet device and the revised system image; and
generating, by the computing device, the delta system image that comprises the differences between the system image currently residing on the third fleet device and the revised system image.
7 . The method of claim 6 further comprising:
determining, by the computing device, that the system image currently residing on the third fleet device is the first revised system image; and
wherein generating, by the computing device, the delta system image that comprises the differences between the system image currently residing on the third fleet device and the revised system image comprises generating, by the computing device, a second delta system image that comprises differences between the first revised system image and the second revised system image.
8 . The method of claim 7 further comprising:
subsequent to generating the second delta system image, receiving, by the computing device from the third fleet device, a request for a delta system image; and
sending, by the computing device to the third fleet device, the second delta system image.
9 . The method of claim 8 further comprising:
modifying, by the computing device, the data structure to contain information indicating that the second revised system image currently resides on the third fleet device.
10 . A computing device, comprising:
a memory; and
a processor device coupled to the memory to:
determine, for a first fleet device of a plurality of fleet devices, that a delta system image that includes differences between a system image currently residing on the first fleet device and a most recent revised system image stored in a repository external to the first fleet device can be generated;
responsive to determining that the delta system image can be generated, determine that a first revision has been made to a first system image to generate a first revised system image;
responsive to determining that the delta system image can be generated, determine that a second subsequent revision has been made to the first revised system image to generate a second revised system image, wherein the second revised system image comprises the most recent revised system image;
determine that the system image currently residing on the first fleet device comprises the first system image;
access a first delta system image that comprises differences between the first system image and the second revised system image; and
send, to the first fleet device, the first delta system image or a reference to the first delta system image.
11 . The computing device of claim 10 , wherein to determine that the system image currently residing on the first fleet device comprises the first system image, the processor device is further to:
access a data structure that contains information indicating that the first system image currently resides on the first fleet device; and
modify the data structure to contain information indicating that the second revised system image currently resides on the first fleet device.
12 . The computing device of claim 10 wherein the processor device is further to store, by the computing device, the first delta system image in a memory.
13 . The computing device of claim 12 wherein the processor device is further to:
receive a request from a second fleet device to be provided with a delta that includes differences between a system image currently residing on the second fleet device and the most recent revised system image;
determine that the system image currently residing on the second fleet device comprises the first system image; and
send, to the second fleet device, the first delta system image stored in the memory or a reference to the first delta system image stored in the memory.
14 . The computing device of claim 10 , wherein the processor device is further to:
subsequent to determining that the second revised system image has been generated, access a data structure that identifies a third fleet device, and identifies a current system image currently residing on the third fleet device;
access information that indicates that, upon a generation of a revised system image, a delta system image is to be generated that comprises differences between a system image currently residing on the third fleet device and the revised system image; and
generate the delta system image that comprises the differences between the system image currently residing on the third fleet device and the revised system image.
15 . The computing device of claim 14 wherein the processor device is further to:
determine that the system image currently residing on the third fleet device is the first revised system image; and
wherein to generate the delta system image that comprises the differences between the system image currently residing on the third fleet device and the revised system image, the processor device is further to generate a second delta system image that comprises differences between the first revised system image and the second revised system image.
16 . A non-transitory computer-readable storage medium that includes executable instructions to cause a processor device to:
determine, for a first fleet device of a plurality of fleet devices, that a delta system image that includes differences between a system image currently residing on the first fleet device and a most recent revised system image stored in a repository external to the first fleet device can be generated;
responsive to determining that the delta system image can be generated, determine that a first revision has been made to a first system image to generate a first revised system image
responsive to determining that the delta system image can be generated, determine that a second subsequent revision has been made to the first revised system image to generate a second revised system image, wherein the second revised system image comprises the most recent revised system image;
determine that the system image currently residing on the first fleet device comprises the first system image;
access a first delta system image that comprises differences between the first system image and the second revised system image; and
send, to the first fleet device, the first delta system image or a reference to the first delta system image.
17 . The non-transitory computer-readable storage medium of claim 16 , wherein to determine that the system image currently residing on the first fleet device comprises the first system image, the instructions further cause the processor device to:
access a data structure that contains information indicating that the first system image currently resides on the first fleet device; and
modify the data structure to contain information indicating that the second revised system image currently resides on the first fleet device.
18 . The non-transitory computer-readable storage medium of claim 16 wherein the instructions further cause the processor device to store the first delta system image in a memory.
19 . The non-transitory computer-readable storage medium of claim 18 wherein the instructions further cause the processor device to:
receive a request from a second fleet device to be provided with a delta that includes differences between a system image currently residing on the second fleet device and the most recent revised system image;
determine that the system image currently residing on the second fleet device comprises the first system image; and
send, to the second fleet device, the first delta system image stored in the memory or a reference to the first delta system image stored in the memory.
20 . The non-transitory computer-readable storage medium of claim 16 , wherein the instructions further cause the processor device to:
subsequent to determining that the second revised system image has been generated, access a data structure that identifies a third fleet device, and identify a current system image currently residing on the third fleet device;
access information that indicates that, upon a generation of a revised system image, a delta system image is to be generated that comprises differences between a system image currently residing on the third fleet device and the revised system image; and
generate the delta system image that comprises the differences between the system image currently residing on the third fleet device and the revised system image.