Add unknown status for DB Nodes whose status is not known (#524)

This commit is contained in:
Saurabh Singh
2017-10-25 12:06:10 -07:00
committed by Karl Burtram
parent caf196ea31
commit 3d7b87eca2

View File

@@ -25,43 +25,52 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
Database db = context as Database; Database db = context as Database;
if (db != null) if (db != null)
{ {
if ((db.Status & DatabaseStatus.Offline) == DatabaseStatus.Offline) DatabaseStatus status;
try {
status = db.Status;
}
catch (SqlServer.Management.Common.ConnectionFailureException)
{
// We get into this situation with DW Nodes which are paused.
return "Unknown";
}
if ((status & DatabaseStatus.Offline) == DatabaseStatus.Offline)
{ {
return "Offline"; return "Offline";
} }
else if ((db.Status & DatabaseStatus.Recovering) == DatabaseStatus.Recovering) else if ((status & DatabaseStatus.Recovering) == DatabaseStatus.Recovering)
{ {
return "Recovering"; return "Recovering";
} }
else if ((db.Status & DatabaseStatus.RecoveryPending) == DatabaseStatus.RecoveryPending) else if ((status & DatabaseStatus.RecoveryPending) == DatabaseStatus.RecoveryPending)
{ {
return "Recovery Pending"; return "Recovery Pending";
} }
else if ((db.Status & DatabaseStatus.Restoring) == DatabaseStatus.Restoring) else if ((status & DatabaseStatus.Restoring) == DatabaseStatus.Restoring)
{ {
return "Restoring"; return "Restoring";
} }
else if ((db.Status & DatabaseStatus.EmergencyMode) == DatabaseStatus.EmergencyMode) else if ((status & DatabaseStatus.EmergencyMode) == DatabaseStatus.EmergencyMode)
{ {
return "Emergency Mode"; return "Emergency Mode";
} }
else if ((db.Status & DatabaseStatus.Inaccessible) == DatabaseStatus.Inaccessible) else if ((status & DatabaseStatus.Inaccessible) == DatabaseStatus.Inaccessible)
{ {
return "Inaccessible"; return "Inaccessible";
} }
else if ((db.Status & DatabaseStatus.Shutdown) == DatabaseStatus.Shutdown) else if ((status & DatabaseStatus.Shutdown) == DatabaseStatus.Shutdown)
{ {
return "Shutdown"; return "Shutdown";
} }
else if ((db.Status & DatabaseStatus.Standby) == DatabaseStatus.Standby) else if ((status & DatabaseStatus.Standby) == DatabaseStatus.Standby)
{ {
return "Standby"; return "Standby";
} }
else if ((db.Status & DatabaseStatus.Suspect) == DatabaseStatus.Suspect) else if ((status & DatabaseStatus.Suspect) == DatabaseStatus.Suspect)
{ {
return "Suspect"; return "Suspect";
} }
else if ((db.Status & DatabaseStatus.AutoClosed) == DatabaseStatus.AutoClosed) else if ((status & DatabaseStatus.AutoClosed) == DatabaseStatus.AutoClosed)
{ {
return "Auto Closed"; return "Auto Closed";
} }