OVH Community, votre nouvel espace communautaire.

[sdk] snippet suivie de task


sbouli
06/06/2012, 15h36
Bonjour,

petit extrait de code de mister François, qui permet d'attendre un retour de task de la part de vsphere :

Code:
sub getStatus {
    my ( $taskRef, $message ) = @_;
    my $task_view = Vim::get_view( mo_ref => $taskRef );
    my $taskinfo  = $task_view->info->state->val;
    my $continue  = 1;
    while ($continue) {
        my $info = $task_view->info;
        if ( $info->state->val eq 'success' ) {
            print $message, "\n";
            return $info->result;
            $continue = 0;
        }
        elsif ( $info->state->val eq 'error' ) {
            my $soap_fault = SoapFault->new;
            $soap_fault->name( $info->error->fault );
            $soap_fault->detail( $info->error->fault );
            $soap_fault->fault_string( $info->error->localizedMessage );
            die "$soap_fault\n";
        }
        sleep 5;
        $task_view->ViewBase::update_view_data();
    }
}
il s'utilise sous le forme :

Code:
$task_ref = $VMViewcheck->Destroy_Task();
			$msg      = "Suppression reussi de \"" . $VMViewcheck->name . "\"!";
			&getStatus( $task_ref, $msg );
ou bien encore :
Code:
$task_ref = $VMViewcheck->PowerOffVM();
				$msg      = "Extinction reussi de \"" . $VMViewcheck->name . "\"!";
				&getStatus( $task_ref, $msg );
Merci François !

Stéphane