/// <summary> /// Add the tableau repo database details to the options. /// </summary> /// <param name="config"></param> /// <param name="options"></param> /// <param name="tableauRoot"></param> public static bool AddRepoFromWorkgroupYaml(PaletteInsightConfiguration config, string tableauRoot, PaletteInsightAgentOptions options) { var workgroupYmlPath = GetWorkgroupYmlPath(tableauRoot); Workgroup repo = GetRepoFromWorkgroupYaml(workgroupYmlPath, options.PreferPassiveRepository); if (repo == null) { return(false); } try { if (IsEncrypted(repo.Password)) { Log.Info("Encrypted readonly password found in workgroup.yml."); // if (Tableau.getVersionNumber() >= TABLEAU_VERSION_2018_2) // { // Log.Warn("Palette Insight cannot decrypt readonly user's password on Tableau Server 2018.2+! Credentials must be provided in Config.yml!"); // return false; // } Log.Info("Getting readonly password with tabadmin command."); repo.Password = Tableau.tabadminRun("get pgsql.readonly_password"); } options.RepositoryDatabase = new DbConnectionInfo { Server = repo.Connection.Host, Port = repo.Connection.Port, Username = repo.Username, Password = repo.Password, DatabaseName = repo.Connection.DatabaseName }; if (config.TableauRepo != null) { Log.Warn("Ignoring Tableau repo settings from config.yml."); } return(true); } catch (Exception e) { Log.Error(e, "Failed to acquire Tableau repo connection details! Exception: "); } return(false); }