public function dependsOnIt(EtvaAsynchronousJob $j1, EtvaAsynchronousJob $j2) { if ($j2->getTasknamespace() == 'logicalvolume') { $j2_args = (array) json_decode($j1->getArguments()); $j2_opts = (array) json_decode($j1->getOptions()); $etva_node = EtvaNodePeer::getOrElectNodeFromArray(array_merge($j2_opts, $j2_args)); if ($etva_node) { // original logical volume $original_lv = $j2_args['original']; $original_vg = $j2_opts['original-volumegroup']; // find orignal logical volume $etva_original_lv = $etva_node->retrieveLogicalvolumeByAny($original_lv, $original_vg); if ($etva_original_lv) { $j1_args = (array) json_decode($j1->getArguments()); $lv_servers = $etva_original_lv->getServers(); // get servers where logical volume is attached foreach ($lv_servers as $srv) { if ($srv->getId() == $j1_args['server'] || $srv->getUuid() == $j1_args['server'] || $srv->getName() == $j1_args['server']) { return true; // depends on it } } } } } return false; }