Advertisement
Guest User

Untitled

a guest
Mar 15th, 2017
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. System.Management.ManagementException: Generic failure
  2. at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
  3. at System.Management.ManagementObject.InvokeMethod(String methodName, ManagementBaseObject inParameters, InvokeMethodOptions options)
  4.  
  5. public class ClusterManager
  6. {
  7. private readonly string ClusterName;
  8. private readonly string ClusterNamespace;
  9. private ManagementScope Scope;
  10. private readonly ConnectionOptions Options;
  11.  
  12. public ClusterManager(string clusterName, string clusterNameSpace, string user, string password)
  13. {
  14. ClusterName = clusterName;
  15. ClusterNamespace = clusterNameSpace;
  16.  
  17. EnvironmentManager env = EnvironmentManager.Instance();
  18.  
  19. Options = new ConnectionOptions
  20. {
  21. Authentication = AuthenticationLevel.PacketPrivacy,
  22. Username = env.UserName,
  23. Password = env.Password
  24. };
  25. }
  26.  
  27. public void Connect()
  28. {
  29. Scope = new ManagementScope($@"\{ClusterName}root{ClusterNamespace}", Options);
  30. Scope.Connect();
  31. }
  32.  
  33. public ManagementObject GetResource(string name)
  34. {
  35. string wmiClassName = "MSCluster_Resource";
  36.  
  37. ManagementClass managementClass = new ManagementClass(Scope, new ManagementPath(wmiClassName), null);
  38. managementClass.Get();
  39. ManagementObjectCollection objectCollection = managementClass.GetInstances();
  40.  
  41. foreach (ManagementBaseObject obj in objectCollection)
  42. {
  43. ManagementObject resource = (ManagementObject)obj;
  44.  
  45. if (resource["Name"].ToString() == name)
  46. {
  47. return resource;
  48. }
  49. }
  50.  
  51. return null;
  52. }
  53.  
  54. public List<ManagementObject> GetClusterNodes()
  55. {
  56. List<ManagementObject> list = new List<ManagementObject>();
  57.  
  58. string wmiClassName = "MSCluster_Node";
  59.  
  60. ManagementClass managementClass = new ManagementClass(Scope, new ManagementPath(wmiClassName), null);
  61. managementClass.Get();
  62. ManagementObjectCollection objectCollection = managementClass.GetInstances();
  63.  
  64. foreach (ManagementBaseObject obj in objectCollection)
  65. {
  66. list.Add((ManagementObject)obj);
  67. }
  68.  
  69. return list;
  70. }
  71.  
  72. public void TakeOffline(ManagementObject resource)
  73. {
  74. try
  75. {
  76. resource.InvokeMethod("Takeoffline", null, null);
  77. }
  78. catch (Exception ex)
  79. {
  80. // ошибка здесь
  81. LogManager.Error(ex.ToString());
  82. }
  83. }
  84.  
  85. public void BringOnline(ManagementObject resource)
  86. {
  87. try
  88. {
  89. resource.InvokeMethod("Bringonline", null, null);
  90. }
  91. catch (Exception ex)
  92. {
  93. // ошибка здесь
  94. LogManager.Error(ex.ToString());
  95. }
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement