Push and Pull Operations Explained
The two main options you work with when using P6 Sync are push
and pull
Push¶
The push
command sends the configuration information stored in your local file system to the Platform 6 instance where it is used to update the configuration of the instance.
The push
command takes one of two qualifiers:
- update
- force
push update
Each configuration item sent to the instance will cause an existing item to be updated and if the item does not exists it will be created. A diff is performed between the content of the configuration item sent from the file system and that stored on the Platform 6 instance. Therefore only items from the file system that are different to those already stored on the instance are processed.
Note
New configuration items added to the Platform 6 instance by other users or items deleted from your file system will have no effect on the behaviour of a push update
. I.e. They will not cause your local file system or instance storage to be updated.
A push update
is a two step process.
The first step is a per service validation of the configuration item content. Varying degrees of validation are performed depending on the service involved. For example, the script service will compile the scripts(s) to ensure they are syntactically correct before excepting them for update.
The second step is the update of the storage of the configuration item on the Platform 6 instance.
push force
The force
qualifier should be used when you wish to ensure the configuration items stored on an instance are an exact match for the configuration stored in your file system.
Each configuration item sent to the instance will be processed even if it appears to be the same as that already stored on the instance.
If a service has a validation step, the results of the validation step are ignored. (This can sometimes help resolve script import issues where the code to import is not yet available on the instance)
If a configuration item exists on the instance that is not in the file system it will be deleted.
Pull¶
The pull
command takes configuration stored on your instance and updates your local filesystem
The pull
command takes one of two qualifiers:
- new
- update
pull new
The new
qualifier should be used when you wish to ensure that your local file system is an exact match to the configuration stored on your instance.
This can be a destructive operation as any changes you have made to file system configuration items will be overwritten or even removed.
This is the opposite operation to push force
, instead of making an instance configuration identical to your file system, the file system is made identical to the instance configuration.
pull update
As with push update
, this is a two step process. You local file system configuration is sent to the server where it is used as the source of a diff between instance and file system configuration.
The first step is a per service validation of the file system configuration item content. The purpose of this is to build a configuration item to compare against the instances item. If for any reason the validation fails, the instances item is assumed to be correct and is used to update the file system. (When validation errors occur during this process they will be returned to the user as WARNing messages)
The second step is the update of the storage of the configuration item. If the instances configuration item is different to that of the file system or the item does not exist in the file system, the instances configuration is used to update the file system.
debug true¶
By enabling debug logging on the command line, you can see more details about local file system operations and the operations invoked on the Platform 6 instance.