Policy Channels Setup

77 views
Skip to first unread message

Shane Ripley

unread,
Mar 26, 2021, 4:03:48 PM3/26/21
to help-cfengine

Greetings, the time has come to finally upgrade from cfengine 3.5, its worked quietly for so long we've kinda ignored it :)

I'm working on setting up policy channels but seems to be missing something. I've created the /var/cfengine/host_channel_assignments/<fqdn>.txt file and added a git branch name to it. The def.json has:
{
   "classes" : {
     "services_autorun": [ "any" ],
     "client_initiated_reporting_enabled": [ "any" ],
     "cfengine_internal_verify_update_transfers": [ "any" ],
     "cfengine_internal_encrypt_transfers": [ "any" ],
     "cfengine_internal_purge_policies": [ "any" ],
     "mpf_augments_control_enabled": [ "any" ],
     "cfengine_recommendations_disabled": [ "any" ],
     "update_inputs": [ "policy_channels/update_policy_channels.cf" ],
     "mpf_update_policy_bundle": "default:update_policy_channels",
     "mpf_update_policy_master_location": "$(select_masterfiles.master_location)"
   },
But I can't seem to figure out what I'm missing. Any pointers would be greatly appreciated.

cf-agent -Kvd |grep policy_ch
   debug: Hashed policy file /var/cfengine/inputs/policy_channels/policy_channels.cf to MD5=0ca56c34c66d777b6e066144b3c7fe6c
   debug: Loading policy file /var/cfengine/inputs/policy_channels/policy_channels.cf
 verbose: BEGIN parsing file: /var/cfengine/inputs/policy_channels/policy_channels.cf
 verbose: END   parsing file: /var/cfengine/inputs/policy_channels/policy_channels.cf
   debug: Resolving classes and variables in 'bundle agent policy_channels'
   debug: DeRefCopyPromise(): promiser:'policy_channel'
 verbose: Skipping promise 'policy_channel' because constraint 'ifvarclass => isvariable("select_masterfiles.channel")' is not met
   debug: Hashed policy file /var/cfengine/inputs/policy_channels/select_masterfiles.cf to MD5=6400f82b0da98a6c38fc81a5433d963d
   debug: Loading policy file /var/cfengine/inputs/policy_channels/select_masterfiles.cf
 verbose: BEGIN parsing file: /var/cfengine/inputs/policy_channels/select_masterfiles.cf
 verbose: END   parsing file: /var/cfengine/inputs/policy_channels/select_masterfiles.cf
   debug: DeRefCopyPromise(): promiser:'policy_channel'
 verbose: Skipping promise 'policy_channel' because constraint 'ifvarclass => isvariable("select_masterfiles.channel")' is not met
   debug: Resolving classes and variables in 'bundle agent policy_channels'
   debug: DeRefCopyPromise(): promiser:'policy_channel'
 verbose: Skipping promise 'policy_channel' because constraint 'ifvarclass => isvariable("select_masterfiles.channel")' is not met
 verbose: Using bundlesequence =>  {"inventory_control","inventory_control","inventory_any","inventory_autorun","inventory_linux","inventory_lsb","inventory_redhat","inventory_os","def","policy_channels","services_autorun","autorun","cfe_internal_management"}
 verbose: B: BEGIN bundle policy_channels
   debug: DeRefCopyPromise(): promiser:'policy_channel'
 verbose: Skipping promise 'policy_channel' because constraint 'ifvarclass => isvariable("select_masterfiles.channel")' is not met
 verbose: P: BEGIN promise 'promise_policy_channels_cf_34' of type "methods" (pass 1)
 verbose: P:    Part of bundle: policy_channels
 verbose: P:    Stack path: /default/policy_channels/methods/'select_masterfiles'[1]
   debug: V: 'channel_file' => '/var/cfengine/state/policy_channel.txt'
   debug: V: 'channel_file' => '/var/cfengine/state/policy_channel.txt'
   debug: V: 'channel_file' => '/var/cfengine/state/policy_channel.txt'
 verbose: Additional promise info: version 'CFEngine Promises.cf 3.15.3' source path '/var/cfengine/inputs/policy_channels/policy_channels.cf' at line 34 comment 'Inventory policy channel'
   debug: DeRefCopyPromise(): promiser:'policy_channel'
 verbose: Skipping promise 'policy_channel' because constraint 'ifvarclass => isvariable("select_masterfiles.channel")' is not met
   debug: DeRefCopyPromise(): promiser:'policy_channel'
 verbose: Skipping promise 'policy_channel' because constraint 'ifvarclass => isvariable("select_masterfiles.channel")' is not met
 verbose: A: Bundle Accounting Summary for 'policy_channels' in namespace default
 verbose: A: Promises kept in 'policy_channels' = 1
 verbose: A: Promises not kept in 'policy_channels' = 0
 verbose: A: Promises repaired in 'policy_channels' = 0
 verbose: A: Aggregate compliance (promises kept/repaired) for bundle 'policy_channels' = 100.0%
 verbose: B: END bundle policy_channels

Mike Weilgart

unread,
Mar 26, 2021, 8:29:45 PM3/26/21
to Shane Ripley, help-cfengine
Hi Shane,

Glad you're going to use policy channels!  It looks like you're already using the latest code from https://gitlab.com/vsa-cfengine/policy-channels/, right?  And 3.15.3 binaries?

Check the start time for your cf-serverd process; has it been restarted since the server bundle policy_channel_access was loaded?  (That grants access to /var/cfengine/host_channel_assignments on the server.)

Is the policy_channel.txt file present on the host (successfully copied from the hub)?  (If it's not present, probably the cf-serverd process refused the files promise when it was trying to copy the file, but you could confirm in the verbose output.)

I think that grep command is filtering out key lines pertaining to the run of the policy channel code; possibly you could look at the full verbose output and then manually copy the portions relating to policy_channels and select_masterfiles?  In particular the context for the "   debug: V: 'channel_file' => '/var/cfengine/state/policy_channel.txt'" lines may be important.

Best,
—Mike Weilgart
--
You received this message because you are subscribed to the Google Groups "help-cfengine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to help-cfengin...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/help-cfengine/79436f80-8637-477e-9289-56d22944510en%40googlegroups.com.

Shane Ripley

unread,
Mar 27, 2021, 12:46:33 AM3/27/21
to help-cfengine
Hey Mike,

correct I'm using 3.15.3 and the latest files from your git repo.

The cfengine processes have been restarted a couple times after adding the policy-channel files and there isn't a policy_channel.txt file on the client.

Seems like I'm missing something obvious, but I'm not sure what..

[root@cfcanary001]# cf-agent -Kv  |grep select

 verbose: Skipping promise 'policy_channel' because constraint 'ifvarclass => isvariable("select_masterfiles.channel")' is not met
 verbose: BEGIN parsing file: /var/cfengine/inputs/policy_channels/select_masterfiles.cf
 verbose: END   parsing file: /var/cfengine/inputs/policy_channels/select_masterfiles.cf
 verbose: Skipping promise 'policy_channel' because constraint 'ifvarclass => isvariable("select_masterfiles.channel")' is not met
 verbose: Skipping promise 'policy_channel' because constraint 'ifvarclass => isvariable("select_masterfiles.channel")' is not met
 verbose: file_select result 'mtime' on '/var/cfengine/state/inventory-cfe_autorun_inventory_dmidecode-total-physical-memory-MB.txt' was 'false'

 verbose: Skipping promise 'policy_channel' because constraint 'ifvarclass => isvariable("select_masterfiles.channel")' is not met
 verbose: P:    Promiser/affected object: 'select_masterfiles'

 verbose: P:    Stack path: /default/policy_channels/methods/'select_masterfiles'[1]
 verbose: B: BEGIN bundle select_masterfiles
 verbose: A: Bundle Accounting Summary for 'select_masterfiles' in namespace default
 verbose: A: Zero promises executed for bundle 'select_masterfiles'
 verbose: Method 'select_masterfiles' verified
 verbose: B: END bundle select_masterfiles
 verbose: P: END methods promise (select_masterfiles)

 verbose: Skipping promise 'policy_channel' because constraint 'ifvarclass => isvariable("select_masterfiles.channel")' is not met
 verbose: Skipping promise 'policy_channel' because constraint 'ifvarclass => isvariable("select_masterfiles.channel")' is not met

Mike Weilgart

unread,
Mar 27, 2021, 1:37:36 AM3/27/21
to Shane Ripley, help-cfengine
Did you already run the update policy?

cf-agent -KIC -f update.cf

The output of that is more relevant here, as it is during that policy that the policy_channel.txt file should be copied down and used.

Best,
—Mike Weilgart

Shane Ripley

unread,
Mar 27, 2021, 9:25:03 AM3/27/21
to help-cfengine
Strangely, there isn't any output from the cf-agent on the client.

[root@lnx009 inputs]# cf-agent -KIC -f update.cf
[root@lnx009 inputs]#

From the policy hub there is a some output:
[root@dcfe-vl201 inputs]# cf-agent -KIC update.cf
    info: Executing 'no timeout' ... '/opt/cfengine/masterfiles-stage.sh'
    info: Command related to promiser '/opt/cfengine/masterfiles-stage.sh' returned code defined as promise kept 0
    info: Completed execution of '/opt/cfengine/masterfiles-stage.sh'
[root@dcfe-vl201 inputs]#

Aleksey Tsalolikhin

unread,
Mar 27, 2021, 10:24:38 AM3/27/21
to Shane Ripley, help-cfengine
On Sat, Mar 27, 2021 at 6:25 AM Shane Ripley <srip...@gmail.com> wrote:
>
> Strangely, there isn't any output from the cf-agent on the client.
>
> [root@lnx009 inputs]# cf-agent -KIC -f update.cf
> [root@lnx009 inputs]#

I would expect that if the client is up to date already and so there
is nothing to do.

Please check /var/cfengine/state/policy_channel.txt on the client.
That's where https://gitlab.com/vsa-cfengine/policy-channels/-/blob/8344a90d7fc2ae1ef5637b3106663b16c5d369f1/policy_channels/update_policy_channels.cf#L34-41
would put the channel assignment file.

If there is nothing there, would you like to run that update policy
again on the client with verbose mode and share the results?

cf-agent -K -v -f update.cf

> From the policy hub there is a some output:
> [root@dcfe-vl201 inputs]# cf-agent -KIC update.cf
> info: Executing 'no timeout' ... '/opt/cfengine/masterfiles-stage.sh'
> info: Command related to promiser '/opt/cfengine/masterfiles-stage.sh' returned code defined as promise kept 0
> info: Completed execution of '/opt/cfengine/masterfiles-stage.sh'
> [root@dcfe-vl201 inputs]#

That looks normal.

Best,
Aleksey

Shane Ripley

unread,
Mar 27, 2021, 11:06:43 AM3/27/21
to help-cfengine
Just for completeness, the hub does have 2 policy channels:

[root@dcfe-vl201 ~]# cat /var/cfengine/host_channel_assignments/lnx009.mm-corp.net.txt                                                                                                                                                      
markmonitor-dev

[root@dcfe-vl201 ~]# ls -l /var/cfengine/policy_channels/
total 8
drwx------. 11 root root 4096 Mar 27 10:53 hub
drwx------. 11 root root 4096 Mar 27 10:53 markmonitor-dev

and on the client:
[root@lnx009 inputs]# cat /var/cfengine/inputs/policy_version.dat
master

So at this point shouldn't the client re-point itself to the marmonitor-dev channel on the next upate?

I've deleted the cf_promises_validated file on the hub a couple times and ran a manual update but that didnt' change anything.


[root@lnx009 inputs]# cf-agent -K -v -f update.cf
 verbose: Could not open extension plugin 'cfengine-enterprise.so' from '/var/cfengine/lib/cfengine-enterprise.so': (not installed)
 verbose:  CFEngine Core 3.15.3
 verbose: ----------------------------------------------------------------
 verbose:  Initialization preamble
 verbose: ----------------------------------------------------------------
 verbose: Default port for cfengine is 5308
 verbose: Work directory is /var/cfengine
 verbose: Making sure that internal directories are private...
 verbose: Checking integrity of the trusted workdir
 verbose: Checking integrity of the state database
 verbose: Checking integrity of the module directory
 verbose: Checking integrity of the PKI directory
 verbose: Loaded private key at '/var/cfengine/ppkeys/localhost.priv'
 verbose: Loaded public key '/var/cfengine/ppkeys/localhost.pub'
 verbose: Reference time set to 'Sat Mar 27 11:00:42 2021'
 verbose: CFEngine Core 3.15.3 - ready
 verbose: ----------------------------------------------------------------
 verbose:  Environment discovery
 verbose: ----------------------------------------------------------------
 verbose: Host name is: lnx009.mm-corp.net
 verbose: Operating System Type is linux
 verbose: Operating System Release is 5.4.17-2011.7.4.el8uek.x86_64
 verbose: Architecture = x86_64
 verbose: CFEngine detected operating system description is linux
 verbose: The time is now Sat Mar 27 11:00:42 2021
 verbose: Additional hard class defined as: 64_bit
 verbose: Additional hard class defined as: linux_5_4_17_2011_7_4_el8uek_x86_64
 verbose: Additional hard class defined as: linux_x86_64
 verbose: Additional hard class defined as: linux_x86_64_5_4_17_2011_7_4_el8uek_x86_64
 verbose: GNU autoconf class from compile time: compiled_on_linux_gnu
 verbose: Address given by nameserver: 10.112.0.102
 verbose: No interface exception file /var/cfengine/inputs/ignore_interfaces.rx
 verbose: Interface 1: lo
 verbose: Interface 2: ens192
 verbose: IP address of host set to 10.112.0.102
 verbose: Trying to locate my IPv6 address
 verbose: Found IPv6 address fe80::250:56ff:feac:75b6
 verbose: Reading netstat info from /proc/net/netstat
 verbose: Reading (null) info from /proc/net/route
 verbose: Reading (null) info from /proc/net/snmp6
 verbose: Reading (null) info from /proc/net/ipv6_route
 verbose: Reading (null) info from /proc/net/if_inet6
 verbose: Reading interfaces_data info from /proc/net/dev
 verbose: Looking for environment from cf-monitord...
 verbose: Loading environment...
 verbose: Environment data loaded
 verbose: This appears to be a redhat (or redhat-based) system.
 verbose: Looking for redhat linux info in 'Red Hat Enterprise Linux release 8.3 (Ootpa)'
 verbose: This appears to be Oracle Linux
 verbose: Found 2 processors
 verbose: Loading persistent classes
 verbose: Persistent class 'cfengine_out_high_ldt' expired
 verbose: Persistent class 'io_writes_high_ldt' for 4 more minutes
 verbose: Persistent class 'messages_high_dev2' for 9 more minutes
 verbose: Persistent class 'messages_high_ldt' for 9 more minutes
 verbose: Persistent class 'otherprocs_high_ldt' for 9 more minutes
 verbose: Persistent class 'ssh_in_high_ldt' for 9 more minutes
 verbose: This agent is bootstrapped to: dcfe-vl201.mm-corp.net
 verbose: Successfully read bootstrap ID 'swOR2a5dUZCnZ5OUMUwrdKuGqS3YknqRux39Pdnl' from file '/var/cfengine/bootstrap_id.dat'
 verbose: Loading JSON augments from '/var/cfengine/inputs/def.json' (input dir '/var/cfengine/inputs', input file '/var/cfengine/inputs/update.cf'
 verbose: Loaded augments file '/var/cfengine/inputs/def.json', installing contents
 verbose: Installing augments variable 'def.control_agent_maxconnections=10' from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments slist variable 'def.trustkeysfrom' from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments slist variable 'def.acl' from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments slist variable 'def.allowconnects' from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments variable 'def.mailfrom=cfengine@lnx009.$(def.domain)' from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments variable 'def.dir_policyfiles=/var/cfengine/policyfiles' from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments class 'services_autorun' (checked array entry 'any') from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments class 'client_initiated_reporting_enabled' (checked array entry 'any') from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments class 'cfengine_internal_verify_update_transfers' (checked array entry 'any') from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments class 'cfengine_internal_encrypt_transfers' (checked array entry 'any') from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments class 'cfengine_internal_purge_policies' (checked array entry 'any') from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments class 'mpf_augments_control_enabled' (checked array entry 'any') from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments class 'cfengine_recommendations_disabled' (checked array entry 'any') from file '/var/cfengine/inputs/def.json'
 verbose: Installing augments def.augments_inputs from file '/var/cfengine/inputs/def.json'
 verbose: Loaded augments file '/var/cfengine/inputs/markmonitor/markmonitor.json', installing contents
 verbose: Installing augments variable 'def.control_agent_maxconnections=10' from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Installing augments slist variable 'def.trustkeysfrom' from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Installing augments slist variable 'def.acl' from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Installing augments slist variable 'def.allowconnects' from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Installing augments variable 'def.dir_policyfiles=/var/cfengine/policyfiles' from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Installing augments class 'services_autorun' (checked array entry 'any') from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Installing augments class 'client_initiated_reporting_enabled' (checked array entry 'any') from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Installing augments class 'cfengine_internal_verify_update_transfers' (checked array entry 'any') from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Installing augments class 'cfengine_internal_encrypt_transfers' (checked array entry 'any') from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Installing augments class 'cfengine_internal_purge_policies' (checked array entry 'any') from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Installing augments class 'cfengine_internal_masterfiles_update' (checked array entry 'any') from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Installing augments class 'mpf_augments_control_enabled' (checked array entry 'any') from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Installing augments def.augments_inputs from file '/var/cfengine/inputs/markmonitor/markmonitor.json'
 verbose: Completed augmenting from file '$(sys.inputdir)/markmonitor/markmonitor.json'
 verbose: Installing augments slist variable 'def.trustkeysfrom' from file '/var/cfengine/inputs/compumark/compumark.json'
 verbose: Installing augments slist variable 'def.acl' from file '/var/cfengine/inputs/compumark/compumark.json'
 verbose: Installing augments slist variable 'def.allowconnects' from file '/var/cfengine/inputs/compumark/compumark.json'
 verbose: Installing augments variable 'def.dir_policyfiles=/var/cfengine/policyfiles' from file '/var/cfengine/inputs/compumark/compumark.json'
 verbose: Installing augments class 'services_autorun' (checked array entry 'any') from file '/var/cfengine/inputs/compumark/compumark.json'
 verbose: Installing augments class 'client_initiated_reporting_enabled' (checked array entry 'any') from file '/var/cfengine/inputs/compumark/compumark.json'
 verbose: Installing augments class 'cfengine_internal_verify_update_transfers' (checked array entry 'any') from file '/var/cfengine/inputs/compumark/compumark.json'
 verbose: Installing augments class 'cfengine_internal_encrypt_transfers' (checked array entry 'any') from file '/var/cfengine/inputs/compumark/compumark.json'
 verbose: Installing augments class 'cfengine_internal_purge_policies' (checked array entry 'any') from file '/var/cfengine/inputs/compumark/compumark.json'
 verbose: Installing augments class 'cfengine_internal_masterfiles_update' (checked array entry 'any') from file '/var/cfengine/inputs/compumark/compumark.json'
 verbose: Installing augments class 'mpf_augments_control_enabled' (checked array entry 'any') from file '/var/cfengine/inputs/compumark/compumark.json'
 verbose: Completed augmenting from file '$(sys.inputdir)/compumark/compumark.json'
 verbose: Input file '/var/cfengine/inputs/update.cf' has changed since the last policy read attempt (file is newer than previous)
 verbose: Input file is changed since last validation, validating it
 verbose: Verifying the syntax of the inputs...
 verbose: Checking policy with command '"/var/cfengine/bin/cf-promises" -c "/var/cfengine/inputs/update.cf"'
 verbose: Saved policy validated marker file '/var/cfengine/state/cf_promises_validated'
 verbose: ----------------------------------------------------------------
 verbose:  Loading policy
 verbose: ----------------------------------------------------------------
 verbose: BEGIN parsing file: /var/cfengine/inputs/update.cf
 verbose: END   parsing file: /var/cfengine/inputs/update.cf
 verbose: Skipping promise 'desired_pkg_data' because constraint 'if => fileexists("$(desired_pkg_data_path)")' is not met
 verbose: SET ignore_missing_bundles $(update_def.control_common_ignore_missing_bundles)
 verbose: SET ignore_missing_inputs $(update_def.control_common_ignore_missing_inputs)
 verbose: BEGIN parsing file: /var/cfengine/inputs/cfe_internal/update/lib.cf
 verbose: END   parsing file: /var/cfengine/inputs/cfe_internal/update/lib.cf
 verbose: BEGIN parsing file: /var/cfengine/inputs/cfe_internal/update/systemd_units.cf
 verbose: END   parsing file: /var/cfengine/inputs/cfe_internal/update/systemd_units.cf
 verbose: BEGIN parsing file: /var/cfengine/inputs/controls/update_def.cf
 verbose: END   parsing file: /var/cfengine/inputs/controls/update_def.cf
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: C:     +  Global class: sys_policy_hub_port_exists
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: BEGIN parsing file: /var/cfengine/inputs/controls/update_def_inputs.cf
 verbose: END   parsing file: /var/cfengine/inputs/controls/update_def_inputs.cf
 verbose: BEGIN parsing file: /var/cfengine/inputs/cfe_internal/update/cfe_internal_update_from_repository.cf
 verbose: END   parsing file: /var/cfengine/inputs/cfe_internal/update/cfe_internal_update_from_repository.cf
 verbose: Skipping loading of duplicate policy file /var/cfengine/inputs/cfe_internal/update/lib.cf
 verbose: BEGIN parsing file: /var/cfengine/inputs/cfe_internal/update/update_policy.cf
 verbose: END   parsing file: /var/cfengine/inputs/cfe_internal/update/update_policy.cf
 verbose: findfiles pattern '/usr/bin/python[23]' found match '/usr/bin/python3'
 verbose: BEGIN parsing file: /var/cfengine/inputs/cfe_internal/update/update_processes.cf
 verbose: END   parsing file: /var/cfengine/inputs/cfe_internal/update/update_processes.cf
 verbose: Skipping promise 'agents_to_be_disabled' because constraint 'ifvarclass => isvariable("def.agents_to_be_disabled")' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: getvalues: argument 'default:cfe_internal_update_processes.disabled' does not resolve to a container or a list or a CFEngine array
 verbose: Running full policy integrity checks
 verbose: ----------------------------------------------------------------
 verbose: PREFIX LEGEND:
 verbose:  V: variable or parameter new definition in scope
 verbose:  C: class/context new definition
 verbose:  B: bundle start/end execution marker
 verbose:  P: promise execution output
 verbose:  A: accounting output
 verbose:  T: time measurement for stated object (promise or bundle)
 verbose: ----------------------------------------------------------------
 verbose: ----------------------------------------------------------------
 verbose: BEGIN Discovered hard classes:
 verbose: C: discovered hard class 10_112_0_102
 verbose: C: discovered hard class 127_0_0_1
 verbose: C: discovered hard class 2_cpus
 verbose: C: discovered hard class 64_bit
 verbose: C: discovered hard class Day27
 verbose: C: discovered hard class GMT_Afternoon
 verbose: C: discovered hard class GMT_Day27
 verbose: C: discovered hard class GMT_Hr15
 verbose: C: discovered hard class GMT_Hr15_Q1
 verbose: C: discovered hard class GMT_Lcycle_2
 verbose: C: discovered hard class GMT_March
 verbose: C: discovered hard class GMT_Min00
 verbose: C: discovered hard class GMT_Min00_05
 verbose: C: discovered hard class GMT_Q1
 verbose: C: discovered hard class GMT_Saturday
 verbose: C: discovered hard class GMT_Yr2021
 verbose: C: discovered hard class Hr11
 verbose: C: discovered hard class Hr11_Q1
 verbose: C: discovered hard class Lcycle_2
 verbose: C: discovered hard class March
 verbose: C: discovered hard class Min00
 verbose: C: discovered hard class Min00_05
 verbose: C: discovered hard class Morning
 verbose: C: discovered hard class PK_MD5_25991cd8b0bca8b2a6358be7af4f0e1a
 verbose: C: discovered hard class Q1
 verbose: C: discovered hard class Saturday
 verbose: C: discovered hard class Yr2021
 verbose: C: discovered hard class agent
 verbose: C: discovered hard class any
 verbose: C: discovered hard class cfengine
 verbose: C: discovered hard class cfengine_3
 verbose: C: discovered hard class cfengine_3_15
 verbose: C: discovered hard class cfengine_3_15_3
 verbose: C: discovered hard class cfengine_in_high
 verbose: C: discovered hard class cfengine_internal_encrypt_transfers
 verbose: C: discovered hard class cfengine_internal_masterfiles_update
 verbose: C: discovered hard class cfengine_internal_purge_policies
 verbose: C: discovered hard class cfengine_internal_verify_update_transfers
 verbose: C: discovered hard class cfengine_out_low
 verbose: C: discovered hard class cfengine_recommendations_disabled
 verbose: C: discovered hard class client_initiated_reporting_enabled
 verbose: C: discovered hard class community_edition
 verbose: C: discovered hard class compiled_on_linux_gnu
 verbose: C: discovered hard class cpu0_high
 verbose: C: discovered hard class cpu1_high
 verbose: C: discovered hard class cpu_high
 verbose: C: discovered hard class diskfree_high_normal
 verbose: C: discovered hard class entropy_misc_in_low
 verbose: C: discovered hard class entropy_misc_out_low
 verbose: C: discovered hard class entropy_postgresql_in_low
 verbose: C: discovered hard class entropy_postgresql_out_low
 verbose: C: discovered hard class entropy_ssh_in_high
 verbose: C: discovered hard class fe80__250_56ff_feac_75b6
 verbose: C: discovered hard class feature
 verbose: C: discovered hard class feature_def
 verbose: C: discovered hard class feature_def_json
 verbose: C: discovered hard class feature_def_json_preparse
 verbose: C: discovered hard class feature_tls
 verbose: C: discovered hard class feature_tls_1
 verbose: C: discovered hard class feature_tls_1_0
 verbose: C: discovered hard class feature_tls_1_1
 verbose: C: discovered hard class feature_tls_1_2
 verbose: C: discovered hard class feature_tls_1_3
 verbose: C: discovered hard class inform_mode
 verbose: C: discovered hard class io_writes_high
 verbose: C: discovered hard class io_writtendata_high
 verbose: C: discovered hard class ipv4_10
 verbose: C: discovered hard class ipv4_10_112
 verbose: C: discovered hard class ipv4_10_112_0
 verbose: C: discovered hard class ipv4_10_112_0_102
 verbose: C: discovered hard class ipv4_127
 verbose: C: discovered hard class ipv4_127_0
 verbose: C: discovered hard class ipv4_127_0_0
 verbose: C: discovered hard class ipv4_127_0_0_1
 verbose: C: discovered hard class ipv4_gw_10_112_0_250
 verbose: C: discovered hard class ipv6_fe80__250_56ff_feac_75b6
 verbose: C: discovered hard class linux
 verbose: C: discovered hard class linux_5_4_17_2011_7_4_el8uek_x86_64
 verbose: C: discovered hard class linux_x86_64
 verbose: C: discovered hard class linux_x86_64_5_4_17_2011_7_4_el8uek_x86_64
 verbose: C: discovered hard class linux_x86_64_5_4_17_2011_7_4_el8uek_x86_64__2_SMP_Fri_Oct_2_14_39_04_PDT_2020
 verbose: C: discovered hard class lnx009
 verbose: C: discovered hard class lnx009_mm_corp_net
 verbose: C: discovered hard class loadavg_high
 verbose: C: discovered hard class mac_00_50_56_ac_75_b6
 verbose: C: discovered hard class mem_cached_low_normal
 verbose: C: discovered hard class mem_free_high_normal
 verbose: C: discovered hard class mem_freeswap_high_normal
 verbose: C: discovered hard class mem_swap_high_normal
 verbose: C: discovered hard class mem_total_high_normal
 verbose: C: discovered hard class messages_high_dev1
 verbose: C: discovered hard class messages_high_dev2
 verbose: C: discovered hard class messages_high_ldt
 verbose: C: discovered hard class mm_corp_net
 verbose: C: discovered hard class mpf_augments_control_enabled
 verbose: C: discovered hard class net
 verbose: C: discovered hard class net_iface_ens192
 verbose: C: discovered hard class net_iface_lo
 verbose: C: discovered hard class ol
 verbose: C: discovered hard class ol_8
 verbose: C: discovered hard class ol_8_3
 verbose: C: discovered hard class oracle
 verbose: C: discovered hard class oracle_8
 verbose: C: discovered hard class oracle_8_3
 verbose: C: discovered hard class otherprocs_high
 verbose: C: discovered hard class otherprocs_high_ldt
 verbose: C: discovered hard class redhat
 verbose: C: discovered hard class redhat_8
 verbose: C: discovered hard class redhat_8_3
 verbose: C: discovered hard class rootprocs_high_normal
 verbose: C: discovered hard class services_autorun
 verbose: C: discovered hard class ssh_in_high
 verbose: C: discovered hard class ssh_in_high_ldt
 verbose: C: discovered hard class systemd
 verbose: C: discovered hard class users_high
 verbose: C: discovered hard class verbose_mode
 verbose: C: discovered hard class x86_64
 verbose: END Discovered hard classes
 verbose: ----------------------------------------------------------------
 verbose: BEGIN initial soft classes:
 verbose: C: added soft class io_writes_high_ldt
 verbose: C: added soft class sys_policy_hub_port_exists
 verbose: END initial soft classes
 verbose: ----------------------------------------------------------------
 verbose:  Preliminary variable/class-context convergence
 verbose: ----------------------------------------------------------------
 verbose: Skipping promise '$(desired_pkg_data_path)' because constraint 'if => isnewerthan("$(binary_upgrade_entry)","$(desired_pkg_data_path)")' is not met
 verbose: Skipping promise 'desired_pkg_data' because constraint 'if => fileexists("$(desired_pkg_data_path)")' is not met
 verbose: reglist: argument 'default:u_systemd_services.systemd_service_info' does not resolve to a container or a list or a CFEngine array
 verbose: reglist: argument 'default:u_systemd_services.systemd_service_info' does not resolve to a container or a list or a CFEngine array
 verbose: reglist: argument 'default:u_systemd_services.systemd_service_info' does not resolve to a container or a list or a CFEngine array
 verbose: reglist: argument 'default:u_systemd_services.systemd_service_info' does not resolve to a container or a list or a CFEngine array
 verbose: reglist: argument 'default:u_systemd_services.systemd_service_info' does not resolve to a container or a list or a CFEngine array
 verbose: reglist: argument 'default:u_systemd_services.systemd_service_info' does not resolve to a container or a list or a CFEngine array
 verbose: reglist: argument 'default:u_systemd_services.systemd_service_info' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise '$(systemctl)' because constraint 'if => classmatch("cfe_systemd_service_unit_.*_repaired")' is not met
 verbose: returnszero ran '/bin/systemctl --quiet is-active cf-execd' successfully and it returned zero
 verbose: Caching result for function 'returnszero("$(systemctl) --quiet is-active $(service_units)","noshell")'
 verbose: Skipping promise '$(systemctl)' because constraint 'if => and(classify("cfe_systemd_service_unit_$(service_units)_repaired"),returnszero("$(systemctl) --quiet is-active $(service_units)","noshell"))' is not met
 verbose: returnszero ran '/bin/systemctl --quiet is-active cf-serverd' successfully and it returned zero
 verbose: Caching result for function 'returnszero("$(systemctl) --quiet is-active $(service_units)","noshell")'
 verbose: Skipping promise '$(systemctl)' because constraint 'if => and(classify("cfe_systemd_service_unit_$(service_units)_repaired"),returnszero("$(systemctl) --quiet is-active $(service_units)","noshell"))' is not met
 verbose: returnszero ran '/bin/systemctl --quiet is-active cf-monitord' successfully and it returned zero
 verbose: Caching result for function 'returnszero("$(systemctl) --quiet is-active $(service_units)","noshell")'
 verbose: Skipping promise '$(systemctl)' because constraint 'if => and(classify("cfe_systemd_service_unit_$(service_units)_repaired"),returnszero("$(systemctl) --quiet is-active $(service_units)","noshell"))' is not met
 verbose: returnszero ran '/bin/systemctl --quiet is-active cfengine3' successfully and it returned zero
 verbose: Caching result for function 'returnszero("$(systemctl) --quiet is-active $(service_units)","noshell")'
 verbose: Skipping promise '$(systemctl)' because constraint 'if => and(classify("cfe_systemd_service_unit_$(service_units)_repaired"),returnszero("$(systemctl) --quiet is-active $(service_units)","noshell"))' is not met
 verbose: Skipping iteration since variable 'disabled' resolves to an empty list
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'Found user specified update bundle.' because constraint 'if => have_user_specified_update_bundle' is not met
 verbose: Skipping promise 'User specified update bundle: $(def.mpf_update_policy_bundle)' because constraint 'if => have_user_specified_update_bundle' is not met
 verbose: Skipping promise 'User specified update bundle MISSING! Falling back to $(default_policy_update_bundle).' because constraint 'if => and("have_user_specified_update_bundle","missing_user_specified_update_bundle")' is not met
 verbose: findfiles pattern '/usr/bin/python[23]' found match '/usr/bin/python3'
 verbose: Skipping promise '$(symlink_path)' because constraint 'if => not(isvariable("python"))' is not met
 verbose: Skipping promise 'agents_to_be_disabled' because constraint 'ifvarclass => isvariable("def.agents_to_be_disabled")' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: getvalues: argument 'default:cfe_internal_update_processes.disabled' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping iteration since variable 'agents_to_be_disabled' resolves to an empty list
 verbose: Skipping promise 'CHECKING FOR PERSISTENTLY DISABLED CFE AGENTS' because constraint 'ifvarclass => canonify("persistent_disable_$(all_agents)")' is not met
 verbose: Skipping promise 'CHECKING FOR PERSISTENTLY DISABLED CFE AGENTS' because constraint 'ifvarclass => canonify("persistent_disable_$(all_agents)")' is not met
 verbose: Skipping promise 'CHECKING FOR PERSISTENTLY DISABLED CFE AGENTS' because constraint 'ifvarclass => canonify("persistent_disable_$(all_agents)")' is not met
 verbose: Skipping promise 'CHECKING FOR PERSISTENTLY DISABLED CFE AGENTS' because constraint 'ifvarclass => canonify("persistent_disable_$(all_agents)")' is not met
 verbose: Skipping promise '$(cfe_internal_process_knowledge.bindir)/$(process)' because constraint 'ifvarclass => disable_$(cprocess)' is not met
 verbose: Skipping promise '$(cfe_internal_process_knowledge.bindir)/$(process)' because constraint 'ifvarclass => enable_$(cprocess)' is not met
 verbose: Skipping promise 'The process $(process) is persistently disabled.  Run with '-Dclear_persistent_disable_$(cprocess)' to re-enable it.' because constraint 'ifvarclass => and("persistent_disable_$(cprocess)",isvariable("sys.$(cprocess)"))' is not met
 verbose: Skipping promise 'The process $(process) has been re-enabled.  Run with '-Dset_persistent_disable_$(cprocess)' to disable it persistently again.' because constraint 'ifvarclass => and("clear_persistent_disable_$(cprocess)",isvariable("sys.$(cprocess)"))' is not met
 verbose: Skipping promise 'The process $(process) has been disabled persistently.  Run with '-Dclear_persistent_disable_$(cprocess)' to re-enable it.' because constraint 'ifvarclass => set_persistent_disable_$(cprocess)' is not met
 verbose: returnszero ran '/bin/systemctl -q is-active cfengine3' successfully and it returned zero
 verbose: Caching result for function 'returnszero("/bin/systemctl -q is-active cfengine3","noshell")'
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: Skipping promise 'desired_pkg_data' because constraint 'if => fileexists("$(desired_pkg_data_path)")' is not met
 verbose: findfiles pattern '/usr/bin/python[23]' found match '/usr/bin/python3'
 verbose: Skipping promise 'agents_to_be_disabled' because constraint 'ifvarclass => isvariable("def.agents_to_be_disabled")' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: getvalues: argument 'default:cfe_internal_update_processes.disabled' does not resolve to a container or a list or a CFEngine array
 verbose: SET ignore_missing_bundles $(update_def.control_common_ignore_missing_bundles)
 verbose: SET ignore_missing_inputs $(update_def.control_common_ignore_missing_inputs)
 verbose: Setting minimum acceptable TLS version: 1.1
 verbose: Using the OpenSSL's default cipher list
 verbose: Setting ifelapsed to 1
 verbose: Setting skipidentify to 'true'
 verbose: ----------------------------------------------------------------
 verbose:  Begin policy/promise evaluation
 verbose: ----------------------------------------------------------------
 verbose: Using bundlesequence =>  {"update_def","cfe_internal_update_policy","cfe_internal_update_from_repository","cfengine_internal_standalone_self_upgrade","cfe_internal_update_processes"}
 verbose: B: *****************************************************************
 verbose: B: BEGIN bundle update_def
 verbose: B: *****************************************************************
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 1)
 verbose: V:     Computing value of 'current_version'
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: V:     Computing value of 'tbse'
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: V:     Computing value of 'bundlesequence_end'
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: V:     Computing value of 'bundlesequence_end'
 verbose: V:     Computing value of 'augments_inputs'
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: V:     Computing value of 'masterfiles_perms_mode'
 verbose: V:     Computing value of 'dc_scripts'
 verbose: V:     Computing value of 'DCWORKFLOW'
 verbose: V:     Computing value of 'local_masterfiles_git'
 verbose: V:     Computing value of 'cf_git'
 verbose: V:     Computing value of 'cf_apache_user'
 verbose: V:     Computing value of 'cf_apache_group'
 verbose: V:     Computing value of 'mpf_update_policy_master_location'
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: V:     Computing value of 'policy_servers'
 verbose: V:     Computing value of 'control_common_ignore_missing_bundles'
 verbose: V:     Computing value of 'control_common_ignore_missing_inputs'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 1)
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 2)
 verbose: V:     Computing value of 'current_version'
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: V:     Computing value of 'tbse'
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: V:     Computing value of 'bundlesequence_end'
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: V:     Computing value of 'bundlesequence_end'
 verbose: V:     Computing value of 'augments_inputs'
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: V:     Computing value of 'masterfiles_perms_mode'
 verbose: V:     Computing value of 'dc_scripts'
 verbose: V:     Computing value of 'DCWORKFLOW'
 verbose: V:     Computing value of 'local_masterfiles_git'
 verbose: V:     Computing value of 'cf_git'
 verbose: V:     Computing value of 'cf_apache_user'
 verbose: V:     Computing value of 'cf_apache_group'
 verbose: V:     Computing value of 'mpf_update_policy_master_location'
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: V:     Computing value of 'policy_servers'
 verbose: V:     Computing value of 'control_common_ignore_missing_bundles'
 verbose: V:     Computing value of 'control_common_ignore_missing_inputs'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 2)
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 3)
 verbose: V:     Computing value of 'current_version'
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: V:     Computing value of 'tbse'
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: While setting variable 'tbse' in bundle 'update_def', function 'mergedata' failed - skipping
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: While setting variable 'tbse' in bundle 'update_def', function 'mergedata' failed - skipping
 verbose: V:     Computing value of 'bundlesequence_end'
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: V:     Computing value of 'bundlesequence_end'
 verbose: V:     Computing value of 'augments_inputs'
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: V:     Computing value of 'masterfiles_perms_mode'
 verbose: V:     Computing value of 'dc_scripts'
 verbose: V:     Computing value of 'DCWORKFLOW'
 verbose: V:     Computing value of 'local_masterfiles_git'
 verbose: V:     Computing value of 'cf_git'
 verbose: V:     Computing value of 'cf_apache_user'
 verbose: V:     Computing value of 'cf_apache_group'
 verbose: V:     Computing value of 'mpf_update_policy_master_location'
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: V:     Computing value of 'policy_servers'
 verbose: V:     Computing value of 'control_common_ignore_missing_bundles'
 verbose: While setting variable 'control_common_ignore_missing_bundles' in bundle 'update_def', function 'ifelse' failed - skipping
 verbose: While setting variable 'control_common_ignore_missing_bundles' in bundle 'update_def', function 'ifelse' failed - skipping
 verbose: V:     Computing value of 'control_common_ignore_missing_inputs'
 verbose: While setting variable 'control_common_ignore_missing_inputs' in bundle 'update_def', function 'ifelse' failed - skipping
 verbose: While setting variable 'control_common_ignore_missing_inputs' in bundle 'update_def', function 'ifelse' failed - skipping
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 3)
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: While setting variable 'tbse' in bundle 'update_def', function 'mergedata' failed - skipping
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: While setting variable 'control_common_ignore_missing_bundles' in bundle 'update_def', function 'ifelse' failed - skipping
 verbose: While setting variable 'control_common_ignore_missing_inputs' in bundle 'update_def', function 'ifelse' failed - skipping
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: mergedata: argument 'default:def.control_common_update_bundlesequence_end' does not resolve to a container or a list or a CFEngine array
 verbose: While setting variable 'tbse' in bundle 'update_def', function 'mergedata' failed - skipping
 verbose: getvalues: argument 'default:update_def.tbse' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'augments_inputs' because constraint 'ifvarclass => isvariable("def.update_inputs")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("override_data_input_name_patterns"),"!feature_def_json_preparse")' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(and(not(isvariable("override_data_acl")),not(isvariable("input_name_patterns"))),not(isvariable("def.input_name_patterns")))' is not met
 verbose: Skipping promise 'input_name_patterns' because constraint 'ifvarclass => and(isvariable("def.input_name_patterns"),not(isvariable("input_name_patterns")))' is not met
 verbose: Skipping promise 'mpf_update_policy_master_location' because constraint 'if => isvariable("def.mpf_update_policy_master_location")' is not met
 verbose: While setting variable 'control_common_ignore_missing_bundles' in bundle 'update_def', function 'ifelse' failed - skipping
 verbose: While setting variable 'control_common_ignore_missing_inputs' in bundle 'update_def', function 'ifelse' failed - skipping
 verbose: A: ...................................................
 verbose: A: Bundle Accounting Summary for 'update_def' in namespace default
 verbose: A: Zero promises executed for bundle 'update_def'
 verbose: A: ...................................................
 verbose: B: *****************************************************************
 verbose: B: END bundle update_def
 verbose: B: *****************************************************************
 verbose: B: *****************************************************************
 verbose: B: BEGIN bundle cfe_internal_update_policy
 verbose: B: *****************************************************************
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 1)
 verbose: V:     Computing value of 'default_policy_update_bundle'
 verbose: V:     Computing value of 'found_matching_user_specified_bundle'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 1)
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'promise_update_policy_cf_61' of type "methods" (pass 1)
 verbose: P:    Promiser/affected object: 'Stock policy update'
 verbose: P:    Part of bundle: cfe_internal_update_policy
 verbose: P:    Base context class: !have_found_user_specified_update_bundle
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'[1]
 verbose: B: *****************************************************************
 verbose: B: BEGIN bundle cfe_internal_update_policy_cpv
 verbose: B: *****************************************************************
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 1)
 verbose: V:     Computing value of 'inputs_dir'
 verbose: V:     Computing value of 'master_location'
 verbose: V:     Computing value of 'modules_dir_source'
 verbose: V:     Computing value of 'plugins_dir_source'
 verbose: V:     Computing value of 'file_check'
 verbose: V:     Computing value of 'ppkeys_file'
 verbose: V:     Computing value of 'postgresdb_dir'
 verbose: V:     Computing value of 'postgresdb_log'
 verbose: V:     Computing value of 'python_symlink'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 1)
 verbose: C:     +  Private class: local_files_ok
 verbose: C:     +  Private class: cfe_internal_trigger
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'cfe_internal_update_policy_check_valid_update' of type "files" (pass 1)
 verbose: P:    Promiser/affected object: '/var/cfengine/inputs/cf_promises_validat'
 verbose: P:    Part of bundle: cfe_internal_update_policy_cpv
 verbose: P:    Base context class: !am_policy_hub
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/files/'/var/cfengine/inputs/cf_promises_validated'[1]
 verbose: P:
 verbose: P:    Comment:  Check whether a validation stamp is available for a new policy update to reduce the distributed load
 verbose: File '/var/cfengine/inputs/cf_promises_validated' copy_from 'masterfiles/cf_promises_validated'
 verbose: FindIdle: no existing connection to '10.112.0.53' is established.
 verbose: Connecting to host 10.112.0.53, port 5308 as address 10.112.0.53
 verbose: Waiting to connect...
 verbose: Setting socket timeout to 30 seconds.
 verbose: Connected to host 10.112.0.53 address 10.112.0.53 port 5308 (socket descriptor 3)
 verbose: TLS version negotiated:  TLSv1.3; Cipher: TLS_AES_256_GCM_SHA384,TLSv1.3
 verbose: TLS session established, checking trust...
 verbose: Received public key compares equal to the one we have stored
 verbose: Server is TRUSTED, received key 'MD5=ff917a9d285ee3dfa35762e58eba6e57' MATCHES stored one.
 verbose: Destination file '/var/cfengine/inputs/cf_promises_validated' already exists
 verbose: Additional promise info: handle 'cfe_internal_update_policy_check_valid_update' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 232 comment 'Check whether a validation stamp is available for a new policy update to reduce the distributed load'
 verbose: File permissions on '/var/cfengine/inputs/cf_promises_validated' as promised
 verbose: Additional promise info: handle 'cfe_internal_update_policy_check_valid_update' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 232 comment 'Check whether a validation stamp is available for a new policy update to reduce the distributed load'
 verbose: File '/var/cfengine/inputs/cf_promises_validated' is an up to date copy of source
 verbose: Handling file existence constraints on '/var/cfengine/inputs/cf_promises_validated'
 verbose: A: Promise was KEPT
 verbose: P: END files promise (/var/cfengine/inputs/cf_promis...)
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'cfe_internal_update_policy_files_update_modules' of type "files" (pass 1)
 verbose: P:    Promiser/affected object: '/var/cfengine/modules'
 verbose: P:    Part of bundle: cfe_internal_update_policy_cpv
 verbose: P:    Base context class: !am_policy_hub
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/files/'/var/cfengine/modules'[1]
 verbose: P:
 verbose: P:    Comment:  Always update modules files on client side
 verbose: Filename '/var/cfengine/modules/.' is classified as ignorable, skipping
 verbose: Filename '/var/cfengine/modules/..' is classified as ignorable, skipping
 verbose: Entering '/var/cfengine/modules/packages', level 0
 verbose: Filename '/var/cfengine/modules/packages/.' is classified as ignorable, skipping
 verbose: Filename '/var/cfengine/modules/packages/..' is classified as ignorable, skipping
 verbose: Handling file existence constraints on '/var/cfengine/modules/packages/pkg'
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/pkg' as promised
 verbose: Handling file existence constraints on '/var/cfengine/modules/packages/slackpkg'
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/slackpkg' as promised
 verbose: Handling file existence constraints on '/var/cfengine/modules/packages/freebsd_ports'
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/freebsd_ports' as promised
 verbose: Handling file existence constraints on '/var/cfengine/modules/packages/msiexec.bat'
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/msiexec.bat' as promised
 verbose: Handling file existence constraints on '/var/cfengine/modules/packages/yum'
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/yum' as promised
 verbose: Handling file existence constraints on '/var/cfengine/modules/packages/zypper'
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/zypper' as promised
 verbose: Handling file existence constraints on '/var/cfengine/modules/packages/WiRunSQL.vbs'
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/WiRunSQL.vbs' as promised
 verbose: Handling file existence constraints on '/var/cfengine/modules/packages/nimclient'
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/nimclient' as promised
 verbose: Handling file existence constraints on '/var/cfengine/modules/packages/apt_get'
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/apt_get' as promised
 verbose: Handling file existence constraints on '/var/cfengine/modules/packages/pkgsrc'
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/pkgsrc' as promised
 verbose: Handling file existence constraints on '/var/cfengine/modules/packages'
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages' as promised
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: Basedir '/var/cfengine/modules' not promising anything
 verbose: File '/var/cfengine/modules' copy_from '/var/cfengine/modules'
 verbose: FindIdle: found connection to '10.112.0.53' already open and ready.
 verbose: Destination purging enabled
 verbose: Entering directory '/var/cfengine/modules'
 verbose: Filename '/var/cfengine/modules/.' is classified as ignorable, skipping
 verbose: Filename '/var/cfengine/modules/..' is classified as ignorable, skipping
 verbose: Entering '/var/cfengine/modules/packages'
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages' as promised
 verbose: Filename '/var/cfengine/modules/packages/.' is classified as ignorable, skipping
 verbose: Filename '/var/cfengine/modules/packages/..' is classified as ignorable, skipping
 verbose: Destination file '/var/cfengine/modules/packages/pkg' already exists
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/pkg' as promised
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File '/var/cfengine/modules/packages/pkg' is an up to date copy of source
 verbose: Destination file '/var/cfengine/modules/packages/slackpkg' already exists
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/slackpkg' as promised
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File '/var/cfengine/modules/packages/slackpkg' is an up to date copy of source
 verbose: Destination file '/var/cfengine/modules/packages/freebsd_ports' already exists
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/freebsd_ports' as promised
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File '/var/cfengine/modules/packages/freebsd_ports' is an up to date copy of source
 verbose: Destination file '/var/cfengine/modules/packages/msiexec.bat' already exists
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/msiexec.bat' as promised
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File '/var/cfengine/modules/packages/msiexec.bat' is an up to date copy of source
 verbose: Destination file '/var/cfengine/modules/packages/yum' already exists
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/yum' as promised
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File '/var/cfengine/modules/packages/yum' is an up to date copy of source
 verbose: Destination file '/var/cfengine/modules/packages/zypper' already exists
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/zypper' as promised
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File '/var/cfengine/modules/packages/zypper' is an up to date copy of source
 verbose: Destination file '/var/cfengine/modules/packages/WiRunSQL.vbs' already exists
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/WiRunSQL.vbs' as promised
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File '/var/cfengine/modules/packages/WiRunSQL.vbs' is an up to date copy of source
 verbose: Destination file '/var/cfengine/modules/packages/nimclient' already exists
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/nimclient' as promised
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File '/var/cfengine/modules/packages/nimclient' is an up to date copy of source
 verbose: Destination file '/var/cfengine/modules/packages/apt_get' already exists
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/apt_get' as promised
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File '/var/cfengine/modules/packages/apt_get' is an up to date copy of source
 verbose: Destination file '/var/cfengine/modules/packages/pkgsrc' already exists
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File permissions on '/var/cfengine/modules/packages/pkgsrc' as promised
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_modules' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 241 comment 'Always update modules files on client side'
 verbose: File '/var/cfengine/modules/packages/pkgsrc' is an up to date copy of source
 verbose: Filename '/var/cfengine/modules/packages/.' is classified as ignorable, skipping
 verbose: Filename '/var/cfengine/modules/packages/..' is classified as ignorable, skipping
 verbose: Filename '/var/cfengine/modules/.' is classified as ignorable, skipping
 verbose: Filename '/var/cfengine/modules/..' is classified as ignorable, skipping
 verbose: A: Promise was KEPT
 verbose: P: END files promise (/var/cfengine/modules)
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'cfe_internal_update_policy_files_update_plugins' of type "files" (pass 1)
 verbose: P:    Promiser/affected object: '/var/cfengine/plugins'
 verbose: P:    Part of bundle: cfe_internal_update_policy_cpv
 verbose: P:    Base context class: !am_policy_hub
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/files/'/var/cfengine/plugins'[1]
 verbose: P:
 verbose: P:    Comment:  Always update plugins files on client side
 verbose: Filename '/var/cfengine/plugins/.' is classified as ignorable, skipping
 verbose: Filename '/var/cfengine/plugins/..' is classified as ignorable, skipping
 verbose: Additional promise info: handle 'cfe_internal_update_policy_files_update_plugins' version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 249 comment 'Always update plugins files on client side'
 verbose: Basedir '/var/cfengine/plugins' not promising anything
 verbose: File '/var/cfengine/plugins' copy_from '/var/cfengine/plugins'
 verbose: FindIdle: found connection to '10.112.0.53' already open and ready.
 verbose: Destination purging enabled
 verbose: Entering directory '/var/cfengine/plugins'
 verbose: Filename '/var/cfengine/plugins/.' is classified as ignorable, skipping
 verbose: Filename '/var/cfengine/plugins/..' is classified as ignorable, skipping
 verbose: Filename '/var/cfengine/plugins/.' is classified as ignorable, skipping
 verbose: Filename '/var/cfengine/plugins/..' is classified as ignorable, skipping
 verbose: A: Promise was KEPT
 verbose: P: END files promise (/var/cfengine/plugins)
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'promise_update_policy_cf_296' of type "methods" (pass 1)
 verbose: P:    Promiser/affected object: 'setup_python_symlink'
 verbose: P:    Part of bundle: cfe_internal_update_policy_cpv
 verbose: P:    Base context class: debian|redhat|amazon_linux|suse|sles|opensuse
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/methods/'setup_python_symlink'[1]
 verbose: B: *****************************************************************
 verbose: B: BEGIN bundle cfe_internal_setup_python_symlink( {"/var/cfengine/bin/python"})
 verbose: B: *****************************************************************
 verbose: V:     +  Private parameter: 'symlink_path' in scope 'cfe_internal_setup_python_symlink' (type: s) in pass 1
 verbose: findfiles pattern '/usr/bin/python[23]' found match '/usr/bin/python3'
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 1)
 verbose: V:     Computing value of 'path'
 verbose: V:     Computing value of 'path_folders'
 verbose: V:     Computing value of 'abs_path_folders'
 verbose: V:     Computing value of 'exact_version_globs'
 verbose: V:     Computing value of 'generic_python_globs'
 verbose: V:     Computing value of 'python_exact[/usr/local/sbin/python[23]]'
 verbose: V:     Computing value of 'python_exact[/usr/local/bin/python[23]]'
 verbose: V:     Computing value of 'python_exact[/usr/sbin/python[23]]'
 verbose: findfiles pattern '/usr/bin/python[23]' found match '/usr/bin/python3'
 verbose: V:     Computing value of 'python_exact[/usr/bin/python[23]]'
 verbose: V:     Computing value of 'python_exact[/root/bin/python[23]]'
 verbose: V:     Computing value of 'python_generic[/usr/local/sbin/python]'
 verbose: V:     Computing value of 'python_generic[/usr/local/bin/python]'
 verbose: V:     Computing value of 'python_generic[/usr/sbin/python]'
 verbose: V:     Computing value of 'python_generic[/usr/bin/python]'
 verbose: V:     Computing value of 'python_generic[/root/bin/python]'
 verbose: V:     Computing value of 'python_platform_fallback[/usr/libexec/platform-python]'
 verbose: V:     Computing value of 'python_exact_sorted'
 verbose: V:     Computing value of 'pythons'
 verbose: V:     Computing value of 'python'
 verbose: Skipping promise '$(symlink_path)' because constraint 'if => not(isvariable("python"))' is not met
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'promise_update_policy_cf_132' of type "files" (pass 1)
 verbose: P:    Promiser/affected object: '/var/cfengine/bin/python'
 verbose: P:    From parameterized bundle: cfe_internal_setup_python_symlink( {"/var/cfengine/bin/python"})
 verbose: P:    Base context class: any
 verbose: P:    "if" class condition: any
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/methods/'setup_python_symlink'/default/cfe_internal_setup_python_symlink/files/'/var/cfengine/bin/python'[1]
 verbose: Using literal pathtype for '/var/cfengine/bin/python'
 verbose: Additional promise info: version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 132
 verbose: Link '/var/cfengine/bin/python' points to '/usr/bin/python3', promise kept
 verbose: Handling file existence constraints on '/var/cfengine/bin/python'
 verbose: A: Promise was KEPT
 verbose: P: END files promise (/var/cfengine/bin/python)
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 2)
 verbose: V:     Computing value of 'path'
 verbose: V:     Computing value of 'path_folders'
 verbose: V:     Computing value of 'abs_path_folders'
 verbose: V:     Computing value of 'exact_version_globs'
 verbose: V:     Computing value of 'generic_python_globs'
 verbose: V:     Computing value of 'python_exact[/usr/local/sbin/python[23]]'
 verbose: V:     Computing value of 'python_exact[/usr/local/bin/python[23]]'
 verbose: V:     Computing value of 'python_exact[/usr/sbin/python[23]]'
 verbose: findfiles pattern '/usr/bin/python[23]' found match '/usr/bin/python3'
 verbose: V:     Computing value of 'python_exact[/usr/bin/python[23]]'
 verbose: V:     Computing value of 'python_exact[/root/bin/python[23]]'
 verbose: V:     Computing value of 'python_generic[/usr/local/sbin/python]'
 verbose: V:     Computing value of 'python_generic[/usr/local/bin/python]'
 verbose: V:     Computing value of 'python_generic[/usr/sbin/python]'
 verbose: V:     Computing value of 'python_generic[/usr/bin/python]'
 verbose: V:     Computing value of 'python_generic[/root/bin/python]'
 verbose: V:     Computing value of 'python_platform_fallback[/usr/libexec/platform-python]'
 verbose: V:     Computing value of 'python_exact_sorted'
 verbose: V:     Computing value of 'pythons'
 verbose: V:     Computing value of 'python'
 verbose: Skipping promise '$(symlink_path)' because constraint 'if => not(isvariable("python"))' is not met
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'promise_update_policy_cf_132' of type "files" (pass 2)
 verbose: P:    Promiser/affected object: '/var/cfengine/bin/python'
 verbose: P:    From parameterized bundle: cfe_internal_setup_python_symlink( {"/var/cfengine/bin/python"})
 verbose: P:    Base context class: any
 verbose: P:    "if" class condition: any
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/methods/'setup_python_symlink'/default/cfe_internal_setup_python_symlink/files/'/var/cfengine/bin/python'[1]
 verbose: Using literal pathtype for '/var/cfengine/bin/python'
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 3)
 verbose: V:     Computing value of 'path'
 verbose: V:     Computing value of 'path_folders'
 verbose: V:     Computing value of 'abs_path_folders'
 verbose: V:     Computing value of 'exact_version_globs'
 verbose: V:     Computing value of 'generic_python_globs'
 verbose: V:     Computing value of 'python_exact[/usr/local/sbin/python[23]]'
 verbose: V:     Computing value of 'python_exact[/usr/local/bin/python[23]]'
 verbose: V:     Computing value of 'python_exact[/usr/sbin/python[23]]'
 verbose: findfiles pattern '/usr/bin/python[23]' found match '/usr/bin/python3'
 verbose: V:     Computing value of 'python_exact[/usr/bin/python[23]]'
 verbose: V:     Computing value of 'python_exact[/root/bin/python[23]]'
 verbose: V:     Computing value of 'python_generic[/usr/local/sbin/python]'
 verbose: V:     Computing value of 'python_generic[/usr/local/bin/python]'
 verbose: V:     Computing value of 'python_generic[/usr/sbin/python]'
 verbose: V:     Computing value of 'python_generic[/usr/bin/python]'
 verbose: V:     Computing value of 'python_generic[/root/bin/python]'
 verbose: V:     Computing value of 'python_platform_fallback[/usr/libexec/platform-python]'
 verbose: V:     Computing value of 'python_exact_sorted'
 verbose: V:     Computing value of 'pythons'
 verbose: V:     Computing value of 'python'
 verbose: Skipping promise '$(symlink_path)' because constraint 'if => not(isvariable("python"))' is not met
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'promise_update_policy_cf_132' of type "files" (pass 3)
 verbose: P:    Promiser/affected object: '/var/cfengine/bin/python'
 verbose: P:    From parameterized bundle: cfe_internal_setup_python_symlink( {"/var/cfengine/bin/python"})
 verbose: P:    Base context class: any
 verbose: P:    "if" class condition: any
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/methods/'setup_python_symlink'/default/cfe_internal_setup_python_symlink/files/'/var/cfengine/bin/python'[1]
 verbose: Using literal pathtype for '/var/cfengine/bin/python'
 verbose: A: ...................................................
 verbose: A: Bundle Accounting Summary for 'cfe_internal_setup_python_symlink' in namespace default
 verbose: A: Promises kept in 'cfe_internal_setup_python_symlink' = 1
 verbose: A: Promises not kept in 'cfe_internal_setup_python_symlink' = 0
 verbose: A: Promises repaired in 'cfe_internal_setup_python_symlink' = 0
 verbose: A: Aggregate compliance (promises kept/repaired) for bundle 'cfe_internal_setup_python_symlink' = 100.0%
 verbose: A: ...................................................
 verbose: Additional promise info: version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 296
 verbose: Method 'cfe_internal_setup_python_symlink' verified
 verbose: B: *****************************************************************
 verbose: B: END bundle cfe_internal_setup_python_symlink
 verbose: B: *****************************************************************
 verbose: A: Promise was KEPT
 verbose: P: END methods promise (setup_python_symlink)
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 2)
 verbose: V:     Computing value of 'inputs_dir'
 verbose: V:     Computing value of 'master_location'
 verbose: V:     Computing value of 'modules_dir_source'
 verbose: V:     Computing value of 'plugins_dir_source'
 verbose: V:     Computing value of 'file_check'
 verbose: V:     Computing value of 'ppkeys_file'
 verbose: V:     Computing value of 'postgresdb_dir'
 verbose: V:     Computing value of 'postgresdb_log'
 verbose: V:     Computing value of 'python_symlink'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 2)
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'cfe_internal_update_policy_check_valid_update' of type "files" (pass 2)
 verbose: P:    Promiser/affected object: '/var/cfengine/inputs/cf_promises_validat'
 verbose: P:    Part of bundle: cfe_internal_update_policy_cpv
 verbose: P:    Base context class: !am_policy_hub
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/files/'/var/cfengine/inputs/cf_promises_validated'[1]
 verbose: P:
 verbose: P:    Comment:  Check whether a validation stamp is available for a new policy update to reduce the distributed load
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'cfe_internal_update_policy_files_update_modules' of type "files" (pass 2)
 verbose: P:    Promiser/affected object: '/var/cfengine/modules'
 verbose: P:    Part of bundle: cfe_internal_update_policy_cpv
 verbose: P:    Base context class: !am_policy_hub
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/files/'/var/cfengine/modules'[1]
 verbose: P:
 verbose: P:    Comment:  Always update modules files on client side
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'cfe_internal_update_policy_files_update_plugins' of type "files" (pass 2)
 verbose: P:    Promiser/affected object: '/var/cfengine/plugins'
 verbose: P:    Part of bundle: cfe_internal_update_policy_cpv
 verbose: P:    Base context class: !am_policy_hub
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/files/'/var/cfengine/plugins'[1]
 verbose: P:
 verbose: P:    Comment:  Always update plugins files on client side
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 3)
 verbose: V:     Computing value of 'inputs_dir'
 verbose: V:     Computing value of 'master_location'
 verbose: V:     Computing value of 'modules_dir_source'
 verbose: V:     Computing value of 'plugins_dir_source'
 verbose: V:     Computing value of 'file_check'
 verbose: V:     Computing value of 'ppkeys_file'
 verbose: V:     Computing value of 'postgresdb_dir'
 verbose: V:     Computing value of 'postgresdb_log'
 verbose: V:     Computing value of 'python_symlink'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 3)
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'cfe_internal_update_policy_check_valid_update' of type "files" (pass 3)
 verbose: P:    Promiser/affected object: '/var/cfengine/inputs/cf_promises_validat'
 verbose: P:    Part of bundle: cfe_internal_update_policy_cpv
 verbose: P:    Base context class: !am_policy_hub
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/files/'/var/cfengine/inputs/cf_promises_validated'[1]
 verbose: P:
 verbose: P:    Comment:  Check whether a validation stamp is available for a new policy update to reduce the distributed load
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'cfe_internal_update_policy_files_update_modules' of type "files" (pass 3)
 verbose: P:    Promiser/affected object: '/var/cfengine/modules'
 verbose: P:    Part of bundle: cfe_internal_update_policy_cpv
 verbose: P:    Base context class: !am_policy_hub
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/files/'/var/cfengine/modules'[1]
 verbose: P:
 verbose: P:    Comment:  Always update modules files on client side
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'cfe_internal_update_policy_files_update_plugins' of type "files" (pass 3)
 verbose: P:    Promiser/affected object: '/var/cfengine/plugins'
 verbose: P:    Part of bundle: cfe_internal_update_policy_cpv
 verbose: P:    Base context class: !am_policy_hub
 verbose: P:    Stack path: /default/cfe_internal_update_policy/methods/'Stock policy update'/default/cfe_internal_update_policy_cpv/files/'/var/cfengine/plugins'[1]
 verbose: P:
 verbose: P:    Comment:  Always update plugins files on client side
 verbose: A: ...................................................
 verbose: A: Bundle Accounting Summary for 'cfe_internal_update_policy_cpv' in namespace default
 verbose: A: Promises kept in 'cfe_internal_update_policy_cpv' = 38
 verbose: A: Promises not kept in 'cfe_internal_update_policy_cpv' = 0
 verbose: A: Promises repaired in 'cfe_internal_update_policy_cpv' = 0
 verbose: A: Aggregate compliance (promises kept/repaired) for bundle 'cfe_internal_update_policy_cpv' = 100.0%
 verbose: A: ...................................................
 verbose: Additional promise info: version 'update.cf 3.15.3' source path '/var/cfengine/inputs/cfe_internal/update/update_policy.cf' at line 61
 verbose: Method 'cfe_internal_update_policy_cpv' verified
 verbose: B: *****************************************************************
 verbose: B: END bundle cfe_internal_update_policy_cpv
 verbose: B: *****************************************************************
 verbose: A: Promise was KEPT
 verbose: P: END methods promise (Stock policy update)
 verbose: Skipping promise 'Found user specified update bundle.' because constraint 'if => have_user_specified_update_bundle' is not met
 verbose: Skipping promise 'User specified update bundle: $(def.mpf_update_policy_bundle)' because constraint 'if => have_user_specified_update_bundle' is not met
 verbose: Skipping promise 'User specified update bundle MISSING! Falling back to $(default_policy_update_bundle).' because constraint 'if => and("have_user_specified_update_bundle","missing_user_specified_update_bundle")' is not met
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 2)
 verbose: V:     Computing value of 'default_policy_update_bundle'
 verbose: V:     Computing value of 'found_matching_user_specified_bundle'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 2)
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: Skipping promise 'Found user specified update bundle.' because constraint 'if => have_user_specified_update_bundle' is not met
 verbose: Skipping promise 'User specified update bundle: $(def.mpf_update_policy_bundle)' because constraint 'if => have_user_specified_update_bundle' is not met
 verbose: Skipping promise 'User specified update bundle MISSING! Falling back to $(default_policy_update_bundle).' because constraint 'if => and("have_user_specified_update_bundle","missing_user_specified_update_bundle")' is not met
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 3)
 verbose: V:     Computing value of 'default_policy_update_bundle'
 verbose: V:     Computing value of 'found_matching_user_specified_bundle'
 verbose: While setting variable 'found_matching_user_specified_bundle' in bundle 'cfe_internal_update_policy', function 'bundlesmatching' failed - skipping
 verbose: While setting variable 'found_matching_user_specified_bundle' in bundle 'cfe_internal_update_policy', function 'bundlesmatching' failed - skipping
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 3)
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: some: argument 'default:cfe_internal_update_policy.found_matching_user_specified_bundle' does not resolve to a container or a list or a CFEngine array
 verbose: While setting variable 'found_matching_user_specified_bundle' in bundle 'cfe_internal_update_policy', function 'bundlesmatching' failed - skipping
 verbose: Skipping promise 'Found user specified update bundle.' because constraint 'if => have_user_specified_update_bundle' is not met
 verbose: Skipping promise 'User specified update bundle: $(def.mpf_update_policy_bundle)' because constraint 'if => have_user_specified_update_bundle' is not met
 verbose: Skipping promise 'User specified update bundle MISSING! Falling back to $(default_policy_update_bundle).' because constraint 'if => and("have_user_specified_update_bundle","missing_user_specified_update_bundle")' is not met
 verbose: A: ...................................................
 verbose: A: Bundle Accounting Summary for 'cfe_internal_update_policy' in namespace default
 verbose: A: Promises kept in 'cfe_internal_update_policy' = 39
 verbose: A: Promises not kept in 'cfe_internal_update_policy' = 0
 verbose: A: Promises repaired in 'cfe_internal_update_policy' = 0
 verbose: A: Aggregate compliance (promises kept/repaired) for bundle 'cfe_internal_update_policy' = 100.0%
 verbose: A: ...................................................
 verbose: B: *****************************************************************
 verbose: B: END bundle cfe_internal_update_policy
 verbose: B: *****************************************************************
 verbose: B: *****************************************************************
 verbose: B: BEGIN bundle cfe_internal_update_from_repository
 verbose: B: *****************************************************************
 verbose: A: ...................................................
 verbose: A: Bundle Accounting Summary for 'cfe_internal_update_from_repository' in namespace default
 verbose: A: Zero promises executed for bundle 'cfe_internal_update_from_repository'
 verbose: A: ...................................................
 verbose: B: *****************************************************************
 verbose: B: END bundle cfe_internal_update_from_repository
 verbose: B: *****************************************************************
 verbose: B: *****************************************************************
 verbose: B: BEGIN bundle cfengine_internal_standalone_self_upgrade
 verbose: B: *****************************************************************
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'promise_update_cf_57' of type "methods" (pass 1)
 verbose: P:    Promiser/affected object: 'cfengine_internal_standalone_self_upgrad'
 verbose: P:    Part of bundle: cfengine_internal_standalone_self_upgrade
 verbose: P:    Base context class: any
 verbose: P:    Stack path: /default/cfengine_internal_standalone_self_upgrade/methods/'cfengine_internal_standalone_self_upgrade_state_data'[1]
 verbose: B: *****************************************************************
 verbose: B: BEGIN bundle cfengine_internal_standalone_self_upgrade_state_data
 verbose: B: *****************************************************************
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 1)
 verbose: V:     Computing value of 'binary_upgrade_entry'
 verbose: V:     Computing value of 'desired_pkg_data_path'
 verbose: Skipping promise '$(desired_pkg_data_path)' because constraint 'if => isnewerthan("$(binary_upgrade_entry)","$(desired_pkg_data_path)")' is not met
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 2)
 verbose: V:     Computing value of 'binary_upgrade_entry'
 verbose: V:     Computing value of 'desired_pkg_data_path'
 verbose: Skipping promise '$(desired_pkg_data_path)' because constraint 'if => isnewerthan("$(binary_upgrade_entry)","$(desired_pkg_data_path)")' is not met
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 3)
 verbose: V:     Computing value of 'binary_upgrade_entry'
 verbose: V:     Computing value of 'desired_pkg_data_path'
 verbose: Skipping promise '$(desired_pkg_data_path)' because constraint 'if => isnewerthan("$(binary_upgrade_entry)","$(desired_pkg_data_path)")' is not met
 verbose: A: ...................................................
 verbose: A: Bundle Accounting Summary for 'cfengine_internal_standalone_self_upgrade_state_data' in namespace default
 verbose: A: Zero promises executed for bundle 'cfengine_internal_standalone_self_upgrade_state_data'
 verbose: A: ...................................................
 verbose: Additional promise info: version 'update.cf 3.15.3' source path '/var/cfengine/inputs/update.cf' at line 57
 verbose: Method 'cfengine_internal_standalone_self_upgrade_state_data' verified
 verbose: B: *****************************************************************
 verbose: B: END bundle cfengine_internal_standalone_self_upgrade_state_data
 verbose: B: *****************************************************************
 verbose: A: Promise was KEPT
 verbose: P: END methods promise (cfengine_internal_standalone_s...)
 verbose: P: .........................................................
 verbose: P: BEGIN promise 'promise_update_cf_58' of type "methods" (pass 1)
 verbose: P:    Promiser/affected object: 'cfengine_internal_standalone_self_upgrad'
 verbose: P:    Part of bundle: cfengine_internal_standalone_self_upgrade
 verbose: P:    Base context class: any
 verbose: P:    Stack path: /default/cfengine_internal_standalone_self_upgrade/methods/'cfengine_internal_standalone_self_upgrade_execution'[1]
 verbose: B: *****************************************************************
 verbose: B: BEGIN bundle cfengine_internal_standalone_self_upgrade_execution
 verbose: B: *****************************************************************
 verbose: Skipping promise 'desired_pkg_data' because constraint 'if => fileexists("$(desired_pkg_data_path)")' is not met
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 1)
 verbose: V:     Computing value of 'exec_prefix'
 verbose: V:     Computing value of 'desired_pkg_data_path'
 verbose: Skipping promise 'desired_pkg_data' because constraint 'if => fileexists("$(desired_pkg_data_path)")' is not met
 verbose: V:     Computing value of 'local_update_log_dir'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 1)
 verbose: Skipping promise 'desired_pkg_data' because constraint 'if => fileexists("$(desired_pkg_data_path)")' is not met
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 2)
 verbose: V:     Computing value of 'exec_prefix'
 verbose: V:     Computing value of 'desired_pkg_data_path'
 verbose: Skipping promise 'desired_pkg_data' because constraint 'if => fileexists("$(desired_pkg_data_path)")' is not met
 verbose: V:     Computing value of 'local_update_log_dir'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 2)
 verbose: Skipping promise 'desired_pkg_data' because constraint 'if => fileexists("$(desired_pkg_data_path)")' is not met
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 3)
 verbose: V:     Computing value of 'exec_prefix'
 verbose: V:     Computing value of 'desired_pkg_data_path'
 verbose: Skipping promise 'desired_pkg_data' because constraint 'if => fileexists("$(desired_pkg_data_path)")' is not met
 verbose: V:     Computing value of 'local_update_log_dir'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 3)
 verbose: Skipping promise 'desired_pkg_data' because constraint 'if => fileexists("$(desired_pkg_data_path)")' is not met
 verbose: A: ...................................................
 verbose: A: Bundle Accounting Summary for 'cfengine_internal_standalone_self_upgrade_execution' in namespace default
 verbose: A: Zero promises executed for bundle 'cfengine_internal_standalone_self_upgrade_execution'
 verbose: A: ...................................................
 verbose: Additional promise info: version 'update.cf 3.15.3' source path '/var/cfengine/inputs/update.cf' at line 58
 verbose: Method 'cfengine_internal_standalone_self_upgrade_execution' verified
 verbose: B: *****************************************************************
 verbose: B: END bundle cfengine_internal_standalone_self_upgrade_execution
 verbose: B: *****************************************************************
 verbose: A: Promise was KEPT
 verbose: P: END methods promise (cfengine_internal_standalone_s...)
 verbose: A: ...................................................
 verbose: A: Bundle Accounting Summary for 'cfengine_internal_standalone_self_upgrade' in namespace default
 verbose: A: Promises kept in 'cfengine_internal_standalone_self_upgrade' = 2
 verbose: A: Promises not kept in 'cfengine_internal_standalone_self_upgrade' = 0
 verbose: A: Promises repaired in 'cfengine_internal_standalone_self_upgrade' = 0
 verbose: A: Aggregate compliance (promises kept/repaired) for bundle 'cfengine_internal_standalone_self_upgrade' = 100.0%
 verbose: A: ...................................................
 verbose: B: *****************************************************************
 verbose: B: END bundle cfengine_internal_standalone_self_upgrade
 verbose: B: *****************************************************************
 verbose: B: *****************************************************************
 verbose: B: BEGIN bundle cfe_internal_update_processes
 verbose: B: *****************************************************************
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 1)
 verbose: V:     Computing value of 'agent[cf_execd]'
 verbose: V:     Computing value of 'agent[cf_serverd]'
 verbose: V:     Computing value of 'agent[cf_monitord]'
 verbose: V:     Computing value of 'agent[cfengine3]'
 verbose: V:     Computing value of 'all_agents'
 verbose: Skipping promise 'agents_to_be_disabled' because constraint 'ifvarclass => isvariable("def.agents_to_be_disabled")' is not met
 verbose: V:     Computing value of 'agents_to_be_disabled'
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: getvalues: argument 'default:cfe_internal_update_processes.disabled' does not resolve to a container or a list or a CFEngine array
 verbose: V:     Computing value of 'agents_to_be_disabled'
 verbose: V:     Computing value of 'agents_to_be_enabled'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 1)
 verbose: C:     +  Private class: systemd_supervised
 verbose: Skipping promise 'agents_to_be_disabled' because constraint 'ifvarclass => isvariable("def.agents_to_be_disabled")' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: getvalues: argument 'default:cfe_internal_update_processes.disabled' does not resolve to a container or a list or a CFEngine array
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 2)
 verbose: V:     Computing value of 'agent[cf_execd]'
 verbose: V:     Computing value of 'agent[cf_serverd]'
 verbose: V:     Computing value of 'agent[cf_monitord]'
 verbose: V:     Computing value of 'agent[cfengine3]'
 verbose: V:     Computing value of 'all_agents'
 verbose: Skipping promise 'agents_to_be_disabled' because constraint 'ifvarclass => isvariable("def.agents_to_be_disabled")' is not met
 verbose: V:     Computing value of 'agents_to_be_disabled'
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: getvalues: argument 'default:cfe_internal_update_processes.disabled' does not resolve to a container or a list or a CFEngine array
 verbose: V:     Computing value of 'agents_to_be_disabled'
 verbose: V:     Computing value of 'agents_to_be_enabled'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 2)
 verbose: Skipping promise 'agents_to_be_disabled' because constraint 'ifvarclass => isvariable("def.agents_to_be_disabled")' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: getvalues: argument 'default:cfe_internal_update_processes.disabled' does not resolve to a container or a list or a CFEngine array
 verbose: V: .........................................................
 verbose: V: BEGIN variables (pass 3)
 verbose: V:     Computing value of 'agent[cf_execd]'
 verbose: V:     Computing value of 'agent[cf_serverd]'
 verbose: V:     Computing value of 'agent[cf_monitord]'
 verbose: V:     Computing value of 'agent[cfengine3]'
 verbose: V:     Computing value of 'all_agents'
 verbose: Skipping promise 'agents_to_be_disabled' because constraint 'ifvarclass => isvariable("def.agents_to_be_disabled")' is not met
 verbose: V:     Computing value of 'agents_to_be_disabled'
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: getvalues: argument 'default:cfe_internal_update_processes.disabled' does not resolve to a container or a list or a CFEngine array
 verbose: V:     Computing value of 'agents_to_be_disabled'
 verbose: V:     Computing value of 'agents_to_be_enabled'
 verbose: C: .........................................................
 verbose: C: BEGIN classes / conditions (pass 3)
 verbose: Skipping promise 'agents_to_be_disabled' because constraint 'ifvarclass => isvariable("def.agents_to_be_disabled")' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: Skipping promise 'disabled[$(all_agents)]' because constraint 'ifvarclass => or(canonify("persistent_disable_$(all_agents)"),some("$(all_agents)","agents_to_be_disabled"))' is not met
 verbose: getvalues: argument 'default:cfe_internal_update_processes.disabled' does not resolve to a container or a list or a CFEngine array
 verbose: A: ...................................................
 verbose: A: Bundle Accounting Summary for 'cfe_internal_update_processes' in namespace default
 verbose: A: Zero promises executed for bundle 'cfe_internal_update_processes'
 verbose: A: ...................................................
 verbose: B: *****************************************************************
 verbose: B: END bundle cfe_internal_update_processes
 verbose: B: *****************************************************************
 verbose: Connection to 10.112.0.53 is closed
 verbose: Waiting for background processes
 verbose: No more background processes to wait for
 verbose: No lock purging scheduled
 verbose: Logging total compliance, total 'Outcome of version update.cf 3.15.3 (agent-0): Promises observed to be kept 100.00%, Promises repaired 0.00%, Promises not repaired 0.00%'

