Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions Azure_DevOps_Server_2022/CleanUpShardDetails.ps1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<#
<#
This scripts cleans the shard details table from the configuration database
#>

Expand All @@ -8,13 +8,17 @@ Param(
[string]$SQLServerInstance,

[Parameter(Mandatory=$True, Position=1, HelpMessage="Configuration DB")]
[string]$ConfigurationDatabaseName
[string]$ConfigurationDatabaseName,

[Parameter(Mandatory=$False)]
[switch]$TrustServerCertificate
)

function CleanupShardDetails
{
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\CleanUpShardDetailsTable.sql'
Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Verbose
Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Verbose @trustCertParam
Write-Host "Cleaned up the shard details..." -ForegroundColor Yellow
}

Expand Down
16 changes: 10 additions & 6 deletions Azure_DevOps_Server_2022/Common.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,13 @@ function ValidateCollectionName
(
[string] $SQLServerInstance,
[string] $ConfigurationDatabaseName,
[string] $CollectionName
[string] $CollectionName,
[Parameter(Mandatory=$False)]
[switch] $TrustServerCertificate
)
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }

$queryResults = Invoke-Sqlcmd -Query "Select HostID from [dbo].[tbl_ServiceHost] where Name = '$CollectionName' and HostType = 4" -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Verbose
$queryResults = Invoke-Sqlcmd -Query "Select HostID from [dbo].[tbl_ServiceHost] where Name = '$CollectionName' and HostType = 4" -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Verbose @trustCertParam

$CollectionID = $queryResults | Select-object -ExpandProperty HOSTID

Expand All @@ -57,12 +60,13 @@ function IsExtensionInstalled
(
[string] $SQLServerInstance,
[string] $CollectionDatabaseName,
[string] $RegValue
[string] $RegValue,
[Parameter(Mandatory=$False)]
[switch] $TrustServerCertificate
)
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }

return $true

$isCollectionIndexed = Invoke-Sqlcmd -Query "Select RegValue from tbl_RegistryItems where ChildItem like '%$RegValue%' and PartitionId > 0" -ServerInstance $SQLServerInstance -Database $CollectionDatabaseName
$isCollectionIndexed = Invoke-Sqlcmd -Query "Select RegValue from tbl_RegistryItems where ChildItem like '%$RegValue%' and PartitionId > 0" -ServerInstance $SQLServerInstance -Database $CollectionDatabaseName @trustCertParam

if($isCollectionIndexed.RegValue -eq "True")
{
Expand Down
20 changes: 14 additions & 6 deletions Azure_DevOps_Server_2022/ExcludedTfvcFoldersForIndexing.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -13,52 +13,60 @@ Param(
[string]$CollectionName,

[Parameter(Mandatory=$True, Position=4, HelpMessage="Enter operation type 'Add' for adding more folder(s), 'Remove' for removing folder(s) from exclusion list, 'Delete' for deleting all the folders in the list, 'Fetch' for fetching list of folders present in exclusion list.")]
[string]$OperationType
[string]$OperationType,

[Parameter(Mandatory=$False)]
[switch]$TrustServerCertificate
)

Import-Module .\Common.psm1 -Force

function AddExcludedFolders
{
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }
$foldersList = Read-Host 'Specify comma separated list of folders to Exclude from Indexing'
$Params = "CollectionId='$CollectionID'", "FolderPaths='$foldersList'"
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\TfvcExcludedFolders\AddFoldersInExclusionList.sql'
Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Variable $Params
Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Variable $Params @trustCertParam
Write-Host "Added Given folders to Indexing Exclusion list" -ForegroundColor Yellow
}

function FetchExcludedFoldersList
{
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }
$Params = "CollectionId='$CollectionID'"
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\TfvcExcludedFolders\FetchFoldersInExclusionList.sql'
$QueryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Variable $Params
$QueryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Variable $Params @trustCertParam

$ExcludedFoldersList = $QueryResults | Select-object -ExpandProperty ExcludedFolders
Write-Host "Folders present in Indexing Exclusion list are: '$ExcludedFoldersList'" -ForegroundColor Yellow
}

function RemoveFoldersFromExclusionList
{
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }
$foldersList = Read-Host 'Specify comma separated list of folders to remove from Indexing Exclusion list'
$Params = "CollectionId='$CollectionID'", "FolderPaths='$foldersList'"
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\TfvcExcludedFolders\RemoveFoldersFromExclusionList.sql'
Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Variable $Params
Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Variable $Params @trustCertParam
Write-Host "Removed given folders from Indexing Exclusion list" -ForegroundColor Yellow
}

function DeleteAllExcludedFolders
{
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }
$Params = "CollectionId='$CollectionID'"
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\TfvcExcludedFolders\DeleteAllFoldersInExclusionList.sql'
Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Variable $Params
Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Variable $Params @trustCertParam
Write-Host "Deleted all folders from Indexing Exclusion list" -ForegroundColor Yellow
}

[System.ENVIRONMENT]::CurrentDirectory = $PWD
Push-Location
ImportSQLModule

