Esempio n. 1
0
        private List <Task> GetTasksForDeadInstallation(SenseConnectDto dto)
        {
            var taskList = new List <Task>();

            if (!ServiceVariables.AllowArchivedLogs)
            {
                return(taskList);
            }

            try
            {
                var readerTaskHelper = new SenseLogReaderTasks(_logger, LogDirectorDone, _notify);
                dto = PathToSenseLogFolderDlg(dto);
                if (string.IsNullOrEmpty(dto.PathToLocalSenseLogFolder))
                {
                    _logger.Add("No Sense log folder selected. Tool has to run again. Ending.");
                    _notify("No Sense Log folder. Please run tool again.", MessageLevels.Error, null);
                    _onFinished(null, null, this);
                    return(null);
                }
                taskList.Add(readerTaskHelper.ReadArchivedLogs(dto.PathToLocalSenseLogFolder, ServiceVariables));
            }
            catch (Exception ex)
            {
                _logger.Add("Failed retreiving Archived folder location from user. " + ex);
            }
            return(taskList);
        }
Esempio n. 2
0
        private async Task <List <Task> > GetTasksForFullRun(SenseConnectDto dto)
        {
            var senseApi = new SenseApiCollector(_logger);
            var taskList = new List <Task>();

            _logger.Add("Sense api connected");
            SenseEnums statusEnums = null;

            QlikSenseMachineInfo[] qlikSenseMachineInfos = null;

            await Task.Run(() => { statusEnums = new SenseEnums(dto.SenseApiSupport); }).ConfigureAwait(false);

            _logger.Add("Sense Machine infos collected");

            var archivedLogsLocation = string.Empty;

            if (statusEnums == null)
            {
                throw new Exception("Failed accessing sense");
            }
            await Task.Run(() => qlikSenseMachineInfos = GetQlikSenseMachineInfos(senseApi, dto.SenseApiSupport, statusEnums)).ConfigureAwait(false);

            try
            {
                archivedLogsLocation = senseApi.GetQlikSenseArchivedFolderLocation(dto.SenseApiSupport);
                _logger.Add($"Accessing archived logs at {archivedLogsLocation}.");
                if (!_filesystem.DirectoryExists(archivedLogsLocation))
                {
                    archivedLogsLocation = PathToArchivedLogsDlg.Invoke(archivedLogsLocation);
                }
            }
            catch (Exception ex)
            {
                _logger.Add("Failed retreiving Archived folder location from API " + ex);
            }

            taskList.Add(Task.Run(async() =>
            {
                if (ServiceVariables.AllowSenseInfo)
                {
                    try
                    {
                        var nodeCount = qlikSenseMachineInfos?.Length ?? 0;
                        _notify($"Collecting Information from {nodeCount} Qlik Sense {(nodeCount > 1 ? "nodes" : "node")}.", MessageLevels.Animate, "SenseInfo");
                        _logger.Add($"Running CommandLineRemoteTasks.");
                        await RunCommandLineRemoteTasks(qlikSenseMachineInfos).ConfigureAwait(false);
                        _logger.Add($"Running GettingAllSettingsFiles.");
                        await RunGettingAllSettingsFiles(qlikSenseMachineInfos).ConfigureAwait(false);

                        _notify("Collecting Qlik Sense Information.", MessageLevels.Animate, "SenseInfo");
                        _logger.Add($"Running Get all api info.");
                        _collectorHelper.WriteContentToFile(qlikSenseMachineInfos, "qlikSenseMachineInfo");
                        _collectorHelper.RunAction(() => senseApi.GetQlikSenseServiceInfos(dto.SenseApiSupport, statusEnums).ToArray(), "qlikSenseServiceInfo");
                        _collectorHelper.RunAction(() => senseApi.GetQrsAbout(dto.SenseApiSupport, statusEnums), "QrsAbout");
                        _collectorHelper.RunAction(() => senseApi.ExecuteCalAgent(dto.SenseApiSupport, statusEnums), "CalInfo");
                        _collectorHelper.RunAction(() => senseApi.ExecuteLicenseAgent(dto.SenseApiSupport, statusEnums), "LicenseAgent");
                        _collectorHelper.RunAction(() => senseApi.GetAboutSystemInfo(dto.SenseApiSupport, statusEnums), "AboutSystemInfo");
                        _collectorHelper.RunAction(() => senseApi.GetAboutComponents(dto.SenseApiSupport, statusEnums), "AboutComponents");
                        _collectorHelper.RunAction(() => senseApi.GetQrsDataconnections(dto.SenseApiSupport, statusEnums), "DataConnections");
                        _collectorHelper.RunAction(() => senseApi.GetQrsServiceCluster(dto.SenseApiSupport, statusEnums), "ServiceCluster");
                        _collectorHelper.RunAction(() => senseApi.GetQrsProxyService(dto.SenseApiSupport, statusEnums), "ProxyService");
                        _collectorHelper.RunAction(() => senseApi.GetQrsAppList(dto.SenseApiSupport, statusEnums), "AppList");
                        _collectorHelper.RunAction(() => senseApi.GetQrsDataConnections(dto.SenseApiSupport, statusEnums), "dataconnectionList");

                        _logger.Add($"Finished senseInfo");
                        _notify("Collected Qlik Sense Information.", MessageLevels.Ok, "SenseInfo");
                    }
                    catch (Exception e)
                    {
                        _logger.Add("Failed getting sense info", e);
                        _notify("Failed collecting Qlik Sense Information.", MessageLevels.Error, "SenseInfo");
                    }
                }
            }));
            var readerTaskHelper = new SenseLogReaderTasks(_logger, LogDirectorDone, _notify);

            if (ServiceVariables.AllowRemoteLogs)
            {
                taskList.Add(readerTaskHelper.ReadRemoteLogs(qlikSenseMachineInfos, ServiceVariables));
            }

            if (ServiceVariables.AllowArchivedLogs)
            {
                taskList.Add(readerTaskHelper.ReadArchivedLogs(archivedLogsLocation, ServiceVariables));
            }

            return(taskList);
        }