Пример #1
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var DataTable = require('./datatable');
  var OpenNebulaResource = require('opennebula/acl');
  var CommonActions = require('utils/common-actions');

  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');

  var XML_ROOT = "ACL"
  var RESOURCE = "Acl"

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID, XML_ROOT);

  var _actions = {
    "Acl.list" : _commonActions.list(),
    "Acl.refresh" : _commonActions.refresh(),
    "Acl.delete" : _commonActions.del(),
    "Acl.create" : _commonActions.create(CREATE_DIALOG_ID),
    "Acl.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID)
  };

  return _actions;
});
Пример #2
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var OpenNebulaResource = require('opennebula/image');
  var CommonActions = require('utils/common-actions');

  var RESOURCE = "File";
  var XML_ROOT = "IMAGE";
  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID,
    XML_ROOT, Locale.tr("File created"));

  var _actions = {
    "File.create" : _commonActions.create(CREATE_DIALOG_ID),
    "File.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "File.list" : _commonActions.list(),
    "File.show" : _commonActions.show(),
    "File.refresh" : _commonActions.refresh(),
    "File.delete" : _commonActions.del(),
    "File.update_template" : _commonActions.updateTemplate(),
    "File.append_template" : _commonActions.appendTemplate(),
    "File.chown": _commonActions.multipleAction('chown'),
    "File.chgrp": _commonActions.multipleAction('chgrp'),
    "File.chmod": _commonActions.singleAction('chmod'),
    "File.rename": _commonActions.singleAction('rename'),
    "File.enable": _commonActions.multipleAction('enable'),
    "File.disable": _commonActions.multipleAction('disable'),
    "File.chtype": _commonActions.singleAction('chtype')
  };

  return _actions;
});
Пример #3
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var CommonActions = require('utils/common-actions');
  var OpenNebulaResource = require('opennebula/marketplace');

  var RESOURCE = "MarketPlace";
  var XML_ROOT = "MARKETPLACE";
  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID, XML_ROOT);

  var _actions = {
    "MarketPlace.create" : _commonActions.create(CREATE_DIALOG_ID),
    "MarketPlace.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "MarketPlace.list" : _commonActions.list(),
    "MarketPlace.show" : _commonActions.show(),
    "MarketPlace.refresh" : _commonActions.refresh(),
    "MarketPlace.delete" : _commonActions.del(),
    "MarketPlace.chown": _commonActions.multipleAction('chown'),
    "MarketPlace.chgrp": _commonActions.multipleAction('chgrp'),
    "MarketPlace.chmod": _commonActions.singleAction('chmod'),
    "MarketPlace.update" : _commonActions.update(),
    "MarketPlace.update_template" : _commonActions.updateTemplate(),
    "MarketPlace.append_template" : _commonActions.appendTemplate(),
    "MarketPlace.update_dialog" : _commonActions.checkAndShowUpdate(),
    "MarketPlace.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID),
    "MarketPlace.rename": _commonActions.singleAction('rename')
  }

  return _actions;
});
Пример #4
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var DataTable = require('./datatable');
  var OpenNebulaResource = require('opennebula/securitygroup');
  var CommonActions = require('utils/common-actions');

  var RESOURCE = "SecurityGroup";
  var XML_ROOT = "SECURITY_GROUP";
  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
  var CLONE_DIALOG_ID = require('./dialogs/clone/dialogId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID, XML_ROOT);

  var _actions = {
    "SecurityGroup.create" : _commonActions.create(CREATE_DIALOG_ID),
    "SecurityGroup.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "SecurityGroup.list" : _commonActions.list(),
    "SecurityGroup.show" : _commonActions.show(),
    "SecurityGroup.refresh" : _commonActions.refresh(),
    "SecurityGroup.delete" : _commonActions.del(),
    "SecurityGroup.chown": _commonActions.multipleAction('chown'),
    "SecurityGroup.chgrp": _commonActions.multipleAction('chgrp'),
    "SecurityGroup.chmod": _commonActions.singleAction('chmod'),
    "SecurityGroup.rename": _commonActions.singleAction('rename'),
    "SecurityGroup.update" : _commonActions.update(),
    "SecurityGroup.update_template" : _commonActions.updateTemplate(),
    "SecurityGroup.update_dialog" : _commonActions.checkAndShowUpdate(),
    "SecurityGroup.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID),

    "SecurityGroup.clone_dialog" : {
      type: "custom",
      call: function(){
        Sunstone.getDialog(CLONE_DIALOG_ID).show();
      }
    },

    "SecurityGroup.clone" : {
      type: "single",
      call: OpenNebulaResource.clone,
      callback: function(request, response) {
        Sunstone.getDialog(CLONE_DIALOG_ID).hide();
        Sunstone.getDialog(CLONE_DIALOG_ID).reset();
        Sunstone.runAction('SecurityGroup.refresh');
      },
      error: Notifier.onError,
      notify: true
    }
  };

  return _actions;
})
Пример #5
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var DataTable = require('./datatable');
  var OpenNebulaResource = require('opennebula/virtualrouter');
  var CommonActions = require('utils/common-actions');

  var RESOURCE = "VirtualRouter";
  var XML_ROOT = "VROUTER";
  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID,
    XML_ROOT, Locale.tr("Virtual Router created"));

  var _actions = {
    "VirtualRouter.create" : _commonActions.create(CREATE_DIALOG_ID),
    "VirtualRouter.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "VirtualRouter.list" : _commonActions.list(),
    "VirtualRouter.show" : _commonActions.show(),
    "VirtualRouter.refresh" : _commonActions.refresh(),
    "VirtualRouter.delete" : _commonActions.del(),
    "VirtualRouter.chown": _commonActions.multipleAction('chown'),
    "VirtualRouter.chgrp": _commonActions.multipleAction('chgrp'),
    "VirtualRouter.chmod": _commonActions.singleAction('chmod'),
    "VirtualRouter.rename": _commonActions.singleAction('rename'),
    "VirtualRouter.attachnic": _commonActions.singleAction('attachnic'),
    "VirtualRouter.detachnic": _commonActions.singleAction('detachnic'),
    "VirtualRouter.update" : _commonActions.update(),
    "VirtualRouter.update_template" : _commonActions.updateTemplate(),
    "VirtualRouter.update_dialog" : _commonActions.checkAndShowUpdate(),
    "VirtualRouter.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID),
  };

  return _actions;
});
Пример #6
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var DataTable = require('./datatable');
  var OpenNebulaResource = require('opennebula/vmgroup');
  var CommonActions = require('utils/common-actions');
  var TemplateUtils = require('utils/template-utils');

  var CREATE_DIALOG_ID = require('tabs/vmgroup-tab/form-panels/create/formPanelId');
  var TAB_ID = require('./tabId');

  var RESOURCE = "VMGroup";
  var XML_ROOT = "VM_GROUP";

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID,
    XML_ROOT, Locale.tr("VM groups"));

  var _actions = {
    "VMGroup.create" : _commonActions.create(CREATE_DIALOG_ID),
    "VMGroup.update" : _commonActions.update(),
    "VMGroup.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "VMGroup.update_dialog" : _commonActions.checkAndShowUpdate(),
    "VMGroup.list" : _commonActions.list(),
    "VMGroup.show" : _commonActions.show(),
    "VMGroup.delete" : _commonActions.del(),
    "VMGroup.refresh" : _commonActions.refresh(),
    "VMGroup.update_template" : _commonActions.updateTemplate(),
    "VMGroup.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID),
    "VMGroup.append_template" : _commonActions.appendTemplate(),
    "VMGroup.chown": _commonActions.multipleAction('chown'),
    "VMGroup.chgrp": _commonActions.multipleAction('chgrp'),
    "VMGroup.chmod": _commonActions.singleAction('chmod')
  };

  return _actions;
});
Пример #7
0
  function Actions(tabId, resource, ids){

    var RESOURCE = resource;

    var TAB_ID  = ids.TAB_ID;
    var CREATE_DIALOG_ID  = ids.CREATE_DIALOG_ID;
    var CLONE_DIALOG_ID   = ids.CLONE_DIALOG_ID;
    var INSTANTIATE_DIALOG_ID   = ids.INSTANTIATE_DIALOG_ID;
    var IMPORT_DIALOG_ID  = ids.IMPORT_DIALOG_ID;
    var CONFIRM_DIALOG_ID   = ids.CONFIRM_DIALOG_ID;

    var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID,
      XML_ROOT, Locale.tr("VM Template created"));

    var _actions = {};

      _actions[resource+".list"] =  _commonActions.list(),
      _actions[resource+".show"] =  _commonActions.show(),
      _actions[resource+".refresh"] =  _commonActions.refresh(),
      _actions[resource+".delete"] =  _commonActions.del(),
      
      _actions[resource+".delete_dialog"] =
        {
          type: "custom",
          call: function() {
            Sunstone.getDialog(CONFIRM_DIALOG_ID).setParams({
              //header :
              headerTabId: TAB_ID,
              body : Locale.tr("This will delete the Template.<br/>You can also delete any Image referenced inside this Template"),
              //question :
              buttons : [
                Locale.tr("Delete all images"),
                Locale.tr("Delete"),
              ],
              submit : [
                function(){
                  Sunstone.runAction(RESOURCE+'.delete_recursive', Sunstone.getDataTable(TAB_ID).elements());
                  return false;
                },
                function(){
                  Sunstone.runAction(RESOURCE+'.delete', Sunstone.getDataTable(TAB_ID).elements());
                  return false;
                }
              ]
            });

            Sunstone.getDialog(CONFIRM_DIALOG_ID).reset();
            Sunstone.getDialog(CONFIRM_DIALOG_ID).show();
          }
        },

      _actions[resource+".delete_recursive"] =
        {
          type: "multiple",
          call: OpenNebulaResource.delete_recursive,
          callback : function(request, response) {
            if (Sunstone.getTab() == TAB_ID) {
              Sunstone.showTab(TAB_ID);
            }
          },
          elements: function(opts) {
            return Sunstone.getDataTable(TAB_ID).elements(opts);
          },
          error: Notifier.onError,
          notify: true
        },

      _actions[resource+".chown"] = _commonActions.multipleAction('chown'),
      _actions[resource+".chgrp"] = _commonActions.multipleAction('chgrp'),
      _actions[resource+".chmod"] = _commonActions.singleAction('chmod'),
      _actions[resource+".share"] =
        {
          type: "multiple",
          call: function(params){
            var permissions = {
              'group_u' : 1,
              'recursive' : true
            };

            Sunstone.runAction(RESOURCE+".chmod", params.data.id, permissions);
          },
          callback : function(request, response) {
            Sunstone.runAction(RESOURCE+".show", req.request.data[0]);
          },
          elements: function(opts) {
            return Sunstone.getDataTable(TAB_ID).elements(opts);
          },
          error: Notifier.onError,
          notify: false
        },

      _actions[resource+".unshare"] =
        {
          type: "multiple",
          call: function(params){
            var permissions = {
              'group_u' : 0,
              'recursive' : true
            };

            Sunstone.runAction(RESOURCE+".chmod", params.data.id, permissions);
          },
          callback : function(request, response) {
            Sunstone.runAction(RESOURCE+".show", req.request.data[0]);
          },
          elements: function(opts) {
            return Sunstone.getDataTable(TAB_ID).elements(opts);
          },
          error: Notifier.onError,
          notify: false
        },

      _actions[resource+".rename"] = _commonActions.singleAction('rename'),
      _actions[resource+".create"] =  _commonActions.create(CREATE_DIALOG_ID),
      _actions[resource+".create_dialog"] =  _commonActions.showCreate(CREATE_DIALOG_ID),
      _actions[resource+".import_dialog"] =  {
        type: "custom",
        call: function() {
          Sunstone.showFormPanel(TAB_ID, IMPORT_DIALOG_ID, "import");
        }
      },
      _actions[resource+".append_template"] =  _commonActions.appendTemplate(),
      _actions[resource+".update"] =  _commonActions.update(),
      _actions[resource+".update_dialog"] =  _commonActions.checkAndShowUpdate(),
      _actions[resource+".update_template"] =  _commonActions.updateTemplate(),
      _actions[resource+".show_to_update"] =  _commonActions.showUpdate(CREATE_DIALOG_ID),
      _actions[resource+".instantiate"] =  {
        type: "multiple",
        call: OpenNebulaResource.instantiate,
        callback: function(request, response) {
          Sunstone.hideFormPanel();
          OpenNebulaAction.clear_cache("VM");

          Notifier.notifyCustom(Locale.tr("VM created"), " ID: " + response, false);
        },
        elements: function(opts) {
          return Sunstone.getDataTable(TAB_ID).elements(opts);
        },
        error: function(request, response){
          // without tab id param to work for both templates and vms tab
          Sunstone.hideFormPanelLoading();
          Notifier.onError(request, response);
        },
        notify: false
      },
      _actions[resource+".instantiate_quiet"] =  {
        type: "single",
        call: OpenNebulaResource.instantiate,
        callback: function(request, response) {
          Sunstone.hideFormPanel();
          OpenNebulaAction.clear_cache("VM");
        },
        error: function(request, response){
          // without tab id param to work for both templates and vms tab
          Sunstone.hideFormPanelLoading();
          Notifier.onError(request, response);
        }
      },
      _actions[resource+".instantiate_vms"] =  {
        type: "custom",
        call: function(){
          //Sunstone.resetFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID);
          var selected_nodes = Sunstone.getDataTable(TAB_ID).elements();

          Sunstone.showFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID, "instantiate",
            function(formPanelInstance, context) {
              formPanelInstance.setTemplateIds(context, selected_nodes);
            });
        }
      },
      _actions[resource+".instantiate_persistent"] =
      {
        type: "single",
        call: OpenNebulaResource.instantiate_persistent,
        callback: function(request, response) {
          Sunstone.hideFormPanel();
          OpenNebulaAction.clear_cache("VM");

          Notifier.notifyCustom(Locale.tr("VM created"), " ID: " + response, false);
        },
        error: function(request, response){
          // without tab id param to work for both templates and vms tab
          Sunstone.hideFormPanelLoading();
          Notifier.onError(request, response);
        }
      },
      _actions[resource+".clone_dialog"] =  {
        type: "custom",
        call: function(){
          Sunstone.getDialog(CLONE_DIALOG_ID).setParams(
            { tabId : TAB_ID,
              resource : resource
            });
          Sunstone.getDialog(CLONE_DIALOG_ID).reset();
          Sunstone.getDialog(CLONE_DIALOG_ID).show();
        }
      },
      _actions[resource+".clone"] =  {
        type: "single",
        call: OpenNebulaResource.clone,
        callback: function(request, response) {
          OpenNebulaAction.clear_cache("VMTEMPLATE");
          Notifier.notifyCustom(Locale.tr("VM Template created"), " ID: " + response.VMTEMPLATE.ID, false);
        },
        error: Notifier.onError,
        notify: true
      },
      _actions[resource+".clone_recursive"] =
      {
        type: "single",
        call: OpenNebulaResource.clone_recursive,
        callback : function(request, response) {
          OpenNebulaAction.clear_cache("VMTEMPLATE");
          Notifier.notifyCustom(Locale.tr("VM Template created"), " ID: " + response.VMTEMPLATE.ID, false);
        },
        error: Notifier.onError,
        notify: true
      }

  
    return _actions;
  }
