foreach ($history_ops as $s => $op) { $ops[$s] = OP_SERV_DELETE; } service_operation($ops, $history_ops, __LINE__); echo_color("multi service, add one", CYAN); $ops[$skey[1]] = OP_SERV_ADD; service_operation($ops, $history_ops, __LINE__); echo_color("multi service, one offline one add", CYAN); $ops[$skey[1]] = OP_SERV_OFFLINE; $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__);
<?php $zk = new QConfZK("127.0.0.1:2181"); $service_key = "/qconf_manager/services/2"; $services = array("10.16.15.235:80" => QCONF_STATUS_UP, "10.16.15.235:81" => QCONF_STATUS_OFFLINE, "10.16.15.235:82" => QCONF_STATUS_DOWN, "10.16.15.235:83" => QCONF_STATUS_UP); //nodeSet $conf_key = "/qconf_manager/demo/3"; assert(0 === $zk->nodeDelete($conf_key)); assert(0 === $zk->nodeSet($conf_key, "value1")); assert("value1" == $zk->nodeGet($conf_key)); assert(0 === $zk->nodeSet($conf_key, "value2")); assert("value2" == $zk->nodeGet($conf_key)); assert(0 !== $zk->nodeSet("", "value2")); assert(0 !== $zk->nodeSet("/", "value2")); $large_str = str_repeat("a", 1024 * 1024 - 200); assert(0 === $zk->nodeSet($conf_key, $large_str)); assert($large_str == $zk->nodeGet($conf_key)); //node Delete assert(0 === $zk->nodeDelete($conf_key)); assert(0 !== $zk->nodeDelete("qconf_manager")); assert(0 !== $zk->nodeDelete("")); //serviceSet $service_key = "/qconf_manager/services/2"; $services_empty = array(); assert(0 !== $zk->servicesSet($service_key, $services_empty)); $services_error1 = array("10.16.15.235:80" => 1111111, "10.16.15.235:81" => QCONF_STATUS_OFFLINE, "10.16.15.235:82" => QCONF_STATUS_DOWN, "10.16.15.235:83" => QCONF_STATUS_UP); assert(0 !== $zk->servicesSet($service_key, $services_error1)); $services_error2 = array("10.16.15.235:80" => -1, "10.16.15.235:81" => QCONF_STATUS_OFFLINE, "10.16.15.235:82" => QCONF_STATUS_DOWN, "10.16.15.235:83" => QCONF_STATUS_UP); assert(0 !== $zk->servicesSet($service_key, $services_error2)); assert(0 !== $zk->servicesSet("", $services)); assert(0 !== $zk->servicesSet("", $services));