From 1d214e46aaf3143ae0d3ada15d4f311147d6a761 Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Fri, 19 Jan 2018 13:24:03 +0100 Subject: [PATCH] Revert "Revert "F #5241: Merged vCenter and KVM views (#566)"" This reverts commit b9b272f00f21ed639e121e3860ba2af10225f000. --- src/sunstone/etc/sunstone-server.conf | 3 + .../etc/sunstone-views/{ => kvm}/admin.yaml | 0 .../etc/sunstone-views/{ => kvm}/cloud.yaml | 0 .../sunstone-views/{ => kvm}/groupadmin.yaml | 0 .../etc/sunstone-views/{ => kvm}/user.yaml | 0 .../etc/sunstone-views/mixed/admin.yaml | 842 ++++++++++++++++++ .../etc/sunstone-views/mixed/cloud.yaml | 177 ++++ .../etc/sunstone-views/mixed/groupadmin.yaml | 841 +++++++++++++++++ .../etc/sunstone-views/mixed/user.yaml | 840 +++++++++++++++++ .../admin.yaml} | 0 .../cloud.yaml} | 0 .../groupadmin.yaml} | 0 .../etc/sunstone-views/vcenter/user.yaml | 840 +++++++++++++++++ src/sunstone/models/SunstoneViews.rb | 9 +- src/sunstone/public/app/app.js | 29 +- .../public/app/sunstone/user_and_zone.hbs | 6 +- src/sunstone/sunstone-server.rb | 4 +- src/sunstone/views/index.erb | 5 +- 18 files changed, 3571 insertions(+), 25 deletions(-) rename src/sunstone/etc/sunstone-views/{ => kvm}/admin.yaml (100%) rename src/sunstone/etc/sunstone-views/{ => kvm}/cloud.yaml (100%) rename src/sunstone/etc/sunstone-views/{ => kvm}/groupadmin.yaml (100%) rename src/sunstone/etc/sunstone-views/{ => kvm}/user.yaml (100%) create mode 100644 src/sunstone/etc/sunstone-views/mixed/admin.yaml create mode 100644 src/sunstone/etc/sunstone-views/mixed/cloud.yaml create mode 100644 src/sunstone/etc/sunstone-views/mixed/groupadmin.yaml create mode 100644 src/sunstone/etc/sunstone-views/mixed/user.yaml rename src/sunstone/etc/sunstone-views/{admin_vcenter.yaml => vcenter/admin.yaml} (100%) rename src/sunstone/etc/sunstone-views/{cloud_vcenter.yaml => vcenter/cloud.yaml} (100%) rename src/sunstone/etc/sunstone-views/{groupadmin_vcenter.yaml => vcenter/groupadmin.yaml} (100%) create mode 100644 src/sunstone/etc/sunstone-views/vcenter/user.yaml diff --git a/src/sunstone/etc/sunstone-server.conf b/src/sunstone/etc/sunstone-server.conf index cb7877aab6..7ebe14d35e 100644 --- a/src/sunstone/etc/sunstone-server.conf +++ b/src/sunstone/etc/sunstone-server.conf @@ -130,6 +130,9 @@ # Default table order :table_order: desc +# Default views directory +:mode: 'kvm' + ################################################################################ # Marketplace ################################################################################ diff --git a/src/sunstone/etc/sunstone-views/admin.yaml b/src/sunstone/etc/sunstone-views/kvm/admin.yaml similarity index 100% rename from src/sunstone/etc/sunstone-views/admin.yaml rename to src/sunstone/etc/sunstone-views/kvm/admin.yaml diff --git a/src/sunstone/etc/sunstone-views/cloud.yaml b/src/sunstone/etc/sunstone-views/kvm/cloud.yaml similarity index 100% rename from src/sunstone/etc/sunstone-views/cloud.yaml rename to src/sunstone/etc/sunstone-views/kvm/cloud.yaml diff --git a/src/sunstone/etc/sunstone-views/groupadmin.yaml b/src/sunstone/etc/sunstone-views/kvm/groupadmin.yaml similarity index 100% rename from src/sunstone/etc/sunstone-views/groupadmin.yaml rename to src/sunstone/etc/sunstone-views/kvm/groupadmin.yaml diff --git a/src/sunstone/etc/sunstone-views/user.yaml b/src/sunstone/etc/sunstone-views/kvm/user.yaml similarity index 100% rename from src/sunstone/etc/sunstone-views/user.yaml rename to src/sunstone/etc/sunstone-views/kvm/user.yaml diff --git a/src/sunstone/etc/sunstone-views/mixed/admin.yaml b/src/sunstone/etc/sunstone-views/mixed/admin.yaml new file mode 100644 index 0000000000..1014144860 --- /dev/null +++ b/src/sunstone/etc/sunstone-views/mixed/admin.yaml @@ -0,0 +1,842 @@ +small_logo: images/opennebula-5.0.png +provision_logo: images/opennebula-5.0.png +link_logo: +text_link_logo: +confirm_vms: false +filter-view: true +enabled_tabs: + - dashboard-tab + - instances-top-tab + - vms-tab + - oneflow-services-tab + - vrouters-tab + - templates-top-tab + - templates-tab + - oneflow-templates-tab + - vrouter-templates-tab + - storage-top-tab + - datastores-tab + - images-tab + - files-tab + - marketplaces-tab + - marketplaceapps-tab + - network-top-tab + - vnets-tab + - vnets-topology-tab + - secgroups-tab + - infrastructure-top-tab + - clusters-tab + - hosts-tab + - zones-tab + - system-top-tab + - users-tab + - groups-tab + - vdcs-tab + - acls-tab + - settings-tab + - support-tab + - upgrade-top-tab + - vmgroup-tab +features: + # True to show showback monthly reports, and VM cost + showback: true + + # Allows to change the security groups for each network interface + # on the VM creation dialog + secgroups: true + + # True to hide the CPU setting in the VM creation dialog. The CPU setting + # will be set to the same value as VCPU, that will still be visible for the + # end users + instantiate_hide_cpu: false + + # False to not scale the CPU. Number [0, 1] to scale from VCPU + instantiate_cpu_factor: false + + # True to show the option to make an instance persistent + instantiate_persistent: true + + # True to show the datastore datatable to instantiate VM + show_ds_instantiate: true + + # True to show the vmgroup datatable to instantiate VM + show_vmgroup_instantiate: true + + # True to show the vnet datatable to instantiate VM + show_vnet_instantiate: true + + # True to show the host datatable to instantiate VM + show_host_instantiate: true + + # True to show an input to specify the the VMs and Template path/folder where a vCenter VM will + # deployed to + vcenter_vm_folder: true +tabs: + dashboard-tab: + # The following widgets can be used inside any of the '_per_row' settings + # bellow. As the name suggest, the widgets will be scaled to fit one, + # two, or three per row. The footer uses the widgets at full size, i.e. + # one per row. + # + # - storage + # - users + # - network + # - hosts + # - vms + # - groupquotas + # - quotas + panel_tabs: + actions: + Dashboard.refresh: false + Sunstone.toggle_top: false + widgets_one_per_row: + - vms + - hosts + - users + widgets_three_per_row: + widgets_two_per_row: + - storage + - network + widgets_one_footer: + system-top-tab: + panel_tabs: + actions: + users-tab: + panel_tabs: + user_info_tab: true + user_quotas_tab: true + user_groups_tab: true + user_accounting_tab: true + user_showback_tab: true + user_auth_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Group + - 4 # Auth driver + #- 5 # Password + - 6 # VMs + - 7 # Memory + - 8 # CPU + #- 9 # Group ID + #- 10 # Hidden User Data + #- 11 # Labels + #- 12 # Search data + actions: + User.refresh: true + User.create_dialog: true + User.update_password: true + User.login_token: true + User.quotas_dialog: true + User.groups_dialog: true + User.chgrp: true + User.change_authentication: true + User.delete: true + User.edit_labels: true + User.menu_labels: true + groups-tab: + panel_tabs: + group_info_tab: true + group_users_tab: true + group_quotas_tab: true + group_accounting_tab: true + group_showback_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Users + - 4 # VMs + - 5 # Memory + - 6 # CPU + #- 7 # Labels + actions: + Group.refresh: true + Group.create_dialog: true + Group.update_dialog: true + Group.quotas_dialog: true + Group.delete: true + Group.edit_admins: true + Group.edit_labels: true + Group.menu_labels: true + vdcs-tab: + panel_tabs: + vdc_info_tab: true + vdc_groups_tab: true + vdc_resources_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Groups + - 4 # Clusters + - 5 # Hosts + - 6 # VNets + - 7 # Datastores + #- 8 # Labels + actions: + Vdc.refresh: true + Vdc.create_dialog: true + Vdc.update_dialog: true + Vdc.rename: true + Vdc.delete: true + Vdc.edit_labels: true + Vdc.menu_labels: true + acls-tab: + panel_tabs: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Applies to + - 3 # Affected resources + - 4 # Resource ID / Owned by + - 5 # Allowed operations + - 6 # Zone + #- 7 # ACL String + actions: + Acl.refresh: true + Acl.create_dialog: true + Acl.delete: true + templates-top-tab: + panel_tabs: + actions: + templates-tab: + panel_tabs: + template_info_tab: true + template_template_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Registration time + #- 6 # Labels + #- 7 # Search data + actions: + Template.refresh: true + Template.create_dialog: true + Template.import_dialog: true + Template.update_dialog: true + Template.instantiate_vms: true + Template.rename: true + Template.chown: true + Template.chgrp: true + Template.chmod: true + Template.clone_dialog: true + Template.delete_dialog: true + Template.share: true + Template.unshare: true + Template.edit_labels: true + Template.menu_labels: true + template_creation_tabs: + general: true + storage: true + network: true + os_booting: true + features: true + input_output: true + context: true + actions: true + scheduling: true + hybrid: true + vmgroup: true + other: true + oneflow-templates-tab: + panel_tabs: + service_template_info_tab: true + service_template_roles_tab: true + service_template_template_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + #- 5 # Labels + #- 6 # Search data + actions: + ServiceTemplate.refresh: true + ServiceTemplate.create_dialog: true + ServiceTemplate.update_dialog: true + ServiceTemplate.instantiate: true + ServiceTemplate.chown: true + ServiceTemplate.chgrp: true + ServiceTemplate.chmod: true + ServiceTemplate.rename: true + ServiceTemplate.clone_dialog: true + ServiceTemplate.delete: true + ServiceTemplate.edit_labels: true + ServiceTemplate.menu_labels: true + vrouter-templates-tab: + panel_tabs: + vrouter_template_info_tab: true + vrouter_template_template_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Registration time + #- 6 # Labels + #- 7 # Search data + actions: + VirtualRouterTemplate.refresh: true + VirtualRouterTemplate.create_dialog: true + VirtualRouterTemplate.update_dialog: true + VirtualRouterTemplate.instantiate_dialog: true + VirtualRouterTemplate.rename: true + VirtualRouterTemplate.chown: true + VirtualRouterTemplate.chgrp: true + VirtualRouterTemplate.chmod: true + VirtualRouterTemplate.clone_dialog: true + VirtualRouterTemplate.delete_dialog: true + VirtualRouterTemplate.share: true + VirtualRouterTemplate.unshare: true + VirtualRouterTemplate.edit_labels: true + VirtualRouterTemplate.menu_labels: true + template_creation_tabs: + general: true + storage: true + network: true + os_booting: true + features: true + input_output: true + context: true + scheduling: true + hybrid: true + other: true + instances-top-tab: + panel_tabs: + actions: + vms-tab: + panel_tabs: + vm_info_tab: true + vm_capacity_tab: true + vm_storage_tab: true + vm_network_tab: true + vm_snapshot_tab: true + vm_placement_tab: true + vm_actions_tab: true + vm_conf_tab: true + vm_template_tab: true + vm_log_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Status + #- 6 # Used CPU + #- 7 # Used Memory + - 8 # Host + - 9 # IPs + #- 10 # Start Time + - 11 # VNC + #- 12 # Hidden Template + #- 13 # Labels + #- 14 # Search data + actions: + VM.refresh: true + VM.create_dialog: true + VM.rename: true + VM.chown: true + VM.chgrp: true + VM.chmod: true + VM.deploy: true + VM.migrate: true + VM.migrate_live: true + VM.hold: true + VM.release: true + VM.suspend: true + VM.resume: true + VM.stop: true + VM.recover: true + VM.reboot: true + VM.reboot_hard: true + VM.poweroff: true + VM.poweroff_hard: true + VM.undeploy: true + VM.undeploy_hard: true + VM.terminate: true + VM.terminate_hard: true + VM.resize: true + VM.disk_resize: true + VM.attachdisk: true + VM.detachdisk: true + VM.disk_saveas: true + VM.attachnic: true + VM.detachnic: true + VM.snapshot_create: true + VM.snapshot_revert: true + VM.snapshot_delete: true + VM.disk_snapshot_create: true + VM.disk_snapshot_revert: true + VM.disk_snapshot_delete: true + VM.resched: true + VM.unresched: true + VM.save_as_template: true + VM.updateconf: true + VM.edit_labels: true + VM.menu_labels: true + oneflow-services-tab: + panel_tabs: + service_info_tab: true + service_roles_tab: true + service_log_tab: true + panel_tabs_actions: + service_roles_tab: + Role.scale: true + Role.hold: true + Role.release: true + Role.suspend: true + Role.resume: true + Role.stop: true + Role.reboot: true + Role.reboot_hard: true + Role.poweroff: true + Role.poweroff_hard: true + Role.undeploy: true + Role.undeploy_hard: true + Role.terminate: true + Role.terminate_hard: true + RoleVM.hold: true + RoleVM.release: true + RoleVM.suspend: true + RoleVM.resume: true + RoleVM.stop: true + RoleVM.reboot: true + RoleVM.reboot_hard: true + RoleVM.poweroff: true + RoleVM.poweroff_hard: true + RoleVM.undeploy: true + RoleVM.undeploy_hard: true + RoleVM.terminate: true + RoleVM.terminate_hard: true + RoleVM.resched: true + RoleVM.unresched: true + RoleVM.recover: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # State + #- 6 # Labels + #- 7 # Search data + actions: + Service.refresh: true + Service.create_dialog: true + Service.chown: true + Service.chgrp: true + Service.chmod: true + Service.rename: true + Service.shutdown: true + Service.recover: true + Service.delete: true + Service.edit_labels: true + Service.menu_labels: true + vrouters-tab: + panel_tabs: + virtual_router_info_tab: true + virtual_router_vms_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + #- 5 # Labels + #- 6 # Search data + actions: + VirtualRouter.refresh: true + VirtualRouter.create_dialog: true + VirtualRouter.rename: true + VirtualRouter.chown: true + VirtualRouter.chgrp: true + VirtualRouter.chmod: true + VirtualRouter.delete: true + VirtualRouter.attachnic: true + VirtualRouter.detachnic: true + VirtualRouter.edit_labels: true + VirtualRouter.menu_labels: true + infrastructure-top-tab: + panel_tabs: + actions: + clusters-tab: + panel_tabs: + cluster_info_tab: true + cluster_host_tab: true + cluster_vnet_tab: true + cluster_datastore_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Hosts + - 4 # VNets + - 5 # Datastores + #- 6 # Labels + actions: + Cluster.refresh: true + Cluster.create_dialog: true + Cluster.update_dialog: true + Cluster.delete: true + Cluster.rename: true + Cluster.edit_labels: true + Cluster.menu_labels: true + hosts-tab: + panel_tabs: + host_info_tab: true + host_monitoring_tab: true + host_vms_tab: true + host_wilds_tab: true + host_zombies_tab: true + host_esx_tab: true + host_pci_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Cluster + - 4 # RVMs + #- 5 # Real CPU + - 6 # Allocated CPU + #- 7 # Real MEM + - 8 # Allocated MEM + - 9 # Status + #- 10 # IM MAD + #- 11 # VM MAD + #- 12 # Last monitored on + #- 13 # Labels + #- 14 # Search data + actions: + Host.refresh: true + Host.create_dialog: true + Host.addtocluster: true + Host.rename: true + Host.enable: true + Host.disable: true + Host.offline: true + Host.delete: true + Host.edit_labels: true + Host.menu_labels: true + zones-tab: + panel_tabs: + zone_info_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Endpoint + #- 4 # Labels + actions: + Zone.refresh: true + Zone.create_dialog: true + Zone.rename: true + Zone.delete: true + Zone.edit_labels: true + Zone.menu_labels: true + storage-top-tab: + panel_tabs: + actions: + datastores-tab: + panel_tabs: + datastore_info_tab: true + datastore_image_tab: true + datastore_clusters_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Capacity + - 6 # Cluster + #- 7 # Basepath + #- 8 # TM + #- 9 # DS + - 10 # Type + - 11 # Status + #- 12 # Labels + #- 13 # Search data + actions: + Datastore.refresh: true + Datastore.create_dialog: true + Datastore.import_dialog: true + Datastore.addtocluster: true + Datastore.rename: true + Datastore.chown: true + Datastore.chgrp: true + Datastore.chmod: true + Datastore.delete: true + Datastore.enable: true + Datastore.disable: true + Datastore.edit_labels: true + Datastore.menu_labels: true + images-tab: + panel_tabs: + image_info_tab: true + image_vms_tab: true + image_snapshots_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + - 11 # #VMs + #- 12 # Target + #- 13 # Labels + #- 14 # Search data + actions: + Image.refresh: true + Image.create_dialog: true + Image.import_dialog: true + Image.upload_marketplace_dialog: true + Image.rename: true + Image.chown: true + Image.chgrp: true + Image.chmod: true + Image.enable: true + Image.disable: true + Image.persistent: true + Image.nonpersistent: true + Image.clone_dialog: true + Image.delete: true + Image.snapshot_flatten: true + Image.snapshot_revert: true + Image.snapshot_delete: true + Image.edit_labels: true + Image.menu_labels: true + files-tab: + panel_tabs: + file_info_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + #- 11 # #VMs + #- 12 # Target + #- 13 # Labels + #- 14 # Search data + actions: + File.refresh: true + File.create_dialog: true + File.rename: true + File.chown: true + File.chgrp: true + File.chmod: true + File.enable: true + File.disable: true + File.delete: true + File.edit_labels: true + File.menu_labels: true + marketplaces-tab: + panel_tabs: + marketplace_info_tab: true + marketplace_apps_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Capacity + - 6 # Apps + - 7 # Driver + - 8 # Zone + #- 9 # Labels + #- 10 # Search data + actions: + MarketPlace.refresh: true + MarketPlace.create_dialog: true + MarketPlace.update_dialog: true + MarketPlace.rename: true + MarketPlace.chown: true + MarketPlace.chgrp: true + MarketPlace.chmod: true + MarketPlace.delete: true + MarketPlace.edit_labels: true + MarketPlace.menu_labels: true + marketplaceapps-tab: + panel_tabs: + marketplaceapp_info_tab: true + marketplaceapp_templates_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + #- 5 # Version + - 6 # Size + - 7 # State + #- 8 # Type + - 9 # Registration + - 10 # Marketplace + - 11 # Zone + #- 12 # Labels + #- 13 # Search data + actions: + MarketPlaceApp.refresh: true + MarketPlaceApp.create_dialog: true + MarketPlaceApp.download_opennebula_dialog: true + MarketPlaceApp.download_local: true + MarketPlaceApp.rename: true + MarketPlaceApp.chown: true + MarketPlaceApp.chgrp: true + MarketPlaceApp.chmod: true + MarketPlaceApp.enable: true + MarketPlaceApp.disable: true + MarketPlaceApp.delete: true + MarketPlaceApp.edit_labels: true + MarketPlaceApp.menu_labels: true + network-top-tab: + panel_tabs: + actions: + vnets-tab: + panel_tabs: + vnet_info_tab: true + vnet_ar_list_tab: true + vnet_leases_tab: true + vnet_sg_list_tab: true + vnet_vr_list_tab: true + vnet_clusters_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Reservation + - 6 # Cluster + #- 7 # Bridge + - 8 # Leases + #- 9 # VLAN ID + #- 10 # Labels + #- 11 # Search data + actions: + Network.refresh: true + Network.create_dialog: true + Network.import_dialog: true + Network.update_dialog: true + Network.reserve_dialog: true + Network.addtocluster: true + Network.rename: true + Network.chown: true + Network.chgrp: true + Network.chmod: true + Network.delete: true + Network.hold_lease: true + Network.release_lease: true + Network.add_ar: true + Network.remove_ar: true + Network.update_ar: true + Network.edit_labels: true + Network.menu_labels: true + vnets-topology-tab: + panel_tabs: + actions: + NetworkTopology.refresh: true + NetworkTopology.fit: true + NetworkTopology.collapseVMs: true + NetworkTopology.openVMs: true + secgroups-tab: + panel_tabs: + security_group_info_tab: true + security_group_vms_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + #- 5 # Labels + #- 6 # Search data + actions: + SecurityGroup.refresh: true + SecurityGroup.create_dialog: true + SecurityGroup.update_dialog: true + SecurityGroup.rename: true + SecurityGroup.chown: true + SecurityGroup.chgrp: true + SecurityGroup.chmod: true + SecurityGroup.clone_dialog: true + SecurityGroup.commit_dialog: true + SecurityGroup.delete: true + SecurityGroup.edit_labels: true + SecurityGroup.menu_labels: true + support-tab: + panel_tabs: + support_info_tab: true + table_columns: + #- 0 # Checkbox + - 1 # ID + - 2 # Subject + - 3 # Created at + - 4 # Status + actions: + Support.refresh: true + Support.create_dialog: true + settings-tab: + panel_tabs: + settings_info_tab: true + settings_config_tab: false + settings_quotas_tab: true + settings_group_quotas_tab: true + settings_accounting_tab: true + settings_showback_tab: true + settings_auth_tab: true + actions: + # Buttons for settings_info_tab + User.update_password: true + User.login_token: true + # Buttons for settings_config_tab + Settings.change_language: true + Settings.change_password: true + Settings.change_view: true + Settings.ssh_key: true + Settings.login_token: true + # Edit button in settings_quotas_tab + User.quotas_dialog: false + upgrade-top-tab: + panel_tabs: + actions: + vmgroup-tab: + panel_tabs: + vm_group_info_tab: true + vm_group_vms_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Vms + #- 6 # Labels + #- 7 # Search data + actions: + VMGroup.create_dialog: true + VMGroup.update_dialog: true + VMGroup.chmod: true + VMGroup.chown: true + VMGroup.chgrp: true diff --git a/src/sunstone/etc/sunstone-views/mixed/cloud.yaml b/src/sunstone/etc/sunstone-views/mixed/cloud.yaml new file mode 100644 index 0000000000..a9e244cdd3 --- /dev/null +++ b/src/sunstone/etc/sunstone-views/mixed/cloud.yaml @@ -0,0 +1,177 @@ +provision_logo: images/opennebula-5.0.png +link_logo: +text_link_logo: +confirm_vms: false +enabled_tabs: + - provision-tab + - settings-tab +features: + # True to show showback monthly reports, and VM cost + showback: true + + # Allows to change the security groups for each network interface + # on the VM creation dialog + secgroups: true + + # True to hide the CPU setting in the VM creation dialog. The CPU setting + # will be set to the same value as VCPU, that will still be visible for the + # end users + instantiate_hide_cpu: false + + # False to not scale the CPU. Number [0, 1] to scale from VCPU + instantiate_cpu_factor: false + + # True to show the option to make an instance persistent + instantiate_persistent: true + + # True to allow to create machines to cloud users + cloud_vm_create: true +tabs: + provision-tab: + panel_tabs: + vm_info_tab: false + vm_capacity_tab: false + vm_storage_tab: false + vm_network_tab: false + vm_snapshot_tab: false + vm_placement_tab: false + vm_actions_tab: false + vm_conf_tab: false + vm_template_tab: false + vm_log_tab: false + provision_tabs: + flows: true + templates: true + actions: &provisionactions + # In the cloud view, delete is the equivalent + # of 'onetemplate chmod --recursive' + Template.chmod: false + + # In the cloud view, delete is the equivalent + # of 'onetemplate delete --recursive' + Template.delete: true + VM.rename: true + VM.resume: true + VM.reboot: true + VM.reboot_hard: true + VM.poweroff: true + VM.poweroff_hard: true + VM.undeploy: false + VM.undeploy_hard: false + VM.terminate: true + VM.terminate_hard: true + VM.resize: false + VM.attachdisk: false + VM.detachdisk: false + VM.disk_saveas: false + VM.attachnic: false + VM.detachnic: false + VM.snapshot_create: false + VM.snapshot_revert: false + VM.snapshot_delete: false + VM.disk_snapshot_create: false + VM.disk_snapshot_revert: false + VM.disk_snapshot_delete: false + VM.save_as_template: true + dashboard: + # Connected user's quotas + quotas: true + # Overview of connected user's VMs + vms: true + # Group's quotas + groupquotas: false + # Overview of group's VMs + groupvms: false + create_vm: + # True to allow capacity (CPU, MEMORY, VCPU) customization + capacity_select: true + # True to allow NIC customization + network_select: true + # True to allow vmgroup customization + vmgroup_select: true + # True to allow DISK size customization + disk_resize: true + # True to allow datastore customization + datastore_select: true + settings-tab: + panel_tabs: + settings_info_tab: false + settings_config_tab: true + settings_quotas_tab: true + settings_accounting_tab: true + settings_showback_tab: true + actions: + # Buttons for settings_info_tab + User.update_password: true + User.login_token: true + # Buttons for settings_config_tab + Settings.change_language: true + Settings.change_password: true + Settings.change_view: true + Settings.ssh_key: true + Settings.login_token: true + # Edit button in settings_quotas_tab + User.quotas_dialog: false + vms-tab: + actions: *provisionactions + images-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Onwer + - 4 # Group + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + - 11 # #VMs + #- 12 # Target + vnets-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + #- 3 # Owner + - 4 # Group + #- 5 # Reservation + #- 6 # Cluster + #- 7 # Bridge + #- 8 # Leases + #- 9 # VLAN ID + secgroups-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + #- 3 # Owner + - 4 # Group + #- 5 # Labels + vmgroup-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Vms + #- 6 # Labels + #- 7 # Search data + datastores-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + #- 5 # Capacity + #- 6 # Cluster + #- 7 # Basepath + #- 8 # TM + #- 9 # DS + #- 10 # Type + - 11 # Status + #- 12 # Labels + #- 13 # Search data \ No newline at end of file diff --git a/src/sunstone/etc/sunstone-views/mixed/groupadmin.yaml b/src/sunstone/etc/sunstone-views/mixed/groupadmin.yaml new file mode 100644 index 0000000000..83ecc68385 --- /dev/null +++ b/src/sunstone/etc/sunstone-views/mixed/groupadmin.yaml @@ -0,0 +1,841 @@ +small_logo: images/opennebula-5.0.png +provision_logo: images/opennebula-5.0.png +link_logo: +text_link_logo: +confirm_vms: false +filter-view: true +enabled_tabs: + - dashboard-tab + - instances-top-tab + - vms-tab + - oneflow-services-tab + - vrouters-tab + - templates-top-tab + - templates-tab + - oneflow-templates-tab + - vrouter-templates-tab + #- storage-top-tab + #- datastores-tab + #- images-tab + #- files-tab + #- marketplaces-tab + #- marketplaceapps-tab + - network-top-tab + - vnets-tab + - vnets-topology-tab + - secgroups-tab + #- infrastructure-top-tab + #- clusters-tab + #- hosts-tab + #- zones-tab + - system-top-tab + - users-tab + - groups-tab + #- vdcs-tab + #- acls-tab + - settings-tab + #- support-tab + #- upgrade-top-tab + - vmgroup-tab +features: + # True to show showback monthly reports, and VM cost + showback: true + + # Allows to change the security groups for each network interface + # on the VM creation dialog + secgroups: true + + # True to hide the CPU setting in the VM creation dialog. The CPU setting + # will be set to the same value as VCPU, that will still be visible for the + # end users + instantiate_hide_cpu: false + + # False to not scale the CPU. Number [0, 1] to scale from VCPU + instantiate_cpu_factor: false + + # True to show the option to make an instance persistent + instantiate_persistent: true + + # True to show the datastore datatable to instantiate VM + show_ds_instantiate: false + + # True to show the vmgroup datatable to instantiate VM + show_vmgroup_instantiate: true + + # True to show the vnet datatable to instantiate VM + show_vnet_instantiate: true + + # True to show the host datatable to instantiate VM + show_host_instantiate: false + + # True to show an input to specify the the VMs and Template path/folder where a vCenter VM will + # deployed to + vcenter_vm_folder: false +tabs: + dashboard-tab: + # The following widgets can be used inside any of the '_per_row' settings + # bellow. As the name suggest, the widgets will be scaled to fit one, + # two, or three per row. The footer uses the widgets at full size, i.e. + # one per row. + # + # - storage + # - users + # - network + # - hosts + # - vms + # - groupquotas + # - quotas + panel_tabs: + actions: + Dashboard.refresh: false + Sunstone.toggle_top: false + widgets_one_per_row: + - vms + - users + widgets_three_per_row: + widgets_two_per_row: + - groupquotas + - quotas + widgets_one_footer: + system-top-tab: + panel_tabs: + actions: + users-tab: + panel_tabs: + user_info_tab: true + user_quotas_tab: true + user_groups_tab: true + user_accounting_tab: true + user_showback_tab: true + user_auth_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + #- 3 # Group + #- 4 # Auth driver + #- 5 # Password + - 6 # VMs + - 7 # Memory + - 8 # CPU + #- 9 # Group ID + #- 10 # Hidden User Data + #- 11 # Labels + #- 12 # Search data + actions: + User.refresh: true + User.create_dialog: true + User.update_password: true + User.login_token: true + User.quotas_dialog: true + User.groups_dialog: false + User.chgrp: false + User.change_authentication: false + User.delete: true + User.edit_labels: true + User.menu_labels: true + groups-tab: + panel_tabs: + group_info_tab: true + group_users_tab: true + group_quotas_tab: true + group_accounting_tab: true + group_showback_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Users + - 4 # VMs + - 5 # Memory + - 6 # CPU + #- 7 # Labels + actions: + Group.refresh: true + Group.create_dialog: false + Group.update_dialog: false + Group.quotas_dialog: false + Group.delete: false + Group.edit_admins: false + Group.edit_labels: true + Group.menu_labels: true + vdcs-tab: + panel_tabs: + vdc_info_tab: true + vdc_groups_tab: true + vdc_resources_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Groups + - 4 # Clusters + - 5 # Hosts + - 6 # VNets + - 7 # Datastores + #- 8 # Labels + actions: + Vdc.refresh: true + Vdc.create_dialog: true + Vdc.update_dialog: true + Vdc.rename: true + Vdc.delete: true + Vdc.edit_labels: true + Vdc.menu_labels: true + acls-tab: + panel_tabs: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Applies to + - 3 # Affected resources + - 4 # Resource ID / Owned by + - 5 # Allowed operations + - 6 # Zone + #- 7 # ACL String + actions: + Acl.refresh: true + Acl.create_dialog: true + Acl.delete: true + templates-top-tab: + panel_tabs: + actions: + templates-tab: + panel_tabs: + template_info_tab: true + template_template_tab: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Registration time + #- 6 # Labels + #- 7 # Search data + actions: + Template.refresh: true + Template.create_dialog: false + Template.import_dialog: false + Template.update_dialog: false + Template.instantiate_vms: true + Template.rename: true + Template.chown: true + Template.chgrp: false + Template.chmod: false + Template.clone_dialog: true + Template.delete_dialog: true + Template.share: true + Template.unshare: true + Template.edit_labels: true + Template.menu_labels: true + template_creation_tabs: + general: true + storage: true + network: true + os_booting: true + features: true + input_output: true + context: true + actions: true + scheduling: true + hybrid: true + vmgroup: true + other: true + oneflow-templates-tab: + panel_tabs: + service_template_info_tab: true + service_template_roles_tab: true + service_template_template_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + #- 5 # Labels + #- 6 # Search data + actions: + ServiceTemplate.refresh: true + ServiceTemplate.create_dialog: false + ServiceTemplate.update_dialog: false + ServiceTemplate.instantiate: true + ServiceTemplate.chown: false + ServiceTemplate.chgrp: false + ServiceTemplate.chmod: false + ServiceTemplate.rename: false + ServiceTemplate.clone_dialog: false + ServiceTemplate.delete: false + ServiceTemplate.edit_labels: true + ServiceTemplate.menu_labels: true + vrouter-templates-tab: + panel_tabs: + vrouter_template_info_tab: true + vrouter_template_template_tab: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Registration time + #- 6 # Labels + #- 7 # Search data + actions: + VirtualRouterTemplate.refresh: true + VirtualRouterTemplate.create_dialog: false + VirtualRouterTemplate.update_dialog: false + VirtualRouterTemplate.instantiate_dialog: false + VirtualRouterTemplate.rename: true + VirtualRouterTemplate.chown: true + VirtualRouterTemplate.chgrp: false + VirtualRouterTemplate.chmod: false + VirtualRouterTemplate.clone_dialog: true + VirtualRouterTemplate.delete_dialog: true + VirtualRouterTemplate.share: true + VirtualRouterTemplate.unshare: true + VirtualRouterTemplate.edit_labels: true + VirtualRouterTemplate.menu_labels: true + template_creation_tabs: + general: true + storage: true + network: true + os_booting: true + features: true + input_output: true + context: true + scheduling: true + hybrid: true + other: true + instances-top-tab: + panel_tabs: + actions: + vms-tab: + panel_tabs: + vm_info_tab: true + vm_capacity_tab: true + vm_storage_tab: true + vm_network_tab: true + vm_snapshot_tab: false + vm_placement_tab: false + vm_actions_tab: false + vm_conf_tab: false + vm_template_tab: false + vm_log_tab: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + #- 3 # Owner + - 4 # Group + - 5 # Status + #- 6 # Used CPU + #- 7 # Used Memory + #- 8 # Host + - 9 # IPs + #- 10 # Start Time + - 11 # VNC + #- 12 # Hidden Template + #- 13 # Labels + #- 14 # Search data + actions: + VM.refresh: true + VM.create_dialog: true + VM.rename: true + VM.chown: true + VM.chgrp: false + VM.chmod: false + VM.deploy: false + VM.migrate: false + VM.migrate_live: false + VM.hold: true + VM.release: true + VM.suspend: false + VM.resume: true + VM.stop: false + VM.recover: false + VM.reboot: true + VM.reboot_hard: true + VM.poweroff: true + VM.poweroff_hard: true + VM.undeploy: true + VM.undeploy_hard: true + VM.terminate: true + VM.terminate_hard: true + VM.resize: false + VM.attachdisk: false + VM.detachdisk: false + VM.disk_saveas: false + VM.disk_resize: false + VM.attachnic: false + VM.detachnic: false + VM.snapshot_create: false + VM.snapshot_revert: false + VM.snapshot_delete: false + VM.disk_snapshot_create: false + VM.disk_snapshot_revert: false + VM.disk_snapshot_delete: false + VM.resched: false + VM.unresched: false + VM.save_as_template: true + VM.updateconf: false + VM.edit_labels: true + VM.menu_labels: true + oneflow-services-tab: + panel_tabs: + service_info_tab: true + service_roles_tab: true + service_log_tab: true + panel_tabs_actions: + service_roles_tab: + Role.scale: true + Role.hold: true + Role.release: true + Role.suspend: false + Role.resume: true + Role.stop: false + Role.reboot: true + Role.reboot_hard: true + Role.poweroff: true + Role.poweroff_hard: true + Role.undeploy: true + Role.undeploy_hard: true + Role.terminate: true + Role.terminate_hard: true + RoleVM.hold: true + RoleVM.release: true + RoleVM.suspend: false + RoleVM.resume: true + RoleVM.stop: false + RoleVM.reboot: true + RoleVM.reboot_hard: true + RoleVM.poweroff: true + RoleVM.poweroff_hard: true + RoleVM.undeploy: true + RoleVM.undeploy_hard: true + RoleVM.terminate: true + RoleVM.terminate_hard: true + RoleVM.resched: false + RoleVM.unresched: false + RoleVM.recover: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + #- 3 # Owner + - 4 # Group + - 5 # State + #- 6 # Labels + #- 7 # Search data + actions: + Service.refresh: true + Service.create_dialog: true + Service.chown: true + Service.chgrp: false + Service.chmod: false + Service.rename: true + Service.shutdown: true + Service.recover: true + Service.delete: true + Service.edit_labels: true + Service.menu_labels: true + vrouters-tab: + panel_tabs: + virtual_router_info_tab: true + virtual_router_vms_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + #- 3 # Owner + - 4 # Group + #- 5 # Labels + #- 6 # Search data + actions: + VirtualRouter.refresh: true + VirtualRouter.create_dialog: true + VirtualRouter.rename: true + VirtualRouter.chown: true + VirtualRouter.chgrp: false + VirtualRouter.chmod: false + VirtualRouter.delete: true + VirtualRouter.attachnic: false + VirtualRouter.detachnic: false + VirtualRouter.edit_labels: true + VirtualRouter.menu_labels: true + infrastructure-top-tab: + panel_tabs: + actions: + clusters-tab: + panel_tabs: + cluster_info_tab: true + cluster_host_tab: true + cluster_vnet_tab: true + cluster_datastore_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Hosts + - 4 # VNets + - 5 # Datastores + #- 6 # Labels + actions: + Cluster.refresh: true + Cluster.create_dialog: true + Cluster.update_dialog: true + Cluster.delete: true + Cluster.rename: true + Cluster.edit_labels: true + Cluster.menu_labels: true + hosts-tab: + panel_tabs: + host_info_tab: true + host_monitoring_tab: true + host_vms_tab: true + host_wilds_tab: true + host_zombies_tab: true + host_esx_tab: true + host_pci_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Cluster + - 4 # RVMs + #- 5 # Real CPU + - 6 # Allocated CPU + #- 7 # Real MEM + - 8 # Allocated MEM + - 9 # Status + #- 10 # IM MAD + #- 11 # VM MAD + #- 12 # Last monitored on + #- 13 # Labels + #- 14 # Search data + actions: + Host.refresh: true + Host.create_dialog: true + Host.addtocluster: true + Host.rename: true + Host.enable: true + Host.disable: true + Host.offline: true + Host.delete: true + Host.edit_labels: true + Host.menu_labels: true + zones-tab: + panel_tabs: + zone_info_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Endpoint + #- 4 # Labels + actions: + Zone.refresh: true + Zone.create_dialog: true + Zone.rename: true + Zone.delete: true + Zone.edit_labels: true + Zone.menu_labels: true + storage-top-tab: + panel_tabs: + actions: + datastores-tab: + panel_tabs: + datastore_info_tab: true + datastore_image_tab: true + datastore_clusters_tab: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Capacity + - 6 # Cluster + #- 7 # Basepath + #- 8 # TM + #- 9 # DS + - 10 # Type + - 11 # Status + #- 12 # Labels + #- 13 # Search data + actions: + Datastore.refresh: true + Datastore.create_dialog: true + Datastore.import_dialog: false + Datastore.addtocluster: true + Datastore.rename: true + Datastore.chown: true + Datastore.chgrp: true + Datastore.chmod: true + Datastore.delete: true + Datastore.enable: true + Datastore.disable: true + Datastore.edit_labels: true + Datastore.menu_labels: true + images-tab: + panel_tabs: + image_info_tab: true + image_vms_tab: true + image_snapshots_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + - 11 # #VMs + #- 12 # Target + #- 13 # Labels + #- 14 # Search data + actions: + Image.refresh: true + Image.create_dialog: true + Image.import_dialog: false + Image.upload_marketplace_dialog: true + Image.rename: true + Image.chown: true + Image.chgrp: true + Image.chmod: true + Image.enable: true + Image.disable: true + Image.persistent: true + Image.nonpersistent: true + Image.clone_dialog: true + Image.delete: true + Image.snapshot_flatten: true + Image.snapshot_revert: true + Image.snapshot_delete: true + Image.edit_labels: true + Image.menu_labels: true + files-tab: + panel_tabs: + file_info_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + #- 11 # #VMs + #- 12 # Target + #- 13 # Labels + #- 14 # Search data + actions: + File.refresh: true + File.create_dialog: true + File.rename: true + File.chown: true + File.chgrp: true + File.chmod: true + File.enable: true + File.disable: true + File.delete: true + File.edit_labels: true + File.menu_labels: true + marketplaces-tab: + panel_tabs: + marketplace_info_tab: true + marketplace_apps_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Capacity + - 6 # Apps + - 7 # Driver + - 8 # Zone + #- 9 # Labels + #- 10 # Search data + actions: + MarketPlace.refresh: true + MarketPlace.create_dialog: true + MarketPlace.update_dialog: true + MarketPlace.rename: true + MarketPlace.chown: true + MarketPlace.chgrp: true + MarketPlace.chmod: true + MarketPlace.delete: true + MarketPlace.edit_labels: true + MarketPlace.menu_labels: true + marketplaceapps-tab: + panel_tabs: + marketplaceapp_info_tab: true + marketplaceapp_templates_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + #- 5 # Version + - 6 # Size + - 7 # State + #- 8 # Type + - 9 # Registration + - 10 # Marketplace + - 11 # Zone + #- 12 # Labels + #- 13 # Search data + actions: + MarketPlaceApp.refresh: true + MarketPlaceApp.create_dialog: true + MarketPlaceApp.download_opennebula_dialog: true + MarketPlaceApp.download_local: true + MarketPlaceApp.rename: true + MarketPlaceApp.chown: true + MarketPlaceApp.chgrp: true + MarketPlaceApp.chmod: true + MarketPlaceApp.enable: true + MarketPlaceApp.disable: true + MarketPlaceApp.delete: true + MarketPlaceApp.edit_labels: true + MarketPlaceApp.menu_labels: true + network-top-tab: + panel_tabs: + actions: + vnets-tab: + panel_tabs: + vnet_info_tab: false + vnet_ar_list_tab: false + vnet_leases_tab: true + vnet_sg_list_tab: true + vnet_vr_list_tab: false + vnet_clusters_tab: false + table_columns: + - 0 # Checkbox + - 1 # ID + #- 2 # Name + #- 3 # Owner + - 4 # Group + #- 5 # Reservation + #- 6 # Cluster + #- 7 # Bridge + #- 8 # Leases + #- 9 # VLAN ID + #- 10 # Labels + #- 11 # Search data + actions: + Network.refresh: true + Network.create_dialog: false + Network.import_dialog: false + Network.update_dialog: false + Network.reserve_dialog: false + Network.addtocluster: false + Network.rename: false + Network.chown: false + Network.chgrp: false + Network.chmod: false + Network.delete: false + Network.hold_lease: false + Network.release_lease: false + Network.add_ar: false + Network.remove_ar: false + Network.update_ar: false + Network.edit_labels: true + Network.menu_labels: true + vnets-topology-tab: + panel_tabs: + actions: + NetworkTopology.refresh: true + NetworkTopology.fit: true + NetworkTopology.collapseVMs: true + NetworkTopology.openVMs: true + secgroups-tab: + panel_tabs: + security_group_info_tab: true + security_group_vms_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + #- 2 # Name + #- 3 # Owner + - 4 # Group + #- 5 # Labels + #- 6 # Search data + actions: + SecurityGroup.refresh: true + SecurityGroup.create_dialog: false + SecurityGroup.update_dialog: false + SecurityGroup.rename: false + SecurityGroup.chown: false + SecurityGroup.chgrp: false + SecurityGroup.chmod: false + SecurityGroup.clone_dialog: false + SecurityGroup.commit_dialog: false + SecurityGroup.delete: false + SecurityGroup.edit_labels: true + SecurityGroup.menu_labels: true + support-tab: + panel_tabs: + support_info_tab: true + table_columns: + #- 0 # Checkbox + - 1 # ID + - 2 # Subject + - 3 # Created at + - 4 # Status + actions: + Support.refresh: true + Support.create_dialog: true + settings-tab: + panel_tabs: + settings_info_tab: true + settings_config_tab: false + settings_quotas_tab: true + settings_group_quotas_tab: true + settings_accounting_tab: true + settings_showback_tab: true + settings_auth_tab: true + actions: + # Buttons for settings_info_tab + User.update_password: true + User.login_token: true + # Buttons for settings_config_tab + Settings.change_language: true + Settings.change_password: true + Settings.change_view: true + Settings.ssh_key: true + Settings.login_token: true + # Edit button in settings_quotas_tab + User.quotas_dialog: false + upgrade-top-tab: + panel_tabs: + actions: + vmgroup-tab: + panel_tabs: + vm_group_info_tab: true + vm_group_vms_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Owner + - 4 # Group + - 5 # Vms + #- 6 # Labels + #- 7 # Search data + actions: + VMGroup.create_dialog: true + VMGroup.update_dialog: true + VMGroup.chmod: true + VMGroup.chown: true + VMGroup.chgrp: true diff --git a/src/sunstone/etc/sunstone-views/mixed/user.yaml b/src/sunstone/etc/sunstone-views/mixed/user.yaml new file mode 100644 index 0000000000..dc9347e2a2 --- /dev/null +++ b/src/sunstone/etc/sunstone-views/mixed/user.yaml @@ -0,0 +1,840 @@ +small_logo: images/opennebula-5.0.png +provision_logo: images/opennebula-5.0.png +link_logo: +text_link_logo: +confirm_vms: false +filter-view: true +enabled_tabs: + - dashboard-tab + - instances-top-tab + - vms-tab + - oneflow-services-tab + - vrouters-tab + - templates-top-tab + - templates-tab + - oneflow-templates-tab + - vrouter-templates-tab + - storage-top-tab + - datastores-tab + - images-tab + - files-tab + - marketplaces-tab + - marketplaceapps-tab + - network-top-tab + - vnets-tab + - vnets-topology-tab + - secgroups-tab + #- infrastructure-top-tab + #- clusters-tab + #- hosts-tab + #- zones-tab + #- system-top-tab + #- users-tab + #- groups-tab + #- vdcs-tab + #- acls-tab + - settings-tab + #- support-tab + #- upgrade-top-tab + - vmgroup-tab +features: + # True to show showback monthly reports, and VM cost + showback: true + + # Allows to change the security groups for each network interface + # on the VM creation dialog + secgroups: true + + # True to hide the CPU setting in the VM creation dialog. The CPU setting + # will be set to the same value as VCPU, that will still be visible for the + # end users + instantiate_hide_cpu: false + + # False to not scale the CPU. Number [0, 1] to scale from VCPU + instantiate_cpu_factor: false + + # True to show the option to make an instance persistent + instantiate_persistent: true + + # True to show the datastore datatable to instantiate VM + show_ds_instantiate: false + + # True to show the vmgroup datatable to instantiate VM + show_vmgroup_instantiate: true + + # True to show the vnet datatable to instantiate VM + show_vnet_instantiate: true + + # True to show the host datatable to instantiate VM + show_host_instantiate: false + + # True to show an input to specify the the VMs and Template path/folder where a vCenter VM will + # deployed to + vcenter_vm_folder: false +tabs: + dashboard-tab: + # The following widgets can be used inside any of the '_per_row' settings + # bellow. As the name suggest, the widgets will be scaled to fit one, + # two, or three per row. The footer uses the widgets at full size, i.e. + # one per row. + # + # - storage + # - users + # - network + # - hosts + # - vms + # - groupquotas + # - quotas + panel_tabs: + actions: + Dashboard.refresh: false + Sunstone.toggle_top: false + widgets_one_per_row: + - vms + widgets_three_per_row: + widgets_two_per_row: + - network + - storage + widgets_one_footer: + system-top-tab: + panel_tabs: + actions: + users-tab: + panel_tabs: + user_info_tab: true + user_quotas_tab: true + user_groups_tab: true + user_accounting_tab: true + user_showback_tab: true + user_auth_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Group + - 4 # Auth driver + #- 5 # Password + - 6 # VMs + - 7 # Memory + - 8 # CPU + #- 9 # Group ID + #- 10 # Hidden User Data + #- 11 # Labels + #- 12 # Search data + actions: + User.refresh: true + User.create_dialog: true + User.update_password: true + User.login_token: true + User.quotas_dialog: true + User.groups_dialog: true + User.chgrp: true + User.change_authentication: true + User.delete: true + User.edit_labels: true + User.menu_labels: true + groups-tab: + panel_tabs: + group_info_tab: true + group_users_tab: true + group_quotas_tab: true + group_accounting_tab: true + group_showback_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Users + - 4 # VMs + - 5 # Memory + - 6 # CPU + #- 7 # Labels + actions: + Group.refresh: true + Group.create_dialog: true + Group.update_dialog: true + Group.quotas_dialog: true + Group.delete: true + Group.edit_admins: true + Group.edit_labels: true + Group.menu_labels: true + vdcs-tab: + panel_tabs: + vdc_info_tab: true + vdc_groups_tab: true + vdc_resources_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Groups + - 4 # Clusters + - 5 # Hosts + - 6 # VNets + - 7 # Datastores + #- 8 # Labels + actions: + Vdc.refresh: true + Vdc.create_dialog: true + Vdc.update_dialog: true + Vdc.rename: true + Vdc.delete: true + Vdc.edit_labels: true + Vdc.menu_labels: true + acls-tab: + panel_tabs: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Applies to + - 3 # Affected resources + - 4 # Resource ID / Owned by + - 5 # Allowed operations + - 6 # Zone + #- 7 # ACL String + actions: + Acl.refresh: true + Acl.create_dialog: true + Acl.delete: true + templates-top-tab: + panel_tabs: + actions: + templates-tab: + panel_tabs: + template_info_tab: true + template_template_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Registration time + #- 6 # Labels + #- 7 # Search data + actions: + Template.refresh: true + Template.create_dialog: true + Template.import_dialog: false + Template.update_dialog: true + Template.instantiate_vms: true + Template.rename: true + Template.chown: false + Template.chgrp: false + Template.chmod: true + Template.clone_dialog: true + Template.delete_dialog: true + Template.share: true + Template.unshare: true + Template.edit_labels: true + Template.menu_labels: true + template_creation_tabs: + general: true + storage: true + network: true + os_booting: true + features: true + input_output: true + context: true + actions: true + scheduling: false + hybrid: true + vmgroup: true + other: true + oneflow-templates-tab: + panel_tabs: + service_template_info_tab: true + service_template_roles_tab: true + service_template_template_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + #- 5 # Labels + #- 6 # Search data + actions: + ServiceTemplate.refresh: true + ServiceTemplate.create_dialog: true + ServiceTemplate.update_dialog: true + ServiceTemplate.instantiate: true + ServiceTemplate.chown: false + ServiceTemplate.chgrp: false + ServiceTemplate.chmod: true + ServiceTemplate.rename: true + ServiceTemplate.clone_dialog: true + ServiceTemplate.delete: true + ServiceTemplate.edit_labels: true + ServiceTemplate.menu_labels: true + vrouter-templates-tab: + panel_tabs: + vrouter_template_info_tab: true + vrouter_template_template_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Registration time + #- 6 # Labels + #- 7 # Search data + actions: + VirtualRouterTemplate.refresh: true + VirtualRouterTemplate.create_dialog: true + VirtualRouterTemplate.update_dialog: true + VirtualRouterTemplate.instantiate_dialog: true + VirtualRouterTemplate.rename: true + VirtualRouterTemplate.chown: false + VirtualRouterTemplate.chgrp: false + VirtualRouterTemplate.chmod: true + VirtualRouterTemplate.clone_dialog: true + VirtualRouterTemplate.delete_dialog: true + VirtualRouterTemplate.share: true + VirtualRouterTemplate.unshare: true + VirtualRouterTemplate.edit_labels: true + VirtualRouterTemplate.menu_labels: true + template_creation_tabs: + general: true + storage: true + network: true + os_booting: true + features: true + input_output: true + context: true + scheduling: true + hybrid: true + other: true + instances-top-tab: + panel_tabs: + actions: + vms-tab: + panel_tabs: + vm_info_tab: true + vm_capacity_tab: true + vm_storage_tab: true + vm_network_tab: true + vm_snapshot_tab: true + vm_placement_tab: false + vm_actions_tab: true + vm_conf_tab: true + vm_template_tab: false + vm_log_tab: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Status + #- 6 # Used CPU + #- 7 # Used Memory + - 8 # Host + - 9 # IPs + #- 10 # Start Time + - 11 # VNC + #- 12 # Hidden Template + #- 13 # Labels + #- 14 # Search data + actions: + VM.refresh: true + VM.create_dialog: true + VM.rename: true + VM.chown: false + VM.chgrp: false + VM.chmod: true + VM.deploy: false + VM.migrate: false + VM.migrate_live: false + VM.hold: true + VM.release: true + VM.suspend: true + VM.resume: true + VM.stop: true + VM.recover: false + VM.reboot: true + VM.reboot_hard: true + VM.poweroff: true + VM.poweroff_hard: true + VM.undeploy: true + VM.undeploy_hard: true + VM.terminate: true + VM.terminate_hard: true + VM.resize: true + VM.attachdisk: true + VM.detachdisk: true + VM.disk_saveas: true + VM.disk_resize: false + VM.attachnic: true + VM.detachnic: true + VM.snapshot_create: true + VM.snapshot_revert: true + VM.snapshot_delete: true + VM.disk_snapshot_create: true + VM.disk_snapshot_revert: true + VM.disk_snapshot_delete: true + VM.resched: false + VM.unresched: false + VM.save_as_template: true + VM.updateconf: true + VM.edit_labels: true + VM.menu_labels: true + oneflow-services-tab: + panel_tabs: + service_info_tab: true + service_roles_tab: true + service_log_tab: true + panel_tabs_actions: + service_roles_tab: + Role.scale: true + Role.hold: true + Role.release: true + Role.suspend: true + Role.resume: true + Role.stop: true + Role.reboot: true + Role.reboot_hard: true + Role.poweroff: true + Role.poweroff_hard: true + Role.undeploy: true + Role.undeploy_hard: true + Role.terminate: true + Role.terminate_hard: true + RoleVM.hold: true + RoleVM.release: true + RoleVM.suspend: true + RoleVM.resume: true + RoleVM.stop: true + RoleVM.reboot: true + RoleVM.reboot_hard: true + RoleVM.poweroff: true + RoleVM.poweroff_hard: true + RoleVM.undeploy: true + RoleVM.undeploy_hard: true + RoleVM.terminate: true + RoleVM.terminate_hard: true + RoleVM.resched: false + RoleVM.unresched: false + RoleVM.recover: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # State + #- 6 # Labels + #- 7 # Search data + actions: + Service.refresh: true + Service.create_dialog: true + Service.chown: false + Service.chgrp: false + Service.chmod: true + Service.rename: true + Service.shutdown: true + Service.recover: true + Service.delete: true + Service.edit_labels: true + Service.menu_labels: true + vrouters-tab: + panel_tabs: + virtual_router_info_tab: true + virtual_router_vms_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + #- 5 # Labels + #- 6 # Search data + actions: + VirtualRouter.refresh: true + VirtualRouter.create_dialog: true + VirtualRouter.rename: true + VirtualRouter.chown: true + VirtualRouter.chgrp: true + VirtualRouter.chmod: true + VirtualRouter.delete: true + VirtualRouter.attachnic: true + VirtualRouter.detachnic: true + VirtualRouter.edit_labels: true + VirtualRouter.menu_labels: true + infrastructure-top-tab: + panel_tabs: + actions: + clusters-tab: + panel_tabs: + cluster_info_tab: true + cluster_host_tab: true + cluster_vnet_tab: true + cluster_datastore_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Hosts + - 4 # VNets + - 5 # Datastores + #- 6 # Labels + actions: + Cluster.refresh: true + Cluster.create_dialog: true + Cluster.update_dialog: true + Cluster.delete: true + Cluster.rename: true + Cluster.edit_labels: true + Cluster.menu_labels: true + hosts-tab: + panel_tabs: + host_info_tab: true + host_monitoring_tab: true + host_vms_tab: true + host_wilds_tab: true + host_zombies_tab: true + host_esx_tab: true + host_pci_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Cluster + - 4 # RVMs + #- 5 # Real CPU + - 6 # Allocated CPU + #- 7 # Real MEM + - 8 # Allocated MEM + - 9 # Status + #- 10 # IM MAD + #- 11 # VM MAD + #- 12 # Last monitored on + #- 13 # Labels + #- 14 # Search data + actions: + Host.refresh: true + Host.create_dialog: true + Host.addtocluster: true + Host.rename: true + Host.enable: true + Host.disable: true + Host.offline: true + Host.delete: true + Host.edit_labels: true + Host.menu_labels: true + zones-tab: + panel_tabs: + zone_info_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Endpoint + #- 4 # Labels + actions: + Zone.refresh: true + Zone.create_dialog: true + Zone.rename: true + Zone.delete: true + Zone.edit_labels: true + Zone.menu_labels: true + storage-top-tab: + panel_tabs: + actions: + datastores-tab: + panel_tabs: + datastore_info_tab: false + datastore_image_tab: true + datastore_clusters_tab: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Capacity + - 6 # Cluster + #- 7 # Basepath + #- 8 # TM + #- 9 # DS + #- 10 # Type + #- 11 # Status + #- 12 # Labels + #- 13 # Search data + actions: + Datastore.refresh: true + Datastore.create_dialog: false + Datastore.import_dialog: false + Datastore.addtocluster: false + Datastore.rename: true + Datastore.chown: false + Datastore.chgrp: false + Datastore.chmod: true + Datastore.delete: false + Datastore.enable: false + Datastore.disable: false + Datastore.edit_labels: true + Datastore.menu_labels: true + images-tab: + panel_tabs: + image_info_tab: true + image_vms_tab: true + image_snapshots_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + - 11 # #VMs + #- 12 # Target + #- 13 # Labels + #- 14 # Search data + actions: + Image.refresh: true + Image.create_dialog: true + Image.import_dialog: false + Image.upload_marketplace_dialog: true + Image.rename: true + Image.chown: false + Image.chgrp: false + Image.chmod: true + Image.enable: true + Image.disable: true + Image.persistent: true + Image.nonpersistent: true + Image.clone_dialog: true + Image.delete: true + Image.snapshot_flatten: true + Image.snapshot_revert: true + Image.snapshot_delete: true + Image.edit_labels: true + Image.menu_labels: true + files-tab: + panel_tabs: + file_info_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + #- 11 # #VMs + #- 12 # Target + #- 13 # Labels + #- 14 # Search data + actions: + File.refresh: true + File.create_dialog: true + File.rename: true + File.chown: false + File.chgrp: false + File.chmod: true + File.enable: true + File.disable: true + File.delete: true + File.edit_labels: true + File.menu_labels: true + marketplaces-tab: + panel_tabs: + marketplace_info_tab: true + marketplace_apps_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Capacity + - 6 # Apps + - 7 # Driver + - 8 # Zone + #- 9 # Labels + #- 10 # Search data + actions: + MarketPlace.refresh: true + MarketPlace.create_dialog: true + MarketPlace.update_dialog: true + MarketPlace.rename: true + MarketPlace.chown: true + MarketPlace.chgrp: true + MarketPlace.chmod: true + MarketPlace.delete: true + MarketPlace.edit_labels: true + MarketPlace.menu_labels: true + marketplaceapps-tab: + panel_tabs: + marketplaceapp_info_tab: true + marketplaceapp_templates_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + #- 5 # Version + - 6 # Size + - 7 # State + #- 8 # Type + - 9 # Registration + - 10 # Marketplace + - 11 # Zone + #- 12 # Labels + #- 13 # Search data + actions: + MarketPlaceApp.refresh: true + MarketPlaceApp.create_dialog: true + MarketPlaceApp.download_opennebula_dialog: true + MarketPlaceApp.download_local: true + MarketPlaceApp.rename: true + MarketPlaceApp.chown: true + MarketPlaceApp.chgrp: true + MarketPlaceApp.chmod: true + MarketPlaceApp.enable: true + MarketPlaceApp.disable: true + MarketPlaceApp.delete: true + MarketPlaceApp.edit_labels: true + MarketPlaceApp.menu_labels: true + network-top-tab: + panel_tabs: + actions: + vnets-tab: + panel_tabs: + vnet_info_tab: true + vnet_ar_list_tab: true + vnet_leases_tab: true + vnet_sg_list_tab: true + vnet_vr_list_tab: true + vnet_clusters_tab: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Reservation + - 6 # Cluster + #- 7 # Bridge + - 8 # Leases + #- 9 # VLAN ID + #- 10 # Labels + #- 11 # Search data + actions: + Network.refresh: true + Network.create_dialog: false + Network.import_dialog: false + Network.update_dialog: true + Network.reserve_dialog: true + Network.addtocluster: false + Network.rename: true + Network.chown: false + Network.chgrp: false + Network.chmod: true + Network.delete: true + Network.hold_lease: true + Network.release_lease: true + Network.add_ar: false + Network.remove_ar: true + Network.update_ar: true + Network.edit_labels: true + Network.menu_labels: true + vnets-topology-tab: + panel_tabs: + actions: + NetworkTopology.refresh: true + NetworkTopology.fit: true + NetworkTopology.collapseVMs: true + NetworkTopology.openVMs: true + secgroups-tab: + panel_tabs: + security_group_info_tab: true + security_group_vms_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + #- 5 # Labels + #- 6 # Search data + actions: + SecurityGroup.refresh: true + SecurityGroup.create_dialog: true + SecurityGroup.update_dialog: true + SecurityGroup.rename: true + SecurityGroup.chown: true + SecurityGroup.chgrp: true + SecurityGroup.chmod: true + SecurityGroup.clone_dialog: true + SecurityGroup.commit_dialog: true + SecurityGroup.delete: true + SecurityGroup.edit_labels: true + SecurityGroup.menu_labels: true + support-tab: + panel_tabs: + support_info_tab: true + table_columns: + #- 0 # Checkbox + - 1 # ID + - 2 # Subject + - 3 # Created at + - 4 # Status + actions: + Support.refresh: true + Support.create_dialog: true + settings-tab: + panel_tabs: + settings_info_tab: true + settings_config_tab: false + settings_quotas_tab: true + settings_group_quotas_tab: true + settings_accounting_tab: true + settings_showback_tab: true + settings_auth_tab: true + actions: + # Buttons for settings_info_tab + User.update_password: true + User.login_token: true + # Buttons for settings_config_tab + Settings.change_language: true + Settings.change_password: true + Settings.change_view: true + Settings.ssh_key: true + Settings.login_token: true + # Edit button in settings_quotas_tab + User.quotas_dialog: false + upgrade-top-tab: + panel_tabs: + actions: + vmgroup-tab: + panel_tabs: + vm_group_info_tab: true + vm_group_vms_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Group + - 4 # Owner + - 5 # Vms + #- 6 # Labels + #- 7 # Search data + actions: + VMGroup.create_dialog: true + VMGroup.update_dialog: true + VMGroup.chmod: true + VMGroup.chown: true + VMGroup.chgrp: true \ No newline at end of file diff --git a/src/sunstone/etc/sunstone-views/admin_vcenter.yaml b/src/sunstone/etc/sunstone-views/vcenter/admin.yaml similarity index 100% rename from src/sunstone/etc/sunstone-views/admin_vcenter.yaml rename to src/sunstone/etc/sunstone-views/vcenter/admin.yaml diff --git a/src/sunstone/etc/sunstone-views/cloud_vcenter.yaml b/src/sunstone/etc/sunstone-views/vcenter/cloud.yaml similarity index 100% rename from src/sunstone/etc/sunstone-views/cloud_vcenter.yaml rename to src/sunstone/etc/sunstone-views/vcenter/cloud.yaml diff --git a/src/sunstone/etc/sunstone-views/groupadmin_vcenter.yaml b/src/sunstone/etc/sunstone-views/vcenter/groupadmin.yaml similarity index 100% rename from src/sunstone/etc/sunstone-views/groupadmin_vcenter.yaml rename to src/sunstone/etc/sunstone-views/vcenter/groupadmin.yaml diff --git a/src/sunstone/etc/sunstone-views/vcenter/user.yaml b/src/sunstone/etc/sunstone-views/vcenter/user.yaml new file mode 100644 index 0000000000..dc9347e2a2 --- /dev/null +++ b/src/sunstone/etc/sunstone-views/vcenter/user.yaml @@ -0,0 +1,840 @@ +small_logo: images/opennebula-5.0.png +provision_logo: images/opennebula-5.0.png +link_logo: +text_link_logo: +confirm_vms: false +filter-view: true +enabled_tabs: + - dashboard-tab + - instances-top-tab + - vms-tab + - oneflow-services-tab + - vrouters-tab + - templates-top-tab + - templates-tab + - oneflow-templates-tab + - vrouter-templates-tab + - storage-top-tab + - datastores-tab + - images-tab + - files-tab + - marketplaces-tab + - marketplaceapps-tab + - network-top-tab + - vnets-tab + - vnets-topology-tab + - secgroups-tab + #- infrastructure-top-tab + #- clusters-tab + #- hosts-tab + #- zones-tab + #- system-top-tab + #- users-tab + #- groups-tab + #- vdcs-tab + #- acls-tab + - settings-tab + #- support-tab + #- upgrade-top-tab + - vmgroup-tab +features: + # True to show showback monthly reports, and VM cost + showback: true + + # Allows to change the security groups for each network interface + # on the VM creation dialog + secgroups: true + + # True to hide the CPU setting in the VM creation dialog. The CPU setting + # will be set to the same value as VCPU, that will still be visible for the + # end users + instantiate_hide_cpu: false + + # False to not scale the CPU. Number [0, 1] to scale from VCPU + instantiate_cpu_factor: false + + # True to show the option to make an instance persistent + instantiate_persistent: true + + # True to show the datastore datatable to instantiate VM + show_ds_instantiate: false + + # True to show the vmgroup datatable to instantiate VM + show_vmgroup_instantiate: true + + # True to show the vnet datatable to instantiate VM + show_vnet_instantiate: true + + # True to show the host datatable to instantiate VM + show_host_instantiate: false + + # True to show an input to specify the the VMs and Template path/folder where a vCenter VM will + # deployed to + vcenter_vm_folder: false +tabs: + dashboard-tab: + # The following widgets can be used inside any of the '_per_row' settings + # bellow. As the name suggest, the widgets will be scaled to fit one, + # two, or three per row. The footer uses the widgets at full size, i.e. + # one per row. + # + # - storage + # - users + # - network + # - hosts + # - vms + # - groupquotas + # - quotas + panel_tabs: + actions: + Dashboard.refresh: false + Sunstone.toggle_top: false + widgets_one_per_row: + - vms + widgets_three_per_row: + widgets_two_per_row: + - network + - storage + widgets_one_footer: + system-top-tab: + panel_tabs: + actions: + users-tab: + panel_tabs: + user_info_tab: true + user_quotas_tab: true + user_groups_tab: true + user_accounting_tab: true + user_showback_tab: true + user_auth_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Group + - 4 # Auth driver + #- 5 # Password + - 6 # VMs + - 7 # Memory + - 8 # CPU + #- 9 # Group ID + #- 10 # Hidden User Data + #- 11 # Labels + #- 12 # Search data + actions: + User.refresh: true + User.create_dialog: true + User.update_password: true + User.login_token: true + User.quotas_dialog: true + User.groups_dialog: true + User.chgrp: true + User.change_authentication: true + User.delete: true + User.edit_labels: true + User.menu_labels: true + groups-tab: + panel_tabs: + group_info_tab: true + group_users_tab: true + group_quotas_tab: true + group_accounting_tab: true + group_showback_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Users + - 4 # VMs + - 5 # Memory + - 6 # CPU + #- 7 # Labels + actions: + Group.refresh: true + Group.create_dialog: true + Group.update_dialog: true + Group.quotas_dialog: true + Group.delete: true + Group.edit_admins: true + Group.edit_labels: true + Group.menu_labels: true + vdcs-tab: + panel_tabs: + vdc_info_tab: true + vdc_groups_tab: true + vdc_resources_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Groups + - 4 # Clusters + - 5 # Hosts + - 6 # VNets + - 7 # Datastores + #- 8 # Labels + actions: + Vdc.refresh: true + Vdc.create_dialog: true + Vdc.update_dialog: true + Vdc.rename: true + Vdc.delete: true + Vdc.edit_labels: true + Vdc.menu_labels: true + acls-tab: + panel_tabs: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Applies to + - 3 # Affected resources + - 4 # Resource ID / Owned by + - 5 # Allowed operations + - 6 # Zone + #- 7 # ACL String + actions: + Acl.refresh: true + Acl.create_dialog: true + Acl.delete: true + templates-top-tab: + panel_tabs: + actions: + templates-tab: + panel_tabs: + template_info_tab: true + template_template_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Registration time + #- 6 # Labels + #- 7 # Search data + actions: + Template.refresh: true + Template.create_dialog: true + Template.import_dialog: false + Template.update_dialog: true + Template.instantiate_vms: true + Template.rename: true + Template.chown: false + Template.chgrp: false + Template.chmod: true + Template.clone_dialog: true + Template.delete_dialog: true + Template.share: true + Template.unshare: true + Template.edit_labels: true + Template.menu_labels: true + template_creation_tabs: + general: true + storage: true + network: true + os_booting: true + features: true + input_output: true + context: true + actions: true + scheduling: false + hybrid: true + vmgroup: true + other: true + oneflow-templates-tab: + panel_tabs: + service_template_info_tab: true + service_template_roles_tab: true + service_template_template_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + #- 5 # Labels + #- 6 # Search data + actions: + ServiceTemplate.refresh: true + ServiceTemplate.create_dialog: true + ServiceTemplate.update_dialog: true + ServiceTemplate.instantiate: true + ServiceTemplate.chown: false + ServiceTemplate.chgrp: false + ServiceTemplate.chmod: true + ServiceTemplate.rename: true + ServiceTemplate.clone_dialog: true + ServiceTemplate.delete: true + ServiceTemplate.edit_labels: true + ServiceTemplate.menu_labels: true + vrouter-templates-tab: + panel_tabs: + vrouter_template_info_tab: true + vrouter_template_template_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Registration time + #- 6 # Labels + #- 7 # Search data + actions: + VirtualRouterTemplate.refresh: true + VirtualRouterTemplate.create_dialog: true + VirtualRouterTemplate.update_dialog: true + VirtualRouterTemplate.instantiate_dialog: true + VirtualRouterTemplate.rename: true + VirtualRouterTemplate.chown: false + VirtualRouterTemplate.chgrp: false + VirtualRouterTemplate.chmod: true + VirtualRouterTemplate.clone_dialog: true + VirtualRouterTemplate.delete_dialog: true + VirtualRouterTemplate.share: true + VirtualRouterTemplate.unshare: true + VirtualRouterTemplate.edit_labels: true + VirtualRouterTemplate.menu_labels: true + template_creation_tabs: + general: true + storage: true + network: true + os_booting: true + features: true + input_output: true + context: true + scheduling: true + hybrid: true + other: true + instances-top-tab: + panel_tabs: + actions: + vms-tab: + panel_tabs: + vm_info_tab: true + vm_capacity_tab: true + vm_storage_tab: true + vm_network_tab: true + vm_snapshot_tab: true + vm_placement_tab: false + vm_actions_tab: true + vm_conf_tab: true + vm_template_tab: false + vm_log_tab: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Status + #- 6 # Used CPU + #- 7 # Used Memory + - 8 # Host + - 9 # IPs + #- 10 # Start Time + - 11 # VNC + #- 12 # Hidden Template + #- 13 # Labels + #- 14 # Search data + actions: + VM.refresh: true + VM.create_dialog: true + VM.rename: true + VM.chown: false + VM.chgrp: false + VM.chmod: true + VM.deploy: false + VM.migrate: false + VM.migrate_live: false + VM.hold: true + VM.release: true + VM.suspend: true + VM.resume: true + VM.stop: true + VM.recover: false + VM.reboot: true + VM.reboot_hard: true + VM.poweroff: true + VM.poweroff_hard: true + VM.undeploy: true + VM.undeploy_hard: true + VM.terminate: true + VM.terminate_hard: true + VM.resize: true + VM.attachdisk: true + VM.detachdisk: true + VM.disk_saveas: true + VM.disk_resize: false + VM.attachnic: true + VM.detachnic: true + VM.snapshot_create: true + VM.snapshot_revert: true + VM.snapshot_delete: true + VM.disk_snapshot_create: true + VM.disk_snapshot_revert: true + VM.disk_snapshot_delete: true + VM.resched: false + VM.unresched: false + VM.save_as_template: true + VM.updateconf: true + VM.edit_labels: true + VM.menu_labels: true + oneflow-services-tab: + panel_tabs: + service_info_tab: true + service_roles_tab: true + service_log_tab: true + panel_tabs_actions: + service_roles_tab: + Role.scale: true + Role.hold: true + Role.release: true + Role.suspend: true + Role.resume: true + Role.stop: true + Role.reboot: true + Role.reboot_hard: true + Role.poweroff: true + Role.poweroff_hard: true + Role.undeploy: true + Role.undeploy_hard: true + Role.terminate: true + Role.terminate_hard: true + RoleVM.hold: true + RoleVM.release: true + RoleVM.suspend: true + RoleVM.resume: true + RoleVM.stop: true + RoleVM.reboot: true + RoleVM.reboot_hard: true + RoleVM.poweroff: true + RoleVM.poweroff_hard: true + RoleVM.undeploy: true + RoleVM.undeploy_hard: true + RoleVM.terminate: true + RoleVM.terminate_hard: true + RoleVM.resched: false + RoleVM.unresched: false + RoleVM.recover: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # State + #- 6 # Labels + #- 7 # Search data + actions: + Service.refresh: true + Service.create_dialog: true + Service.chown: false + Service.chgrp: false + Service.chmod: true + Service.rename: true + Service.shutdown: true + Service.recover: true + Service.delete: true + Service.edit_labels: true + Service.menu_labels: true + vrouters-tab: + panel_tabs: + virtual_router_info_tab: true + virtual_router_vms_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + #- 5 # Labels + #- 6 # Search data + actions: + VirtualRouter.refresh: true + VirtualRouter.create_dialog: true + VirtualRouter.rename: true + VirtualRouter.chown: true + VirtualRouter.chgrp: true + VirtualRouter.chmod: true + VirtualRouter.delete: true + VirtualRouter.attachnic: true + VirtualRouter.detachnic: true + VirtualRouter.edit_labels: true + VirtualRouter.menu_labels: true + infrastructure-top-tab: + panel_tabs: + actions: + clusters-tab: + panel_tabs: + cluster_info_tab: true + cluster_host_tab: true + cluster_vnet_tab: true + cluster_datastore_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Hosts + - 4 # VNets + - 5 # Datastores + #- 6 # Labels + actions: + Cluster.refresh: true + Cluster.create_dialog: true + Cluster.update_dialog: true + Cluster.delete: true + Cluster.rename: true + Cluster.edit_labels: true + Cluster.menu_labels: true + hosts-tab: + panel_tabs: + host_info_tab: true + host_monitoring_tab: true + host_vms_tab: true + host_wilds_tab: true + host_zombies_tab: true + host_esx_tab: true + host_pci_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Cluster + - 4 # RVMs + #- 5 # Real CPU + - 6 # Allocated CPU + #- 7 # Real MEM + - 8 # Allocated MEM + - 9 # Status + #- 10 # IM MAD + #- 11 # VM MAD + #- 12 # Last monitored on + #- 13 # Labels + #- 14 # Search data + actions: + Host.refresh: true + Host.create_dialog: true + Host.addtocluster: true + Host.rename: true + Host.enable: true + Host.disable: true + Host.offline: true + Host.delete: true + Host.edit_labels: true + Host.menu_labels: true + zones-tab: + panel_tabs: + zone_info_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Endpoint + #- 4 # Labels + actions: + Zone.refresh: true + Zone.create_dialog: true + Zone.rename: true + Zone.delete: true + Zone.edit_labels: true + Zone.menu_labels: true + storage-top-tab: + panel_tabs: + actions: + datastores-tab: + panel_tabs: + datastore_info_tab: false + datastore_image_tab: true + datastore_clusters_tab: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Capacity + - 6 # Cluster + #- 7 # Basepath + #- 8 # TM + #- 9 # DS + #- 10 # Type + #- 11 # Status + #- 12 # Labels + #- 13 # Search data + actions: + Datastore.refresh: true + Datastore.create_dialog: false + Datastore.import_dialog: false + Datastore.addtocluster: false + Datastore.rename: true + Datastore.chown: false + Datastore.chgrp: false + Datastore.chmod: true + Datastore.delete: false + Datastore.enable: false + Datastore.disable: false + Datastore.edit_labels: true + Datastore.menu_labels: true + images-tab: + panel_tabs: + image_info_tab: true + image_vms_tab: true + image_snapshots_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + - 11 # #VMs + #- 12 # Target + #- 13 # Labels + #- 14 # Search data + actions: + Image.refresh: true + Image.create_dialog: true + Image.import_dialog: false + Image.upload_marketplace_dialog: true + Image.rename: true + Image.chown: false + Image.chgrp: false + Image.chmod: true + Image.enable: true + Image.disable: true + Image.persistent: true + Image.nonpersistent: true + Image.clone_dialog: true + Image.delete: true + Image.snapshot_flatten: true + Image.snapshot_revert: true + Image.snapshot_delete: true + Image.edit_labels: true + Image.menu_labels: true + files-tab: + panel_tabs: + file_info_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + #- 11 # #VMs + #- 12 # Target + #- 13 # Labels + #- 14 # Search data + actions: + File.refresh: true + File.create_dialog: true + File.rename: true + File.chown: false + File.chgrp: false + File.chmod: true + File.enable: true + File.disable: true + File.delete: true + File.edit_labels: true + File.menu_labels: true + marketplaces-tab: + panel_tabs: + marketplace_info_tab: true + marketplace_apps_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Capacity + - 6 # Apps + - 7 # Driver + - 8 # Zone + #- 9 # Labels + #- 10 # Search data + actions: + MarketPlace.refresh: true + MarketPlace.create_dialog: true + MarketPlace.update_dialog: true + MarketPlace.rename: true + MarketPlace.chown: true + MarketPlace.chgrp: true + MarketPlace.chmod: true + MarketPlace.delete: true + MarketPlace.edit_labels: true + MarketPlace.menu_labels: true + marketplaceapps-tab: + panel_tabs: + marketplaceapp_info_tab: true + marketplaceapp_templates_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + #- 5 # Version + - 6 # Size + - 7 # State + #- 8 # Type + - 9 # Registration + - 10 # Marketplace + - 11 # Zone + #- 12 # Labels + #- 13 # Search data + actions: + MarketPlaceApp.refresh: true + MarketPlaceApp.create_dialog: true + MarketPlaceApp.download_opennebula_dialog: true + MarketPlaceApp.download_local: true + MarketPlaceApp.rename: true + MarketPlaceApp.chown: true + MarketPlaceApp.chgrp: true + MarketPlaceApp.chmod: true + MarketPlaceApp.enable: true + MarketPlaceApp.disable: true + MarketPlaceApp.delete: true + MarketPlaceApp.edit_labels: true + MarketPlaceApp.menu_labels: true + network-top-tab: + panel_tabs: + actions: + vnets-tab: + panel_tabs: + vnet_info_tab: true + vnet_ar_list_tab: true + vnet_leases_tab: true + vnet_sg_list_tab: true + vnet_vr_list_tab: true + vnet_clusters_tab: false + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Reservation + - 6 # Cluster + #- 7 # Bridge + - 8 # Leases + #- 9 # VLAN ID + #- 10 # Labels + #- 11 # Search data + actions: + Network.refresh: true + Network.create_dialog: false + Network.import_dialog: false + Network.update_dialog: true + Network.reserve_dialog: true + Network.addtocluster: false + Network.rename: true + Network.chown: false + Network.chgrp: false + Network.chmod: true + Network.delete: true + Network.hold_lease: true + Network.release_lease: true + Network.add_ar: false + Network.remove_ar: true + Network.update_ar: true + Network.edit_labels: true + Network.menu_labels: true + vnets-topology-tab: + panel_tabs: + actions: + NetworkTopology.refresh: true + NetworkTopology.fit: true + NetworkTopology.collapseVMs: true + NetworkTopology.openVMs: true + secgroups-tab: + panel_tabs: + security_group_info_tab: true + security_group_vms_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + #- 5 # Labels + #- 6 # Search data + actions: + SecurityGroup.refresh: true + SecurityGroup.create_dialog: true + SecurityGroup.update_dialog: true + SecurityGroup.rename: true + SecurityGroup.chown: true + SecurityGroup.chgrp: true + SecurityGroup.chmod: true + SecurityGroup.clone_dialog: true + SecurityGroup.commit_dialog: true + SecurityGroup.delete: true + SecurityGroup.edit_labels: true + SecurityGroup.menu_labels: true + support-tab: + panel_tabs: + support_info_tab: true + table_columns: + #- 0 # Checkbox + - 1 # ID + - 2 # Subject + - 3 # Created at + - 4 # Status + actions: + Support.refresh: true + Support.create_dialog: true + settings-tab: + panel_tabs: + settings_info_tab: true + settings_config_tab: false + settings_quotas_tab: true + settings_group_quotas_tab: true + settings_accounting_tab: true + settings_showback_tab: true + settings_auth_tab: true + actions: + # Buttons for settings_info_tab + User.update_password: true + User.login_token: true + # Buttons for settings_config_tab + Settings.change_language: true + Settings.change_password: true + Settings.change_view: true + Settings.ssh_key: true + Settings.login_token: true + # Edit button in settings_quotas_tab + User.quotas_dialog: false + upgrade-top-tab: + panel_tabs: + actions: + vmgroup-tab: + panel_tabs: + vm_group_info_tab: true + vm_group_vms_tab: true + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Name + - 3 # Group + - 4 # Owner + - 5 # Vms + #- 6 # Labels + #- 7 # Search data + actions: + VMGroup.create_dialog: true + VMGroup.update_dialog: true + VMGroup.chmod: true + VMGroup.chown: true + VMGroup.chgrp: true \ No newline at end of file diff --git a/src/sunstone/models/SunstoneViews.rb b/src/sunstone/models/SunstoneViews.rb index 7fcf1cb133..fc18813a95 100644 --- a/src/sunstone/models/SunstoneViews.rb +++ b/src/sunstone/models/SunstoneViews.rb @@ -19,7 +19,6 @@ require 'json' require 'pp' - # This class is used by Sunstone to set and return the views available to a user # as well as available tabs. class SunstoneViews @@ -32,15 +31,15 @@ class SunstoneViews VIEWS_CONFIGURATION_FILE = ETC_LOCATION + "/sunstone-views.yaml" VIEWS_CONFIGURATION_DIR = ETC_LOCATION + "/sunstone-views/" - def initialize + def initialize(mode) @views_config = YAML.load_file(VIEWS_CONFIGURATION_FILE) base_path = SUNSTONE_ROOT_DIR+'/public/js/' @views = Hash.new - - Dir[VIEWS_CONFIGURATION_DIR+'*.yaml'].each do |p_path| - m = p_path.match(/^#{VIEWS_CONFIGURATION_DIR}(.*).yaml$/) + Dir[VIEWS_CONFIGURATION_DIR + mode + '/*.yaml'].each do |p_path| + reg = VIEWS_CONFIGURATION_DIR + mode + '/' + m = p_path.match(/^#{reg}(.*).yaml$/) if m && m[1] @views[m[1]] = YAML.load_file(p_path) end diff --git a/src/sunstone/public/app/app.js b/src/sunstone/public/app/app.js index 17ded4552e..5accbda441 100644 --- a/src/sunstone/public/app/app.js +++ b/src/sunstone/public/app/app.js @@ -99,11 +99,12 @@ define(function(require) { this.idGroup = -2; /*All*/ Config.changeFilter(false); - + $(".user-zone-info").html(UserAndZoneTemplate({ filterView: Config['filterView'], displayName: config['display_name'], settingsTabEnabled: Config.isTabEnabled(SETTINGS_TAB_ID), + mode : config["mode"], availableViews: config['available_views'], zoneName: config['zone_name'] })).foundation(); @@ -150,7 +151,7 @@ define(function(require) { OpenNebula.Group.list({ timeout: true, success: function(request, group_list) { - var group_list_aux = group_list; + var group_list_aux = group_list; $.each(groups, function(key, value){ var id = value; $.each(group_list_aux, function(key, value){ @@ -188,7 +189,7 @@ define(function(require) { var filterName = $(this).text(); $('#filter-view').show(); $('.filter-name').html(filterName); - } else { + } else { $('#filter-view').hide(); Config.changeFilter(false); } @@ -201,7 +202,7 @@ define(function(require) { }); }, error: Notifier.onError - }); + }); } function zoneRefresh() { @@ -348,12 +349,12 @@ define(function(require) { } var x = "", xa = ""; - + if (m.length == 4) { // IPV4 for(i = 0; i < m.length; i++) { item = m[i]; - + if(item.length == 1) { x += "00" + item; } @@ -370,11 +371,11 @@ define(function(require) { var count = 0; for(i = 0; i < n.length; i++) { item = n[i]; - + if (i > 0) { xa += ":"; } - + if(item.length === 0) { count += 0; } @@ -395,14 +396,14 @@ define(function(require) { count += 4; } } - + // Padding the :: n = xa.split(":"); var paddDone = 0; - + for (i = 0; i < n.length; i++) { item = n[i]; - + if (item.length === 0 && paddDone === 0) { for (var padding = 0 ; padding < (32-count) ; padding++) { x += "0"; @@ -414,15 +415,15 @@ define(function(require) { } } } - + return x; }else return a; }, - + "ip-address-asc": function ( a, b ) { return ((a < b) ? -1 : ((a > b) ? 1 : 0)); }, - + "ip-address-desc": function ( a, b ) { return ((a < b) ? 1 : ((a > b) ? -1 : 0)); } diff --git a/src/sunstone/public/app/sunstone/user_and_zone.hbs b/src/sunstone/public/app/sunstone/user_and_zone.hbs index be1ecc48e8..4e345916f5 100644 --- a/src/sunstone/public/app/sunstone/user_and_zone.hbs +++ b/src/sunstone/public/app/sunstone/user_and_zone.hbs @@ -49,13 +49,13 @@
  • - {{tr "Views"}} + {{tr "Views"}} ({{mode}})
  • diff --git a/src/sunstone/sunstone-server.rb b/src/sunstone/sunstone-server.rb index bb94aa7067..acf6d77881 100755 --- a/src/sunstone/sunstone-server.rb +++ b/src/sunstone/sunstone-server.rb @@ -177,7 +177,7 @@ end set :cloud_auth, $cloud_auth -$views_config = SunstoneViews.new +$views_config = SunstoneViews.new($conf[:mode]) #start VNC proxy @@ -334,6 +334,8 @@ helpers do session[:federation_mode] = rc['FEDERATION/MODE'].upcase + session[:mode] = $conf[:mode] + return [204, ""] end end diff --git a/src/sunstone/views/index.erb b/src/sunstone/views/index.erb index d2a7e2f9eb..5e4fdba53f 100644 --- a/src/sunstone/views/index.erb +++ b/src/sunstone/views/index.erb @@ -34,7 +34,7 @@ 'lang' : '<%= session[:lang] %>', 'vnc_wss' : '<%= session[:vnc_wss] %>', 'table_order' : '<%= session[:table_order] %>', - 'default_view' : '<%= session[:default_view] %>', + 'default_view' : '<%= session[:defaqult_view] %>', 'page_length' : '<%= session[:page_length] %>' }, 'system_config' : { @@ -56,7 +56,8 @@ 'vm_logos' : <%= logos_conf.to_json %>, 'oned_conf' : <%= oned_conf.to_json %>, 'support' : <%= support.to_json %>, - 'upgrade' : <%= upgrade.to_json %> + 'upgrade' : <%= upgrade.to_json %>, + 'mode' : '<%= session[:mode] %>' };