|
|
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
trename.c
Abstract:
Test for cluster object rename APIs
Author:
John Vert (jvert) 5/10/1996
Revision History:
--*/ #include "windows.h"
#include "cluster.h"
#include "stdio.h"
#include "stdlib.h"
LPWSTR ClusterName=NULL; BOOL DoGroup=FALSE; BOOL DoResource=FALSE; BOOL DoCluster=FALSE; LPWSTR OldName=NULL; LPWSTR NewName=NULL;
CHAR UsageText[] = "TRENAME [-c cluster] type [oldname] newname\n" " cluster\tspecifies the name of the cluster to connect to\n" " type\t\teither \"cluster\" or \"group\" or \"resource\"\n" " oldname\t\tthe current friendly name of the object\n" " \t\t(required for group or resource)\n" " newname\t\tthe new friendly name of the object\n";
void Usage( void ) { fprintf(stderr, UsageText); exit(1); }
LPWSTR GetString( IN LPSTR String ) { LPWSTR wString; DWORD Length;
Length = strlen(String)+1;
wString = malloc(Length*sizeof(WCHAR)); if (wString == NULL) { fprintf(stderr, "GetString couldn't malloc %d bytes\n",Length*sizeof(WCHAR)); } mbstowcs(wString, String, Length); return(wString); }
void ParseArgs( int argc, char *argv[] ) { int i; DWORD ArgsSeen=0;
for (i=1;i<argc;i++) { if ((argv[i][0] == '-') || (argv[i][0] == '/')) { switch (argv[i][1]) { case 'c': if (++i == argc) { Usage(); } ClusterName = GetString(argv[i]); break; default: Usage(); break; } } else { switch (ArgsSeen) { case 0: //
// type
//
if (_stricmp(argv[i], "group")==0) { DoGroup = TRUE; } else if (_stricmp(argv[i], "resource") == 0) { DoResource = TRUE; } else if (_stricmp(argv[i], "cluster") == 0) { DoCluster = TRUE; ArgsSeen++; } else { Usage(); } ArgsSeen++; break; case 1: OldName = GetString(argv[i]); ArgsSeen++; break; case 2: NewName = GetString(argv[i]); ArgsSeen++; break; default: Usage(); } } }
if (ArgsSeen != 3) { Usage(); } }
_cdecl main (argc, argv) int argc; char *argv[]; { HCLUSTER hClus; HGROUP hGroup; HRESOURCE hResource; LPSTR KeyName, ParamName; LPSTR ParamValue; DWORD Status;
ParseArgs(argc, argv);
hClus = OpenCluster(ClusterName); if (hClus == NULL) { fprintf(stderr, "OpenCluster %ws failed %d\n", (ClusterName == NULL) ? L"(NULL)" : ClusterName, GetLastError()); return(0); }
if (DoGroup) { hGroup = OpenClusterGroup(hClus, OldName); if (hGroup == NULL) { fprintf(stderr, "OpenGroup %ws failed %d\n", OldName, GetLastError()); return(0); } Status = SetClusterGroupName(hGroup, NewName); if (Status != ERROR_SUCCESS) { fprintf(stderr, "SetClusterGroupName from %ws to %ws failed %d\n", OldName, NewName, Status); } } else if (DoResource) { hResource = OpenClusterResource(hClus, OldName); if (hResource == NULL) { fprintf(stderr, "OpenResource %ws failed %d\n", OldName, GetLastError()); return(0); } Status = SetClusterResourceName(hResource, NewName); if (Status != ERROR_SUCCESS) { fprintf(stderr, "SetClusterResourceName from %ws to %ws failed %d\n", OldName, NewName, Status); } } else if (DoCluster) { Status = SetClusterName(hClus, NewName); if (Status != ERROR_SUCCESS) { fprintf(stderr, "SetClusterName to %ws failed %d\n", NewName, Status); } }
return(0); }
|