예제 #1
0
        private bool CheckSavedSearchExists(string resourceGroupName, string workspaceName, string savedSearchId)
        {
            try
            {
                PSSavedSearchValue savedSearch = GetSavedSearch(resourceGroupName, workspaceName, savedSearchId);
                return(true);
            }
            catch (Rest.Azure.CloudException e)
            {
                // Get throws NotFound exception if the saved search does not exist
                if (e.Response.StatusCode == HttpStatusCode.NotFound)
                {
                    return(false);
                }

                throw;
            }
        }
예제 #2
0
        public virtual PSSavedSearchValue CreateSavedSearch(PSSavedSearchParameters parameters, Action <bool, string, string, string, Action, Func <bool> > ConfirmAction, bool force)
        {
            PSSavedSearchValue existingSavedSearch;

            try
            {
                existingSavedSearch = GetSavedSearch(parameters.ResourceGroupName, parameters.WorkspaceName, parameters.SavedSearchId);
            }
            catch (RestException)
            {
                existingSavedSearch = null;
            }

            if (existingSavedSearch != null)
            {
                throw new PSInvalidOperationException($"Saved search with id: '{parameters.SavedSearchId}' already exists in resource group: '{parameters.ResourceGroupName}', workspace: '{parameters.WorkspaceName}'. Please use Set-OperationalInsightsSavedSearch for updating.");
            }

            PSSavedSearchValue createdSavedSearch = null;
            Action             createSavedSearch  = () =>
            {
                createdSavedSearch = new PSSavedSearchValue(this.OperationalInsightsManagementClient.SavedSearches.CreateOrUpdate(parameters.ResourceGroupName, parameters.WorkspaceName, parameters.SavedSearchId, parameters.GetSavedSearchFromParameters()));
            };

            ConfirmAction(
                force,
                string.Format(
                    CultureInfo.InvariantCulture,
                    Resources.SavedSearchExists,
                    parameters.SavedSearchId,
                    parameters.WorkspaceName),
                string.Format(
                    CultureInfo.InvariantCulture,
                    Resources.SavedSearchCreating,
                    parameters.SavedSearchId,
                    parameters.WorkspaceName),
                parameters.SavedSearchId,
                createSavedSearch,
                () => CheckSavedSearchExists(parameters.ResourceGroupName, parameters.WorkspaceName, parameters.SavedSearchId));

            return(createdSavedSearch);
        }