Пример #8
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var CommonActions = require('utils/common-actions');
  var OpenNebulaResource = require('opennebula/marketplaceapp');
  var OpenNebula = require('opennebula');
  var OpenNebulaAction = require('opennebula/action');

  var RESOURCE = "MarketPlaceApp";
  var XML_ROOT = "MARKETPLACEAPP";
  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
  var EXPORT_DIALOG_ID = require('./form-panels/export/formPanelId');
  var CONFIRM_DIALOG_ID = require('utils/dialogs/generic-confirm/dialogId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID,
    XML_ROOT, Locale.tr("MarketPlace App created"));

  var _actions = {
    "MarketPlaceApp.create" : _commonActions.create(CREATE_DIALOG_ID),
    "MarketPlaceApp.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "MarketPlaceApp.download_opennebula_dialog" : {
      type: "custom",
      call: function() {
        var selected_nodes = Sunstone.getDataTable(TAB_ID).elements();
        if (selected_nodes.length != 1) {
          Notifier.notifyMessage("Please select one (and just one) app to export.");
          return false;
        }

        var resourceId = "" + selected_nodes[0];

        Sunstone.resetFormPanel(TAB_ID, EXPORT_DIALOG_ID);
        Sunstone.showFormPanel(TAB_ID, EXPORT_DIALOG_ID, "export",
          function(formPanelInstance, context) {
            formPanelInstance.setResourceId(context, resourceId);
          });
      }
    },
    "MarketPlaceApp.export" : {
      type: "multiple",
      call: OpenNebulaResource.export,
      callback: function(req, response) {
        if (response['IMAGE'] !== undefined) {
          $.each(response['IMAGE'], function(i, image) {
            if (image.error != undefined){
              Notifier.notifyError(image.error.message);
            } else {
              Notifier.notifyCustom(Locale.tr("Image created"), " ID: " + image.ID, false);
            }
          });
        };

        if (response['VMTEMPLATE'] !== undefined) {
          $.each(response['VMTEMPLATE'], function(i, vmTemplate) {
            if (vmTemplate.error != undefined) {
              Notifier.notifyError(vmTemplate.error.message);
            } else if (vmTemplate.ID != -1) {
              Notifier.notifyCustom(Locale.tr("VM Template created"), " ID: " + vmTemplate.ID, false);
            }
          });
        };

        Sunstone.hideFormPanel(TAB_ID);
        OpenNebulaAction.clear_cache("IMAGE");
        OpenNebulaAction.clear_cache("VMTEMPLATE");
      },
      elements: function(opts) {
        return Sunstone.getDataTable(TAB_ID).elements(opts);
      },
      error: function(request, response){
        // without tab id param to work for both templates and vms tab
        Sunstone.hideFormPanelLoading();
        Notifier.onError(request, response);
      },
      notify: true
    },
    "MarketPlaceApp.download_local": {
      type: "multiple",
      call: function(params) {
        var selected_nodes = Sunstone.getDataTable(TAB_ID).elements();

        $.each(selected_nodes, function() {
          window.open("/marketplaceapp/"+this+"/download?csrftoken="+csrftoken, "_blank");
        });
      },
      elements: function(opts) {
        return Sunstone.getDataTable(TAB_ID).elements(opts);
      },
      error: Notifier.onError
    },
    "MarketPlaceApp.list" : _commonActions.list(),
    "MarketPlaceApp.show" : _commonActions.show(),
    "MarketPlaceApp.refresh" : _commonActions.refresh(),

    "MarketPlaceApp.delete" : {
      type: "multiple",
      call : function(params){
        OpenNebulaResource.show({
          data : {
              id: params.data.id
          },
          success: function(request,app_json){
            var zone = app_json[XML_ROOT].ZONE_ID;

            if (zone != config.zone_id){
              Sunstone.getDialog(CONFIRM_DIALOG_ID).setParams({
                header : Locale.tr("Error"),
                headerTabId: TAB_ID,
                body : Locale.tr(
                  "This MarketPlace App resides in Zone ") +
                  zone + " (" + OpenNebula.Zone.getName(zone) + ")" +
                  Locale.tr(". To delete it you need to switch to that Zone from the zone selector in the top-right corner." ),
                question : "",
                buttons : [
                  Locale.tr("Ok"),
                ],
                submit : [
                  function(){
                    $("a#zonelector").focus().click();
                    return false;
                  }
                ]
              });

              Sunstone.getDialog(CONFIRM_DIALOG_ID).reset();
              Sunstone.getDialog(CONFIRM_DIALOG_ID).show();
            } else {
              _commonActions.del().call(params);
            }
          },
          error: Notifier.onError
        });
      },
      callback : _commonActions.del().callback,
      elements: _commonActions.del().elements,
      error: _commonActions.del().error,
      notify: _commonActions.del().notify
    },

    "MarketPlaceApp.chown": _commonActions.multipleAction('chown'),
    "MarketPlaceApp.chgrp": _commonActions.multipleAction('chgrp'),
    "MarketPlaceApp.chmod": _commonActions.singleAction('chmod'),
    "MarketPlaceApp.enable": _commonActions.multipleAction('enable'),
    "MarketPlaceApp.disable": _commonActions.multipleAction('disable'),
    //"MarketPlaceApp.update" : _commonActions.updateTemplate(),
    "MarketPlaceApp.update_template" : _commonActions.updateTemplate(),
    "MarketPlaceApp.append_template" : _commonActions.appendTemplate(),
    "MarketPlaceApp.rename": _commonActions.singleAction('rename')
  }

  return _actions;
});
Пример #9
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var DataTable = require('./datatable');
  var OpenNebulaResource = require('opennebula/host');
  var OpenNebulaCluster = require('opennebula/cluster');
  var OpenNebulaAction = require('opennebula/action');
  var CommonActions = require('utils/common-actions');

  var TAB_ID = require('./tabId');
  var XML_ROOT = "HOST"
  var RESOURCE = "Host"
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID, XML_ROOT);

  var _actions = {
    "Host.create" : _commonActions.create(CREATE_DIALOG_ID),
    "Host.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "Host.list" : _commonActions.list(),
    "Host.show" : _commonActions.show(),
    "Host.refresh" : _commonActions.refresh(),
    "Host.delete" : _commonActions.del(),
    "Host.update_template" : _commonActions.updateTemplate(),
    "Host.enable": _commonActions.multipleAction('enable'),
    "Host.disable": _commonActions.multipleAction('disable'),
    "Host.rename": _commonActions.singleAction('rename'),

    "Host.addtocluster" : {
      type: "multiple",
      call: function(params){
        var cluster = params.data.extra_param;
        var host = params.data.id;

        if (cluster == -1){
          OpenNebulaResource.show({
            data : {
              id: host
            },
            success: function (request, info){
              var element = info.HOST;

              var current_cluster = element.CLUSTER_ID;

              if(current_cluster != -1){
                OpenNebulaCluster.delhost({
                  data: {
                    id: current_cluster,
                    extra_param: host
                  },
                  success: function(){
                    OpenNebulaAction.clear_cache("HOST");
                    Sunstone.runAction('Host.show',host);
                  },
                  error: Notifier.onError
                });
              } else {
                OpenNebulaAction.clear_cache("HOST");
                Sunstone.runAction('Host.show',host);
              }
            },
            error: Notifier.onError
          });
        } else {
          OpenNebulaCluster.addhost({
            data: {
              id: cluster,
              extra_param: host
            },
            success: function(){
              OpenNebulaAction.clear_cache("HOST");
              Sunstone.runAction('Host.show',host);
            },
            error: Notifier.onError
          });
        }
      },
      elements: function() {
        return Sunstone.getDataTable(TAB_ID).elements();
      }
    }
  };

  return _actions;
})
Пример #10
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var DataTable = require('./datatable');
  var OpenNebulaResource = require('opennebula/group');
  var CommonActions = require('utils/common-actions');

  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
  var QUOTAS_DIALOG_ID = require('./dialogs/quotas/dialogId');

  var RESOURCE = "Group";
  var XML_ROOT = "GROUP";

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID, XML_ROOT);

  var _actions = {
    "Group.create" : _commonActions.create(CREATE_DIALOG_ID),
    "Group.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "Group.list" : _commonActions.list(),
    "Group.show" : _commonActions.show(),
    "Group.refresh" : _commonActions.refresh(),
    "Group.delete" : _commonActions.del(),
    "Group.update" : _commonActions.update(),
    "Group.update_template" : _commonActions.updateTemplate(),
    "Group.append_template" : _commonActions.appendTemplate(),
    "Group.update_dialog" : _commonActions.checkAndShowUpdate(),
    "Group.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID),

    "Group.fetch_quotas" : {
      type: "single",
      call: OpenNebulaResource.show,
      callback: function (request,response) {
        Sunstone.getDialog(QUOTAS_DIALOG_ID).setParams({element: response[XML_ROOT]});
        Sunstone.getDialog(QUOTAS_DIALOG_ID).reset();
        Sunstone.getDialog(QUOTAS_DIALOG_ID).show();
      },
      error: Notifier.onError
    },

    "Group.quotas_dialog" : {
      type: "custom",
      call: function() {
        var tab = $('#' + TAB_ID);
        if (Sunstone.rightInfoVisible(tab)) {
          $('a[href="#group_quotas_tab"]', tab).click();
          $('#edit_quotas_button', tab).click();
        } else {
          var sel_elems = Sunstone.getDataTable(TAB_ID).elements();
          //If only one group is selected we fecth the group's quotas
          if (sel_elems.length == 1){
            Sunstone.runAction(RESOURCE+'.fetch_quotas',sel_elems[0]);
          } else {
            // More than one, shows '0' usage
            Sunstone.getDialog(QUOTAS_DIALOG_ID).setParams({element: {}});
            Sunstone.getDialog(QUOTAS_DIALOG_ID).reset();
            Sunstone.getDialog(QUOTAS_DIALOG_ID).show();
          }
        }
      }
    },

    "Group.set_quota" : {
      type: "multiple",
      call: OpenNebulaResource.set_quota,
      elements: function() {
        return Sunstone.getDataTable(TAB_ID).elements();
      },
      callback: function(request) {
        Sunstone.getDialog(QUOTAS_DIALOG_ID).hide();

        Sunstone.runAction(RESOURCE+'.show',request.request.data[0]);
      },
      error: Notifier.onError
    },

    "Group.add_admin" : {
      type: "single",
      call : OpenNebulaResource.add_admin,
      callback : function (req) {
        Sunstone.runAction(RESOURCE+'.show',req.request.data[0][0]);
      },
      error: Notifier.onError
    },

    "Group.del_admin" : {
      type: "single",
      call : OpenNebulaResource.del_admin,
      callback : function (req) {
        Sunstone.runAction(RESOURCE+'.show',req.request.data[0][0]);
      },
      error: Notifier.onError
    }
  };

  return _actions;
});
Пример #11
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var DataTable = require('./datatable');
  var OpenNebulaResource = require('opennebula/virtualrouter');
  var CommonActions = require('utils/common-actions');

  var RESOURCE = "VirtualRouter";
  var XML_ROOT = "VROUTER";
  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
  var INSTANTIATE_DIALOG_ID = require('./form-panels/instantiate/formPanelId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID,
    XML_ROOT, Locale.tr("Virtual Router created"));

  var _actions = {
    "VirtualRouter.create" : _commonActions.create(CREATE_DIALOG_ID),
    "VirtualRouter.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "VirtualRouter.lockM": _commonActions.multipleAction('lock', false),
    "VirtualRouter.lockU": _commonActions.multipleAction('lock', false),
    "VirtualRouter.lockA": _commonActions.multipleAction('lock', false),
    "VirtualRouter.unlock": _commonActions.multipleAction('unlock', false),
    "VirtualRouter.instantiate_vms" : {
      type: "custom",
      call: function() {
        var selected_nodes = Sunstone.getDataTable(TAB_ID).elements();
        if (selected_nodes.length != 1) {
          Notifier.notifyMessage("Please select one (and just one) Virtual Router.");
          return false;
        }

        var vrId = "" + selected_nodes[0];

        OpenNebulaResource.show({
          data:{
            id: vrId
          },
          success: function(request, response){
            Sunstone.resetFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID);
            Sunstone.showFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID, "instantiate",
              function(formPanelInstance, context) {
                formPanelInstance.fill(context, response[XML_ROOT]);
              });
          },
          error: Notifier.onError
        });
      }
    },
    "VirtualRouter.list" : _commonActions.list(),
    "VirtualRouter.show" : _commonActions.show(),
    "VirtualRouter.refresh" : _commonActions.refresh(),
    "VirtualRouter.delete" : _commonActions.del(),
    "VirtualRouter.chown": _commonActions.multipleAction('chown'),
    "VirtualRouter.chgrp": _commonActions.multipleAction('chgrp'),
    "VirtualRouter.chmod": _commonActions.singleAction('chmod'),
    "VirtualRouter.rename": _commonActions.singleAction('rename'),
    "VirtualRouter.attachnic": _commonActions.singleAction('attachnic'),
    "VirtualRouter.detachnic": _commonActions.singleAction('detachnic'),
    "VirtualRouter.update" : _commonActions.update(),
    "VirtualRouter.update_template" : _commonActions.updateTemplate(),
    "VirtualRouter.update_dialog" : _commonActions.checkAndShowUpdate(),
    "VirtualRouter.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID),
  };

  return _actions;
});
Пример #12
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var OpenNebulaResource = require('opennebula/image');
  var OpenNebula = require('opennebula');
  var OpenNebulaAction = require('opennebula/action');
  var CommonActions = require('utils/common-actions');

  var RESOURCE = "Image";
  var XML_ROOT = "IMAGE";
  var TAB_ID = require('./tabId');
  var MARKETPLACEAPPS_TAB_ID = require('tabs/marketplaceapps-tab/tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
  var CLONE_DIALOG_ID = require('./dialogs/clone/dialogId');
  var CREATE_APP_DIALOG_ID = require('tabs/marketplaceapps-tab/form-panels/create/formPanelId');
  var IMPORT_DIALOG_ID = require('./form-panels/import/formPanelId');
  var CONFIRM_DIALOG_ID = require('utils/dialogs/generic-confirm/dialogId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID, XML_ROOT);

  var _actions = {
    "Image.create" : _commonActions.create(CREATE_DIALOG_ID),
    "Image.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "Image.import_dialog" : {
      type: "custom",
      call: function() {
        Sunstone.showFormPanel(TAB_ID, IMPORT_DIALOG_ID, "import");
      }
    },
    "Image.list" : _commonActions.list(),
    "Image.show" : _commonActions.show(),
    "Image.refresh" : _commonActions.refresh(),
    "Image.delete" : _commonActions.del(),
    "Image.append_template" : _commonActions.appendTemplate(),
    "Image.update_template" : _commonActions.updateTemplate(),
    "Image.chown": _commonActions.multipleAction('chown'),
    "Image.chgrp": _commonActions.multipleAction('chgrp'),
    "Image.chmod": _commonActions.singleAction('chmod'),
    "Image.rename": _commonActions.singleAction('rename'),
    "Image.enable": _commonActions.multipleAction('enable'),
    "Image.disable": _commonActions.multipleAction('disable'),
    "Image.persistent": _commonActions.multipleAction('persistent'),
    "Image.nonpersistent": _commonActions.multipleAction('nonpersistent'),
    "Image.chtype": _commonActions.singleAction('chtype'),
    "Image.snapshot_flatten": _commonActions.singleAction("snapshot_flatten"),
    "Image.snapshot_revert": _commonActions.singleAction("snapshot_revert"),
    "Image.snapshot_delete": _commonActions.singleAction("snapshot_delete"),
    "Image.export_dialog" : {
      type: "custom",
      call: function(params) {
        var selectedNodes = Sunstone.getDataTable(TAB_ID).elements();

        if (selectedNodes.length !== 1) {
          Notifier.notifyMessage(Locale.tr("Please select one (and just one) Image to export."));
          return false;
        }

        var resourceId = '' + selectedNodes[0];

        OpenNebulaResource.show({
          data : {
              id: resourceId
          },
          success: function(request, img_json){
            var img = img_json[XML_ROOT];

            if (OpenNebula.Datastore.isMarketExportSupported(img.DATASTORE_ID)){
              Sunstone.showTab(MARKETPLACEAPPS_TAB_ID);
              Sunstone.showFormPanel(MARKETPLACEAPPS_TAB_ID, CREATE_APP_DIALOG_ID, "export",
                function(formPanelInstance, context) {
                  formPanelInstance.setImageId(resourceId);
                });
            } else {
              Sunstone.getDialog(CONFIRM_DIALOG_ID).setParams({
                header : Locale.tr("Error"),
                body : Locale.tr("This Image resides in Datastore ") +
                  img.DATASTORE_ID + " (" + img.DATASTORE + ")" +
                  Locale.tr(". The export action is not supported for that Datastore DS_MAD driver."),
                question : "",
                buttons : [
                  Locale.tr("Ok"),
                ],
                submit : [
                  function(){
                    return false;
                  }
                ]
              });

              Sunstone.getDialog(CONFIRM_DIALOG_ID).reset();
              Sunstone.getDialog(CONFIRM_DIALOG_ID).show();
            }
          },
          error: Notifier.onError
        });
      }
    },

    "Image.clone_dialog" : {
      type: "custom",
      call: function(){
        Sunstone.getDialog(CLONE_DIALOG_ID).show();
      }
    },
    "Image.clone" : {
      type: "single",
      call: OpenNebulaResource.clone,
      callback: function(request, response) {
        OpenNebulaAction.clear_cache("IMAGE");
        Notifier.notifyCustom(Locale.tr("Image created"), " ID: " + response.IMAGE.ID, false);
      },
      error: Notifier.onError,
      notify: true
    }
  };

  return _actions;
});
Пример #13
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var DataTable = require('./datatable');
  var OpenNebulaResource = require('opennebula/user');
  var CommonActions = require('utils/common-actions');
  var TemplateUtils = require('utils/template-utils');

  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
  var PASSWORD_DIALOG_ID = require('./dialogs/password/dialogId');
  var AUTH_DRIVER_DIALOG_ID = require('./dialogs/auth-driver/dialogId');
  var QUOTAS_DIALOG_ID = require('./dialogs/quotas/dialogId');
  var GROUPS_DIALOG_ID = require('./dialogs/groups/dialogId');

  var RESOURCE = "User";
  var XML_ROOT = "USER";

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID,
    XML_ROOT, Locale.tr("User created"));

  var _actions = {
    "User.create" : _commonActions.create(CREATE_DIALOG_ID),
    "User.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "User.list" : _commonActions.list(),
    "User.show" : _commonActions.show(),
    "User.refresh" : _commonActions.refresh(),
    "User.delete" : _commonActions.del(),
    "User.chgrp": _commonActions.multipleAction('chgrp'),
    "User.addgroup": _commonActions.multipleAction('addgroup'),
    "User.delgroup": _commonActions.multipleAction('delgroup'),
    "User.groups_dialog" : _commonActions.checkAndShow("groups"),

    "User.groups" : {
      type: "single",
      call: OpenNebulaResource.show,
      callback: function(request, response) {
        Sunstone.getDialog(GROUPS_DIALOG_ID).setParams({element: response[XML_ROOT]});
        Sunstone.getDialog(GROUPS_DIALOG_ID).reset();
        Sunstone.getDialog(GROUPS_DIALOG_ID).show();
      },
      error: Notifier.onError
    },

    "User.update_password" : {
      type: "custom",
      call: function(){
        Sunstone.getDialog(PASSWORD_DIALOG_ID).setParams(
          {selectedElements: Sunstone.getDataTable(TAB_ID).elements()});
        Sunstone.getDialog(PASSWORD_DIALOG_ID).reset();
        Sunstone.getDialog(PASSWORD_DIALOG_ID).show();
      }
    },

    "User.passwd" : {
      type: "multiple",
      call: OpenNebulaResource.passwd,
      error: Notifier.onError
    },


    "User.change_authentication" : {
      type: "custom",
      call: function(){
        Sunstone.getDialog(AUTH_DRIVER_DIALOG_ID).show();
      }
    },

    "User.chauth" : {
      type: "multiple",
      call: OpenNebulaResource.chauth,
      error: Notifier.onError,
    },

    "User.update_template" : {
      type: "single",
      call: OpenNebulaResource.update,
      callback: function(request) {
        var reqId = request.request.data[0];

        Sunstone.runAction(RESOURCE+'.show',reqId);

        if (reqId == config['user_id'] || reqId == "-1") {
          Sunstone.runAction('Settings.refresh');

          $.ajax({
            url: 'config',
            type: "POST",
            dataType: "json",
            success: function() {
              return false;
            },
            error: function(response) {
            }
          });
        }
      },
      error: Notifier.onError
    },

    "User.append_template" : {
      type: "single",
      call: OpenNebulaResource.append,
      callback: function(request) {
        var reqId = request.request.data[0];

        Sunstone.runAction(RESOURCE+'.show',reqId);

        if (reqId == config['user_id'] || reqId == "-1") {
          Sunstone.runAction('Settings.refresh');

          $.ajax({
            url: 'config',
            type: "POST",
            dataType: "json",
            success: function() {
              return false;
            },
            error: function(response) {
            }
          });
        }
      },
      error: Notifier.onError
    },

    "User.append_template_refresh" : {
      type: "single",
      call: OpenNebulaResource.append,
      callback: function(request) {
        var reqId = request.request.data[0];

        if (reqId == config['user_id'] || reqId == "-1") {
          $.ajax({
            url: 'config',
            type: "POST",
            dataType: "json",
            success: function() {
              window.location.href = ".";
            },
            error: function(response) {
            }
          });
        } else {
          Sunstone.runAction(RESOURCE+'.show',reqId);
        }
      },
      error: Notifier.onError
    },

    "User.append_sunstone_setting_refresh" : {
      type: "single",
      call: function(params){
        OpenNebulaResource.show({
          data : {
            id: params.data.id
          },
          success: function(request, response) {
            var sunstone_template = {};
            if (response[XML_ROOT].TEMPLATE.SUNSTONE) {
              $.extend(sunstone_template, response[XML_ROOT].TEMPLATE.SUNSTONE);
            }

            $.extend(sunstone_template, params.data.extra_param)
            var template_str = TemplateUtils.templateToString({'SUNSTONE': sunstone_template});
            Sunstone.runAction("User.append_template_refresh", params.data.id, template_str);
          },
          error: Notifier.onError
        });
      }
    },

    "User.append_sunstone_setting" : {
      type: "single",
      call: function(params){
        OpenNebulaResource.show({
          data : {
            id: params.data.id
          },
          success: function(request, response) {
            var sunstone_template = {};
            if (response[XML_ROOT].TEMPLATE.SUNSTONE) {
              $.extend(sunstone_template, response[XML_ROOT].TEMPLATE.SUNSTONE);
            }

            $.extend(sunstone_template, params.data.extra_param)
            var template_str = TemplateUtils.templateToString({'SUNSTONE': sunstone_template});
            Sunstone.runAction("User.append_template", params.data.id, template_str);
          },
          error: Notifier.onError
        });
      }
    },

    "User.fetch_quotas" : {
      type: "single",
      call: OpenNebulaResource.show,
      callback: function (request,response) {
        Sunstone.getDialog(QUOTAS_DIALOG_ID).setParams({element: response[XML_ROOT]});
        Sunstone.getDialog(QUOTAS_DIALOG_ID).reset();
        Sunstone.getDialog(QUOTAS_DIALOG_ID).show();
      },
      error: Notifier.onError
    },

    "User.quotas_dialog" : {
      type: "custom",
      call: function() {
        var tab = $('#' + TAB_ID);
        if (Sunstone.rightInfoVisible(tab)) {
          $('a[href="#user_quotas_tab"]', tab).click();
          $('#edit_quotas_button', tab).click();
        } else {
          var sel_elems = Sunstone.getDataTable(TAB_ID).elements();
          //If only one user is selected we fecth the user's quotas
          if (sel_elems.length == 1){
            Sunstone.runAction(RESOURCE+'.fetch_quotas',sel_elems[0]);
          } else {
            // More than one, shows '0' usage
            Sunstone.getDialog(QUOTAS_DIALOG_ID).setParams({element: {}});
            Sunstone.getDialog(QUOTAS_DIALOG_ID).reset();
            Sunstone.getDialog(QUOTAS_DIALOG_ID).show();
          }
        }
      }
    },

    "User.set_quota" : {
      type: "multiple",
      call: OpenNebulaResource.set_quota,
      elements: function(opts) {
        return Sunstone.getDataTable(TAB_ID).elements(opts);
      },
      callback: function(request) {
        Sunstone.getDialog(QUOTAS_DIALOG_ID).hide();

        Sunstone.runAction(RESOURCE+'.show',request.request.data[0]);
      },
      error: Notifier.onError
    }
  };

  return _actions;
});
Пример #14
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var DataTable = require('./datatable');
  var OpenNebulaResource = require('opennebula/vntemplate');
  var OpenNebulaCluster = require('opennebula/cluster');
  var OpenNebulaAction = require('opennebula/action');
  var CommonActions = require('utils/common-actions');

  var RESOURCE = "VNTemplate";
  var XML_ROOT = "VNTEMPLATE";
  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
  var ADD_AR_DIALOG_ID = require('tabs/vnets-tab/dialogs/add-ar/dialogId');
  var UPDATE_AR_DIALOG_ID = require('tabs/vnets-tab/dialogs/update-ar/dialogId');
  var RESERVE_DIALOG_ID = require('tabs/vnets-tab/dialogs/reserve/dialogId');
  var CLUSTERS_DIALOG_ID = require('utils/dialogs/clusters/dialogId');
  var INSTANTIATE_DIALOG_ID = require('./form-panels/instantiate/formPanelId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID,
    XML_ROOT, Locale.tr("Virtual Network Template created"));

  var _actions = {
    "VNTemplate.create" : _commonActions.create(CREATE_DIALOG_ID),
    "VNTemplate.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "VNTemplate.list" : _commonActions.list(),
    "VNTemplate.show" : _commonActions.show(),
    "VNTemplate.refresh" : _commonActions.refresh(),
    "VNTemplate.delete" : _commonActions.del(),
    "VNTemplate.hold": _commonActions.singleAction('hold'),
    "VNTemplate.release": _commonActions.singleAction('release'),
    "VNTemplate.chown": _commonActions.multipleAction('chown'),
    "VNTemplate.chgrp": _commonActions.multipleAction('chgrp'),
    "VNTemplate.chmod": _commonActions.singleAction('chmod'),
    "VNTemplate.rename": _commonActions.singleAction('rename'),
    "VNTemplate.update" : _commonActions.update(),
    "VNTemplate.update_template" : _commonActions.updateTemplate(),
    "VNTemplate.append_template" : _commonActions.appendTemplate(),
    "VNTemplate.update_dialog" : _commonActions.checkAndShowUpdate(),
    "VNTemplate.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID),
    "VNTemplate.lockM": _commonActions.multipleAction('lock', false),
    "VNTemplate.lockU": _commonActions.multipleAction('lock', false),
    "VNTemplate.lockA": _commonActions.multipleAction('lock', false),
    "VNTemplate.unlock": _commonActions.multipleAction('unlock', false),
    "VNTemplate.add_ar" : {
      type: "single",
      call: OpenNebulaResource.update,
      callback: function(req) {
        // Reset the wizard
        Sunstone.getDialog(ADD_AR_DIALOG_ID).hide();
        Sunstone.getDialog(ADD_AR_DIALOG_ID).reset();

        Sunstone.runAction("VNTemplate.show",req.request.data[0]);
      },
      error: Notifier.onError
    },

    "VNTemplate.update_ar" : {
      type: "single",
      call: OpenNebulaResource.update,
      callback: function(req) {
        // Reset the wizard
        Sunstone.getDialog(UPDATE_AR_DIALOG_ID).hide();
        Sunstone.getDialog(UPDATE_AR_DIALOG_ID).reset();

        Sunstone.runAction("VNTemplate.show",req.request.data[0]);
      },
      error: Notifier.onError
    },

    "VNTemplate.remove_ar" : {
      type: "single",
      call: OpenNebulaResource.update,
      callback: function(req) {
        OpenNebulaAction.clear_cache("VNTEMPLATE");
        Sunstone.runAction("VNTemplate.show",req.request.data[0]);
      },
      error: Notifier.onError
    },

    "VNTemplate.addtocluster" : _commonActions.checkAndShow("clusters"),

    "VNTemplate.clusters" : {
      type: "single",
      call: OpenNebulaResource.show,
      callback: function(request, response) {
        Sunstone.getDialog(CLUSTERS_DIALOG_ID).setParams({
          element: response[XML_ROOT],
          resource:"vntemplate",
          resource_name: RESOURCE,
          only_update_template: true
        });

        Sunstone.getDialog(CLUSTERS_DIALOG_ID).reset();
        Sunstone.getDialog(CLUSTERS_DIALOG_ID).show();
      },
      error: Notifier.onError
    },
    "VNTemplate.instantiate" : {
      type: "multiple",
      call: OpenNebulaResource.instantiate,
      callback: function(request, response) {
        Sunstone.hideFormPanel();
        OpenNebulaAction.clear_cache("VNET");

        Notifier.notifyCustom(Locale.tr("VNet created"),
          Navigation.link(" ID: " + response, "vnets-tab", response),
          false);
      },
      elements: function(opts) {
        return Sunstone.getDataTable(TAB_ID).elements(opts);
      },
      error: function(request, response){
        Sunstone.hideFormPanelLoading();
        Notifier.onError(request, response);
      },
      notify: false
    },
    "VNTemplate.instantiate_vnets" : {
      type: "custom",
      call: function(){
        //Sunstone.resetFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID);
        var selected_nodes = Sunstone.getDataTable(TAB_ID).elements();

        if (selected_nodes.length != 1) {
          Notifier.notifyMessage("Please select one (and just one) Virtual Network Template.");
          return false;
        }

        Sunstone.showFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID, "instantiate",
          function(formPanelInstance, context) {
            formPanelInstance.setTemplateIds(context, selected_nodes);
          });
      }
    },
  };

  return _actions;
});
Пример #15
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var OpenNebulaResource = require('opennebula/template');
  var CommonActions = require('utils/common-actions');
  var OpenNebulaAction = require('opennebula/action');

  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
  var CLONE_DIALOG_ID = require('./dialogs/clone/dialogId');
  var INSTANTIATE_DIALOG_ID = require('./form-panels/instantiate/formPanelId');
  var IMPORT_DIALOG_ID = require('./form-panels/import/formPanelId');
  var CONFIRM_DIALOG_ID = require('utils/dialogs/generic-confirm/dialogId');

  var XML_ROOT = "VMTEMPLATE"
  var RESOURCE = "Template"

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID, XML_ROOT);

  var _actions = {
    "Template.list" : _commonActions.list(),
    "Template.show" : _commonActions.show(),
    "Template.refresh" : _commonActions.refresh(),
    "Template.delete" : _commonActions.del(),
    
    "Template.delete_dialog":
      {
        type: "custom",
        call: function() {
          Sunstone.getDialog(CONFIRM_DIALOG_ID).setParams({
            //header :
            body : Locale.tr("This will delete the Template.<br/>You can also delete any Image referenced inside this Template"),
            //question :
            buttons : [
              Locale.tr("Delete all images"),
              Locale.tr("Delete"),
            ],
            submit : [
              function(){
                Sunstone.runAction('Template.delete_recursive', Sunstone.getDataTable(TAB_ID).elements());
                return false;
              },
              function(){
                Sunstone.runAction('Template.delete', Sunstone.getDataTable(TAB_ID).elements());
                return false;
              }
            ]
          });

          Sunstone.getDialog(CONFIRM_DIALOG_ID).reset();
          Sunstone.getDialog(CONFIRM_DIALOG_ID).show();
        }
      },

    "Template.delete_recursive":
      {
        type: "multiple",
        call: OpenNebulaResource.delete_recursive,
        callback : function(request, response) {
          var elementId = request.request.data[0][0].toString();
          Sunstone.getDataTable(TAB_ID).deleteElement(elementId);
        },
        elements: function() {
          return Sunstone.getDataTable(TAB_ID).elements();
        },
        error: Notifier.onError,
        notify: true
      },

    "Template.chown": _commonActions.multipleAction('chown'),
    "Template.chgrp": _commonActions.multipleAction('chgrp'),
    "Template.chmod": _commonActions.singleAction('chmod'),
    "Template.share":
      {
        type: "multiple",
        call: function(params){
          var permissions = {
            'group_u' : 1,
            'recursive' : true
          };

          Sunstone.runAction(RESOURCE+".chmod", params.data.id, permissions);
        },
        callback : function(request, response) {
          Sunstone.runAction(RESOURCE+".show", req.request.data[0][0]);
        },
        elements: function() {
          return Sunstone.getDataTable(TAB_ID).elements();
        },
        error: Notifier.onError,
        notify: false
      },

    "Template.unshare":
      {
        type: "multiple",
        call: function(params){
          var permissions = {
            'group_u' : 0,
            'recursive' : true
          };

          Sunstone.runAction(RESOURCE+".chmod", params.data.id, permissions);
        },
        callback : function(request, response) {
          Sunstone.runAction(RESOURCE+".show", req.request.data[0][0]);
        },
        elements: function() {
          return Sunstone.getDataTable(TAB_ID).elements();
        },
        error: Notifier.onError,
        notify: false
      },

    "Template.rename": _commonActions.singleAction('rename'),
    "Template.create" : _commonActions.create(CREATE_DIALOG_ID),
    "Template.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "Template.import_dialog" : {
      type: "custom",
      call: function() {
        Sunstone.showFormPanel(TAB_ID, IMPORT_DIALOG_ID, "import");
      }
    },
    "Template.append_template" : _commonActions.appendTemplate(),
    "Template.update" : _commonActions.update(),
    "Template.update_dialog" : _commonActions.checkAndShowUpdate(),
    "Template.update_template" : _commonActions.updateTemplate(),
    "Template.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID),
    "Template.instantiate" : {
      type: "multiple",
      call: OpenNebulaResource.instantiate,
      callback: function(req) {
        Sunstone.hideFormPanel(TAB_ID);
        OpenNebulaAction.clear_cache("VM");
      },
      elements: function() {
        return Sunstone.getDataTable(TAB_ID).elements();
      },
      error: function(request, response){
        // without tab id param to work for both templates and vms tab
        Sunstone.hideFormPanelLoading();
        Notifier.onError(request, response);
      },
      notify: true
    },
    "Template.instantiate_quiet" : {
      type: "single",
      call: OpenNebulaResource.instantiate,
      callback: function(req) {
        Sunstone.hideFormPanel(TAB_ID);
        OpenNebulaAction.clear_cache("VM");
      },
      error: function(request, response){
        // without tab id param to work for both templates and vms tab
        Sunstone.hideFormPanelLoading();
        Notifier.onError(request, response);
      }
    },
    "Template.instantiate_vms" : {
      type: "custom",
      call: function(){
        //Sunstone.resetFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID);
        var selected_nodes = Sunstone.getDataTable(TAB_ID).elements();

        Sunstone.showFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID, "instantiate",
          function(formPanelInstance, context) {
            formPanelInstance.setTemplateIds(context, selected_nodes);
          });
      }
    },
    "Template.clone_dialog" : {
      type: "custom",
      call: function(){
        Sunstone.getDialog(CLONE_DIALOG_ID).show();
      }
    },
    "Template.clone" : {
      type: "single",
      call: OpenNebulaResource.clone,
      callback: function(request, response) {
        OpenNebulaAction.clear_cache("VMTEMPLATE");
        Notifier.notifyCustom(Locale.tr("VM Template created"), " ID: " + response.VMTEMPLATE.ID, false);
      },
      error: Notifier.onError,
      notify: true
    }
  };

  return _actions;
})
Пример #16
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var OpenNebulaResource = require('opennebula/datastore');
  var OpenNebulaCluster = require('opennebula/cluster');
  var OpenNebulaAction = require('opennebula/action');
  var CommonActions = require('utils/common-actions');

  var RESOURCE = "Datastore";
  var XML_ROOT = "DATASTORE";
  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
  var IMPORT_DIALOG_ID = require('./form-panels/import/formPanelId');
  var CLUSTERS_DIALOG_ID = require('utils/dialogs/clusters/dialogId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID, XML_ROOT);

  var _actions = {
    "Datastore.create" : _commonActions.create(CREATE_DIALOG_ID),
    "Datastore.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "Datastore.import_dialog" : {
      type: "custom",
      call: function() {
        Sunstone.showFormPanel(TAB_ID, IMPORT_DIALOG_ID, "import");
      }
    },
    "Datastore.list" : _commonActions.list(),
    "Datastore.show" : _commonActions.show(),
    "Datastore.refresh" : _commonActions.refresh(),
    "Datastore.delete" : _commonActions.del(),
    "Datastore.chown": _commonActions.multipleAction('chown'),
    "Datastore.chgrp": _commonActions.multipleAction('chgrp'),
    "Datastore.chmod": _commonActions.singleAction('chmod'),
    "Datastore.update" : _commonActions.updateTemplate(),
    "Datastore.update_template" : _commonActions.updateTemplate(),
    "Datastore.append_template" : _commonActions.appendTemplate(),
    "Datastore.rename": _commonActions.singleAction('rename'),
    "Datastore.enable": _commonActions.multipleAction('enable'),
    "Datastore.disable": _commonActions.multipleAction('disable'),

    "Datastore.addtocluster" : _commonActions.checkAndShow("clusters"),

    "Datastore.clusters" : {
      type: "single",
      call: OpenNebulaResource.show,
      callback: function(request, response) {
        Sunstone.getDialog(CLUSTERS_DIALOG_ID).setParams({
          element: response[XML_ROOT],
          resource:"datastore"
        });

        Sunstone.getDialog(CLUSTERS_DIALOG_ID).reset();
        Sunstone.getDialog(CLUSTERS_DIALOG_ID).show();
      },
      error: Notifier.onError
    }
  };

  return _actions;
});
Пример #17
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var DataTable = require('./datatable');
  var OpenNebulaResource = require('opennebula/network');
  var OpenNebulaCluster = require('opennebula/cluster');
  var OpenNebulaAction = require('opennebula/action');
  var CommonActions = require('utils/common-actions');

  var RESOURCE = "Network";
  var XML_ROOT = "VNET";
  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
  var ADD_AR_DIALOG_ID = require('./dialogs/add-ar/dialogId');
  var UPDATE_AR_DIALOG_ID = require('./dialogs/update-ar/dialogId');
  var RESERVE_DIALOG_ID = require('./dialogs/reserve/dialogId');
  var IMPORT_DIALOG_ID = require('./form-panels/import/formPanelId');
  var CLUSTERS_DIALOG_ID = require('utils/dialogs/clusters/dialogId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID,
    XML_ROOT, Locale.tr("Virtual Network created"));

  var _actions = {
    "Network.create" : _commonActions.create(CREATE_DIALOG_ID),
    "Network.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "Network.list" : _commonActions.list(),
    "Network.show" : _commonActions.show(),
    "Network.refresh" : _commonActions.refresh(),
    "Network.delete" : _commonActions.del(),
    "Network.hold": _commonActions.singleAction('hold'),
    "Network.release": _commonActions.singleAction('release'),
    "Network.chown": _commonActions.multipleAction('chown'),
    "Network.chgrp": _commonActions.multipleAction('chgrp'),
    "Network.chmod": _commonActions.singleAction('chmod'),
    "Network.rename": _commonActions.singleAction('rename'),
    "Network.update" : _commonActions.update(),
    "Network.update_template" : _commonActions.updateTemplate(),
    "Network.append_template" : _commonActions.appendTemplate(),
    "Network.update_dialog" : _commonActions.checkAndShowUpdate(),
    "Network.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID),
    "Network.lockM": _commonActions.multipleAction('lock', false),
    "Network.lockU": _commonActions.multipleAction('lock', false),
    "Network.lockA": _commonActions.multipleAction('lock', false),
    "Network.unlock": _commonActions.multipleAction('unlock', false),

    "Network.import_dialog" : {
      type: "custom",
      call: function() {
        Sunstone.showFormPanel(TAB_ID, IMPORT_DIALOG_ID, "import");
      }
    },

    "Network.add_ar" : {
      type: "single",
      call: OpenNebulaResource.add_ar,
      callback: function(req) {
        // Reset the wizard
        Sunstone.getDialog(ADD_AR_DIALOG_ID).hide();
        Sunstone.getDialog(ADD_AR_DIALOG_ID).reset();

        Sunstone.runAction("Network.show",req.request.data[0]);
      },
      error: Notifier.onError
    },

    "Network.rm_ar" : {
      type: "single",
      call: OpenNebulaResource.rm_ar,
      callback: function(req) {
        OpenNebulaAction.clear_cache("VNET");
        Sunstone.runAction("Network.show",req.request.data[0]);
      },
      error: Notifier.onError
    },

    "Network.update_ar" : {
      type: "single",
      call: OpenNebulaResource.update_ar,
      callback: function(req) {
        // Reset the wizard
        Sunstone.getDialog(UPDATE_AR_DIALOG_ID).hide();
        Sunstone.getDialog(UPDATE_AR_DIALOG_ID).reset();

        Sunstone.runAction("Network.show",req.request.data[0]);
      },
      error: Notifier.onError
    },

    "Network.reserve_dialog" : {
      type: "custom",
      call: function() {
        var selected_nodes = Sunstone.getDataTable(TAB_ID).elements();
        if (selected_nodes.length != 1) {
          Notifier.notifyMessage("Please select one (and just one) Virtual Network.");
          return false;
        }

        var resource_id = "" + selected_nodes[0];

        Sunstone.getDialog(RESERVE_DIALOG_ID).setParams({vnetId: resource_id});
        Sunstone.getDialog(RESERVE_DIALOG_ID).reset();
        Sunstone.getDialog(RESERVE_DIALOG_ID).show();
      }
    },

    "Network.reserve" : {
      type: "single",
      call: OpenNebulaResource.reserve,
      callback: function(req) {
        // Reset the wizard
        Sunstone.getDialog(RESERVE_DIALOG_ID).hide();
        Sunstone.getDialog(RESERVE_DIALOG_ID).reset();

        OpenNebulaAction.clear_cache("VNET");
        Sunstone.runAction("Network.show",req.request.data[0]);
      },
      error: Notifier.onError
    },

    "Network.addtocluster" : _commonActions.checkAndShow("clusters"),

    "Network.clusters" : {
      type: "single",
      call: OpenNebulaResource.show,
      callback: function(request, response) {
        Sunstone.getDialog(CLUSTERS_DIALOG_ID).setParams({
          element: response[XML_ROOT],
          resource:"vnet"
        });

        Sunstone.getDialog(CLUSTERS_DIALOG_ID).reset();
        Sunstone.getDialog(CLUSTERS_DIALOG_ID).show();
      },
      error: Notifier.onError
    }
  };

  return _actions;
});
Пример #18
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var OpenNebulaResource = require('opennebula/servicetemplate');
  var CommonActions = require('utils/common-actions');
  var OpenNebulaAction = require('opennebula/action');

  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
  var INSTANTIATE_DIALOG_ID = require('./form-panels/instantiate/formPanelId');
  var CLONE_DIALOG_ID = require('./dialogs/clone/dialogId');
  var XML_ROOT = "DOCUMENT";
  var RESOURCE = "ServiceTemplate";

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID, XML_ROOT);

  var _actions = {
    "ServiceTemplate.create" : _commonActions.create(CREATE_DIALOG_ID),
    "ServiceTemplate.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "ServiceTemplate.show" : _commonActions.show(),
    "ServiceTemplate.refresh" : _commonActions.refresh(),
    "ServiceTemplate.delete" : _commonActions.del(),
    "ServiceTemplate.chown": _commonActions.multipleAction('chown'),
    "ServiceTemplate.chgrp": _commonActions.multipleAction('chgrp'),
    "ServiceTemplate.chmod": _commonActions.singleAction('chmod'),
    "ServiceTemplate.rename": _commonActions.singleAction('rename'),
    "ServiceTemplate.update" : _commonActions.update(),
    "ServiceTemplate.update_dialog" : _commonActions.checkAndShowUpdate(),
    "ServiceTemplate.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID),

    "ServiceTemplate.list" : {
      type: "list",
      call: OpenNebulaResource.list,
      callback: function(request, response) {
        $(".oneflow_templates_error_message").hide();
        Sunstone.getDataTable(TAB_ID).updateView(request, response);
      },
      error: function(request, error_json) {
        Notifier.onError(request, error_json, $(".oneflow_templates_error_message"));
      }
    },


    "ServiceTemplate.instantiate" : {
      type: "single",
      call: OpenNebulaResource.instantiate,
      callback: function(request, response){
        Sunstone.hideFormPanel(TAB_ID);
        OpenNebulaAction.clear_cache("SERVICE");
      },
      elements: function() {
        return Sunstone.getDataTable(TAB_ID).elements();
      },
      error: function(request, response){
        Sunstone.hideFormPanelLoading(TAB_ID);
        Notifier.onError(request, response);
      },
      notify: true
    },

    "ServiceTemplate.instantiate_dialog" : {
      type: "custom",
      call: function() {
        var selected_nodes = Sunstone.getDataTable(TAB_ID).elements();
        if (selected_nodes.length != 1) {
          Notifier.notifyMessage("Please select one (and just one) template to instantiate.");
          return false;
        }

        var templateId = "" + selected_nodes[0];

        Sunstone.resetFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID);
        Sunstone.showFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID, "instantiate",
          function(formPanelInstance, context) {
            formPanelInstance.setTemplateId(context, templateId);
          });
      }
    },

    "ServiceTemplate.clone_dialog" : {
      type: "custom",
      call: function(){
        Sunstone.getDialog(CLONE_DIALOG_ID).show();
      }
    },
    
    "ServiceTemplate.clone" : {
      type: "single",
      call: OpenNebulaResource.clone,
      error: Notifier.onError,
      notify: true
    }
  };

  return _actions;
});
Пример #19
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var OpenNebulaResource = require('opennebula/datastore');
  var OpenNebulaCluster = require('opennebula/cluster');
  var OpenNebulaAction = require('opennebula/action');
  var CommonActions = require('utils/common-actions');

  var RESOURCE = "Datastore";
  var XML_ROOT = "DATASTORE";
  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID, XML_ROOT);

  var _actions = {
    "Datastore.create" : _commonActions.create(CREATE_DIALOG_ID),
    "Datastore.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "Datastore.list" : _commonActions.list(),
    "Datastore.show" : _commonActions.show(),
    "Datastore.refresh" : _commonActions.refresh(),
    "Datastore.delete" : _commonActions.del(),
    "Datastore.chown": _commonActions.multipleAction('chown'),
    "Datastore.chgrp": _commonActions.multipleAction('chgrp'),
    "Datastore.chmod": _commonActions.singleAction('chmod'),
    "Datastore.update" : _commonActions.updateTemplate(),
    "Datastore.update_template" : _commonActions.updateTemplate(),
    "Datastore.rename": _commonActions.singleAction('rename'),
    "Datastore.enable": _commonActions.multipleAction('enable'),
    "Datastore.disable": _commonActions.multipleAction('disable'),

    "Datastore.addtocluster" : {
      type: "multiple",
      call: function(params, success) {
        var cluster = params.data.extra_param;
        var ds = params.data.id;

        if (cluster == -1) {
          OpenNebulaResource.show({
            data : {
              id: ds
            },
            success: function (request, ds_info) {
              var current_cluster = ds_info.DATASTORE.CLUSTER_ID;

              if (current_cluster != -1) {
                OpenNebulaCluster.deldatastore({
                  data: {
                    id: current_cluster,
                    extra_param: ds
                  },
                  success: function() {
                    OpenNebulaAction.clear_cache("DATASTORE");
                    Sunstone.runAction('Datastore.show', ds);
                  },
                  error: Notifier.onError
                });
              } else {
                OpenNebulaAction.clear_cache("DATASTORE");
                Sunstone.runAction('Datastore.show', ds);
              }
            },
            error: Notifier.onError
          });
        } else {
          OpenNebulaCluster.adddatastore({
            data: {
              id: cluster,
              extra_param: ds
            },
            success: function() {
              OpenNebulaAction.clear_cache("DATASTORE");
              Sunstone.runAction('Datastore.show', ds);
            },
            error: Notifier.onError
          });
        }
      },
      elements: function() {
        return Sunstone.getDataTable(TAB_ID).elements();
      }
    }
  };

  return _actions;
});
Пример #20
0
define(function(require) {
  var Sunstone = require('sunstone');
  var Notifier = require('utils/notifier');
  var Locale = require('utils/locale');
  var DataTable = require('./datatable');
  var OpenNebulaResource = require('opennebula/securitygroup');
  var CommonActions = require('utils/common-actions');

  var RESOURCE = "SecurityGroup";
  var XML_ROOT = "SECURITY_GROUP";
  var TAB_ID = require('./tabId');
  var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
  var CLONE_DIALOG_ID = require('./dialogs/clone/dialogId');
  var CONFIRM_DIALOG_ID = require('utils/dialogs/generic-confirm/dialogId');

  var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID,
    XML_ROOT, Locale.tr("Security Group created"));

  var _actions = {
    "SecurityGroup.create" : _commonActions.create(CREATE_DIALOG_ID),
    "SecurityGroup.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID),
    "SecurityGroup.list" : _commonActions.list(),
    "SecurityGroup.show" : _commonActions.show(),
    "SecurityGroup.refresh" : _commonActions.refresh(),
    "SecurityGroup.delete" : _commonActions.del(),
    "SecurityGroup.chown": _commonActions.multipleAction('chown'),
    "SecurityGroup.chgrp": _commonActions.multipleAction('chgrp'),
    "SecurityGroup.chmod": _commonActions.singleAction('chmod'),
    "SecurityGroup.rename": _commonActions.singleAction('rename'),
    "SecurityGroup.update" : _commonActions.update(),
    "SecurityGroup.update_template" : _commonActions.updateTemplate(),
    "SecurityGroup.append_template" : _commonActions.appendTemplate(),
    "SecurityGroup.update_dialog" : _commonActions.checkAndShowUpdate(),
    "SecurityGroup.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID),
    "SecurityGroup.commit": _commonActions.multipleAction('commit'),

    "SecurityGroup.clone_dialog" : {
      type: "custom",
      call: function(){
        Sunstone.getDialog(CLONE_DIALOG_ID).show();
      }
    },

    "SecurityGroup.clone" : {
      type: "single",
      call: OpenNebulaResource.clone,
      callback: function(request, response) {
        Sunstone.getDialog(CLONE_DIALOG_ID).hide();
        Sunstone.getDialog(CLONE_DIALOG_ID).reset();
        Sunstone.runAction('SecurityGroup.refresh');
      },
      error: Notifier.onError,
      notify: true
    },

    "SecurityGroup.commit_dialog":
      {
        type: "custom",
        call: function() {
          Sunstone.getDialog(CONFIRM_DIALOG_ID).setParams({
            //header :
            headerTabId: TAB_ID,
            body : Locale.tr(
              "Please note: each time the rules are edited, the commit operation is done automatically. "+
              "<br/><br/>"+
              "This action will force the propagation of security group changes to VMs. "+
              "The operation takes time to iterate over all VMs in the security group, "+
              "the progress can be checked in the \"VMs\" panel."),
            //question :
            buttons : [
              Locale.tr("Commit"),
            ],
            submit : [
              function(){
                Sunstone.runAction('SecurityGroup.commit', Sunstone.getDataTable(TAB_ID).elements(), false);
                return false;
              }
            ]
          });

          Sunstone.getDialog(CONFIRM_DIALOG_ID).reset();
          Sunstone.getDialog(CONFIRM_DIALOG_ID).show();
        }
      },
  };

  return _actions;
})