PageRenderTime 36ms CodeModel.GetById 9ms RepoModel.GetById 0ms app.codeStats 0ms

/js/models/VolumeSnapshotModel.js

http://github.com/ging/horizon-js
JavaScript | 59 lines | 51 code | 8 blank | 0 comment | 7 complexity | ed340b758a1103689905cadae739e8b5 MD5 | raw file
  1. var VolumeSnapshot = Backbone.Model.extend({
  2. _action:function(method, options) {
  3. var model = this;
  4. if (options == null) options = {};
  5. options.success = function(resp) {
  6. model.trigger('sync', model, resp, options);
  7. if (options.callback!=undefined) {
  8. options.callback(resp);
  9. }
  10. }
  11. var xhr = (this.sync || Backbone.sync).call(this, method, this, options);
  12. return xhr;
  13. },
  14. sync: function(method, model, options) {
  15. console.log("method "+method);
  16. switch(method) {
  17. case "create":
  18. console.log('Creating volume snapshot');
  19. JSTACK.Nova.Volume.createsnapshot(model.get("volume_id"), model.get("name"), model.get("description"), options.success);
  20. break;
  21. case "delete":
  22. JSTACK.Nova.Volume.deletesnapshot(model.get("id"), options.success);
  23. break;
  24. case "update":
  25. break;
  26. case "read":
  27. JSTACK.Nova.Volume.getsnapshot(model.get("id"), options.success);
  28. break;
  29. }
  30. },
  31. parse: function(resp) {
  32. if (resp.snapshot != undefined) {
  33. return resp.snapshot;
  34. } else {
  35. return resp;
  36. }
  37. }
  38. });
  39. var VolumeSnapshots = Backbone.Collection.extend({
  40. model: VolumeSnapshot,
  41. sync: function(method, model, options) {
  42. switch(method) {
  43. case "read":
  44. JSTACK.Nova.Volume.getsnapshotlist(true, options.success);
  45. break;
  46. }
  47. },
  48. parse: function(resp) {
  49. return resp.snapshots;
  50. }
  51. });