# HG changeset patch # User Marcus Granado # Date 1259863960 0 # Node ID f9617197a99bc47e7bf4f12df6a6fe15dc990aa5 # Parent 8335acd2219af19c6345d349690679dac2f5953a CA-30393: block extauth-enable if there are duplicate hostnames in the pool Signed-off-by: Marcus Granado diff -r 8335acd2219a -r f9617197a99b ocaml/xapi/xapi_pool.ml --- a/ocaml/xapi/xapi_pool.ml Thu Dec 03 15:33:34 2009 +0000 +++ b/ocaml/xapi/xapi_pool.ml Thu Dec 03 18:12:40 2009 +0000 @@ -1066,6 +1066,20 @@ end with Not_found -> () (* that's expected, no host had external_auth enabled*) ; + (* 1b. assert that there are no duplicate hostnames in the pool *) + if (List.length hosts) + <> + (List.length + (Listext.List.setify + (List.map (fun h->Db.Host.get_hostname ~__context ~self:h) hosts)) + ) + then begin + let errmsg = "At least two hosts in the pool have the same hostname" in + debug "%s" errmsg; + raise (Api_errors.Server_error(Api_errors.pool_auth_enable_failed, + [(Ref.string_of (List.hd hosts));errmsg])) + end + else (* 2. tries to enable the external authentication in each host of the pool *) let host_error_msg = ref ("","","") in let rollback_list =