~ubuntu-branches/ubuntu/raring/eucalyptus/raring

« back to all changes in this revision

Viewing changes to clc/modules/reporting/src/test/sh/generateReport.sh

  • Committer: Package Import Robot
  • Author(s): Brian Thomason
  • Date: 2011-11-29 13:17:52 UTC
  • mfrom: (1.2.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 185.
  • Revision ID: package-import@ubuntu.com-20111129131752-rq31al3ntutv2vvl
Tags: upstream-3.0.999beta1
ImportĀ upstreamĀ versionĀ 3.0.999beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh -x
 
2
#
 
3
#Copyright (c) 2011  Eucalyptus Systems, Inc.   
 
4
#
 
5
#This program is free software: you can redistribute it and/or modify
 
6
#it under the terms of the GNU General Public License as published by 
 
7
#the Free Software Foundation, only version 3 of the License.  
 
8
 
9
#This file is distributed in the hope that it will be useful, but WITHOUT
 
10
#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 
11
#FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 
12
#for more details.  
 
13
#
 
14
#You should have received a copy of the GNU General Public License along
 
15
#with this program.  If not, see <http://www.gnu.org/licenses/>.
 
16
 
17
#Please contact Eucalyptus Systems, Inc., 130 Castilian
 
18
#Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/> 
 
19
#if you need additional information or have any questions.
 
20
#
 
21
#This file may incorporate work covered under the following copyright and
 
22
#permission notice:
 
23
#
 
24
#  Software License Agreement (BSD License)
 
25
#
 
26
#  Copyright (c) 2008, Regents of the University of California
 
27
#  
 
28
#
 
29
#  Redistribution and use of this software in source and binary forms, with
 
30
#  or without modification, are permitted provided that the following
 
31
#  conditions are met:
 
32
#
 
33
#    Redistributions of source code must retain the above copyright notice,
 
34
#    this list of conditions and the following disclaimer.
 
35
#
 
36
#    Redistributions in binary form must reproduce the above copyright
 
37
#    notice, this list of conditions and the following disclaimer in the
 
38
#    documentation and/or other materials provided with the distribution.
 
39
#
 
40
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 
41
#  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 
42
#  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 
43
#  PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
 
44
#  OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 
45
#  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 
46
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 
47
#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 
48
#  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 
49
#  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 
50
#  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
 
51
#  THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
 
52
#  LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
 
53
#  SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
 
54
#  IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
 
55
#  BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
 
56
#  THE REGENTS' DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
 
57
#  OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
 
58
#  WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
 
59
#  ANY SUCH LICENSES OR RIGHTS.
 
60
#   
 
61
 
 
62
print_usage () {
 
63
        echo "Usage: generateReport.sh [options]"
 
64
        echo "  --help  This message"
 
65
        echo "  -t              Type of report (can be instance, storage, s3)"
 
66
        echo "  -s              Starting timestamp (milliseconds since Jan 1, 1970)"
 
67
        echo "  -e              Ending timestamp (milliseconds since Jan 1, 1970)"
 
68
        echo "  -f              Format (html, csv, pdf)"
 
69
        echo "  -c              Criterion (user, account, cluster, zone)"
 
70
        echo "  -g              Group-by criterion (none, user, account, cluster, zone)"
 
71
        echo "  -p              Admin password (required, defaults to admin"
 
72
        echo "  -o              Outfile, where the report will be stored (default report.html, report.pdf, etc)"
 
73
}
 
74
 
 
75
# Set param defaults
 
76
TYPE="user_vms"
 
77
START="0"
 
78
timestamp=`date +%s`
 
79
timestamp=$(($timestamp*1000))
 
80
END=$timestamp
 
81
FORMAT="csv"
 
82
CRITERION_ID="2"
 
83
GROUPBY_ID="0"
 
84
PASSWORD="admin"
 
85
OUTFILE=""
 
86
 
 
87
# Parse params
 
88
while [ $# -gt 0 ]; do
 
89
        if [ "$1" = "-t" ]; then
 
90
                if [ "$2" = "storage" ]; then
 
91
                        TYPE="user_storage"
 
92
                elif [ "$2" = "s3" ]; then
 
93
                        TYPE="user_s3"
 
94
                else
 
95
                        echo "Unrecognized type $2, defaulting to instance"
 
96
                fi
 
97
                shift 2
 
98
                continue
 
99
        fi
 
100
        if [ "$1" = "-o" ]; then
 
101
                OUTFILE="$2"
 
102
                shift 2
 
103
                continue
 
104
        fi
 
105
        if [ "$1" = "-p" ]; then
 
106
                PASSWORD="$2"
 
107
                shift 2
 
108
                continue
 
109
        fi
 
110
        if [ "$1" = "-s" ]; then
 
111
                START="$2"
 
112
                shift 2
 
113
                continue
 
114
        fi
 
115
        if [ "$1" = "-e" ]; then
 
116
                END="$2"
 
117
                shift 2
 
118
                continue
 
119
        fi
 
120
        if [ "$1" = "-f" ]; then
 
121
                if [ "$2" = "csv" ]; then
 
122
                        FORMAT=$2
 
123
                elif [ "$2" = "html" ]; then
 
124
                        FORMAT=$2
 
125
                elif [ "$2" = "pdf" ]; then
 
126
                        FORMAT=$2
 
127
                else
 
128
                        echo "Unrecognized format $2, defaulting to csv"
 
129
                fi
 
130
                shift 2
 
131
                continue
 
132
        fi
 
133
        if [ "$1" = "-c" ]; then
 
134
                if [ "$2" = "user" ]; then
 
135
                        CRITERION_ID="2"
 
136
                elif [ "$2" = "account" ]; then
 
137
                        CRITERION_ID="1"
 
138
                elif [ "$2" = "cluster" ]; then
 
139
                        CRITERION_ID="0"
 
140
                else
 
141
                        echo "Unrecognized criterion $2, defaulting to user"
 
142
                fi
 
143
                shift 2
 
144
                continue
 
145
        fi
 
146
        if [ "$1" = "-g" ]; then
 
147
                if [ "$2" = "user" ]; then
 
148
                        GROUPBY_ID="4"
 
149
                elif [ "$2" = "account" ]; then
 
150
                        GROUPBY_ID="3"
 
151
                elif [ "$2" = "cluster" ]; then
 
152
                        GROUPBY_ID="2"
 
153
                elif [ "$2" = "zone" ]; then
 
154
                        GROUPBY_ID="1"
 
155
                else
 
156
                        echo "Unrecognized criterion $2, defaulting to user"
 
157
                fi
 
158
                shift 2
 
159
                continue
 
160
        fi
 
161
        if [ "$1" = "--help" ]; then
 
162
                print_usage
 
163
                exit 0
 
164
        fi
 
165
done
 
166
if [ "$OUTFILE" = "" ]; then
 
167
        OUTFILE="report.${FORMAT}"
 
168
fi
 
169
 
 
170
echo "Using params:  type:$TYPE start:$START end:$END format:$FORMAT criterionId:$CRITERION_ID groupById:$GROUPBY_ID outfile:$OUTFILE"
 
171
 
 
172
 
 
173
# Login
 
174
wget -O /tmp/sessionId --no-check-certificate "https://localhost:8443/loginservlet?adminPw=$PASSWORD"
 
175
export SESSIONID=`cat /tmp/sessionId`
 
176
 
 
177
 
 
178
# Generate report based upon params
 
179
wget -O "${OUTFILE}" --no-check-certificate "https://localhost:8443/reports?session=$SESSIONID&name=$TYPE&type=$FORMAT&page=0&flush=false&start=$START&end=$END&criterionId=$CRITERION_ID&groupById=$GROUPBY_ID"
 
180