lib/classes/Variables.js/Variables/disableDepedentServices
class Variables:  disableDepedentServices(func) {
    const dependencyMessage = (configValue, serviceName) =>
      `Variable dependency failure: variable '${configValue}' references ${serviceName} but using that service requires a concrete value to be called.`;
    // replace and then restore the methods for obtaining values from dependent services.  the
    // replacement naturally rejects dependencies on these services that occur during prepopulation.
    // prepopulation is, of course, the process of obtaining the required configuration for using
    // these services.
    for (const resolver of this.variableResolvers) {
      if (resolver.isDisabledAtPrepopulation) {
        // save original
        resolver.original = resolver.resolver;
        // knock out
        resolver.resolver = variableString =>
          BbPromise.reject(dependencyMessage(variableString, resolver.serviceName));
      }
    }
    return func().finally(() => {
      // restore
      for (const resolver of this.variableResolvers) {
        if (resolver.isDisabledAtPrepopulation) {
          resolver.resolver = resolver.original;
        }
      }
    });
  }