Code

opsi update - experimentating phase
authorcajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Wed, 25 Jun 2008 06:58:52 +0000 (06:58 +0000)
committercajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Wed, 25 Jun 2008 06:58:52 +0000 (06:58 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@11430 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-si/client/events/opsi.pm

index 1395a89b84306c7786faaa73830eaa1b1d8c83e7..d814b4677fdb9aa136b668c9471c3c4cc2e7af49 100644 (file)
@@ -15,6 +15,7 @@ use strict;
 use warnings;
 use Data::Dumper;
 use GOSA::GosaSupportDaemon;
+use JSON::RPC::Client;
 
 BEGIN {}
 
@@ -28,13 +29,16 @@ my $opsi_password;
 
 my %cfg_defaults = (
 "opsi" => {
-   "server" => [\$opsi_server, ""],
-   "admin" => [\$opsi_admin, ""],
-   "password" => [\$opsi_password, ""],
+   "server" => [\$opsi_server, "localhost"],
+   "admin" => [\$opsi_admin, "opsi-admin"],
+   "password" => [\$opsi_password, "secret"],
    },
 );
 &read_configfile($main::cfg_file, %cfg_defaults);
 
+# Assemble opsi URL
+my $opsi_url= "$opsi_admin:$opsi_password@$opsi_server:4447/rpc";
+
 
 sub read_configfile {
     my ($cfg_file, %cfg_defaults) = @_;
@@ -73,14 +77,25 @@ sub opsi_get_netboot_products {
     &add_content2xml_hash($out_hash, "session_id", $session_id);
 
     # Authenticate
-    my $kadm5 = Authen::Krb5::Admin->init_with_password($krb_admin, $krb_password);
-    if (not defined $kadm5){
-      &add_content2xml_hash($out_hash, "error", "Cannot connect to kadmin server");
-    } else {
-      my @principals= $kadm5->get_principals() or &add_content2xml_hash($out_hash, "error", Authen::Krb5::Admin::error);
-      for my $principal (@principals) {
-        &add_content2xml_hash($out_hash, "principal", $principal);
+    my $client = new JSON::RPC::Client;
+    my $callobj = {
+      method  => 'getPossibleProductActions_hash',
+      params  => [ ],
+      id  => 1,
+    };
+
+    my $res = $client->call($opsi_url, $callobj);
+
+    if($res) {
+      if ($res->is_error) {
+        print STDERR "Error : ", $res->error_message;
       }
+      else {
+        print STDERR Dumper($res->result);
+      }
+    }
+    else {
+      print STDERR $client->status_line;
     }
 
     my $forward_to_gosa = @{$msg_hash->{'forward_to_gosa'}}[0];
@@ -88,6 +103,16 @@ sub opsi_get_netboot_products {
         &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
     }
 
+#      my $data= $kadm5->get_policy(@{$msg_hash->{'policy'}}[0]) or &add_content2xml_hash($out_hash, "error", Authen::Krb5::Admin::error);
+#      &add_content2xml_hash($out_hash, "name", $data->name);
+#      &add_content2xml_hash($out_hash, "mask", $data->mask);
+#      &add_content2xml_hash($out_hash, "pw_history_num", $data->pw_history_num);
+#      &add_content2xml_hash($out_hash, "pw_max_life", $data->pw_max_life);
+#      &add_content2xml_hash($out_hash, "pw_min_classes", $data->pw_min_classes);
+#      &add_content2xml_hash($out_hash, "pw_min_length", $data->pw_min_length);
+#      &add_content2xml_hash($out_hash, "pw_min_life", $data->pw_min_life);
+#      &add_content2xml_hash($out_hash, "policy_refcnt", $data->policy_refcnt);
+
     # return message
     return &create_xml_string($out_hash);
 }
@@ -105,47 +130,6 @@ sub opsi_set_product_properties {
     my $out_hash = &main::create_xml_hash("answer_$header", $target, $source);
     &add_content2xml_hash($out_hash, "session_id", $session_id);
 
-    # Sanity check
-    if (not defined @{$msg_hash->{'principal'}}[0]){
-      &add_content2xml_hash($out_hash, "error", "No principal specified");
-      return &create_xml_string($out_hash);
-    }
-
-    # Authenticate
-    my $kadm5 = Authen::Krb5::Admin->init_with_password($krb_admin, $krb_password);
-    my $principal;
-    if (not defined $kadm5){
-      &add_content2xml_hash($out_hash, "error", "Cannot connect to kadmin server");
-    } else {
-      $principal= Authen::Krb5::parse_name(@{$msg_hash->{'principal'}}[0]);
-      if(not defined $principal) {
-        &add_content2xml_hash($out_hash, "error", "Illegal principal name");
-      } else {
-        if ( $kadm5->get_principal($principal)){
-          &add_content2xml_hash($out_hash, "error", "Principal exists");
-          if (defined $forward_to_gosa) {
-              &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-          }
-          return &create_xml_string($out_hash);
-        }
-
-        my $princ= Authen::Krb5::Admin::Principal->new;
-        foreach ('mask', 'attributes', 'aux_attributes', 'max_life', 'max_renewable_life', 
-                 'policy', 'princ_expire_time', 'pw_expiration'){
-
-          if (defined @{$msg_hash->{$_}}[0]){
-            $princ->$_(@{$msg_hash->{$_}}[0]);
-          }
-        }
-
-        $princ->principal($principal);
-        $kadm5->create_principal($princ, join '', map { chr rand(255) + 1 } 1..256) or &add_content2xml_hash($out_hash, "error", Authen::Krb5::Admin::error);
-
-        # Directly randomize key
-        $kadm5->randkey_principal($principal);
-      }
-    }
-
     if (defined $forward_to_gosa) {
         &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
     }
@@ -167,106 +151,6 @@ sub opsi_get_client_hardware {
     my $out_hash = &main::create_xml_hash("answer_$header", $target, $source);
     &add_content2xml_hash($out_hash, "session_id", $session_id);
 
-    # Sanity check
-    if (not defined @{$msg_hash->{'principal'}}[0]){
-        &add_content2xml_hash($out_hash, "error", "No principal specified");
-        if (defined $forward_to_gosa) {
-            &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-        }
-        return &create_xml_string($out_hash);
-    }
-
-    # Authenticate
-    my $kadm5 = Authen::Krb5::Admin->init_with_password($krb_admin, $krb_password);
-    my $principal;
-    if (not defined $kadm5){
-      &add_content2xml_hash($out_hash, "error", "Cannot connect to kadmin server");
-    } else {
-      $principal= Authen::Krb5::parse_name(@{$msg_hash->{'principal'}}[0]);
-      if(not defined $principal) {
-        &add_content2xml_hash($out_hash, "error", "Illegal principal name");
-      } else {
-        if (not $kadm5->get_principal($principal)){
-          &add_content2xml_hash($out_hash, "error", "Principal does not exists");
-          if (defined $forward_to_gosa) {
-              &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-          }
-          return &create_xml_string($out_hash);
-        }
-
-        my $princ= Authen::Krb5::Admin::Principal->new;
-        foreach ('mask', 'attributes', 'aux_attributes', 'max_life', 'max_renewable_life', 
-                 'policy', 'princ_expire_time', 'pw_expiration'){
-
-          if (defined @{$msg_hash->{$_}}[0]){
-            $princ->$_(@{$msg_hash->{$_}}[0]);
-          }
-        }
-
-        $princ->principal($principal);
-        $kadm5->modify_principal($princ) or &add_content2xml_hash($out_hash, "error", Authen::Krb5::Admin::error);
-      }
-    }
-
-    if (defined $forward_to_gosa) {
-        &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-    }
-
-    # return message
-    return &create_xml_string($out_hash);
-}
-
-
-sub krb5_get_principal {
-    my ($msg, $msg_hash) = @_;
-    my $header = @{$msg_hash->{'header'}}[0];
-    my $source = @{$msg_hash->{'source'}}[0];
-    my $target = @{$msg_hash->{'target'}}[0];
-    my $session_id = @{$msg_hash->{'session_id'}}[0];
-    my $forward_to_gosa = @{$msg_hash->{'forward_to_gosa'}}[0];
-
-    # build return message with twisted target and source
-    my $out_hash = &main::create_xml_hash("answer_$header", $target, $source);
-    &add_content2xml_hash($out_hash, "session_id", $session_id);
-
-    # Sanity check
-    if (not defined @{$msg_hash->{'principal'}}[0]){
-      &add_content2xml_hash($out_hash, "error", "No principal specified");
-      if (defined $forward_to_gosa) {
-          &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-      }
-      return &create_xml_string($out_hash);
-    }
-
-    # Authenticate
-    my $kadm5 = Authen::Krb5::Admin->init_with_password($krb_admin, $krb_password);
-    my $principal;
-    if (not defined $kadm5){
-      &add_content2xml_hash($out_hash, "error", "Cannot connect to kadmin server");
-    } else {
-      $principal= Authen::Krb5::parse_name(@{$msg_hash->{'principal'}}[0]);
-      if(not defined $principal) {
-        &add_content2xml_hash($out_hash, "error", "Illegal principal name");
-      } else {
-        my $data= $kadm5->get_principal($principal) or &add_content2xml_hash($out_hash, "error", Authen::Krb5::Admin::error);
-        &add_content2xml_hash($out_hash, "principal", @{$msg_hash->{'principal'}}[0]);
-        &add_content2xml_hash($out_hash, "mask", $data->mask);
-        &add_content2xml_hash($out_hash, "attributes", $data->attributes);
-        &add_content2xml_hash($out_hash, "kvno", $data->kvno);
-        &add_content2xml_hash($out_hash, "max_life", $data->max_life);
-        &add_content2xml_hash($out_hash, "max_renewable_life", $data->max_renewable_life);
-        &add_content2xml_hash($out_hash, "aux_attributes", $data->aux_attributes);
-        &add_content2xml_hash($out_hash, "policy", $data->policy);
-        &add_content2xml_hash($out_hash, "fail_auth_count", $data->fail_auth_count);
-        &add_content2xml_hash($out_hash, "last_failed", $data->last_failed);
-        &add_content2xml_hash($out_hash, "last_pwd_change", $data->last_pwd_change);
-        &add_content2xml_hash($out_hash, "last_success", $data->last_success);
-        &add_content2xml_hash($out_hash, "mod_date", $data->mod_date);
-        &add_content2xml_hash($out_hash, "princ_expire_time", $data->princ_expire_time);
-        &add_content2xml_hash($out_hash, "pw_expiration", $data->pw_expiration);
-      }
-    }
-
     if (defined $forward_to_gosa) {
         &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
     }
@@ -288,29 +172,6 @@ sub opsi_get_client_software {
     my $out_hash = &main::create_xml_hash("answer_$header", $target, $source);
     &add_content2xml_hash($out_hash, "session_id", $session_id);
 
-    # Sanity check
-    if (not defined @{$msg_hash->{'principal'}}[0]){
-        if (defined $forward_to_gosa) {
-            &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-        }
-        &add_content2xml_hash($out_hash, "error", "No principal specified");
-        return &create_xml_string($out_hash);
-    }
-
-    # Authenticate
-    my $kadm5 = Authen::Krb5::Admin->init_with_password($krb_admin, $krb_password);
-    my $principal;
-    if (not defined $kadm5){
-      &add_content2xml_hash($out_hash, "error", "Cannot connect to kadmin server");
-    } else {
-      $principal= Authen::Krb5::parse_name(@{$msg_hash->{'principal'}}[0]);
-      if(not defined $principal) {
-        &add_content2xml_hash($out_hash, "error", "Illegal principal name");
-      } else {
-        $kadm5->delete_principal($principal) or &add_content2xml_hash($out_hash, "error", Authen::Krb5::Admin::error);
-      }
-    }
-
     if (defined $forward_to_gosa) {
         &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
     }
@@ -326,226 +187,12 @@ sub opsi_get_local_products {
     my $source = @{$msg_hash->{'source'}}[0];
     my $target = @{$msg_hash->{'target'}}[0];
     my $session_id = @{$msg_hash->{'session_id'}}[0];
-
-    # build return message with twisted target and source
-    my $out_hash = &main::create_xml_hash("answer_$header", $target, $source);
-    &add_content2xml_hash($out_hash, "session_id", $session_id);
-
-    # Authenticate
-    my $kadm5 = Authen::Krb5::Admin->init_with_password($krb_admin, $krb_password);
-    if (not defined $kadm5){
-      &add_content2xml_hash($out_hash, "error", "Cannot connect to kadmin server");
-    } else {
-      my @policies= $kadm5->get_policies() or &add_content2xml_hash($out_hash, "error", Authen::Krb5::Admin::error);
-      for my $policy (@policies) {
-        &add_content2xml_hash($out_hash, "policy", $policy);
-      }
-    }
-
-    my $forward_to_gosa = @{$msg_hash->{'forward_to_gosa'}}[0];
-    if (defined $forward_to_gosa) {
-        &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-    }
-
-    # return message
-    return &create_xml_string($out_hash);
-}
-
-
-sub krb5_get_policy {
-    my ($msg, $msg_hash) = @_;
-    my $header = @{$msg_hash->{'header'}}[0];
-    my $source = @{$msg_hash->{'source'}}[0];
-    my $target = @{$msg_hash->{'target'}}[0];
-    my $session_id = @{$msg_hash->{'session_id'}}[0];
-    my $forward_to_gosa = @{$msg_hash->{'forward_to_gosa'}}[0];
-
-    # build return message with twisted target and source
-    my $out_hash = &main::create_xml_hash("answer_$header", $target, $source);
-    &add_content2xml_hash($out_hash, "session_id", $session_id);
-
-    # Sanity check
-    if (not defined @{$msg_hash->{'policy'}}[0]){
-        &add_content2xml_hash($out_hash, "error", "No policy specified");
-        if (defined $forward_to_gosa) {
-            &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-        }
-        return &create_xml_string($out_hash);
-    }
-
-    # Authenticate
-    my $kadm5 = Authen::Krb5::Admin->init_with_password($krb_admin, $krb_password);
-    my $principal;
-    if (not defined $kadm5){
-      &add_content2xml_hash($out_hash, "error", "Cannot connect to kadmin server");
-    } else {
-      my $data= $kadm5->get_policy(@{$msg_hash->{'policy'}}[0]) or &add_content2xml_hash($out_hash, "error", Authen::Krb5::Admin::error);
-      &add_content2xml_hash($out_hash, "name", $data->name);
-      &add_content2xml_hash($out_hash, "mask", $data->mask);
-      &add_content2xml_hash($out_hash, "pw_history_num", $data->pw_history_num);
-      &add_content2xml_hash($out_hash, "pw_max_life", $data->pw_max_life);
-      &add_content2xml_hash($out_hash, "pw_min_classes", $data->pw_min_classes);
-      &add_content2xml_hash($out_hash, "pw_min_length", $data->pw_min_length);
-      &add_content2xml_hash($out_hash, "pw_min_life", $data->pw_min_life);
-      &add_content2xml_hash($out_hash, "policy_refcnt", $data->policy_refcnt);
-    }
-
-    if (defined $forward_to_gosa) {
-        &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-    }
-
-    # return message
-    return &create_xml_string($out_hash);
-}
-
-
-sub krb5_create_policy {
-    my ($msg, $msg_hash) = @_;
-    my $header = @{$msg_hash->{'header'}}[0];
-    my $source = @{$msg_hash->{'source'}}[0];
-    my $target = @{$msg_hash->{'target'}}[0];
-    my $session_id = @{$msg_hash->{'session_id'}}[0];
     my $forward_to_gosa = @{$msg_hash->{'forward_to_gosa'}}[0];
 
-    # Build return message
-    my $out_hash = &main::create_xml_hash("answer_$header", $target, $source);
-    &add_content2xml_hash($out_hash, "session_id", $session_id);
-
-    # Sanity check
-    if (not defined @{$msg_hash->{'policy'}}[0]){
-        &add_content2xml_hash($out_hash, "error", "No policy specified");
-        if (defined $forward_to_gosa) {
-            &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-        }
-
-        return &create_xml_string($out_hash);
-    }
-    &add_content2xml_hash($msg_hash, "name", @{$msg_hash->{'policy'}}[0]);
-
-    # Authenticate
-    my $kadm5 = Authen::Krb5::Admin->init_with_password($krb_admin, $krb_password);
-    if (not defined $kadm5){
-        &add_content2xml_hash($out_hash, "error", "Cannot connect to kadmin server");
-    } else {
-        if ( $kadm5->get_policy(@{$msg_hash->{'policy'}}[0])) {
-            &add_content2xml_hash($out_hash, "error", "Policy exists");
-            if (defined $forward_to_gosa) {
-                &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-            }
-            return &create_xml_string($out_hash);
-        }
-
-      my $pol = Authen::Krb5::Admin::Policy->new;
-
-      # Move information from xml message to modifyer
-      foreach ('name', 'mask', 'pw_history_num', 'pw_max_life', 'pw_min_classes',
-                'pw_min_length', 'pw_min_life'){
-
-        if (defined @{$msg_hash->{$_}}[0]){
-          $pol->$_(@{$msg_hash->{$_}}[0]);
-        }
-      }
-
-      # Create info
-      $kadm5->create_policy($pol) or &add_content2xml_hash($out_hash, "error", Authen::Krb5::Admin::error);
-    }
-
-    if (defined $forward_to_gosa) {
-        &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-    }
-
     # build return message with twisted target and source
-    my $out_msg = &create_xml_string($out_hash);
-
-    # return message
-    return $out_msg;
-}
-
-
-sub krb5_modify_policy {
-    my ($msg, $msg_hash) = @_;
-    my $header = @{$msg_hash->{'header'}}[0];
-    my $source = @{$msg_hash->{'source'}}[0];
-    my $target = @{$msg_hash->{'target'}}[0];
-    my $session_id = @{$msg_hash->{'session_id'}}[0];
-    my $forward_to_gosa = @{$msg_hash->{'forward_to_gosa'}}[0];
-
-    # Build return message
     my $out_hash = &main::create_xml_hash("answer_$header", $target, $source);
     &add_content2xml_hash($out_hash, "session_id", $session_id);
 
-    # Sanity check
-    if (not defined @{$msg_hash->{'policy'}}[0]){
-        if (defined $forward_to_gosa) {
-            &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-        }
-        &add_content2xml_hash($out_hash, "error", "No policy specified");
-        return &create_xml_string($out_hash);
-    }
-    &add_content2xml_hash($msg_hash, "name", @{$msg_hash->{'policy'}}[0]);
-
-    # Authenticate
-    my $kadm5 = Authen::Krb5::Admin->init_with_password($krb_admin, $krb_password);
-    if (not defined $kadm5){
-      &add_content2xml_hash($out_hash, "error", "Cannot connect to kadmin server");
-    } else {
-      my $pol = Authen::Krb5::Admin::Policy->new;
-
-      # Move information from xml message to modifyer
-      foreach ('name', 'mask', 'pw_history_num', 'pw_max_life', 'pw_min_classes',
-                'pw_min_length', 'pw_min_life'){
-
-        if (defined @{$msg_hash->{$_}}[0]){
-          $pol->$_(@{$msg_hash->{$_}}[0]);
-        }
-      }
-
-      # Create info
-      $kadm5->modify_policy($pol) or &add_content2xml_hash($out_hash, "error", Authen::Krb5::Admin::error);
-    }
-
-    if (defined $forward_to_gosa) {
-        &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-    }
-
-    # build return message with twisted target and source
-    my $out_msg = &create_xml_string($out_hash);
-
-    # return message
-    return $out_msg;
-}
-
-
-sub krb5_del_policy {
-    my ($msg, $msg_hash) = @_;
-    my $header = @{$msg_hash->{'header'}}[0];
-    my $source = @{$msg_hash->{'source'}}[0];
-    my $target = @{$msg_hash->{'target'}}[0];
-    my $session_id = @{$msg_hash->{'session_id'}}[0];
-    my $forward_to_gosa = @{$msg_hash->{'forward_to_gosa'}}[0];
-
-    # build return message with twisted target and source
-    my $out_hash = &main::create_xml_hash("answer_$header", $target, $source);
-    &add_content2xml_hash($out_hash, "session_id", $session_id);
-
-    # Sanity check
-    if (not defined @{$msg_hash->{'policy'}}[0]){
-        if (defined $forward_to_gosa) {
-            &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-        }
-        &add_content2xml_hash($out_hash, "error", "No policy specified");
-        return &create_xml_string($out_hash);
-    }
-
-    # Authenticate
-    my $kadm5 = Authen::Krb5::Admin->init_with_password($krb_admin, $krb_password);
-    my $policy= @{$msg_hash->{'policy'}}[0];
-    if (not defined $kadm5){
-      &add_content2xml_hash($out_hash, "error", "Cannot connect to kadmin server");
-    } else {
-      $kadm5->delete_policy($policy) or &add_content2xml_hash($out_hash, "error", Authen::Krb5::Admin::error);
-    }
-
     if (defined $forward_to_gosa) {
         &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
     }
@@ -554,55 +201,4 @@ sub krb5_del_policy {
     return &create_xml_string($out_hash);
 }
 
-sub krb5_set_password {
-    my ($msg, $msg_hash) = @_;
-    my $header = @{$msg_hash->{'header'}}[0];
-    my $source = @{$msg_hash->{'source'}}[0];
-    my $target = @{$msg_hash->{'target'}}[0];
-    my $session_id = @{$msg_hash->{'session_id'}}[0];
-    my $forward_to_gosa = @{$msg_hash->{'forward_to_gosa'}}[0];
-
-    # build return message with twisted target and source
-    my $out_hash = &main::create_xml_hash("answer_$header", $target, $source);
-    &add_content2xml_hash($out_hash, "session_id", $session_id);
-
-    # Sanity check
-    if (not defined @{$msg_hash->{'principal'}}[0]){
-        if (defined $forward_to_gosa) {
-            &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-        }
-
-        &add_content2xml_hash($out_hash, "error", "No principal specified");
-        return &create_xml_string($out_hash);
-    }
-    if (not defined @{$msg_hash->{'password'}}[0]){
-        if (defined $forward_to_gosa) {
-            &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-        }
-
-        &add_content2xml_hash($out_hash, "error", "No password specified");
-        return &create_xml_string($out_hash);
-    }
-
-    # Authenticate
-    my $kadm5 = Authen::Krb5::Admin->init_with_password($krb_admin, $krb_password);
-    my $principal;
-    if (not defined $kadm5){
-      &add_content2xml_hash($out_hash, "error", "Cannot connect to kadmin server");
-    } 
-
-    $principal= Authen::Krb5::parse_name(@{$msg_hash->{'principal'}}[0]);
-    if(not defined $principal) {
-      &add_content2xml_hash($out_hash, "error", "Illegal principal name");
-    } else {
-      $kadm5->chpass_principal($principal, @{$msg_hash->{'password'}}[0]) or &add_content2xml_hash($out_hash, "error", Authen::Krb5::Admin::error);
-    }
-
-    if (defined $forward_to_gosa) {
-        &add_content2xml_hash($out_hash, "forward_to_gosa", $forward_to_gosa);
-    }
-
-    # return message
-    return &create_xml_string($out_hash);
-}
 1;