$ops[$skey[2]] = OP_SERV_ADD; echo_color("multi service, add two", CYAN); $ops[$skey[3]] = OP_SERV_ADD; $ops[$skey[4]] = OP_SERV_ADD; service_operation($ops, $history_ops, __LINE__); echo_color("[-- register to gray node: BEGIN --]", BROWN); assert(0 === $qzk->nodeSet("{$prefix}{$gray_in_path}", $gray_in_val)); assert(0 === $qzk->nodeSet("{$prefix}{$gray_out_path}", $gray_out_val)); QConf::getConf($gray_in_path); QConf::getConf($gray_out_path); echo_color("[-- register to gray node: END --]", BROWN); echo_color("current machine in gray process and commit", CYAN); echo_color("[==BEGIN==============================]", GREEN); $machines = array($hostname); $nodes = array("{$prefix}{$gray_in_path}" => "value_in_new"); $gray_id = $qzk->grayBegin($nodes, $machines); assert(NULL != $gray_id); sleep($waiting_time); //node in gray process $in_val = QConf::getConf($gray_in_path); var_dump($in_val); print_info($in_val == "value_in_new", __LINE__); print_check_script(TRUE === check_script_result($gray_in_path, $idc, "2", $waiting_time + 2), __LINE__); //check script execute //node out of gray process $out_val = QConf::getConf($gray_out_path); var_dump($out_val); print_info($out_val == $gray_out_val, __LINE__); //commit assert(0 === $qzk->grayCommit($gray_id)); sleep($waiting_time);
foreach ($children as $c_key => $c_val) { assert(0 === $zk->nodeSet("{$parent_path}/{$c_key}", $c_val)); } $children["child2"] = "1"; assert($children === $zk->listWithValue($parent_path)); assert(array_keys($children) === $zk->list($parent_path)); //gray rollback $gray_nodes = array("qconf_manager/gray/1" => "value1", "/qconf_manager/gray/2/" => "value2", "qconf_manager/gray/3/" => "value3", "qconf_manager/gray/4" => "value4", "qconf_manager/gray/5" => "value5"); foreach ($gray_nodes as $path => $val) { assert(0 === $zk->nodeSet("{$path}", "value")); } $machines = array("HelloDawndeMacBook-Pro.local", "HelloDawndeMacBook-Pro.local1"); $gray_empty = array(); $gray_noexit_node = array("qconf_manager/gray/1" => "value1", "/qconf_manager/gray/2/" => "value2", "qconf_manager/gray/3/" => "value3", "qconf_manager/gray/6" => "value6"); $gray_index_key = array("qconf_manager/gray/1", "/qconf_manager/gray/2/", "qconf_manager/gray/3/", "qconf_manager/gray/3"); $gray_id = $zk->grayBegin($gray_empty, $machines); assert(NULL === $gray_id); $gray_id = $zk->grayBegin($gray_noexit_node, $machines); assert(NULL === $gray_id); $gray_id = $zk->grayBegin($gray_index_key, $machines); assert(NULL === $gray_id); $machines_empty = array(); $machines_string = array("qconf_manager/gray/1" => "1", "/qconf_manager/gray/2/" => "2"); $gray_id = $zk->grayBegin($gray_nodes, $machines_empty); assert(NULL === $gray_id); $gray_id = $zk->grayBegin($gray_nodes, $machines_string); assert(NULL === $gray_id); $gray_id = $zk->grayBegin($gray_nodes, $machines); assert(NULL != $gray_id); $gray_id_tmp = $zk->grayBegin($gray_nodes, $machines); //machine already in gray