public DaemonConfiguration(ConfigFilePaths configFiles, uint iotedgeUid)
        {
            this.config = new Dictionary <Service, Config>();

            this.InitServiceConfig(Service.Keyd, configFiles.Keyd, true);
            this.InitServiceConfig(Service.Certd, configFiles.Certd, true);
            this.InitServiceConfig(Service.Identityd, configFiles.Identityd, true);
            this.InitServiceConfig(Service.Edged, configFiles.Edged, false);

            string principalsPath = Path.Combine(
                Path.GetDirectoryName(configFiles.Identityd),
                "config.d");

            this.principalsPath = principalsPath;

            // Clear any existing Identity Service principals.
            this.config[Service.Identityd].Document.RemoveIfExists("principal");
            if (Directory.Exists(principalsPath))
            {
                Directory.Delete(principalsPath, true);
            }

            Directory.CreateDirectory(principalsPath);
            OsPlatform.Current.SetOwner(principalsPath, "aziotid", "755");

            // Add the principal entry for aziot-edge to Identity Service.
            // This is required so aziot-edge can communicate with Identity Service.
            this.AddPrincipal("aziot-edge", iotedgeUid);
        }
        public DaemonConfiguration(ConfigFilePaths configFiles)
        {
            this.config = new Dictionary <Service, Config>();

            this.InitServiceConfig(Service.Keyd, configFiles.Keyd, "aziotks");
            this.InitServiceConfig(Service.Certd, configFiles.Certd, "aziotcs");
            this.InitServiceConfig(Service.Identityd, configFiles.Identityd, "aziotid");
            this.InitServiceConfig(Service.Edged, configFiles.Edged, "iotedge");
        }