Aleksey Tsalolikhin

unread,
Mar 27, 2021, 1:24:00 PM3/27/21
to Shane Ripley, help-cfengine
Thanks for the complete data, Shane.

What is the value of $(sys.fqhost) on the client?

I'm asking because "markmonitor-dev" looks like the short name, not
the fully qualified domain name.

See https://gitlab.com/vsa-cfengine/policy-channels/-/blob/8344a90d7fc2ae1ef5637b3106663b16c5d369f1/policy_channels/update_policy_channels.cf#L40
and https://docs.cfengine.com/docs/3.15/reference-special-variables-sys.html#sys-fqhost

Also, I don't see "update_policy_channels" in the verbose output.

You are missing the "vars" block in your augments file. You only have "classes":

Your def.json has:
{
"classes" : {
"services_autorun": [ "any" ],
"client_initiated_reporting_enabled": [ "any" ],
"cfengine_internal_verify_update_transfers": [ "any" ],
"cfengine_internal_encrypt_transfers": [ "any" ],
"cfengine_internal_purge_policies": [ "any" ],
"mpf_augments_control_enabled": [ "any" ],
"cfengine_recommendations_disabled": [ "any" ],
"update_inputs": [ "policy_channels/update_policy_channels.cf" ],
"mpf_update_policy_bundle": "default:update_policy_channels",
"mpf_update_policy_master_location":
"$(select_masterfiles.master_location)"
}

See https://gitlab.com/vsa-cfengine/policy-channels/-/blob/8344a90d7fc2ae1ef5637b3106663b16c5d369f1/policy_channels/update_policy_channels.cf#L7-12

Reference: https://docs.cfengine.com/docs/3.15/reference-language-concepts-augments.html#classes

Best,
-at
--
Founder
Vertical Sysadmin, Inc.
Achieve real learning.
> --
> You received this message because you are subscribed to the Google Groups "help-cfengine" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to help-cfengin...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/help-cfengine/ea0ce6c0-f3ab-4a84-8d06-8f3cfc75ce7fn%40googlegroups.com.

Shane Ripley

unread,
Mar 27, 2021, 7:07:03 PM3/27/21
to help-cfengine
Thanks for the tips! I mistakenly had the policy_channel vars defined in the classes section of def.json. The agent is updating now so I'll try switching it to a different branch to test that part.

When using the policy channels code is it necessary to have any policy in /var/cfengine/masterfiles or can it be empty?

Does having a trialing newline in /var/cfengine/host_channel_assignments/*.txt break anything. My files had newlines in them but I removed them just in case.

Mike Weilgart

unread,
Mar 28, 2021, 2:31:17 AM3/28/21
to Shane Ripley, help-cfengine
Good spotting, Aleksey; the missing "vars" part of the def.json is indeed the problem here.

Shane, to your questions: yes, /var/cfengine/masterfiles should still have policy if you will be bootstrapping new hosts at any point.  They'll pick up masterfiles first (using the failsafe policy built into the binary), and then when they use the policy they got from masterfiles (next update.cf run) they'll pick up any channel assignment file applicable to them.

And no, a trailing newline won't break anything.  The script which creates those files without newlines was also written that way just in case.  :)  I didn't see any documentation for the "readfile" function that it ignores trailing newlines (and I don't now, either) but by experience it does seem to ignore them...@Nick Anderson, is this a deliberate feature?  If so maybe it should be documented so we can know to rely on this behavior in future CFEngine versions?

Best,
—Mike Weilgart

Shane Ripley

unread,
Mar 28, 2021, 7:56:19 PM3/28/21
to help-cfengine
Thanks so much for your help Mike and Aleksey. Policy channels is definitely a big improvement over what I was doing in CFE 3.5 :)

Aleksey Tsalolikhin

unread,
Mar 29, 2021, 9:16:20 AM3/29/21
to Shane Ripley, help-cfengine
Yay! Well done, Shane! You are welcome. :)

How did you find out about policy channels? Just curious, because we
only recently open-sourced it and I hadn't announced it yet. :)

Best,
Aleksey

--
Founder
Vertical Sysadmin, Inc.
Achieve real learning.

> To view this discussion on the web visit https://groups.google.com/d/msgid/help-cfengine/6183b07e-5f18-4a21-aec1-9dd665385d32n%40googlegroups.com.

Shane Ripley

unread,
Mar 29, 2021, 12:05:57 PM3/29/21
to help-cfengine
I was searching the forum for info on def.json and a more "complete" example of how people were configuring it in their environment and came across links to the git repo from Nick.
Reply all
Reply to author
Forward
0 new messages