~ubuntu-branches/ubuntu/trusty/juju-core/trusty-proposed

« back to all changes in this revision

Viewing changes to src/launchpad.net/juju-core/rpc/server.go

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2014-01-29 11:40:20 UTC
  • mfrom: (23.1.1 trusty-proposed)
  • Revision ID: package-import@ubuntu.com-20140129114020-ejieitm8smtt5vln
Tags: 1.17.1-0ubuntu2
d/tests/local-provider: Don't fail tests if ~/.juju is present as its
created by the juju version command. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
375
375
                }
376
376
                // We don't transform the error because there
377
377
                // may be no transformErrors function available.
378
 
                return conn.writeErrorResponse(hdr, err)
 
378
                return conn.writeErrorResponse(hdr, err, startTime)
379
379
        }
380
380
        var argp interface{}
381
381
        var arg reflect.Value
401
401
                // the error is actually a framing or syntax
402
402
                // problem, then the next ReadHeader should pick
403
403
                // up the problem and abort.
404
 
                return conn.writeErrorResponse(hdr, req.transformErrors(err))
 
404
                return conn.writeErrorResponse(hdr, req.transformErrors(err), startTime)
405
405
        }
406
406
        if conn.notifier != nil {
407
407
                if req.ParamsType != nil {
419
419
        conn.mutex.Unlock()
420
420
        if closing {
421
421
                // We're closing down - no new requests may be initiated.
422
 
                return conn.writeErrorResponse(hdr, req.transformErrors(ErrShutdown))
 
422
                return conn.writeErrorResponse(hdr, req.transformErrors(ErrShutdown), startTime)
423
423
        }
424
424
        return nil
425
425
}
426
426
 
427
 
func (conn *Conn) writeErrorResponse(reqHdr *Header, err error) error {
 
427
func (conn *Conn) writeErrorResponse(reqHdr *Header, err error, startTime time.Time) error {
428
428
        conn.sending.Lock()
429
429
        defer conn.sending.Unlock()
430
430
        hdr := &Header{
437
437
        }
438
438
        hdr.Error = err.Error()
439
439
        if conn.notifier != nil {
440
 
                conn.notifier.ServerReply(reqHdr.Request, hdr, struct{}{}, 0)
 
440
                conn.notifier.ServerReply(reqHdr.Request, hdr, struct{}{}, time.Since(startTime))
441
441
        }
442
442
        return conn.codec.WriteMessage(hdr, struct{}{})
443
443
}
484
484
        defer conn.srvPending.Done()
485
485
        rv, err := req.Call(req.hdr.Request.Id, arg)
486
486
        if err != nil {
487
 
                err = conn.writeErrorResponse(&req.hdr, req.transformErrors(err))
 
487
                err = conn.writeErrorResponse(&req.hdr, req.transformErrors(err), startTime)
488
488
        } else {
489
489
                hdr := &Header{
490
490
                        RequestId: req.hdr.RequestId,
496
496
                        rvi = struct{}{}
497
497
                }
498
498
                if conn.notifier != nil {
499
 
                        timeSpent := time.Since(startTime)
500
 
                        conn.notifier.ServerReply(req.hdr.Request, hdr, rvi, timeSpent)
 
499
                        conn.notifier.ServerReply(req.hdr.Request, hdr, rvi, time.Since(startTime))
501
500
                }
502
501
                conn.sending.Lock()
503
502
                err = conn.codec.WriteMessage(hdr, rvi)