欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

删除本网站 ise 中的关于此 mac 的内容,,难道不能在 hook_node_delete 里面调用 node_delete方法??? 有大用 有大大用

//节点删除前的 hook ,
function custom_twenty_two_jses_node_delete($node)
{
   
if ($node->type == 'jses_terminal_manager') {
//        $jses_area = $node->field_jses_area['und'][0]['value'];//区域  比如 A1-NPI A1-MP  A2-MP
//        $jses_netlevel = $node->field_jses_netlevel['und'][0]['value'];//比如 L0 L1 L2  L3 等等
       
$ad_net_level = $field_ks_net_name = $node->field_ks_net_name['und'][0]['value'];

       
//这是从本网站取的等级,不仅仅是从 AD 中取的等级
//        $ad_net_level = _my_get_ad_level_by_area_netlevel_include_other($jses_area, $jses_netlevel);
       
if ($ad_net_level != 'lkks_office') {//不是 office的情况下,就删除保留
           
$enumpools = _generate_all_network_pool();
           
if (!empty($node->field_jses_use_wireless['und'][0]['value'])) {
               
//删除dchp绑定
               
$result = _my_DeleteReservation_for_jses_terminal_manager($node, $enumpools, true);//true表示此时删除的是无线
               
if (is_array($result) && !empty($result['failed'])) {
                   drupal_set_message(
$result['failed'], 'warning');
               }
else {
                   drupal_set_message(
'成功删除dhcp的无线mac地址 ' . $node->field_jses_mac_wireless['und'][0]['value'] . ' 保留!');
               }




               
$ks_ise_mac_wireless = $node->field_jses_use_wireless['und'][0]['value'];
               
$ks_ise_mac_wireless  = _my_mac_address_to_zhong_duan_heng_maohao_dian($ks_ise_mac_wireless,':');
             
/*  删除本网站 ise 中的关于此 mac 的内容,,难道不能在 hook_node_delete  里面调用 node_delete方法???因为 执行下面的语句 会发生如下的报错
// 经测试 ,是完全可以调用  node_delete  方法的   有大用 有大大用

                PDOException: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction: DELETE FROM {node_comment_statistics}
                WHERE (nid = :db_condition_placeholder_0) ; Array ( [:db_condition_placeholder_0] => 83385 ) 在 comment_node_delete() (行 1330 在 /www/web/ksfaq_ks_cs_corpnet/public_html/modules/comment/comment.module).*/
               $temp_ks_ise_nid = db_query(" select nid from node n inner join field_data_field_ise_endpoint_mac mac on n.nid=mac.entity_id
              where n.type='ks_ise' and mac.entity_type='node' and mac.bundle='ks_ise' and mac.field_ise_endpoint_mac_value=:field_ise_endpoint_mac_value",
                   array(':field_ise_endpoint_mac_value' => $ks_ise_mac_wireless))->fetchField();
               if(!empty($temp_ks_ise_nid)){
                   node_delete($temp_ks_ise_nid);
               }
               // 删除 无线ise绑定
               
$result_from_ise = _my_curl_endpoint('/name/' . $ks_ise_mac_wireless);//这里得到的是一个结果,当然显示的一个结果的详细信息
               
$result_from_ise_json = drupal_json_decode($result_from_ise);
               
if (!empty($result_from_ise_json['ERSEndPoint'])) {
                   
$result = _my_curl_endpoint('/' . $result_from_ise_json['ERSEndPoint']['id'], 'DELETE');//此时进行更新吧
                   
$result = drupal_json_decode($result);
                   
if (empty($result)) {//表示删除成功
                       
drupal_set_message('ise 删除成功');
                   }
               }

           }
           
if (!empty($node->field_jses_use_wired['und'][0]['value'])) {
               
//删除dchp绑定
               
$result2 = _my_DeleteReservation_for_jses_terminal_manager($node, $enumpools, false);//false表示此时删除的是有线
               
if (is_array($result2) && !empty($result2['failed'])) {
                   drupal_set_message(
$result2['failed'], 'warning');
               }
else {
                   drupal_set_message(
'成功删除dhcp的有线mac地址 ' . $node->field_jses_mac_wired['und'][0]['value'] . ' 保留!');
               }
           }


       }





   
}

}


普通分类: