亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ibmhmc.c

?? linux集群服務器軟件代碼包
?? C
?? 第 1 頁 / 共 2 頁
字號:
		LOG(PIL_DEBUG, "%s: called.", __FUNCTION__);	}	return names;}/* *	Reset the given host, and obey the request type. *	We should reset without power cycle for the non-partitioned case */static intibmhmc_reset_req(StonithPlugin * s, int request, const char * host){	GList*			node = NULL;	struct pluginDevice*	dev = NULL;	char			off_cmd[MAX_CMD_LEN];	char			on_cmd[MAX_CMD_LEN];	/* reset_cmd is only used by full system partition */	char			reset_cmd[MAX_CMD_LEN];	gchar**			names = NULL;	int			i;	int			is_lpar = FALSE;	int			status;		status = 0;	if(Debug){		LOG(PIL_DEBUG , "%s : called , host=%s\n" , __FUNCTION__,host);	}		ERRIFWRONGDEV(s,S_OOPS);		if (NULL == host) {		LOG( PIL_CRIT, "invalid argument to %s", __FUNCTION__);		return(S_OOPS);	}	dev = (struct pluginDevice*) s;	for (node=g_list_first(dev->hostlist)	;	NULL != node	;	node=g_list_next(node)) {		if(Debug){			LOG(PIL_DEBUG , "%s:node->data = %s\n" , __FUNCTION__ 			    , (char*)node->data);		}				if (strcasecmp((char*)node->data, host) == 0) {			break;		};	}	if (!node) {		LOG( PIL_CRIT, "%s %s",			_("host s is not configured in this STONITH module."			 "Please check you configuration information."), 			host);		return (S_OOPS);	}	names = g_strsplit((char*)node->data, "/", 2);	/* names[0] will be the name of managed system */	/* names[1] will be the name of the lpar partition */	if(Debug){		LOG(PIL_DEBUG , "%s:names[0]=%s, names[1]=%s\n" , __FUNCTION__ 		    , names[0] , names[1]);	}	if (0 == strcasecmp(names[1], FULLSYSTEMPARTITION)) {		is_lpar = FALSE;				snprintf(off_cmd, MAX_CMD_LEN		,	SSH_CMD " -l " HMCROOT " %s chsysstate"		" -r sys -m %s -o off -n %s -c full"		,	 dev->hmc, dev->hmc, names[0]);		snprintf(on_cmd, MAX_CMD_LEN		,	SSH_CMD " -l " HMCROOT " %s chsysstate"		 " -r sys -m %s -o on -n %s -c full -b norm"		,	 dev->hmc, names[0], names[0]);		snprintf(reset_cmd, MAX_CMD_LEN		,	SSH_CMD " -l " HMCROOT " %s chsysstate"		 " -r sys -m %s -o reset -n %s -c full -b norm"		,	 dev->hmc, names[0], names[0]);			} else {		is_lpar = TRUE;				snprintf(off_cmd, MAX_CMD_LEN		,	 SSH_CMD " -l " HMCROOT " %s reset_partition"			 " -m %s -p %s -t hard"		,	 dev->hmc, names[0], names[1]);		snprintf(on_cmd, MAX_CMD_LEN		,	 SSH_CMD " -l " HMCROOT " %s chsysstate"			 " -r lpar -m %s -o on -n %s"		,	 dev->hmc, names[0], names[1]);	}		if(Debug){		LOG(PIL_DEBUG , "%s: off_cmd=%s , on_cmd=%s , reset_cmd=%s\n" 		    , __FUNCTION__ , off_cmd , on_cmd , reset_cmd);	}	g_strfreev(names);	switch (request) {	case ST_POWERON:		do_shell_cmd(on_cmd,&status);		if (0!=status) {			LOG( PIL_CRIT, "command %s failed", on_cmd);		}		break;	case ST_POWEROFF:		do_shell_cmd(off_cmd,&status);		if (0!=status) {			LOG( PIL_CRIT, "command %s failed", off_cmd);		}		break;	case ST_GENERIC_RESET:		if (is_lpar) {			do_shell_cmd(off_cmd,&status);			if (0!=status) {				LOG( PIL_CRIT, "command %s failed", off_cmd);				break;			}			for (i=0; i < MAX_POWERON_RETRY; i++) {				do_shell_cmd(on_cmd,&status);				if (0!=status) {					sleep(1);				}else{					break;				}			}			if (MAX_POWERON_RETRY == i) {				LOG( PIL_CRIT, "command %s failed", on_cmd);			}		}		else {			do_shell_cmd(reset_cmd,&status);			if (0!=status) {				LOG( PIL_CRIT, "command %s failed", reset_cmd);			}			break;		}		break;	default:		LOG( PIL_CRIT, "unknown reset request");		}			LOG( PIL_INFO, "%s: %s", _("Host ibmhmc-reset."), host);	return S_OK;}/* *	Parse the information in the given configuration file, *	and stash it away... */static intibmhmc_set_config(StonithPlugin * s, StonithNVpair* list){	struct pluginDevice* dev = NULL;	const char * hlist;			ERRIFWRONGDEV(s,S_OOPS);	if(Debug){		LOG(PIL_DEBUG , "%s: called\n" , __FUNCTION__);	}		dev = (struct pluginDevice*) s;	if(( hlist = OurImports->GetValue(list , ST_HOSTLIST)) == NULL){		return S_OOPS;		}	if(Debug){		LOG(PIL_DEBUG, "%s:  hlist = %s\n" , __FUNCTION__ , hlist);		}		if (S_OK != ibmhmc_parse_config_info(dev , hlist)){		return S_BADCONFIG;	}		return S_OK;}static const char*ibmhmc_getinfo(StonithPlugin* s, int reqtype){	struct pluginDevice* dev;	char* ret;	ERRIFWRONGDEV(s,NULL);	dev = (struct pluginDevice *)s;	switch (reqtype) {		case ST_DEVICEID:			ret = _("IBM pSeries HMC");			break;		case ST_DEVICEDESCR:			ret = _("IBM pSeries Hardware Management Console (HMC)\n"			"Use for HMC-equipped IBM pSeries Server\n"			"Providing the list of hosts should go away (!)...\n"			"This code probably only works on the POWER4 "			"architecture systems\n See " HMCURL " for more "			"information.\n");			break;		default:			ret = NULL;			break;	}	return ret;}/* *	HMC Stonith destructor... */static voidibmhmc_destroy(StonithPlugin *s){	struct pluginDevice* dev;	VOIDERRIFWRONGDEV(s);	if(Debug){		LOG(PIL_DEBUG , "%s : called\n" , __FUNCTION__);	}	dev = (struct pluginDevice *)s;	dev->pluginid = NOTpluginID;	if (dev->hmc) {		FREE(dev->hmc);		dev->hmc = NULL;	}	if (dev->hostlist) {		GList* node;		while (NULL != (node=g_list_first(dev->hostlist))) {			dev->hostlist = g_list_remove_link(dev->hostlist, node);			FREE(node->data);			g_list_free(node);		}		dev->hostlist = NULL;	}		FREE(dev);}static StonithPlugin *ibmhmc_new(void){	struct pluginDevice* dev = MALLOCT(struct pluginDevice);		if(Debug){		LOG(PIL_DEBUG , "%s: called\n" , __FUNCTION__);	}		if (dev == NULL) {		LOG( PIL_CRIT, "%s: out of memory" , __FUNCTION__);		return(NULL);	}	memset(dev, 0, sizeof(*dev));	dev->pluginid = pluginid;	dev->hmc = NULL;	dev->hostlist = NULL;	dev->sp.s_ops = &ibmhmcOps;	if(Debug){		LOG(PIL_DEBUG , "%s: returning successfully\n" , __FUNCTION__);	}	return((void *)dev);}static char*do_shell_cmd(const char* cmd, int* status){	const int BUFF_LEN=4096;	int read_len = 0;	char buff[BUFF_LEN];	char* data = NULL;	GString* g_str_tmp = NULL;	FILE* file = popen(cmd, "r");	if (NULL==file) {		return NULL;	}	g_str_tmp = g_string_new("");	while(!feof(file)) {		memset(buff, 0, BUFF_LEN);		read_len = fread(buff, 1, BUFF_LEN, file);		if (0<read_len) {			g_string_append(g_str_tmp, buff);		}		else {			sleep(1);		}	}	data = (char*)MALLOC(g_str_tmp->len+1);	data[0] = data[g_str_tmp->len] = 0;	strncpy(data, g_str_tmp->str, g_str_tmp->len);	g_string_free(g_str_tmp, TRUE);	*status = pclose(file);	return data;}static intcheck_hmc_status(const char* hmc){	int status;	char check_status[MAX_CMD_LEN];	char* output = NULL;	if(Debug){		LOG(PIL_DEBUG , "%s: called,hmc=%s\n" , __FUNCTION__,hmc);	}	snprintf(check_status, MAX_CMD_LEN,		 SSH_CMD " -l " HMCROOT " %s lshmc -r -F ssh", hmc);	if(Debug){		LOG(PIL_INFO , "%s: check_status=%s\n" , __FUNCTION__ 		    , check_status);	}	output = do_shell_cmd(check_status, &status);		if (Debug) {		LOG(PIL_DEBUG , "%s : output=%s\n" , __FUNCTION__ , output);	}	if (NULL==output || strncmp(output, "enable", 6)!= 0) {		return S_BADCONFIG;	}	FREE(output);	return S_OK;}/*static char*do_shell_cmd_fake(const char* cmd, int* status){printf("%s()\n",__FUNCTION__);	printf("cmd:%s\n",cmd);	*status=0;	return NULL;}*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美成人一区二区| 国产精品福利影院| 亚洲国产精品v| 午夜在线电影亚洲一区| 国产凹凸在线观看一区二区| 在线成人小视频| 亚洲免费观看高清完整版在线观看熊| 美女精品一区二区| 欧美午夜片在线看| 亚洲人精品午夜| 激情五月播播久久久精品| 欧美日本在线观看| 亚洲精品老司机| www.视频一区| 日本一区二区久久| 国产激情一区二区三区桃花岛亚洲| 欧美日韩国产大片| 亚洲二区在线视频| 欧美自拍偷拍午夜视频| 日韩毛片一二三区| eeuss鲁片一区二区三区| 久久久噜噜噜久久人人看 | 成人看片黄a免费看在线| 欧美一区二区黄色| 五月天一区二区三区| 在线观看欧美黄色| 樱桃国产成人精品视频| 99久久国产综合精品色伊| 国产目拍亚洲精品99久久精品| 久久国产精品第一页| 欧美成人一区二区三区片免费| 亚洲国产成人porn| 欧美日高清视频| 日本欧美肥老太交大片| 欧美剧情片在线观看| 日韩精品欧美成人高清一区二区| 欧美在线观看视频一区二区 | proumb性欧美在线观看| 中文乱码免费一区二区| 成人中文字幕合集| 亚洲视频一区二区免费在线观看 | 亚洲免费观看高清完整版在线观看熊| gogo大胆日本视频一区| 亚洲日本中文字幕区| 欧美性受xxxx| 日本不卡不码高清免费观看| 日韩欧美中文字幕一区| 国产一区二区三区在线观看免费视频 | 精品免费日韩av| 国产成人免费xxxxxxxx| 国产精品第一页第二页第三页| 91在线视频免费观看| 亚洲永久精品国产| 亚洲精品一区二区三区精华液 | 欧美三级电影一区| 美脚の诱脚舐め脚责91 | 欧美精品一区二区三区蜜桃| 成人免费视频视频在线观看免费 | 国产在线乱码一区二区三区| 中文在线一区二区| 8x8x8国产精品| 国产美女视频91| 夜夜夜精品看看| 亚洲精品一区二区三区在线观看| av一区二区三区黑人| 亚洲高清视频中文字幕| 国产亚洲精品福利| 欧美专区日韩专区| 九九**精品视频免费播放| 中文字幕综合网| 日韩欧美成人一区二区| 色综合激情久久| 国产精品一区二区无线| 亚洲1区2区3区视频| 中文字幕高清一区| 日韩午夜在线观看| 在线精品亚洲一区二区不卡| 激情欧美一区二区| 亚洲v中文字幕| 亚洲日本在线观看| 久久老女人爱爱| 欧美日韩和欧美的一区二区| 成人av影视在线观看| 久久精品国产99| 性做久久久久久久久| 亚洲三级久久久| 国产日产欧美一区二区三区| 91精品国产入口在线| 91成人在线观看喷潮| www.亚洲激情.com| 国产成人一级电影| 国内成人自拍视频| 久久精品国产99国产| 午夜av电影一区| 亚洲图片欧美色图| 亚洲欧美视频一区| 国产精品视频九色porn| 国产亚洲欧洲一区高清在线观看| 欧美一级艳片视频免费观看| 欧美日韩一区二区欧美激情| 99re热视频这里只精品| 粗大黑人巨茎大战欧美成人| 国产一区在线看| 国产一区二区伦理| 久久99久久99| 精品一区二区三区日韩| 久久激情五月激情| 精品一区二区在线看| 狠狠色丁香九九婷婷综合五月| 日韩高清不卡一区二区| 男人的天堂亚洲一区| 日韩国产精品大片| 日本亚洲欧美天堂免费| 免费高清不卡av| 蜜臀国产一区二区三区在线播放 | 日韩一级片网站| 日韩欧美国产综合| 日韩精品一区国产麻豆| 日韩免费在线观看| 久久影音资源网| 国产日韩影视精品| 日韩毛片在线免费观看| 一区二区三区蜜桃| 亚洲3atv精品一区二区三区| 欧美a级理论片| 国产成人超碰人人澡人人澡| 成人黄色片在线观看| 91精品91久久久中77777| 精品视频999| 欧美成人a视频| 国产精品久久久久桃色tv| 亚洲欧美日韩精品久久久久| 亚洲一区二区在线视频| 日韩激情视频网站| 国产一区视频在线看| 91网址在线看| 91精品婷婷国产综合久久竹菊| 日韩美一区二区三区| 中文字幕巨乱亚洲| 亚洲成人资源网| 国产成人精品午夜视频免费| 91亚洲国产成人精品一区二区三| 欧美日韩在线三级| 久久久久久久久久久99999| 亚洲日本电影在线| 天天影视涩香欲综合网| 国产乱一区二区| 91黄色激情网站| 精品嫩草影院久久| 亚洲一区在线电影| 国产成人av网站| 欧美三级日本三级少妇99| 国产亚洲美州欧州综合国| 亚洲国产精品久久一线不卡| 国产在线视视频有精品| 欧美色图激情小说| 国产精品成人在线观看 | 蜜臀av一区二区三区| 91在线观看视频| 欧美一二三四在线| 一区二区三区产品免费精品久久75| 毛片av中文字幕一区二区| 91在线精品秘密一区二区| 日韩欧美国产综合一区 | 欧美高清在线精品一区| 免费av网站大全久久| 色综合天天综合在线视频| 精品国产三级电影在线观看| 亚洲第一福利一区| 色综合久久久久久久| 中文字幕va一区二区三区| 美国毛片一区二区| 欧美精品久久天天躁| 亚洲激情在线激情| av高清不卡在线| 国产日韩精品一区二区浪潮av| 免费成人在线观看视频| 欧美主播一区二区三区| 亚洲图片激情小说| 国产99久久久国产精品| 精品精品欲导航| 日韩成人免费看| 欧美男生操女生| 亚洲成人激情综合网| 色悠久久久久综合欧美99| 国产精品久久久久久一区二区三区| 国产主播一区二区| 精品国内片67194| 久久国产尿小便嘘嘘| 日韩欧美国产麻豆| 男人的天堂久久精品| 欧美一区2区视频在线观看| 日本亚洲天堂网| 日韩欧美色综合| 久久99国产精品久久99| 日韩美女视频在线| 激情图片小说一区| 欧美精彩视频一区二区三区| 国产成人av自拍| 国产女同互慰高潮91漫画|