~nova-coresec/ubuntu/maverick/libvirt/nova-ppa

« back to all changes in this revision

Viewing changes to src/conf/domain_event.c

  • Committer: Bazaar Package Importer
  • Author(s): Guido Günther
  • Date: 2010-05-09 14:25:00 UTC
  • mto: (1.2.5 upstream) (3.4.15 squeeze)
  • mto: This revision was merged to the branch mainline in revision 92.
  • Revision ID: james.westby@ubuntu.com-20100509142500-1aracjxxmac2zx33
Import upstream version 0.8.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
74
74
            char *srcPath;
75
75
            char *devAlias;
76
76
            int action;
 
77
            char *reason;
77
78
        } ioError;
78
79
        struct {
79
80
            int phase;
474
475
    case VIR_DOMAIN_EVENT_ID_IO_ERROR:
475
476
        VIR_FREE(event->data.ioError.srcPath);
476
477
        VIR_FREE(event->data.ioError.devAlias);
 
478
        VIR_FREE(event->data.ioError.reason);
477
479
        break;
478
480
 
479
481
    case VIR_DOMAIN_EVENT_ID_GRAPHICS:
630
632
    return ev;
631
633
}
632
634
 
 
635
static virDomainEventPtr virDomainEventIOErrorNewFromDomImpl(int event,
 
636
                                                             virDomainPtr dom,
 
637
                                                             const char *srcPath,
 
638
                                                             const char *devAlias,
 
639
                                                             int action,
 
640
                                                             const char *reason)
 
641
{
 
642
    virDomainEventPtr ev =
 
643
        virDomainEventNewInternal(event,
 
644
                                  dom->id, dom->name, dom->uuid);
 
645
 
 
646
    if (ev) {
 
647
        ev->data.ioError.action = action;
 
648
        if (!(ev->data.ioError.srcPath = strdup(srcPath)) ||
 
649
            !(ev->data.ioError.devAlias = strdup(devAlias)) ||
 
650
            (reason && !(ev->data.ioError.reason = strdup(reason)))) {
 
651
            virDomainEventFree(ev);
 
652
            ev = NULL;
 
653
        }
 
654
    }
 
655
 
 
656
    return ev;
 
657
}
 
658
 
 
659
static virDomainEventPtr virDomainEventIOErrorNewFromObjImpl(int event,
 
660
                                                             virDomainObjPtr obj,
 
661
                                                             const char *srcPath,
 
662
                                                             const char *devAlias,
 
663
                                                             int action,
 
664
                                                             const char *reason)
 
665
{
 
666
    virDomainEventPtr ev =
 
667
        virDomainEventNewInternal(event,
 
668
                                  obj->def->id, obj->def->name, obj->def->uuid);
 
669
 
 
670
    if (ev) {
 
671
        ev->data.ioError.action = action;
 
672
        if (!(ev->data.ioError.srcPath = strdup(srcPath)) ||
 
673
            !(ev->data.ioError.devAlias = strdup(devAlias)) ||
 
674
            !(ev->data.ioError.reason = strdup(reason))) {
 
675
            virDomainEventFree(ev);
 
676
            ev = NULL;
 
677
        }
 
678
    }
 
679
 
 
680
    return ev;
 
681
}
 
682
 
633
683
virDomainEventPtr virDomainEventIOErrorNewFromDom(virDomainPtr dom,
634
684
                                                  const char *srcPath,
635
685
                                                  const char *devAlias,
636
686
                                                  int action)
637
687
{
638
 
    virDomainEventPtr ev =
639
 
        virDomainEventNewInternal(VIR_DOMAIN_EVENT_ID_IO_ERROR,
640
 
                                  dom->id, dom->name, dom->uuid);
641
 
 
642
 
    if (ev) {
643
 
        ev->data.ioError.action = action;
644
 
        if (!(ev->data.ioError.srcPath = strdup(srcPath)) ||
645
 
            !(ev->data.ioError.devAlias = strdup(devAlias))) {
646
 
            virDomainEventFree(ev);
647
 
            ev = NULL;
648
 
        }
649
 
    }
650
 
 
651
 
    return ev;
 
688
    return virDomainEventIOErrorNewFromDomImpl(VIR_DOMAIN_EVENT_ID_IO_ERROR,
 
689
                                               dom, srcPath, devAlias,
 
690
                                               action, NULL);
652
691
}
 
692
 
653
693
virDomainEventPtr virDomainEventIOErrorNewFromObj(virDomainObjPtr obj,
654
694
                                                  const char *srcPath,
655
695
                                                  const char *devAlias,
656
696
                                                  int action)
657
697
{
658
 
    virDomainEventPtr ev =
659
 
        virDomainEventNewInternal(VIR_DOMAIN_EVENT_ID_IO_ERROR,
660
 
                                  obj->def->id, obj->def->name, obj->def->uuid);
661
 
 
662
 
    if (ev) {
663
 
        ev->data.ioError.action = action;
664
 
        if (!(ev->data.ioError.srcPath = strdup(srcPath)) ||
665
 
            !(ev->data.ioError.devAlias = strdup(devAlias))) {
666
 
            virDomainEventFree(ev);
667
 
            ev = NULL;
668
 
        }
669
 
    }
670
 
 
671
 
    return ev;
 
698
    return virDomainEventIOErrorNewFromObjImpl(VIR_DOMAIN_EVENT_ID_IO_ERROR,
 
699
                                               obj, srcPath, devAlias,
 
700
                                               action, NULL);
 
701
}
 
702
 
 
703
virDomainEventPtr virDomainEventIOErrorReasonNewFromDom(virDomainPtr dom,
 
704
                                                        const char *srcPath,
 
705
                                                        const char *devAlias,
 
706
                                                        int action,
 
707
                                                        const char *reason)
 
708
{
 
709
    return virDomainEventIOErrorNewFromDomImpl(VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON,
 
710
                                               dom, srcPath, devAlias,
 
711
                                               action, reason);
 
712
}
 
713
 
 
714
virDomainEventPtr virDomainEventIOErrorReasonNewFromObj(virDomainObjPtr obj,
 
715
                                                        const char *srcPath,
 
716
                                                        const char *devAlias,
 
717
                                                        int action,
 
718
                                                        const char *reason)
 
719
{
 
720
    return virDomainEventIOErrorNewFromObjImpl(VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON,
 
721
                                               obj, srcPath, devAlias,
 
722
                                               action, reason);
672
723
}
673
724
 
674
725
 
853
904
                                                   cbopaque);
854
905
        break;
855
906
 
 
907
    case VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON:
 
908
        ((virConnectDomainEventIOErrorReasonCallback)cb)(conn, dom,
 
909
                                                         event->data.ioError.srcPath,
 
910
                                                         event->data.ioError.devAlias,
 
911
                                                         event->data.ioError.action,
 
912
                                                         event->data.ioError.reason,
 
913
                                                         cbopaque);
 
914
        break;
 
915
 
856
916
    case VIR_DOMAIN_EVENT_ID_GRAPHICS:
857
917
        ((virConnectDomainEventGraphicsCallback)cb)(conn, dom,
858
918
                                                    event->data.graphics.phase,