1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-23 22:50:09 +03:00

Merge branch 'sunstone' of opennebula.org:one-ui into sunstone

This commit is contained in:
Hector Sanjuan 2011-02-23 18:48:13 +01:00
commit a8d3c40fb0
6 changed files with 173 additions and 25 deletions

View File

@ -40,6 +40,7 @@ usage() {
echo "-d: target installation directory, if not defined it'd be root. Must be"
echo " an absolute path."
echo "-c: install client utilities: OpenNebula cli, occi and ec2 client files"
echo "-s: install OpenNebula Sunstone"
echo "-r: remove Opennebula, only useful if -d was not specified, otherwise"
echo " rm -rf \$ONE_LOCATION would do the job"
echo "-l: creates symlinks instead of copying files, useful for development"
@ -47,7 +48,7 @@ usage() {
}
#-------------------------------------------------------------------------------
TEMP_OPT=`getopt -o hkrlcu:g:d: -n 'install.sh' -- "$@"`
TEMP_OPT=`getopt -o hkrlcsu:g:d: -n 'install.sh' -- "$@"`
if [ $? != 0 ] ; then
usage
@ -60,6 +61,7 @@ INSTALL_ETC="yes"
UNINSTALL="no"
LINK="no"
CLIENT="no"
SUNSTONE="no"
ONEADMIN_USER=`id -u`
ONEADMIN_GROUP=`id -g`
SRC_DIR=$PWD
@ -70,7 +72,8 @@ while true ; do
-k) INSTALL_ETC="no" ; shift ;;
-r) UNINSTALL="yes" ; shift ;;
-l) LINK="yes" ; shift ;;
-c) CLIENT="yes" ; shift ;;
-c) CLIENT="yes"; INSTALL_ETC="no" ; shift ;;
-s) SUNSTONE="yes"; INSTALL_ETC="no" ; shift ;;
-u) ONEADMIN_USER="$2" ; shift 2;;
-g) ONEADMIN_GROUP="$2"; shift 2;;
-d) ROOT="$2" ; shift 2 ;;
@ -89,6 +92,7 @@ if [ -z "$ROOT" ] ; then
ETC_LOCATION="/etc/one"
LOG_LOCATION="/var/log/one"
VAR_LOCATION="/var/lib/one"
SUNSTONE_LOCATION="$LIB_LOCATION/sunstone"
IMAGES_LOCATION="$VAR_LOCATION/images"
RUN_LOCATION="/var/run/one"
LOCK_LOCATION="/var/lock/one"
@ -96,7 +100,19 @@ if [ -z "$ROOT" ] ; then
SHARE_LOCATION="/usr/share/one"
MAN_LOCATION="/usr/share/man/man8"
if [ "$CLIENT" = "no" ]; then
if [ "$CLIENT" = "yes" ]; then
MAKE_DIRS="$BIN_LOCATION $LIB_LOCATION"
DELETE_DIRS=""
CHOWN_DIRS=""
elif [ "$SUNSTONE" = "yes" ]; then
MAKE_DIRS="$BIN_LOCATION $LIB_LOCATION $VAR_LOCATION $SUNSTONE_LOCATION"
DELETE_DIRS="$MAKE_DIRS"
CHOWN_DIRS=""
else
MAKE_DIRS="$BIN_LOCATION $LIB_LOCATION $ETC_LOCATION $VAR_LOCATION \
$INCLUDE_LOCATION $SHARE_LOCATION \
$LOG_LOCATION $RUN_LOCATION $LOCK_LOCATION \
@ -106,12 +122,6 @@ if [ -z "$ROOT" ] ; then
$RUN_LOCATION $SHARE_DIRS"
CHOWN_DIRS="$LOG_LOCATION $VAR_LOCATION $RUN_LOCATION $LOCK_LOCATION"
else
MAKE_DIRS="$BIN_LOCATION $LIB_LOCATION"
DELETE_DIRS=""
CHOWN_DIRS=""
fi
else
@ -119,12 +129,21 @@ else
LIB_LOCATION="$ROOT/lib"
ETC_LOCATION="$ROOT/etc"
VAR_LOCATION="$ROOT/var"
SUNSTONE_LOCATION="$LIB_LOCATION/sunstone"
IMAGES_LOCATION="$VAR_LOCATION/images"
INCLUDE_LOCATION="$ROOT/include"
SHARE_LOCATION="$ROOT/share"
MAN_LOCATION="$ROOT/share/man/man8"
if [ "$CLIENT" = "no" ]; then
if [ "$CLIENT" = "yes" ]; then
MAKE_DIRS="$BIN_LOCATION $LIB_LOCATION"
DELETE_DIRS="$MAKE_DIRS"
elif [ "$SUNSTONE" = "yes" ]; then
MAKE_DIRS="$BIN_LOCATION $LIB_LOCATION $VAR_LOCATION $SUNSTONE_LOCATION"
DELETE_DIRS="$MAKE_DIRS"
else
MAKE_DIRS="$BIN_LOCATION $LIB_LOCATION $ETC_LOCATION $VAR_LOCATION \
$INCLUDE_LOCATION $SHARE_LOCATION $IMAGES_LOCATION \
$MAN_LOCATION"
@ -132,10 +151,6 @@ else
DELETE_DIRS="$MAKE_DIRS"
CHOWN_DIRS="$ROOT"
else
MAKE_DIRS="$BIN_LOCATION $LIB_LOCATION"
DELETE_DIRS="$MAKE_DIRS"
fi
CHOWN_DIRS="$ROOT"
@ -188,6 +203,16 @@ VAR_DIRS="$VAR_LOCATION/remotes \
$VAR_LOCATION/remotes/vmm/xen \
$VAR_LOCATION/remotes/vmm/kvm"
SUNSTONE_DIRS="$SUNSTONE_LOCATION/models \
$SUNSTONE_LOCATION/models/OpenNebulaJSON \
$SUNSTONE_LOCATION/public \
$SUNSTONE_LOCATION/public/js \
$SUNSTONE_LOCATION/public/js/vendor \
$SUNSTONE_LOCATION/public/css \
$SUNSTONE_LOCATION/public/css/vendor \
$SUNSTONE_LOCATION/public/images \
$SUNSTONE_LOCATION/templates"
LIB_ECO_CLIENT_DIRS="$LIB_LOCATION/ruby \
$LIB_LOCATION/ruby/OpenNebula \
$LIB_LOCATION/ruby/cloud/ \
@ -197,14 +222,19 @@ LIB_OCCI_CLIENT_DIRS="$LIB_LOCATION/ruby \
$LIB_LOCATION/ruby/OpenNebula \
$LIB_LOCATION/ruby/cloud/occi"
LIB_OCA_CLIENT_DIRS="$LIB_LOCATION/ruby \
$LIB_LOCATION/ruby/OpenNebula"
LIB_CLI_DIRS="$LIB_LOCATION/ruby \
$LIB_LOCATION/ruby/OpenNebula"
if [ "$CLIENT" = "no" ]; then
MAKE_DIRS="$MAKE_DIRS $SHARE_DIRS $ETC_DIRS $LIB_DIRS $VAR_DIRS"
else
if [ "$CLIENT" = "yes" ]; then
MAKE_DIRS="$MAKE_DIRS $LIB_ECO_CLIENT_DIRS $LIB_OCCI_CLIENT_DIRS \
$LIB_CLI_DIRS"
elif [ "$SUNSTONE" = "yes" ]; then
MAKE_DIRS="$MAKE_DIRS $SUNSTONE_DIRS $LIB_OCA_CLIENT_DIRS"
else
MAKE_DIRS="$MAKE_DIRS $SHARE_DIRS $ETC_DIRS $LIB_DIRS $VAR_DIRS $SUNSTONE_DIRS"
fi
#-------------------------------------------------------------------------------
@ -267,6 +297,21 @@ INSTALL_CLIENT_FILES=(
RUBY_OPENNEBULA_LIB_FILES:$LIB_LOCATION/ruby/OpenNebula
)
INSTALL_SUNSTONE_FILES=(
SUNSTONE_FILES:$SUNSTONE_LOCATION
SUNSTONE_BIN_FILES:$BIN_LOCATION
SUNSTONE_MODELS_FILES:$SUNSTONE_LOCATION/models
SUNSTONE_MODELS_JSON_FILES:$SUNSTONE_LOCATION/models/OpenNebulaJSON
SUNSTONE_TEMPLATE_FILES:$SUNSTONE_LOCATION/templates
SUNSTONE_PUBLIC_JS_FILES:$SUNSTONE_LOCATION/public/js
SUNSTONE_PUBLIC_JS_VENDOR_FILES:$SUNSTONE_LOCATION/public/js/vendor
SUNSTONE_PUBLIC_CSS_FILES:$SUNSTONE_LOCATION/public/css
SUNSTONE_PUBLIC_CSS_VENDOR_FILES:$SUNSTONE_LOCATION/public/css/vendor
SUNSTONE_PUBLIC_IMAGES_FILES:$SUNSTONE_LOCATION/public/images
SUNSTONE_RUBY_LIB_FILES:$LIB_LOCATION/ruby
RUBY_OPENNEBULA_LIB_FILES:$LIB_LOCATION/ruby/OpenNebula
)
INSTALL_ETC_FILES=(
ETC_FILES:$ETC_LOCATION
VMM_EC2_ETC_FILES:$ETC_LOCATION/vmm_ec2
@ -646,6 +691,80 @@ CLI_BIN_FILES="src/cli/onevm \
src/cli/oneimage \
src/cli/onecluster"
#-----------------------------------------------------------------------------
# Sunstone files
#-----------------------------------------------------------------------------
SUNSTONE_FILES="src/sunstone/config.ru \
src/sunstone/sunstone-server.rb"
SUNSTONE_BIN_FILES="src/sunstone/bin/sunstone-server"
SUNSTONE_MODELS_FILES="src/sunstone/models/OpenNebulaJSON.rb \
src/sunstone/models/SunstoneServer.rb"
SUNSTONE_MODELS_JSON_FILES="src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb \
src/sunstone/models/OpenNebulaJSON/HostJSON.rb \
src/sunstone/models/OpenNebulaJSON/ImageJSON.rb \
src/sunstone/models/OpenNebulaJSON/JSONUtils.rb \
src/sunstone/models/OpenNebulaJSON/PoolJSON.rb \
src/sunstone/models/OpenNebulaJSON/UserJSON.rb \
src/sunstone/models/OpenNebulaJSON/VirtualMachineJSON.rb \
src/sunstone/models/OpenNebulaJSON/VirtualNetworkJSON.rb"
SUNSTONE_TEMPLATE_FILES="src/sunstone/templates/index.html \
src/sunstone/templates/login.html"
SUNSTONE_PUBLIC_JS_FILES="src/sunstone/public/js/layout.js \
src/sunstone/public/js/login.js \
src/sunstone/public/js/one-ui_views.js \
src/sunstone/public/js/one-ui_views.templates.js \
src/sunstone/public/js/opennebula.js"
SUNSTONE_PUBLIC_JS_VENDOR_FILES="src/sunstone/public/js/vendor/base64.js \
src/sunstone/public/js/vendor/jquery-1.4.4.min.js \
src/sunstone/public/js/vendor/jquery.dataTables.min.js \
src/sunstone/public/js/vendor/jquery.jgrowl_minimized.js \
src/sunstone/public/js/vendor/jquery.layout.min-1.2.0.js \
src/sunstone/public/js/vendor/jquery-ui-1.8.7.custom.min.js"
SUNSTONE_PUBLIC_CSS_FILES="src/sunstone/public/css/application.css \
src/sunstone/public/css/demo_table_jui.css \
src/sunstone/public/css/jquery.jgrowl.css \
src/sunstone/public/css/layout.css \
src/sunstone/public/css/layout-default-latest.css \
src/sunstone/public/css/login.css"
SUNSTONE_PUBLIC_CSS_VENDOR_FILES="\
src/sunstone/public/css/vendor/jquery-ui-1.8.7.custom.css \
src/sunstone/public/css/vendor/ui-bg_flat_0_575c5b_40x100.png \
src/sunstone/public/css/vendor/ui-bg_flat_0_8f9392_40x100.png \
src/sunstone/public/css/vendor/ui-bg_flat_0_aaaaaa_40x100.png \
src/sunstone/public/css/vendor/ui-bg_flat_75_ffffff_40x100.png \
src/sunstone/public/css/vendor/ui-bg_glass_55_fbf9ee_1x400.png \
src/sunstone/public/css/vendor/ui-bg_glass_65_ffffff_1x400.png \
src/sunstone/public/css/vendor/ui-bg_glass_75_dadada_1x400.png \
src/sunstone/public/css/vendor/ui-bg_glass_75_e6e6e6_1x400.png \
src/sunstone/public/css/vendor/ui-bg_glass_95_fef1ec_1x400.png \
src/sunstone/public/css/vendor/ui-bg_highlight-soft_75_cccccc_1x100.png \
src/sunstone/public/css/vendor/ui-icons_222222_256x240.png \
src/sunstone/public/css/vendor/ui-icons_2e83ff_256x240.png \
src/sunstone/public/css/vendor/ui-icons_454545_256x240.png \
src/sunstone/public/css/vendor/ui-icons_888888_256x240.png \
src/sunstone/public/css/vendor/ui-icons_cd0a0a_256x240.png"
SUNSTONE_PUBLIC_IMAGES_FILES="src/sunstone/public/images/ajax-loader.gif \
src/sunstone/public/images/login_over.png \
src/sunstone/public/images/login.png \
src/sunstone/public/images/opennebula-sunstone-big.png \
src/sunstone/public/images/opennebula-sunstone-small.png \
src/sunstone/public/images/panel.png \
src/sunstone/public/images/pbar.gif \
src/sunstone/public/images/Refresh-icon.png"
SUNSTONE_RUBY_LIB_FILES="src/mad/ruby/CommandManager.rb \
src/oca/ruby/OpenNebula.rb"
#-----------------------------------------------------------------------------
# MAN files
#-----------------------------------------------------------------------------
@ -696,10 +815,12 @@ do_file() {
}
if [ "$CLIENT" = "no" ]; then
INSTALL_SET=${INSTALL_FILES[@]}
else
if [ "$CLIENT" = "yes" ]; then
INSTALL_SET=${INSTALL_CLIENT_FILES[@]}
elif [ "$SUNSTONE" = "yes" ]; then
INSTALL_SET=${INSTALL_SUNSTONE_FILES[@]}
else
INSTALL_SET="${INSTALL_FILES[@]} ${INSTALL_SUNSTONE_FILES[@]}"
fi
for i in ${INSTALL_SET[@]}; do
@ -713,7 +834,7 @@ for i in ${INSTALL_SET[@]}; do
done
done
if [ "$CLIENT" = "no" -a "$INSTALL_ETC" = "yes" ] ; then
if [ "$INSTALL_ETC" = "yes" ] ; then
for i in ${INSTALL_ETC_FILES[@]}; do
SRC=$`echo $i | cut -d: -f1`
DST=`echo $i | cut -d: -f2`

21
src/sunstone/bin/sunstone-server Normal file → Executable file
View File

@ -1,3 +1,22 @@
#!/bin/bash
# -------------------------------------------------------------------------- #
# Copyright 2002-2011, OpenNebula Project Leads (OpenNebula.org) #
# #
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
# not use this file except in compliance with the License. You may obtain #
# a copy of the License at #
# #
# http://www.apache.org/licenses/LICENSE-2.0 #
# #
# Unless required by applicable law or agreed to in writing, software #
# distributed under the License is distributed on an "AS IS" BASIS, #
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
# See the License for the specific language governing permissions and #
# limitations under the License. #
#--------------------------------------------------------------------------- #
if [ -z "$ONE_LOCATION" ]; then
SUNSTONE_PID=/var/run/one/sunstone.pid
SUNSTONE_SERVER=/usr/lib/one/sunstone/config.ru
@ -99,4 +118,4 @@ case "$1" in
echo "Usage: sunstone {start|stop}" >&2
exit 3
;;
esac
esac

View File

@ -16,6 +16,14 @@
# TBD Change path for intallation tree
ONE_LOCATION = ENV["ONE_LOCATION"]
if !ONE_LOCATION
VAR_LOCATION = "/var/lib/one"
else
VAR_LOCATION = ONE_LOCATION+"/var"
end
#require 'OpenNebulaJSON'
require 'models/OpenNebulaJSON'
include OpenNebulaJSON
@ -154,7 +162,7 @@ class SunstoneServer
if user_id != "0"
return [401, ""]
end
one_config = VAR_LOCATION + "/config"
config = Hash.new

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 B

View File

@ -2732,7 +2732,7 @@ function deleteVMachineElement(req){
}
function addVMachineElement(request,vm_json){
id = vm_json.VM,ID;
id = vm_json.VM.ID;
notifySubmit('OpenNebula.VM.create',id);
element = vMachineElementArray(vm_json);
addElement(element,dataTable_vMachines);
@ -3020,7 +3020,7 @@ function updateVMInfo(request,vm){
</tr>\
<tr>\
<td class="key_td">Deploy ID</td>\
<td class="value_td">'+(vm_info.DEPLOY_ID ? vm_info.DEPLOY_ID : "-")+'</td>\
<td class="value_td">'+(typeof(vm_info.DEPLOY_ID) == "object" ? "-" : vm_info.DEPLOY_ID)+'</td>\
</tr>\
</table>\
<table id="vm_monitoring_table" class="info_table">\