$CollectionID = ValidateCollectionName $SQLServerInstance $ConfigurationDatabaseName $CollectionName
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }
$CollectionID = ValidateCollectionName $SQLServerInstance $ConfigurationDatabaseName $CollectionName @trustCertParam

switch ($OperationType)
{
Expand Down
36 changes: 22 additions & 14 deletions Azure_DevOps_Server_2022/ExtensionInstallIndexingStatus.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,26 @@ Param(
[string]$Days,

[Parameter(Mandatory=$False, Position=5, HelpMessage="Extension install indexing state for Code, WorkItem, Wiki or All")]
[string]$EntityType = "All"
[string]$EntityType = "All",

[Parameter(Mandatory=$False)]
[switch]$TrustServerCertificate
)

Import-Module .\Common.psm1 -Force

$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }

# Fetches the Code Extension install indexing status.
function CodeExtensionInstallIndexingStatus
{
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }
# Validating if the collection has code extension installed.
if(IsExtensionInstalled $SQLServerInstance $CollectionDatabaseName "IsCollectionIndexed")
if(IsExtensionInstalled $SQLServerInstance $CollectionDatabaseName "IsCollectionIndexed" @trustCertParam)
{
#Gets the result of the Code Extension AccountFaultIn job
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\CodeAccountFaultInResult.sql'
$queryResults = Invoke-Sqlcmd -InputFile "$PWD\SqlScripts\CodeAccountFaultInResult.sql" -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Verbose -Variable $Params
$queryResults = Invoke-Sqlcmd -InputFile "$PWD\SqlScripts\CodeAccountFaultInResult.sql" -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Verbose -Variable $Params @trustCertParam

if($queryResults)
{
Expand All @@ -47,7 +53,7 @@ function CodeExtensionInstallIndexingStatus

# Gets the count of repositories for which the code indexing has completed.
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\CountCodeIndexingCompleted.sql'
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Variable $indexingCompletedQueryParams
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Variable $indexingCompletedQueryParams @trustCertParam
$indexingCompletedRepositoryCount = $queryResults | Select-object -ExpandProperty IndexingCompletedCount

if($indexingCompletedRepositoryCount -gt 0)
Expand All @@ -61,7 +67,7 @@ function CodeExtensionInstallIndexingStatus

# Gets the data for repositories which are still inprogress.
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\CodeBulkIndexingInProgressRepositoryCount.sql'
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Verbose -Variable $Params
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Verbose -Variable $Params @trustCertParam
$CodeBulkIndexingInProgressRepositoryCount = $queryResults | Select-object -ExpandProperty ItemArray

if($CodeBulkIndexingInProgressRepositoryCount -gt 0)
Expand Down Expand Up @@ -93,12 +99,13 @@ function CodeExtensionInstallIndexingStatus

function WorkItemExtensionInstallIndexingStatus
{
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }
# Validating if the collection has workitem extension installed.
if(IsExtensionInstalled $SQLServerInstance $CollectionDatabaseName "IsCollectionIndexedForWorkItem")
if(IsExtensionInstalled $SQLServerInstance $CollectionDatabaseName "IsCollectionIndexedForWorkItem" @trustCertParam)
{
#Gets the result of the Code Extension AccountFaultIn job
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\WorkItemAccountFaultInResult.sql'
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Verbose -Variable $Params
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Verbose -Variable $Params @trustCertParam

if($queryResults)
{
Expand All @@ -116,7 +123,7 @@ function WorkItemExtensionInstallIndexingStatus

# Gets the count of repositories for which the indexing has completed.
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\CountWorkItemIndexingCompleted.sql'
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Variable $indexingCompletedQueryParams
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Variable $indexingCompletedQueryParams @trustCertParam
$indexingCompletedRepositoryCount = $queryResults | Select-object -ExpandProperty IndexingCompletedCount

if($indexingCompletedRepositoryCount -gt 0)
Expand All @@ -130,7 +137,7 @@ function WorkItemExtensionInstallIndexingStatus

# Gets the data for projects with workitem indexing still inprogress.
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\WorkItemIndexingInProgressRepositoryCount.sql'
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Verbose -Variable $Params
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Verbose -Variable $Params @trustCertParam
$WorkItemIndexingInProgressRepositoryCount = $queryResults | Select-object -ExpandProperty ItemArray

if($WorkItemIndexingInProgressRepositoryCount -gt 0)
Expand Down Expand Up @@ -162,12 +169,13 @@ function WorkItemExtensionInstallIndexingStatus
# Fetches the Wiki Extension install indexing status.
function WikiExtensionInstallIndexingStatus
{
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }
# Validating if the collection has wiki search extension installed.
if(IsExtensionInstalled $SQLServerInstance $CollectionDatabaseName "IsCollectionIndexedForWiki")
if(IsExtensionInstalled $SQLServerInstance $CollectionDatabaseName "IsCollectionIndexedForWiki" @trustCertParam)
{
#Gets the result of the Wiki Extension AccountFaultIn job
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\WikiAccountFaultInResult.sql'
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Verbose -Variable $Params
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $ConfigurationDatabaseName -Verbose -Variable $Params @trustCertParam

if($queryResults)
{
Expand All @@ -185,7 +193,7 @@ function WikiExtensionInstallIndexingStatus

# Gets the count of repositories for which the wiki indexing has completed.
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\WikiIndexingCompletedActivity.sql'
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Variable $indexingCompletedQueryParams
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Variable $indexingCompletedQueryParams @trustCertParam
$indexingCompletedRepositoryCount = $queryResults | Select-object -ExpandProperty IndexingCompletedCount

if($indexingCompletedRepositoryCount -gt 0)
Expand All @@ -199,7 +207,7 @@ function WikiExtensionInstallIndexingStatus

# Gets the data for repositories which are still inprogress.
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\WikiIndexingInProgressRepositories.sql'
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Verbose -Variable $Params
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Verbose -Variable $Params @trustCertParam
$WikiIndexingInProgressRepositories = $queryResults | Select-object -ExpandProperty ItemArray

if($WikiIndexingInProgressRepositories -gt 0)
Expand Down Expand Up @@ -235,7 +243,7 @@ Push-Location
ImportSQLModule

# Checking for valid Collection Name.
$CollectionID = ValidateCollectionName $SQLServerInstance $ConfigurationDatabaseName $CollectionName
$CollectionID = ValidateCollectionName $SQLServerInstance $ConfigurationDatabaseName $CollectionName @trustCertParam

$Params = "CollectionId='$CollectionID'"
$indexingCompletedQueryParams = "DaysAgo='$Days'","CollectionId='$CollectionID'"
Expand Down
10 changes: 7 additions & 3 deletions Azure_DevOps_Server_2022/FixIndexingIndexName.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,25 @@ Param(
[string]$ConfigurationDatabaseName,

[Parameter(Mandatory=$True, Position=3, HelpMessage="Enter the Collection Name here.")]
[string]$CollectionName
[string]$CollectionName,

[Parameter(Mandatory=$False)]
[switch]$TrustServerCertificate
)
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }

Import-Module .\Common.psm1 -Force

[System.ENVIRONMENT]::CurrentDirectory = $PWD
Push-Location
ImportSQLModule

$CollectionID = ValidateCollectionName $SQLServerInstance $ConfigurationDatabaseName $CollectionName
$CollectionID = ValidateCollectionName $SQLServerInstance $ConfigurationDatabaseName $CollectionName @trustCertParam

# Fix the index name in all repo indexing units
$fixIndexingIndexNameParams = "CollectionId='$CollectionID'"
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\FixIndexingIndexName.sql'
Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Variable $fixIndexingIndexNameParams
Invoke-Sqlcmd -InputFile $SqlFullPath -serverInstance $SQLServerInstance -database $CollectionDatabaseName -Variable $fixIndexingIndexNameParams @trustCertParam
Write-Host "Fixed the indexing index name in all repo indexing units" -ForegroundColor Cyan

Pop-Location
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Display collection indexing status for a given collection.
#Display collection indexing status for a given collection.

[CmdletBinding()]
Param(
Expand All @@ -25,26 +25,30 @@ Param(

[Parameter(Mandatory=$False, Position=5, HelpMessage="URI for Elasticsearch instance.")]
[String]
$Uri
$Uri,

[Parameter(Mandatory=$False)]
[switch]$TrustServerCertificate
)


function getCollectionIndexingStatus
{
$trustCertParam = if ($TrustServerCertificate) { @{TrustServerCertificate = $true} } else { @{} }
if(!$ConfigurationDatabaseName -or !$CollectionDatabaseName)
{
Write-Host "Please enter ConfigurationDatabaseName and CollectionDatabaseName"
return
}
Import-Module .\Common.psm1 -Force
$collectionId = ValidateCollectionName $SQLServerInstance $ConfigurationDatabaseName $userCollection
$collectionId = ValidateCollectionName $SQLServerInstance $ConfigurationDatabaseName $userCollection @trustCertParam
$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\CodeIndexingCompletedCount.sql'
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -ServerInstance $SQLServerInstance -Database $collectionDatabaseName
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -ServerInstance $SQLServerInstance -Database $collectionDatabaseName @trustCertParam
$completed = $queryResults.BulkIndexingCompletedCount
Write-Host "No of repositories completed: $completed"

$SqlFullPath = Join-Path $PWD -ChildPath 'SqlScripts\CodeIndexingInProgressRepositories.sql'
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -ServerInstance $SQLServerInstance -Database $collectionDatabaseName
$queryResults = Invoke-Sqlcmd -InputFile $SqlFullPath -ServerInstance $SQLServerInstance -Database $collectionDatabaseName @trustCertParam
$inProgress = $queryResults.Length
Write-Host "Repositories InProgress: $inProgress"
if($inProgress -gt 0)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Fetch repository documents count data from provided ES instance.
#Fetch repository documents count data from provided ES instance.
#Run the script with script <ES Connection String> <Destination>
#Output will be stored in a single json file at the given destination.
#Format of the output is same as the one returned by elasticsearch for nested aggregation queries.
Expand Down
Loading