git-off

git off handles large files in git repos
git clone https://noulin.net/git/git-off.git
Log | Files | Refs | README

ec2.js (1797B)


      1 var AWS = require('../core');
      2 
      3 AWS.util.update(AWS.EC2.prototype, {
      4   /**
      5    * @api private
      6    */
      7   setupRequestListeners: function setupRequestListeners(request) {
      8     request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR);
      9     request.addListener('extractError', this.extractError);
     10 
     11     if (request.operation === 'copySnapshot') {
     12       request.onAsync('validate', this.buildCopySnapshotPresignedUrl);
     13     }
     14   },
     15 
     16   /**
     17    * @api private
     18    */
     19   buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) {
     20     if (req.params.PresignedUrl || req._subRequest) {
     21       return done();
     22     }
     23 
     24     req.params = AWS.util.copy(req.params);
     25     req.params.DestinationRegion = req.service.config.region;
     26 
     27     var config = AWS.util.copy(req.service.config);
     28     delete config.endpoint;
     29     config.region = req.params.SourceRegion;
     30     var svc = new req.service.constructor(config);
     31     var newReq = svc[req.operation](req.params);
     32     newReq._subRequest = true;
     33     newReq.presign(function(err, url) {
     34       if (err) done(err);
     35       else {
     36         req.params.PresignedUrl = url;
     37         done();
     38       }
     39     });
     40   },
     41 
     42   /**
     43    * @api private
     44    */
     45   extractError: function extractError(resp) {
     46     // EC2 nests the error code and message deeper than other AWS Query services.
     47     var httpResponse = resp.httpResponse;
     48     var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || '');
     49     if (data.Errors) {
     50       resp.error = AWS.util.error(new Error(), {
     51         code: data.Errors.Error.Code,
     52         message: data.Errors.Error.Message
     53       });
     54     } else {
     55       resp.error = AWS.util.error(new Error(), {
     56         code: httpResponse.statusCode,
     57         message: null
     58       });
     59     }
     60     resp.error.requestId = data.RequestID || null;
     61   }
     62 });