cfengine/masterfiles — pull request #286 by awsiv (2014-07-15 10:36:21+00:00)
Title: Move reading of cf-consumer.pid to def.cf and guard it by enterprise and hub classes

This is necessary because class guards do not protect function evaluation when calling methods.

eg.

```
body common control
{
bundlesequence => {"method1"};
inputs => { "/var/cfengine/inputs/lib/3.6/stdlib.cf" };
}

bundle common def
{
classes:
"class1" expression => "policy_server.enterprise.!cfengine_3_5";
}

bundle agent method1
{
methods:
# This class guard is not retained while executing method2
class1::
"hub" usebundle => method2;
}

bundle agent method2
{
vars:
# uncommenting this will show expected behavior
# class1::
"data1" string => readfile("/tmp/non/existant", 0);
"data2" string => readfile("/tmp/test", 0);

classes:
class1::
"data_correct" expression => isvariable("data2");

reports:
data_correct::
"data = $(data2)";
}

```