Merge remote-tracking branch 'unidata/unidata_17.1.1' into unidata_17.1.1-osx
This commit is contained in:
commit
837a8e7111
2136 changed files with 2066 additions and 179720 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -6,6 +6,7 @@ testbin/
|
|||
testBin/
|
||||
bin-test/
|
||||
bin
|
||||
.idea
|
||||
*.swp
|
||||
*.class
|
||||
*.pyo
|
||||
|
|
14
.travis.yml
14
.travis.yml
|
@ -5,19 +5,19 @@ branches:
|
|||
|
||||
language: ruby
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- OS_TYPE=centos OS_VERSION=centos7
|
||||
- OS_VERSION=el6
|
||||
- OS_VERSION=el7
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
||||
before_install:
|
||||
- sudo apt-get update
|
||||
- echo 'DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -s devicemapper"' | sudo tee /etc/default/docker > /dev/null
|
||||
- sudo service docker restart
|
||||
- sleep 5
|
||||
- sudo docker pull ${OS_TYPE}:${OS_VERSION}
|
||||
- sudo docker pull unidata/awips-ade:${OS_VERSION}
|
||||
|
||||
script:
|
||||
- build/setup.sh ${OS_TYPE} ${OS_VERSION}
|
||||
script: build/setup.sh ${OS_VERSION}
|
||||
|
|
10
README.md
10
README.md
|
@ -1,8 +1,10 @@
|
|||
# Unidata AWIPS
|
||||
|
||||
[]() [](https://travis-ci.org/Unidata/awips2)
|
||||
[http://www.unidata.ucar.edu/software/awips/](http://www.unidata.ucar.edu/software/awips/)
|
||||
|
||||
AWIPS (formerly know as AWIPS II or AWIPS2) is a weather forecasting display and analysis package developed by the [National Weather Service](http://www.nws.noaa.gov/ost/SEC/AE/) and [Raytheon](http://www.raytheon.com/capabilities/products/awips/). AWIPS is a Java application consisting of a data-rendering client ([CAVE](http://unidata.github.io/awips2/install/install-cave/), which runs on Red Hat/CentOS Linux, macOS, and Windows), and a backend data server ([EDEX](http://unidata.github.io/awips2/install/install-edex), which runs on x86_64 Red Hat/CentOS 6 and 7).
|
||||
[]() [](https://travis-ci.org/Unidata/awips2)
|
||||
|
||||
AWIPS (formerly know as AWIPS II or AWIPS2) is a meteorological display and analysis package developed by the [National Weather Service](http://www.nws.noaa.gov/ost/SEC/AE/) and [Raytheon](http://www.raytheon.com/capabilities/products/awips/) for operational forecasting. AWIPS is a Java application consisting of a data-rendering client ([CAVE](http://unidata.github.io/awips2/install/install-cave/), which runs on Red Hat/CentOS Linux, macOS, and Windows), and a backend data server ([EDEX](http://unidata.github.io/awips2/install/install-edex), which runs on x86_64 Red Hat/CentOS 6 and 7).
|
||||
|
||||
AWIPS takes a unified approach to data ingest, and most data types follow a standard path through the system, starting with an [LDM](http://www.unidata.ucar.edu/software/ldm/) client requesting data from Unidata's [IDD](http://www.unidata.ucar.edu/projects/#idd), which are then decoded and stored as HDF5 and PostgreSQL/PostGIS metadata. Unidata supports two visualization frameworks for rendering AWIPS data:
|
||||
|
||||
|
@ -42,7 +44,7 @@ Through a grant provided by [Jetstream](https://jetstream-cloud.org/), Unidata i
|
|||
* [awips2-core-foss](https://github.com/Unidata/awips2-core-foss)
|
||||
* [awips2-foss](https://github.com/Unidata/awips2-foss)
|
||||
* [awips2-ncep](https://github.com/Unidata/awips2-ncep)
|
||||
* [awips2-rpm](https://github.com/Unidata/awips2-rpmbuild)
|
||||
* [awips2-rpm](https://github.com/Unidata/awips2-rpm)
|
||||
|
||||
|
||||
# Setting up the AWIPS Development Environment (ADE)
|
||||
|
@ -53,7 +55,7 @@ Instructions on how to deploy CAVE from Eclipse.
|
|||
|
||||
[awips2repo]
|
||||
name=AWIPS II Repository
|
||||
baseurl=http://www.unidata.ucar.edu/repos/yum/awips2-dev/
|
||||
baseurl=https://www.unidata.ucar.edu/repos/yum/awips2-dev/
|
||||
enabled=1
|
||||
protect=0
|
||||
gpgcheck=0
|
||||
|
|
33
build/awips-ade/Dockerfile.awips-ade.el6
Normal file
33
build/awips-ade/Dockerfile.awips-ade.el6
Normal file
|
@ -0,0 +1,33 @@
|
|||
FROM centos:6
|
||||
ENV VERSION 17.1.1
|
||||
ENV RELEASE 4
|
||||
MAINTAINER Michael James <mjames@ucar.edu>
|
||||
|
||||
USER root
|
||||
|
||||
RUN yum update yum
|
||||
|
||||
RUN groupadd fxalpha && useradd -G fxalpha awips
|
||||
|
||||
RUN yum groupinstall "Development tools" -y
|
||||
RUN yum install epel-release -y
|
||||
RUN yum clean all -y
|
||||
|
||||
ENV systemDeps="wget rsync git net-tools"
|
||||
ENV rpmDeps="gcc gcc-c++ rpm-build readline-devel createrepo"
|
||||
ENV qpidDeps="boost-devel cmake make ruby libuuid-devel"
|
||||
ENV pythonDeps="tk-devel tcl-devel atlas-devel compat-libf2c-34 libgfortran geos libpng-devel freetype"
|
||||
ENV awipsDeps="netcdf netcdf-devel hdf5-devel lzo-devel bzip2-devel qt-devel"
|
||||
ENV httpDeps="autoconf findutils libselinux-devel libxml2-devel lua-devel openldap-devel openssl-devel pcre-devel pkgconfig perl zlib-devel apr-util-devel apr-devel"
|
||||
|
||||
RUN yum install $systemDeps $rpmDeps $qpidDeps $pythonDeps $awipsDeps $httpDeps -y
|
||||
|
||||
RUN wget -O /etc/yum.repos.d/awips2.repo https://www.unidata.ucar.edu/software/awips2/doc/el6-dev.repo
|
||||
RUN yum -y clean all
|
||||
RUN yum groupinstall awips2-ade -y
|
||||
|
||||
RUN mkdir -p /awips2/jenkins/buildspace/workspace/AWIPS2-UPC_build/baseline && mkdir -p /awips2/jenkins/buildspace/workspace/tmp
|
||||
RUN mkdir -p /awips2/jenkins/build/rpms/awips2_${VERSION}/{x86_64,noarch}/
|
||||
RUN chown -R awips:fxalpha /awips2/jenkins/
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
33
build/awips-ade/Dockerfile.awips-ade.el7
Normal file
33
build/awips-ade/Dockerfile.awips-ade.el7
Normal file
|
@ -0,0 +1,33 @@
|
|||
FROM centos:7
|
||||
ENV VERSION 17.1.1
|
||||
ENV RELEASE 4
|
||||
MAINTAINER Michael James <mjames@ucar.edu>
|
||||
|
||||
USER root
|
||||
|
||||
RUN yum update yum
|
||||
|
||||
RUN groupadd fxalpha && useradd -G fxalpha awips
|
||||
|
||||
RUN yum groupinstall "Development tools" -y
|
||||
RUN yum install epel-release -y
|
||||
RUN yum clean all -y
|
||||
|
||||
ENV systemDeps="wget rsync git net-tools"
|
||||
ENV rpmDeps="gcc gcc-c++ rpm-build readline-devel createrepo"
|
||||
ENV qpidDeps="boost-devel cmake make ruby libuuid-devel"
|
||||
ENV pythonDeps="tk-devel tcl-devel atlas-devel compat-libf2c-34 libgfortran geos libpng-devel freetype"
|
||||
ENV awipsDeps="netcdf netcdf-devel hdf5-devel lzo-devel bzip2-devel qt-devel"
|
||||
ENV httpDeps="autoconf findutils libselinux-devel libxml2-devel lua-devel openldap-devel openssl-devel pcre-devel pkgconfig perl zlib-devel apr-util-devel apr-devel"
|
||||
|
||||
RUN yum install $systemDeps $rpmDeps $qpidDeps $pythonDeps $awipsDeps $httpDeps -y
|
||||
|
||||
RUN wget -O /etc/yum.repos.d/awips2.repo https://www.unidata.ucar.edu/software/awips2/doc/el7-dev.repo
|
||||
RUN yum -y clean all
|
||||
RUN yum groupinstall awips2-ade -y
|
||||
|
||||
RUN mkdir -p /awips2/jenkins/buildspace/workspace/AWIPS2-UPC_build/baseline && mkdir -p /awips2/jenkins/buildspace/workspace/tmp
|
||||
RUN mkdir -p /awips2/jenkins/build/rpms/awips2_${VERSION}/{x86_64,noarch}/
|
||||
RUN chown -R awips:fxalpha /awips2/jenkins/
|
||||
|
||||
ENTRYPOINT ["/bin/bash"]
|
16
build/awips-ade/docker_build.sh
Executable file
16
build/awips-ade/docker_build.sh
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
if [ -z "$1" ]; then
|
||||
echo "supply type (el6, el7)"
|
||||
exit
|
||||
fi
|
||||
os_version=$1
|
||||
|
||||
existing=$(sudo docker images |grep awips-ade | grep $1 | awk '{ print $3 }')
|
||||
if [ ! -z "$existing" ]; then
|
||||
sudo docker rmi $existing
|
||||
fi
|
||||
pushd /awips2/repo/awips2-builds/build/awips-ade
|
||||
sudo docker build -t unidata/awips-ade -f Dockerfile.awips-ade.${os_version} .
|
||||
dockerID=$(sudo docker images | grep awips-ade | grep latest | awk '{print $3}' | head -1 )
|
||||
sudo docker tag $dockerID unidata/awips-ade:17.1.1-${os_version}
|
||||
sudo docker push unidata/awips-ade
|
87
build/build.sh
Executable file
87
build/build.sh
Executable file
|
@ -0,0 +1,87 @@
|
|||
#!/bin/bash -v
|
||||
set -xe
|
||||
|
||||
# Determine where we are
|
||||
path_to_script=`readlink -f $0`
|
||||
dir=$(dirname $path_to_script)
|
||||
source ${dir}/buildEnvironment.sh
|
||||
|
||||
export _script_dir=${dir}
|
||||
echo "Running build.sh from ${_script_dir}"
|
||||
echo " JENKINS_WORKSPACE = ${JENKINS_WORKSPACE}"
|
||||
cd ${dir}
|
||||
logdir=${dir}/logs
|
||||
|
||||
if [ ! -d $logdir ]; then
|
||||
mkdir -p $logdir
|
||||
fi
|
||||
|
||||
START_TIME=`date "+%s"`
|
||||
timestamp=`date +%Y_%m_%d_%H:%M:%S`
|
||||
|
||||
# Cleanup before building CAVE rpms
|
||||
if [[ ${2} = "buildCAVE" ]]; then
|
||||
rm -rf ${JENKINS_HOME}/buildspace/workspace/AWIPS2-UPC_build/baseline/
|
||||
rm -rf ${JENKINS_HOME}/buildspace/workspace/tmp/${USER}/
|
||||
fi
|
||||
|
||||
echo "BUILD_DIR = $BUILD_DIR"
|
||||
echo "BUILD_WORKSPACE = $BUILD_WORKSPACE"
|
||||
echo "BASELINE = $BASELINE"
|
||||
echo "WORKSPACE = $WORKSPACE"
|
||||
echo "AWIPSII_VERSION = $AWIPSII_VERSION"
|
||||
echo "AWIPSII_RELEASE = $AWIPSII_RELEASE"
|
||||
echo "AWIPSII_TOP_DIR = $AWIPSII_TOP_DIR"
|
||||
echo "UFRAME_ECLIPSE = $UFRAME_ECLIPSE"
|
||||
echo "AWIPSII_STATIC_FILES = $AWIPSII_STATIC_FILES"
|
||||
echo "AWIPSII_BUILD_ROOT = $AWIPSII_BUILD_ROOT"
|
||||
|
||||
# Prepare the rpm build directory structure
|
||||
mkdir -p ${AWIPSII_TOP_DIR}/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
|
||||
|
||||
pushd . > /dev/null 2>&1
|
||||
cd ${BASELINE}
|
||||
mkdir -p ${WORKSPACE}
|
||||
RSYNC_DIRS=`cat $dir/rsync.dirs`
|
||||
rsync -ruql --delete --exclude-from=${dir}/excludes ${RSYNC_DIRS} ${WORKSPACE}
|
||||
|
||||
popd > /dev/null 2>&1
|
||||
|
||||
# execute the build for the appropriate architecture
|
||||
_rpms_build_directory=${WORKSPACE}/rpms/build
|
||||
_architecture=`uname -i`
|
||||
_build_sh_directory=${_rpms_build_directory}/${_architecture}
|
||||
pushd . > /dev/null 2>&1
|
||||
|
||||
cd ${_build_sh_directory}
|
||||
cp -v ${dir}/buildEnvironment.sh .
|
||||
|
||||
# check rpms/build/x86_64/build.sh for build groups
|
||||
|
||||
build_log=${logdir}/build${1}-${timestamp}.log
|
||||
if [ "${1}" = "-b" -a -n "${2}" ]; then
|
||||
build_log=${logdir}/build-${2}-${timestamp}.log
|
||||
fi
|
||||
|
||||
/bin/bash ${_build_sh_directory}/build.sh ${1} ${2} > ${build_log}
|
||||
|
||||
popd > /dev/null 2>&1
|
||||
|
||||
export rpm_end_dir="${AWIPSII_VERSION}-${AWIPSII_RELEASE}"
|
||||
|
||||
if [ "$(ls -A ${AWIPSII_TOP_DIR}/RPMS/x86_64/)" ]; then
|
||||
mv ${AWIPSII_TOP_DIR}/RPMS/x86_64/* ${JENKINS_HOME}/build/rpms/awips2_${AWIPSII_VERSION}/x86_64/
|
||||
fi
|
||||
if [ "$(ls -A ${AWIPSII_TOP_DIR}/RPMS/noarch/)" ]; then
|
||||
mv ${AWIPSII_TOP_DIR}/RPMS/noarch/* ${JENKINS_HOME}/build/rpms/awips2_${AWIPSII_VERSION}/noarch/
|
||||
fi
|
||||
|
||||
END_TIME=`date "+%s"`
|
||||
TIME_SPENT=$((END_TIME - START_TIME))
|
||||
TTI_HOURS=$((TIME_SPENT/3600))
|
||||
TTI_SECS=$((TIME_SPENT %3600)) #Remaining seconds
|
||||
TTI_MINS=$((TTI_SECS/60))
|
||||
TTI_SECS=$((TTI_SECS%60))
|
||||
echo "Total-time-Spent-In-The-Build-For $0 = $TTI_HOURS hours, $TTI_MINS minutes, $TTI_SECS seconds"
|
||||
|
||||
exit
|
24
build/buildEnvironment.sh
Executable file
24
build/buildEnvironment.sh
Executable file
|
@ -0,0 +1,24 @@
|
|||
#!/bin/bash
|
||||
# Version
|
||||
export AWIPSII_VERSION="17.1.1"
|
||||
export AWIPSII_RELEASE="4"
|
||||
# Author
|
||||
export AWIPSII_BUILD_VENDOR="UCAR"
|
||||
export AWIPSII_BUILD_SITE="Unidata"
|
||||
export AWIPSII_AUTHOR="Michael James <mjames@ucar.edu>"
|
||||
# Directories
|
||||
export UFRAME_ECLIPSE=/awips2/eclipse
|
||||
export JAVA_HOME=/awips2/java
|
||||
export ANT_HOME=/awips2/ant
|
||||
export REPO=/awips2/repo
|
||||
export JENKINS_HOME=/awips2/jenkins
|
||||
export JENKINS_WORKSPACE=${REPO}/awips2-builds
|
||||
export BUILD_DIR=${JENKINS_HOME}/buildspace/
|
||||
export AWIPSII_STATIC_FILES=${REPO}/awips2-static
|
||||
# More env vars
|
||||
export BUILD_WORKSPACE=${BUILD_DIR}/workspace
|
||||
export BASELINE=${JENKINS_WORKSPACE}
|
||||
export AWIPSII_TOP_DIR=${BUILD_WORKSPACE}/tmp/rpms_built_dir
|
||||
export WORKSPACE=${BUILD_WORKSPACE}/AWIPS2-UPC_build/baseline
|
||||
export AWIPSII_BUILD_ROOT=${BUILD_WORKSPACE}/tmp/${USER}/awips-component
|
||||
export REPO_DEST=${BUILD_WORKSPACE}/tmp/${USER}/repo
|
|
@ -1,35 +0,0 @@
|
|||
#!/bin/sh -xe
|
||||
OS_TYPE=$1
|
||||
OS_VERSION=$2
|
||||
|
||||
yum -y clean all
|
||||
yum -y clean expire-cache
|
||||
yum groupinstall "Development tools" -y >& /dev/null
|
||||
yum install wget cmake ruby boost-devel libuuid-devel -y
|
||||
wget -O /etc/yum.repos.d/awips2.repo http://www.unidata.ucar.edu/software/awips2/doc/awips2.repo
|
||||
yum -y clean all
|
||||
yum groupinstall awips2-ade -y >& /dev/null
|
||||
yum install git -y >& /dev/null
|
||||
|
||||
. /awips2/repo/awips2-builds/rpms/unidata/buildEnvironment.sh
|
||||
|
||||
mkdir -p /awips2/jenkins/buildspace/workspace/AWIPS2-UPC_build/baseline
|
||||
mkdir -p /awips2/jenkins/buildspace/workspace/tmp
|
||||
mkdir -p /awips2/jenkins/build/rpms/awips2_${AWIPSII_VERSION}/x86_64/
|
||||
mkdir -p /awips2/jenkins/build/rpms/awips2_${AWIPSII_VERSION}/noarch/
|
||||
|
||||
pushd /awips2/repo
|
||||
|
||||
git clone https://github.com/Unidata/awips2-ncep.git --branch unidata_${AWIPSII_VERSION} --single-branch
|
||||
git clone https://github.com/Unidata/awips2-core.git --branch unidata_${AWIPSII_VERSION} --single-branch
|
||||
git clone https://github.com/Unidata/awips2-core-foss.git --branch unidata_${AWIPSII_VERSION} --single-branch
|
||||
git clone https://github.com/Unidata/awips2-foss.git --branch unidata_${AWIPSII_VERSION} --single-branch
|
||||
git clone https://github.com/Unidata/awips2-rpmbuild.git awips2-rpm --branch unidata_${AWIPSII_VERSION} --single-branch
|
||||
git clone https://github.com/Unidata/awips2-nws.git --branch unidata_${AWIPSII_VERSION} --single-branch
|
||||
|
||||
cd /awips2/repo/awips2-builds/rpms/unidata/
|
||||
|
||||
/bin/bash cibuild.sh -qpid
|
||||
/bin/bash cibuild.sh -b buildEDEX >& /dev/null
|
||||
|
||||
find /awips2/jenkins/build/rpms/awips2_${AWIPSII_VERSION}/
|
53
build/build_rpms.sh
Executable file
53
build/build_rpms.sh
Executable file
|
@ -0,0 +1,53 @@
|
|||
#!/bin/sh -xe
|
||||
# Run rpmbuild scripts for awips
|
||||
# type=$(rpm -qa awips2 | rev | cut -d "." -f3|rev)
|
||||
type=$1
|
||||
if [ -z "$type" ]; then
|
||||
echo "supply type (el6, el7)"
|
||||
exit
|
||||
fi
|
||||
|
||||
. /awips2/repo/awips2-builds/build/buildEnvironment.sh
|
||||
buildsh=$REPO/awips2-builds/build/cibuild.sh
|
||||
pushd $REPO
|
||||
|
||||
# if not mounted to docker container, clone from github
|
||||
if [ ! -d awips2-ncep ]; then git clone https://github.com/Unidata/awips2-ncep.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
|
||||
if [ ! -d awips2-core ]; then git clone https://github.com/Unidata/awips2-core.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
|
||||
if [ ! -d awips2-core-foss ]; then git clone https://github.com/Unidata/awips2-core-foss.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
|
||||
if [ ! -d awips2-foss ]; then git clone https://github.com/Unidata/awips2-foss.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
|
||||
if [ ! -d awips2-nws ]; then git clone https://github.com/Unidata/awips2-nws.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
|
||||
if [ ! -d awips2-rpm ]; then git clone https://github.com/Unidata/awips2-rpm.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
|
||||
if [ ! -d awips2-static ]; then
|
||||
mkdir awips2-static
|
||||
cd awips2-static
|
||||
wget http://www.unidata.ucar.edu/downloads/awips2/static.tar
|
||||
tar -xvf static.tar
|
||||
rm -rf static.tar
|
||||
fi
|
||||
|
||||
# to test the dockerized build procedure on a quick rpm
|
||||
#su - awips -c "/bin/bash $buildsh -b awips2-ldm"
|
||||
|
||||
# provides rpm name as arg (ex: ./build/setup.sh el7 awips2-python-jep)
|
||||
prog=$2
|
||||
if [ ! -z "$prog" ]; then
|
||||
su - awips -c "/bin/bash $buildsh -b $prog"
|
||||
else
|
||||
# Build all groups (in this order)
|
||||
#su - awips -c "/bin/bash $buildsh -ade"
|
||||
#su - awips -c "/bin/bash $buildsh -python"
|
||||
#su - awips -c "/bin/bash $buildsh -qpid"
|
||||
#su - awips -c "/bin/bash $buildsh -server"
|
||||
su - awips -c "/bin/bash $buildsh -edex"
|
||||
#su - awips -c "/bin/bash $buildsh -database"
|
||||
#su - awips -c "/bin/bash $buildsh -cave"
|
||||
fi
|
||||
|
||||
# Manage RPMs
|
||||
if [ "$(ls -A ${JENKINS_HOME}/build/rpms/awips2_${AWIPSII_VERSION}/x86_64/)" ]; then
|
||||
mv ${JENKINS_HOME}/build/rpms/awips2_${AWIPSII_VERSION}/x86_64/* /awips2/repo/awips2-builds/dist/${type}-dev/x86_64/
|
||||
fi
|
||||
if [ "$(ls -A ${JENKINS_HOME}/build/rpms/awips2_${AWIPSII_VERSION}/noarch/)" ]; then
|
||||
mv ${JENKINS_HOME}/build/rpms/awips2_${AWIPSII_VERSION}/noarch/* /awips2/repo/awips2-builds/dist/${type}-dev/noarch/
|
||||
fi
|
75
build/cibuild.sh
Executable file
75
build/cibuild.sh
Executable file
|
@ -0,0 +1,75 @@
|
|||
#!/bin/bash -v
|
||||
set -xe
|
||||
|
||||
# Determine where we are
|
||||
path_to_script=`readlink -f $0`
|
||||
dir=$(dirname $path_to_script)
|
||||
source ${dir}/buildEnvironment.sh
|
||||
|
||||
export _script_dir=${dir}
|
||||
echo "Running build.sh from ${_script_dir}"
|
||||
echo " JENKINS_WORKSPACE = ${JENKINS_WORKSPACE}"
|
||||
cd ${dir}
|
||||
|
||||
START_TIME=`date "+%s"`
|
||||
timestamp=`date +%Y_%m_%d_%H:%M:%S`
|
||||
|
||||
# Cleanup before building CAVE rpms
|
||||
if [[ ${2} = "buildCAVE" ]]; then
|
||||
rm -rf ${JENKINS_HOME}/buildspace/workspace/AWIPS2-UPC_build/baseline/
|
||||
rm -rf ${JENKINS_HOME}/buildspace/workspace/tmp/${USER}/
|
||||
fi
|
||||
|
||||
echo "BUILD_DIR = $BUILD_DIR"
|
||||
echo "BUILD_WORKSPACE = $BUILD_WORKSPACE"
|
||||
echo "BASELINE = $BASELINE"
|
||||
echo "WORKSPACE = $WORKSPACE"
|
||||
echo "AWIPSII_VERSION = $AWIPSII_VERSION"
|
||||
echo "AWIPSII_RELEASE = $AWIPSII_RELEASE"
|
||||
echo "AWIPSII_TOP_DIR = $AWIPSII_TOP_DIR"
|
||||
echo "UFRAME_ECLIPSE = $UFRAME_ECLIPSE"
|
||||
echo "AWIPSII_STATIC_FILES = $AWIPSII_STATIC_FILES"
|
||||
echo "AWIPSII_BUILD_ROOT = $AWIPSII_BUILD_ROOT"
|
||||
|
||||
# Prepare the rpm build directory structure
|
||||
mkdir -p ${AWIPSII_TOP_DIR}/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
|
||||
|
||||
pushd . > /dev/null 2>&1
|
||||
cd ${BASELINE}
|
||||
mkdir -p ${WORKSPACE}
|
||||
RSYNC_DIRS=`cat $dir/rsync.dirs`
|
||||
rsync -ruql --delete --exclude-from=${dir}/excludes ${RSYNC_DIRS} ${WORKSPACE}
|
||||
|
||||
popd > /dev/null 2>&1
|
||||
|
||||
# execute the build for the appropriate architecture
|
||||
_rpms_build_directory=${WORKSPACE}/rpms/build
|
||||
_architecture=`uname -i`
|
||||
_build_sh_directory=${_rpms_build_directory}/${_architecture}
|
||||
pushd . > /dev/null 2>&1
|
||||
|
||||
cd ${_build_sh_directory}
|
||||
cp -v ${dir}/buildEnvironment.sh .
|
||||
|
||||
/bin/bash ${_build_sh_directory}/build.sh ${1} ${2}
|
||||
|
||||
popd > /dev/null 2>&1
|
||||
|
||||
export rpm_end_dir="${AWIPSII_VERSION}-${AWIPSII_RELEASE}"
|
||||
|
||||
if [ "$(ls -A ${AWIPSII_TOP_DIR}/RPMS/x86_64/)" ]; then
|
||||
mv ${AWIPSII_TOP_DIR}/RPMS/x86_64/* ${JENKINS_HOME}/build/rpms/awips2_${AWIPSII_VERSION}/x86_64/
|
||||
fi
|
||||
if [ "$(ls -A ${AWIPSII_TOP_DIR}/RPMS/noarch/)" ]; then
|
||||
mv ${AWIPSII_TOP_DIR}/RPMS/noarch/* ${JENKINS_HOME}/build/rpms/awips2_${AWIPSII_VERSION}/noarch/
|
||||
fi
|
||||
|
||||
END_TIME=`date "+%s"`
|
||||
TIME_SPENT=$((END_TIME - START_TIME))
|
||||
TTI_HOURS=$((TIME_SPENT/3600))
|
||||
TTI_SECS=$((TIME_SPENT %3600)) #Remaining seconds
|
||||
TTI_MINS=$((TTI_SECS/60))
|
||||
TTI_SECS=$((TTI_SECS%60))
|
||||
echo "Total-time-Spent-In-The-Build-For $0 = $TTI_HOURS hours, $TTI_MINS minutes, $TTI_SECS seconds"
|
||||
|
||||
exit
|
260
build/comps.xml
Normal file
260
build/comps.xml
Normal file
|
@ -0,0 +1,260 @@
|
|||
<comps>
|
||||
<group>
|
||||
<id>awips2-ade</id>
|
||||
<name>AWIPS Development</name>
|
||||
<default>true</default>
|
||||
<description>This Will Install All Of The AWIPS Components That Are Required For Deploying in Eclipse (non DB)</description>
|
||||
<uservisible>true</uservisible>
|
||||
<packagelist>
|
||||
<packagereq type="default">awips2</packagereq>
|
||||
<packagereq type="default">awips2-java</packagereq>
|
||||
<packagereq type="default">awips2-eclipse</packagereq>
|
||||
<packagereq type="default">awips2-ant</packagereq>
|
||||
<packagereq type="default">awips2-groovy</packagereq>
|
||||
<packagereq type="default">awips2-ldm</packagereq>
|
||||
<packagereq type="default">awips2-python</packagereq>
|
||||
<packagereq type="default">awips2-python-cython</packagereq>
|
||||
<packagereq type="default">awips2-python-dateutil</packagereq>
|
||||
<packagereq type="default">awips2-python-numpy</packagereq>
|
||||
<packagereq type="default">awips2-python-pyparsing</packagereq>
|
||||
<packagereq type="default">awips2-python-pytz</packagereq>
|
||||
<packagereq type="default">awips2-python-setuptools</packagereq>
|
||||
<packagereq type="default">awips2-python-six</packagereq>
|
||||
<packagereq type="default">awips2-qpid-lib</packagereq>
|
||||
</packagelist>
|
||||
</group>
|
||||
<group>
|
||||
<id>awips2-ade-server</id>
|
||||
<name>AWIPS ADE SERVER</name>
|
||||
<default>true</default>
|
||||
<description>This Will Install All Of The AWIPS Components That Are Required For Deploying EDEX services locally and in Eclipse.</description>
|
||||
<uservisible>true</uservisible>
|
||||
<packagelist>
|
||||
<packagereq type="default">awips2</packagereq>
|
||||
<packagereq type="default">awips2-eclipse</packagereq>
|
||||
<packagereq type="default">awips2-ant</packagereq>
|
||||
<packagereq type="default">awips2-java</packagereq>
|
||||
<packagereq type="default">awips2-groovy</packagereq>
|
||||
<packagereq type="default">awips2-postgresql</packagereq>
|
||||
<packagereq type="default">awips2-psql</packagereq>
|
||||
<packagereq type="default">awips2-database</packagereq>
|
||||
<packagereq type="default">awips2-httpd-pypies</packagereq>
|
||||
<packagereq type="default">awips2-qpid-java-client</packagereq>
|
||||
<packagereq type="default">awips2-qpid-java-broker</packagereq>
|
||||
<packagereq type="default">awips2-qpid-lib</packagereq>
|
||||
<packagereq type="default">awips2-localization</packagereq>
|
||||
<packagereq type="default">awips2-ldm</packagereq>
|
||||
<packagereq type="default">awips2-tools</packagereq>
|
||||
<packagereq type="default">awips2-maps-database</packagereq>
|
||||
<packagereq type="default">awips2-data.hdf5-topo</packagereq>
|
||||
<packagereq type="default">awips2-ncep-database</packagereq>
|
||||
<packagereq type="default">awips2-python</packagereq>
|
||||
<packagereq type="default">awips2-python-awips</packagereq>
|
||||
<packagereq type="default">awips2-python-cython</packagereq>
|
||||
<packagereq type="default">awips2-python-dateutil</packagereq>
|
||||
<packagereq type="default">awips2-python-gfe</packagereq>
|
||||
<packagereq type="default">awips2-python-h5py</packagereq>
|
||||
<packagereq type="default">awips2-python-jep</packagereq>
|
||||
<packagereq type="default">awips2-python-matplotlib</packagereq>
|
||||
<packagereq type="default">awips2-python-numpy</packagereq>
|
||||
<packagereq type="default">awips2-python-pyparsing</packagereq>
|
||||
<packagereq type="default">awips2-python-pytz</packagereq>
|
||||
<packagereq type="default">awips2-python-qpid</packagereq>
|
||||
<packagereq type="default">awips2-python-scientific</packagereq>
|
||||
<packagereq type="default">awips2-python-setuptools</packagereq>
|
||||
<packagereq type="default">awips2-python-shapely</packagereq>
|
||||
<packagereq type="default">awips2-python-six</packagereq>
|
||||
<packagereq type="default">awips2-python-tables</packagereq>
|
||||
<packagereq type="default">awips2-python-werkzeug</packagereq>
|
||||
</packagelist>
|
||||
</group>
|
||||
<group>
|
||||
<id>awips2-ingest</id>
|
||||
<name>AWIPS EDEX Decode/Ingest Node (No Database, PyPIES, GFE)</name>
|
||||
<default>true</default>
|
||||
<description></description>
|
||||
<uservisible>true</uservisible>
|
||||
<packagelist>
|
||||
<packagereq type="default">awips2</packagereq>
|
||||
<packagereq type="default">awips2-common-base</packagereq>
|
||||
<packagereq type="default">awips2-psql</packagereq>
|
||||
<packagereq type="default">awips2-edex</packagereq>
|
||||
<packagereq type="default">awips2-edex-base</packagereq>
|
||||
<packagereq type="default">awips2-edex-common-core</packagereq>
|
||||
<packagereq type="default">awips2-edex-core</packagereq>
|
||||
<packagereq type="default">awips2-edex-cots</packagereq>
|
||||
<packagereq type="default">awips2-edex-dataplugins</packagereq>
|
||||
<packagereq type="default">awips2-edex-ncep</packagereq>
|
||||
<packagereq type="default">awips2-java</packagereq>
|
||||
<packagereq type="default">awips2-ldm</packagereq>
|
||||
<packagereq type="default">awips2-python</packagereq>
|
||||
<packagereq type="default">awips2-python-awips</packagereq>
|
||||
<packagereq type="default">awips2-python-cycler</packagereq>
|
||||
<packagereq type="default">awips2-python-cython</packagereq>
|
||||
<packagereq type="default">awips2-python-dateutil</packagereq>
|
||||
<packagereq type="default">awips2-python-h5py</packagereq>
|
||||
<packagereq type="default">awips2-python-jep</packagereq>
|
||||
<packagereq type="default">awips2-python-matplotlib</packagereq>
|
||||
<packagereq type="default">awips2-python-numpy</packagereq>
|
||||
<packagereq type="default">awips2-python-pyparsing</packagereq>
|
||||
<packagereq type="default">awips2-python-pytz</packagereq>
|
||||
<packagereq type="default">awips2-python-qpid</packagereq>
|
||||
<packagereq type="default">awips2-python-scientific</packagereq>
|
||||
<packagereq type="default">awips2-python-shapely</packagereq>
|
||||
<packagereq type="default">awips2-python-six</packagereq>
|
||||
<packagereq type="default">awips2-python-tables</packagereq>
|
||||
<packagereq type="default">awips2-python-werkzeug</packagereq>
|
||||
<packagereq type="default">awips2-qpid-java-broker</packagereq>
|
||||
<packagereq type="default">awips2-qpid-java-client</packagereq>
|
||||
<packagereq type="default">awips2-qpid-lib</packagereq>
|
||||
<packagereq type="default">awips2-tools</packagereq>
|
||||
<packagereq type="default">awips2-yajsw</packagereq>
|
||||
</packagelist>
|
||||
</group>
|
||||
<group>
|
||||
<id>awips2-database</id>
|
||||
<name>AWIPS EDEX Database/Request Server</name>
|
||||
<default>true</default>
|
||||
<description>This Will Install All Of The AWIPS Components That Are Required For A Standalone Request/Database Environment.</description>
|
||||
<uservisible>true</uservisible>
|
||||
<packagelist>
|
||||
<packagereq type="default">awips2</packagereq>
|
||||
<packagereq type="default">awips2-cli</packagereq>
|
||||
<packagereq type="default">awips2-common-base</packagereq>
|
||||
<packagereq type="default">awips2-database</packagereq>
|
||||
<packagereq type="default">awips2-data.gfe</packagereq>
|
||||
<packagereq type="default">awips2-data.hdf5-topo</packagereq>
|
||||
<packagereq type="default">awips2-edex</packagereq>
|
||||
<packagereq type="default">awips2-edex-base</packagereq>
|
||||
<packagereq type="default">awips2-edex-common-core</packagereq>
|
||||
<packagereq type="default">awips2-edex-core</packagereq>
|
||||
<packagereq type="default">awips2-edex-cots</packagereq>
|
||||
<packagereq type="default">awips2-edex-dataplugins</packagereq>
|
||||
<packagereq type="default">awips2-edex-gfe</packagereq>
|
||||
<packagereq type="default">awips2-gfesuite</packagereq>
|
||||
<packagereq type="default">awips2-edex-ncep</packagereq>
|
||||
<packagereq type="default">awips2-edex-shapefiles</packagereq>
|
||||
<packagereq type="default">awips2-edex-request</packagereq>
|
||||
<packagereq type="default">awips2-httpd-pypies</packagereq>
|
||||
<packagereq type="default">awips2-java</packagereq>
|
||||
<packagereq type="default">awips2-maps-database</packagereq>
|
||||
<packagereq type="default">awips2-ncep-database</packagereq>
|
||||
<packagereq type="default">awips2-postgresql</packagereq>
|
||||
<packagereq type="default">awips2-psql</packagereq>
|
||||
<packagereq type="default">awips2-pypies</packagereq>
|
||||
<packagereq type="default">awips2-python</packagereq>
|
||||
<packagereq type="default">awips2-python-awips</packagereq>
|
||||
<packagereq type="default">awips2-python-cycler</packagereq>
|
||||
<packagereq type="default">awips2-python-cython</packagereq>
|
||||
<packagereq type="default">awips2-python-dateutil</packagereq>
|
||||
<packagereq type="default">awips2-python-h5py</packagereq>
|
||||
<packagereq type="default">awips2-python-jep</packagereq>
|
||||
<packagereq type="default">awips2-python-matplotlib</packagereq>
|
||||
<packagereq type="default">awips2-python-numpy</packagereq>
|
||||
<packagereq type="default">awips2-python-pyparsing</packagereq>
|
||||
<packagereq type="default">awips2-python-pytz</packagereq>
|
||||
<packagereq type="default">awips2-python-qpid</packagereq>
|
||||
<packagereq type="default">awips2-python-scientific</packagereq>
|
||||
<packagereq type="default">awips2-python-shapely</packagereq>
|
||||
<packagereq type="default">awips2-python-six</packagereq>
|
||||
<packagereq type="default">awips2-python-tables</packagereq>
|
||||
<packagereq type="default">awips2-python-werkzeug</packagereq>
|
||||
<packagereq type="default">awips2-qpid-java-broker</packagereq>
|
||||
<packagereq type="default">awips2-qpid-java-client</packagereq>
|
||||
<packagereq type="default">awips2-qpid-lib</packagereq>
|
||||
<packagereq type="default">awips2-tools</packagereq>
|
||||
<packagereq type="default">awips2-localization</packagereq>
|
||||
<packagereq type="default">awips2-yajsw</packagereq>
|
||||
<packagereq type="default">mod_ssl</packagereq>
|
||||
</packagelist>
|
||||
</group>
|
||||
<group>
|
||||
<id>awips2-server</id>
|
||||
<name>AWIPS EDEX Server</name>
|
||||
<default>true</default>
|
||||
<description>This Will Install All Of The AWIPS Components That Are Required For A Standalone / ADAM Environment.</description>
|
||||
<uservisible>true</uservisible>
|
||||
<packagelist>
|
||||
<packagereq type="default">awips2</packagereq>
|
||||
<packagereq type="default">awips2-cli</packagereq>
|
||||
<packagereq type="default">awips2-common-base</packagereq>
|
||||
<packagereq type="default">awips2-database</packagereq>
|
||||
<packagereq type="default">awips2-data.gfe</packagereq>
|
||||
<packagereq type="default">awips2-data.hdf5-topo</packagereq>
|
||||
<packagereq type="default">awips2-edex</packagereq>
|
||||
<packagereq type="default">awips2-edex-base</packagereq>
|
||||
<packagereq type="default">awips2-edex-common-core</packagereq>
|
||||
<packagereq type="default">awips2-edex-core</packagereq>
|
||||
<packagereq type="default">awips2-edex-cots</packagereq>
|
||||
<packagereq type="default">awips2-edex-dataplugins</packagereq>
|
||||
<packagereq type="default">awips2-edex-gfe</packagereq>
|
||||
<packagereq type="default">awips2-gfesuite</packagereq>
|
||||
<packagereq type="default">awips2-edex-ncep</packagereq>
|
||||
<packagereq type="default">awips2-edex-shapefiles</packagereq>
|
||||
<packagereq type="default">awips2-httpd-pypies</packagereq>
|
||||
<packagereq type="default">awips2-httpd-pypies-tools</packagereq>
|
||||
<packagereq type="default">awips2-java</packagereq>
|
||||
<packagereq type="default">awips2-ldm</packagereq>
|
||||
<packagereq type="default">awips2-maps-database</packagereq>
|
||||
<packagereq type="default">awips2-ncep-database</packagereq>
|
||||
<packagereq type="default">awips2-postgresql</packagereq>
|
||||
<packagereq type="default">awips2-psql</packagereq>
|
||||
<packagereq type="default">awips2-pypies</packagereq>
|
||||
<packagereq type="default">awips2-python</packagereq>
|
||||
<packagereq type="default">awips2-python-awips</packagereq>
|
||||
<packagereq type="default">awips2-python-cycler</packagereq>
|
||||
<packagereq type="default">awips2-python-cython</packagereq>
|
||||
<packagereq type="default">awips2-python-dateutil</packagereq>
|
||||
<packagereq type="default">awips2-python-h5py</packagereq>
|
||||
<packagereq type="default">awips2-python-jep</packagereq>
|
||||
<packagereq type="default">awips2-python-matplotlib</packagereq>
|
||||
<packagereq type="default">awips2-python-numpy</packagereq>
|
||||
<packagereq type="default">awips2-python-pyparsing</packagereq>
|
||||
<packagereq type="default">awips2-python-pytz</packagereq>
|
||||
<packagereq type="default">awips2-python-qpid</packagereq>
|
||||
<packagereq type="default">awips2-python-scientific</packagereq>
|
||||
<packagereq type="default">awips2-python-shapely</packagereq>
|
||||
<packagereq type="default">awips2-python-six</packagereq>
|
||||
<packagereq type="default">awips2-python-tables</packagereq>
|
||||
<packagereq type="default">awips2-python-werkzeug</packagereq>
|
||||
<packagereq type="default">awips2-qpid-java-broker</packagereq>
|
||||
<packagereq type="default">awips2-qpid-java-client</packagereq>
|
||||
<packagereq type="default">awips2-qpid-lib</packagereq>
|
||||
<packagereq type="default">awips2-tools</packagereq>
|
||||
<packagereq type="default">awips2-localization</packagereq>
|
||||
<packagereq type="default">awips2-yajsw</packagereq>
|
||||
<packagereq type="default">mod_ssl</packagereq>
|
||||
</packagelist>
|
||||
</group>
|
||||
<group>
|
||||
<id>awips2-cave</id>
|
||||
<name>AWIPS CAVE</name>
|
||||
<default>true</default>
|
||||
<description>This Will Install The AWIPS Visualization Environment Including: CAVE, AlertViz, ...</description>
|
||||
<uservisible>true</uservisible>
|
||||
<packagelist>
|
||||
<packagereq type="default">awips2</packagereq>
|
||||
<packagereq type="default">awips2-java</packagereq>
|
||||
<packagereq type="default">awips2-python</packagereq>
|
||||
<packagereq type="default">awips2-python-awips</packagereq>
|
||||
<packagereq type="default">awips2-python-cython</packagereq>
|
||||
<packagereq type="default">awips2-python-dateutil</packagereq>
|
||||
<packagereq type="default">awips2-python-gfe</packagereq>
|
||||
<packagereq type="default">awips2-python-h5py</packagereq>
|
||||
<packagereq type="default">awips2-python-jep</packagereq>
|
||||
<packagereq type="default">awips2-python-matplotlib</packagereq>
|
||||
<packagereq type="default">awips2-python-numpy</packagereq>
|
||||
<packagereq type="default">awips2-python-pyparsing</packagereq>
|
||||
<packagereq type="default">awips2-python-pytz</packagereq>
|
||||
<packagereq type="default">awips2-python-scientific</packagereq>
|
||||
<packagereq type="default">awips2-python-shapely</packagereq>
|
||||
<packagereq type="default">awips2-python-six</packagereq>
|
||||
<packagereq type="default">awips2-python-tables</packagereq>
|
||||
<packagereq type="default">awips2-python-werkzeug</packagereq>
|
||||
<packagereq type="default">awips2-cave</packagereq>
|
||||
<packagereq type="default">awips2-cave-wrapper</packagereq>
|
||||
<packagereq type="default">awips2-gfesuite</packagereq>
|
||||
<packagereq type="default">awips2-notification</packagereq>
|
||||
</packagelist>
|
||||
</group>
|
||||
</comps>
|
|
@ -1,36 +0,0 @@
|
|||
#!/bin/bash
|
||||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
# resolve/set local variables
|
||||
path_to_script=`readlink -f $0`
|
||||
dir=$(dirname $path_to_script)
|
||||
dir=$(dirname $dir)
|
||||
awips_home=$(dirname $dir)
|
||||
|
||||
rpm -q awips2-java > /dev/null 2>&1
|
||||
RC=$?
|
||||
if [ ${RC} -ne 0 ]; then
|
||||
echo "ERROR: awips2-java Must Be Installed."
|
||||
echo "Unable To Continue ... Terminating."
|
||||
fi
|
||||
|
||||
JAVA_INSTALL=`rpm -q --queryformat '%{INSTPREFIXES}' awips2-java`
|
||||
|
||||
${JAVA_INSTALL}/bin/java -classpath $awips_home/edex/lib/plugins/plugin-warning.jar:$awips_home/edex/lib/dependencies/org.geotools/jts-1.9.jar com.raytheon.edex.plugin.warning.tools.DamInfoTranslator $@
|
|
@ -1,20 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Omaha #3690: Finds empty localization directories and deletes them with the
|
||||
# '-d' flag. This can improve performance in some areas of the system.
|
||||
|
||||
if [[ $1 == '-d' ]]
|
||||
then
|
||||
echo "Delete all directory trees that don't contain regular files? [y/n]"
|
||||
read answer
|
||||
if [[ $answer == 'y' || $answer == 'Y' ]]
|
||||
then
|
||||
DEL_OPTS='-delete -print'
|
||||
echo "Deleting the following directories"
|
||||
else
|
||||
echo "Aborting"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
find /awips2/edex/data/utility -type d -empty $DEL_OPTS
|
|
@ -1,42 +0,0 @@
|
|||
export AW_SITE_IDENTIFIER=OAX
|
||||
export EXT_ADDR=external
|
||||
|
||||
# database
|
||||
export DC_DB_NAME=dc_ob7oax
|
||||
export FXA_DB_NAME=fxatext
|
||||
export HM_DB_NAME=hmdb
|
||||
export IH_DB_NAME=hd_ob92oax
|
||||
export DATA_ARCHIVE_ROOT=/awips2/data_store
|
||||
|
||||
# postgres connection
|
||||
export DB_ADDR=localhost
|
||||
export DB_PORT=5432
|
||||
|
||||
# qpid connection
|
||||
export BROKER_ADDR=localhost
|
||||
|
||||
# pypies hdf5 connection
|
||||
export PYPIES_SERVER=http://${EXT_ADDR}:9582
|
||||
|
||||
# these values are returned to clients that contact the localization service
|
||||
export HTTP_PORT=9581
|
||||
export HTTP_SERVER_PATH=/services
|
||||
export HTTP_SERVER=http://${EXT_ADDR}:${HTTP_PORT}${HTTP_SERVER_PATH}
|
||||
# for manualIngest this needs to be localhost(??)
|
||||
export JMS_SERVER=tcp://${EXT_ADDR}:5672
|
||||
export JMS_VIRTUALHOST=edex
|
||||
export JMS_CONNECTIONS_URL=http://${EXT_ADDR}:8180/api/latest/connection/${JMS_VIRTUALHOST}
|
||||
|
||||
# data delivery config
|
||||
#export CLUSTER_ID=NCF
|
||||
#export DATADELIVERY_HOST=thredds.ucar.edu
|
||||
#export EBXML_REGISTRY_FEDERATION_ENABLED=true
|
||||
#export EBXML_REGISTRY_WEBSERVER_PORT=80
|
||||
#export EBXML_THRIFT_SERVICE_PORT=9588
|
||||
|
||||
# hydroapps config
|
||||
export SHARE_DIR=/awips2/edex/data/share
|
||||
export TEMP_DIR=/awips2/edex/data/tmp
|
||||
export apps_dir=${SHARE_DIR}/hydroapps
|
||||
export SITE_IDENTIFIER=${AW_SITE_IDENTIFIER}
|
||||
export AWIPS2_TEMP=/awips2/tmp
|
|
@ -1,110 +0,0 @@
|
|||
#!/bin/bash
|
||||
# edex startup script
|
||||
|
||||
# Verify awips2 RPMs are installed
|
||||
rpm -q awips2-python > /dev/null 2>&1
|
||||
RC=$?
|
||||
if [ ${RC} -ne 0 ]; then
|
||||
echo "ERROR: awips2-python Must Be Installed."
|
||||
exit 1
|
||||
fi
|
||||
rpm -q awips2-java > /dev/null 2>&1
|
||||
RC=$?
|
||||
if [ ${RC} -ne 0 ]; then
|
||||
echo "ERROR: awips2-java Must Be Installed."
|
||||
exit 1
|
||||
fi
|
||||
rpm -q awips2-psql > /dev/null 2>&1
|
||||
RC=$?
|
||||
if [ ${RC} -ne 0 ]; then
|
||||
echo "ERROR: awips2-psql Must Be Installed."
|
||||
exit 1
|
||||
fi
|
||||
rpm -q awips2-yajsw > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR: awips2-yajsw Must Be Installed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
path_to_script=`readlink -f $0`
|
||||
dir=$(dirname $path_to_script)
|
||||
export EDEX_HOME=$(dirname $dir)
|
||||
awips_home=$(dirname $EDEX_HOME)
|
||||
export HOSTNAME=`hostname`
|
||||
export SHORT_HOSTNAME=`hostname -s`
|
||||
|
||||
PYTHON_INSTALL="/awips2/python"
|
||||
JAVA_INSTALL="/awips2/java"
|
||||
PSQL_INSTALL="/awips2/psql"
|
||||
YAJSW_HOME="/awips2/yajsw"
|
||||
|
||||
# Source The File With The Localization Information
|
||||
source ${dir}/setup.env
|
||||
|
||||
export JAVA_HOME="${JAVA_INSTALL}"
|
||||
export PATH=${PSQL_INSTALL}/bin:${JAVA_INSTALL}/bin:${PYTHON_INSTALL}/bin:/awips2/tools/bin:$PATH
|
||||
export LD_LIBRARY_PATH=${JAVA_INSTALL}/lib:${PYTHON_INSTALL}/lib:${PSQL_INSTALL}/lib:$LD_LIBRARY_PATH
|
||||
export FXA_DATA=/awips2/fxa/data
|
||||
export ALLOW_ARCHIVE_DATA="false"
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#read and interpret the command line arguments
|
||||
#-------------------------------------------------------------------------
|
||||
CONSOLE_FLAG=on
|
||||
CONSOLE_LOGLEVEL=DEBUG
|
||||
DEBUG_FLAG=off
|
||||
PROFILE_FLAG=off
|
||||
CONF_FILE="wrapper.conf"
|
||||
RUN_MODE=
|
||||
for arg in $@
|
||||
do
|
||||
case $arg in
|
||||
-b|-d|--debug|-db|-bd) DEBUG_FLAG=on;;
|
||||
-p|--profiler) PROFILE_FLAG=on;;
|
||||
-h|--highmem) ;; # does nothing, only here to prevent issues if someone still uses -h
|
||||
-noConsole) CONSOLE_FLAG=off;;
|
||||
*) RUN_MODE=$arg;;
|
||||
esac
|
||||
done
|
||||
|
||||
export EDEX_RUN_MODE=$RUN_MODE
|
||||
|
||||
if [ $CONSOLE_FLAG == "off" ]; then
|
||||
CONSOLE_LOGLEVEL=NONE
|
||||
fi
|
||||
|
||||
export CONSOLE_LOGLEVEL
|
||||
|
||||
# source environment files
|
||||
. $EDEX_HOME/etc/default.sh
|
||||
|
||||
if [ -e $EDEX_HOME/etc/${RUN_MODE}.sh ]; then
|
||||
. $EDEX_HOME/etc/${RUN_MODE}.sh
|
||||
fi
|
||||
|
||||
if [ $PROFILE_FLAG == "on" ]; then
|
||||
. $EDEX_HOME/etc/profiler.sh
|
||||
fi
|
||||
|
||||
# enable core dumps
|
||||
#ulimit -c unlimited
|
||||
|
||||
WRAPPER_ARGS=""
|
||||
if [ $DEBUG_FLAG == "on" ]; then
|
||||
WRAPPER_ARGS="wrapper.java.debug.port=${EDEX_DEBUG_PORT}"
|
||||
echo "To Debug ... Connect to Port: ${EDEX_DEBUG_PORT}."
|
||||
fi
|
||||
|
||||
#create tmp dir
|
||||
mkdir -p ${AWIPS2_TEMP}
|
||||
|
||||
RC=$?
|
||||
if [ ${RC} -ne 0 ]; then
|
||||
echo "ERROR: Failed to create temp directory ${AWIPS2_TEMP}."
|
||||
echo "Unable To Continue ... Terminating."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
YAJSW_JVM_ARGS="-Xmx32m -XX:ReservedCodeCacheSize=16m -Djava.io.tmpdir=${AWIPS2_TEMP}"
|
||||
|
||||
java ${YAJSW_JVM_ARGS} -jar ${YAJSW_HOME}/wrapper.jar -c ${EDEX_HOME}/conf/${CONF_FILE} ${WRAPPER_ARGS}
|
|
@ -1,16 +0,0 @@
|
|||
<configuration debug="false" scan="true">
|
||||
<!--
|
||||
The requestHydro EDEX mode is currently only used by the ALR site.
|
||||
-->
|
||||
<include file="${edex.home}/conf/logback-edex-properties.xml"/>
|
||||
<include file="${edex.home}/conf/logback-edex-appenders.xml" />
|
||||
|
||||
<include file="${edex.home}/conf/logback-edex-loggers.xml" />
|
||||
<include file="${edex.home}/conf/logback-edex-hibernate-logger.xml" />
|
||||
|
||||
<!-- default logging -->
|
||||
<root>
|
||||
<level value="INFO"/>
|
||||
<appender-ref ref="asyncConsole"/>
|
||||
</root>
|
||||
</configuration>
|
|
@ -1,11 +0,0 @@
|
|||
#!/bin/bash
|
||||
export MAX_MEM=1536 # in Meg
|
||||
if [ $HIGH_MEM == "on" ]; then
|
||||
export MAX_MEM=2048
|
||||
fi
|
||||
export SERIALIZE_POOL_MAX_SIZE=24
|
||||
export SERIALIZE_STREAM_INIT_SIZE_MB=2
|
||||
export SERIALIZE_STREAM_MAX_SIZE_MB=8
|
||||
export EDEX_DEBUG_PORT=5005
|
||||
export EDEX_JMX_PORT=1616
|
||||
export MGMT_PORT=9601
|
|
@ -2,6 +2,7 @@
|
|||
source buildEnvironment.sh
|
||||
export LD_LIBRARY_PATH=/usr/lib:/lib:/usr/lib64:/lib64
|
||||
export RPMDIR=/awips2/jenkins/build/rpms/awips2_${AWIPSII_VERSION}/
|
||||
cp comps.xml ${RPMDIR}
|
||||
cd ${RPMDIR}
|
||||
pwd
|
||||
repomanage -k2 --old . | xargs rm -f
|
||||
|
@ -9,3 +10,8 @@ createrepo -g ./comps.xml .
|
|||
unset LD_LIBRARY_PATH
|
||||
. /etc/profile.d/awips2.sh
|
||||
rsync --archive --delete $RPMDIR tomcat@www:/web/content/repos/yum/awips2-dev/
|
||||
|
||||
cd ..
|
||||
#rm -rf awips2_${AWIPSII_VERSION}.tar
|
||||
#tar -cf awips2_${AWIPSII_VERSION}.tar awips2_${AWIPSII_VERSION}
|
||||
#scp awips2_${AWIPSII_VERSION}.tar mjames@129.114.17.218:/awips2/repo/
|
|
@ -1,4 +1,4 @@
|
|||
build/* edexOsgi/* cave/* localization/*
|
||||
edexOsgi/* cave/* localization/*
|
||||
javaUtilities/* rpms pythonPackages nativeLib/*
|
||||
*.pdf
|
||||
../awips2-core/common/*
|
|
@ -1,15 +1,33 @@
|
|||
#!/bin/sh -xe
|
||||
os_type=$1
|
||||
os_version=$2
|
||||
|
||||
if [ "$os_version" = "centos6" ]; then
|
||||
sudo docker run --rm=true -v `pwd`:/awips2/repo/awips2-builds:rw ${os_type}:${os_version} /bin/bash -c "bash -xe /awips2/repo/awips2-builds/build/build_rhel.sh ${os_type} ${os_version}"
|
||||
elif [ "$os_version" = "centos7" ]; then
|
||||
sudo docker run --privileged -d -ti -e "container=docker" -v `pwd`:/awips2/repo/awips2-builds:rw ${os_type}:${os_version} /usr/sbin/init
|
||||
DOCKER_CONTAINER_ID=$(sudo docker ps | grep ${os_version} | awk '{print $1}' | head -1 )
|
||||
sudo docker logs $DOCKER_CONTAINER_ID
|
||||
sudo docker exec -ti $DOCKER_CONTAINER_ID /bin/bash -xec "bash -xe /awips2/repo/awips2-builds/build/build_rhel.sh ${os_type} ${os_version}";
|
||||
sudo docker ps -a
|
||||
sudo docker stop $DOCKER_CONTAINER_ID
|
||||
sudo docker rm -v $DOCKER_CONTAINER_ID
|
||||
if [ -z "$1" ]; then
|
||||
echo "supply type (el6, el7)"
|
||||
exit
|
||||
fi
|
||||
os_version=$1
|
||||
builds_dir=" -v `pwd`:/awips2/repo/awips2-builds:rw "
|
||||
|
||||
# if repos exist locally, mount rather than clone (see build_rpms.sh)
|
||||
if [ -d /awips2/repo/awips2-static ]; then static_dir=" -v /awips2/repo/awips2-static:/awips2/repo/awips2-static " ;fi
|
||||
if [ -d /awips2/repo/awips2-rpm ]; then rpm_dir=" -v /awips2/repo/awips2-rpm:/awips2/repo/awips2-rpm " ;fi
|
||||
if [ -d /awips2/repo/awips2-core ]; then core_dir=" -v /awips2/repo/awips2-core:/awips2/repo/awips2-core " ;fi
|
||||
if [ -d /awips2/repo/awips2-core-foss ]; then corefoss_dir=" -v /awips2/repo/awips2-core-foss:/awips2/repo/awips2-core-foss " ;fi
|
||||
if [ -d /awips2/repo/awips2-foss ]; then foss_dir=" -v /awips2/repo/awips2-foss:/awips2/repo/awips2-foss " ;fi
|
||||
if [ -d /awips2/repo/awips2-nws ]; then nws_dir=" -v /awips2/repo/awips2-nws:/awips2/repo/awips2-nws " ;fi
|
||||
if [ -d /awips2/repo/awips2-ncep ]; then ncep_dir=" -v /awips2/repo/awips2-ncep:/awips2/repo/awips2-ncep " ;fi
|
||||
if [ -d /awips2/repo/python-awips ]; then python_dir=" -v /awips2/repo/python-awips:/awips2/repo/python-awips " ;fi
|
||||
dirs=$builds_dir$static_dir$rpm_dir$core_dir$corefoss_dir$foss_dir$nws_dir$ncep_dir$python_dir
|
||||
|
||||
# run
|
||||
sudo docker run --entrypoint=/bin/bash --privileged -d -ti -e "container=docker" $dirs unidata/awips-ade:17.1.1-$os_version
|
||||
dockerID=$(sudo docker ps | grep awips-ade | awk '{print $1}' | head -1 )
|
||||
sudo docker logs $dockerID
|
||||
sudo docker exec -ti $dockerID /bin/bash -xec "/awips2/repo/awips2-builds/build/build_rpms.sh $os_version $2";
|
||||
sudo docker stop $dockerID
|
||||
sudo docker rm -v $dockerID
|
||||
|
||||
if [[ $USER == "mjames" ]]; then # local build
|
||||
sudo chown -R mjames:ustaff dist/${os_version}-dev
|
||||
repomanage -k1 --old dist/${os_version}-dev | xargs rm -f
|
||||
createrepo -g ../../build/comps.xml dist/${os_version}-dev
|
||||
rsync --archive --delete dist/${os_version}-dev tomcat@www:/web/content/repos/yum/
|
||||
fi
|
||||
|
|
|
@ -220,9 +220,6 @@
|
|||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.uf.viz.ncep.dataplugins.feature" />
|
||||
</antcall>
|
||||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.viz.hydro.feature" />
|
||||
</antcall>
|
||||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.uf.viz.d2d.xy.feature" />
|
||||
</antcall>
|
||||
|
@ -298,9 +295,11 @@
|
|||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="gov.noaa.nws.obs.viz.geodata.feature" />
|
||||
</antcall>
|
||||
<!--
|
||||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="gov.noaa.nws.ocp.uf.viz.gisdatastore.feature" />
|
||||
</antcall>
|
||||
-->
|
||||
<antcall target="cleanup.features" />
|
||||
</target>
|
||||
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="command" commandId="com.raytheon.uf.viz.app.launcher.appLauncherHandler"
|
||||
menuText="Dam Catalog" id="damCatalog">
|
||||
<parameter key="bundleLocation" value="bundles/run-DamCREST.xml" />
|
||||
</contribute>
|
||||
<contribute xsi:type="command" commandId="com.raytheon.uf.viz.app.launcher.appLauncherHandler"
|
||||
menuText="HydroGen Manager" id="hydroGenManager">
|
||||
<parameter key="bundleLocation" value="bundles/run-HydroGen.xml" />
|
||||
</contribute>
|
||||
<contribute xsi:type="command" commandId="com.raytheon.viz.hydro.timeseries.opentimeseries"
|
||||
menuText="Hydro Time Series" id="hydroTimeSeries">
|
||||
</contribute>
|
||||
<contribute xsi:type="command"
|
||||
menuText="RiverPro" id="riverPro"
|
||||
commandId="com.raytheon.uf.viz.app.launcher.appLauncherHandler">
|
||||
<parameter key="bundleLocation" value="bundles/run-RiverPro.xml" />
|
||||
</contribute>
|
||||
</menuTemplate>
|
|
@ -184,11 +184,11 @@
|
|||
<includes
|
||||
id="gov.noaa.nws.mdl.viz.awipsref.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
<!--
|
||||
<includes
|
||||
id="gov.noaa.nws.mdl.viz.boundaryTool.common.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
-->
|
||||
<includes
|
||||
id="com.raytheon.uf.viz.aviation.advisory.feature"
|
||||
version="0.0.0"/>
|
||||
|
|
|
@ -1,75 +0,0 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.viz.gfe;
|
||||
|
||||
import com.raytheon.viz.gfe.dialogs.sbu.ServiceBackupDlg;
|
||||
import com.raytheon.viz.ui.personalities.awips.AbstractAWIPSComponent;
|
||||
|
||||
/**
|
||||
* Bring up the Service Backup Dialog in stand alone mode as a blocking dialog.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Aug 12, 2011 bphillip Initial creation
|
||||
* Oct 26, 2012 1287 rferrel Change to force blocking of ServiceBackupDlg.
|
||||
* Mar 21, 2013 1447 dgilling Fix dialog construction so this dialog
|
||||
* is created as a top-level shell.
|
||||
* Jun 11, 2014 DR-17401 lshi
|
||||
* Mar 19, 2015 4300 randerso Changes to support updated ServiceBackupDlg
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author bphillip
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class ServiceBackupComponent extends AbstractAWIPSComponent {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* com.raytheon.viz.ui.personalities.awips.AbstractCAVEComponent#startInternal
|
||||
* (java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
protected void startInternal(String componentName) throws Exception {
|
||||
ServiceBackupDlg svcBuDlg = new ServiceBackupDlg();
|
||||
svcBuDlg.setBlockOnOpen(true);
|
||||
svcBuDlg.open();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* com.raytheon.viz.ui.personalities.awips.AbstractCAVEComponent#getRuntimeModes
|
||||
* ()
|
||||
*/
|
||||
@Override
|
||||
protected int getRuntimeModes() {
|
||||
return ALERT_VIZ;
|
||||
}
|
||||
|
||||
}
|
|
@ -59,7 +59,7 @@ import com.raytheon.uf.viz.core.requests.ThriftClient;
|
|||
public class CheckPermissions {
|
||||
|
||||
private static final transient IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(ServiceBackupDlg.class);
|
||||
.getHandler(CheckPermissions.class);
|
||||
|
||||
/**
|
||||
* A private constructor so that Java does not attempt to create one for us.
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,481 +0,0 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.viz.gfe.dialogs.sbu;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.jface.dialogs.IDialogConstants;
|
||||
import org.eclipse.jface.dialogs.MessageDialog;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.events.DisposeEvent;
|
||||
import org.eclipse.swt.events.DisposeListener;
|
||||
import org.eclipse.swt.events.SelectionAdapter;
|
||||
import org.eclipse.swt.events.SelectionEvent;
|
||||
import org.eclipse.swt.graphics.Font;
|
||||
import org.eclipse.swt.graphics.FontData;
|
||||
import org.eclipse.swt.graphics.Point;
|
||||
import org.eclipse.swt.graphics.Rectangle;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.layout.GridLayout;
|
||||
import org.eclipse.swt.widgets.Button;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Group;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
import org.eclipse.ui.progress.UIJob;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.gfe.svcbu.JobProgress;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.viz.gfe.dialogs.sbu.jobs.AbstractSbuTask;
|
||||
import com.raytheon.viz.gfe.dialogs.sbu.jobs.ServiceBackupTaskExecutor;
|
||||
import com.raytheon.viz.ui.dialogs.CaveJFACEDialog;
|
||||
|
||||
/**
|
||||
* Display Service Backup job status for a site
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Feb 19, 2015 #4300 randerso Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author randerso
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class ServiceBackupStatusDlg extends CaveJFACEDialog {
|
||||
private final transient IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(ServiceBackupStatusDlg.class);
|
||||
|
||||
private static enum StatusIcons {
|
||||
NOT_STARTED("…", "Not started", SWT.COLOR_WIDGET_FOREGROUND), //
|
||||
IN_PROGRESS("", "In progress", SWT.COLOR_WIDGET_FOREGROUND), //
|
||||
SUCCESS("✔", "Successful", SWT.COLOR_GREEN), //
|
||||
FAILED("✖", "Failed", SWT.COLOR_RED); //
|
||||
|
||||
private String symbol;
|
||||
|
||||
private String toolTip;
|
||||
|
||||
private int color;
|
||||
|
||||
private int cycle = 0;
|
||||
|
||||
private StatusIcons(String symbol, String toolTip, int color) {
|
||||
this.symbol = symbol;
|
||||
this.toolTip = toolTip;
|
||||
this.color = color;
|
||||
}
|
||||
|
||||
public char getSymbol() {
|
||||
cycle = (cycle + 1) % this.symbol.length();
|
||||
return this.symbol.charAt(cycle);
|
||||
}
|
||||
|
||||
public String getToolTip() {
|
||||
return this.toolTip;
|
||||
}
|
||||
|
||||
public int getColor() {
|
||||
return this.color;
|
||||
}
|
||||
}
|
||||
|
||||
private String site;
|
||||
|
||||
private List<AbstractSbuTask> tasks;
|
||||
|
||||
private ServiceBackupTaskExecutor executor;
|
||||
|
||||
private Font bigFont;
|
||||
|
||||
private Map<String, Label[]> controls;
|
||||
|
||||
private Group statusGroup;
|
||||
|
||||
private UIJob updateJob;
|
||||
|
||||
/**
|
||||
* @param parentShell
|
||||
*/
|
||||
public ServiceBackupStatusDlg(Shell parentShell, String site) {
|
||||
super(parentShell);
|
||||
this.site = site;
|
||||
this.setShellStyle(SWT.DIALOG_TRIM | SWT.MODELESS | SWT.MIN);
|
||||
|
||||
updateJob = new UIJob("SvcbuUpdateJob") {
|
||||
@Override
|
||||
public IStatus runInUIThread(IProgressMonitor monitor) {
|
||||
if (!getShell().isDisposed()) {
|
||||
doRefresh();
|
||||
|
||||
if (executor.isAlive()) {
|
||||
this.schedule(1000);
|
||||
} else {
|
||||
getButton(IDialogConstants.CANCEL_ID).setEnabled(false);
|
||||
}
|
||||
return Status.OK_STATUS;
|
||||
} else {
|
||||
return Status.CANCEL_STATUS;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
updateJob.setSystem(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param tasks
|
||||
*/
|
||||
public void setTasks(List<AbstractSbuTask> tasks) {
|
||||
if ((this.executor != null) && this.executor.isAlive()) {
|
||||
statusHandler.error("Service Backup job already in progress");
|
||||
return;
|
||||
}
|
||||
this.tasks = tasks;
|
||||
this.executor = new ServiceBackupTaskExecutor(tasks);
|
||||
|
||||
if (this.isOpen()) {
|
||||
for (Control control : statusGroup.getChildren()) {
|
||||
control.dispose();
|
||||
}
|
||||
|
||||
createStatusControls();
|
||||
statusGroup.pack();
|
||||
statusGroup.layout();
|
||||
Shell shell = getShell();
|
||||
shell.pack();
|
||||
shell.layout();
|
||||
|
||||
startJob();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the site
|
||||
*/
|
||||
public String getSite() {
|
||||
return site;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets
|
||||
* .Shell)
|
||||
*/
|
||||
@Override
|
||||
protected void configureShell(Shell newShell) {
|
||||
super.configureShell(newShell);
|
||||
newShell.setText(this.site + " Service Backup Status");
|
||||
newShell.addDisposeListener(new DisposeListener() {
|
||||
@Override
|
||||
public void widgetDisposed(DisposeEvent e) {
|
||||
if (bigFont != null) {
|
||||
bigFont.dispose();
|
||||
}
|
||||
|
||||
if (executor != null) {
|
||||
executor.cancel();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* org.eclipse.jface.dialogs.Dialog#getInitialLocation(org.eclipse.swt.graphics
|
||||
* .Point)
|
||||
*/
|
||||
@Override
|
||||
protected Point getInitialLocation(Point initialSize) {
|
||||
Rectangle bounds = getParentShell().getBounds();
|
||||
int x = bounds.x + bounds.width;
|
||||
int y = bounds.y;
|
||||
|
||||
Rectangle myBounds = new Rectangle(x, y, initialSize.x, initialSize.y);
|
||||
for (Shell child : getParentShell().getShells()) {
|
||||
if (!child.equals(getShell()) && !child.isDisposed()) {
|
||||
Rectangle childBounds = child.getBounds();
|
||||
if (myBounds.contains(childBounds.x, childBounds.y)) {
|
||||
Rectangle clientArea = child.getClientArea();
|
||||
int delta = childBounds.height - clientArea.height;
|
||||
y += delta;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Point location = new Point(x, y);
|
||||
return location;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* com.raytheon.viz.ui.dialogs.CaveJFACEDialog#createDialogArea(org.eclipse
|
||||
* .swt.widgets.Composite)
|
||||
*/
|
||||
@Override
|
||||
protected Control createDialogArea(Composite parent) {
|
||||
final Composite comp = (Composite) super.createDialogArea(parent);
|
||||
|
||||
final Button bigFontButton = new Button(comp, SWT.CHECK);
|
||||
GridData layoutData = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
|
||||
bigFontButton.setLayoutData(layoutData);
|
||||
bigFontButton.setText("Use large font");
|
||||
bigFontButton.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
if (bigFontButton.getSelection()) {
|
||||
FontData fontData = comp.getFont().getFontData()[0];
|
||||
fontData.setHeight(18);
|
||||
fontData.setStyle(SWT.BOLD);
|
||||
bigFont = new Font(comp.getDisplay(), fontData);
|
||||
setFont(bigFont);
|
||||
} else {
|
||||
Font font = comp.getFont();
|
||||
setFont(font);
|
||||
if (bigFont != null) {
|
||||
bigFont.dispose();
|
||||
bigFont = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
controls = new HashMap<>();
|
||||
|
||||
statusGroup = new Group(comp, SWT.SHADOW_NONE);
|
||||
statusGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
|
||||
statusGroup.setLayout(new GridLayout(3, false));
|
||||
statusGroup.setText("Job Status");
|
||||
createStatusControls();
|
||||
|
||||
comp.pack();
|
||||
comp.layout();
|
||||
|
||||
return comp;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private void createStatusControls() {
|
||||
controls.clear();
|
||||
for (AbstractSbuTask task : tasks) {
|
||||
String status = task.getStatusFileName();
|
||||
String text = task.getGuiDescription();
|
||||
|
||||
Label statusIcon = new Label(statusGroup, SWT.HORIZONTAL
|
||||
| SWT.CENTER);
|
||||
statusIcon.setLayoutData(new GridData(SWT.FILL, SWT.DEFAULT, true,
|
||||
false));
|
||||
StatusIcons icon = StatusIcons.NOT_STARTED;
|
||||
statusIcon.setForeground(statusIcon.getDisplay().getSystemColor(
|
||||
icon.getColor()));
|
||||
statusIcon.setText(Character.toString(icon.getSymbol()));
|
||||
statusIcon.setToolTipText(icon.getToolTip());
|
||||
|
||||
Label time = new Label(statusGroup, SWT.HORIZONTAL);
|
||||
time.setLayoutData(new GridData(SWT.FILL, SWT.DEFAULT, true, false));
|
||||
time.setText("00:00:00 ");
|
||||
|
||||
Label label = new Label(statusGroup, SWT.HORIZONTAL);
|
||||
label.setLayoutData(new GridData(SWT.FILL, SWT.DEFAULT, true, false));
|
||||
label.setText(String.format(text, site));
|
||||
|
||||
if (bigFont != null) {
|
||||
statusIcon.setFont(bigFont);
|
||||
time.setFont(bigFont);
|
||||
label.setFont(bigFont);
|
||||
}
|
||||
|
||||
controls.put(status, new Label[] { statusIcon, time, label });
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse
|
||||
* .swt.widgets.Composite)
|
||||
*/
|
||||
@Override
|
||||
protected void createButtonsForButtonBar(Composite parent) {
|
||||
createButton(parent, IDialogConstants.CANCEL_ID,
|
||||
IDialogConstants.CANCEL_LABEL, false).setEnabled(false);
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.jface.dialogs.Dialog#cancelPressed()
|
||||
*/
|
||||
@Override
|
||||
protected void cancelPressed() {
|
||||
cancelJob();
|
||||
getButton(IDialogConstants.CANCEL_ID).setEnabled(false);
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.ui.dialogs.CaveJFACEDialog#open()
|
||||
*/
|
||||
@Override
|
||||
public int open() {
|
||||
int status = super.open();
|
||||
|
||||
startJob();
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.jface.dialogs.Dialog#close()
|
||||
*/
|
||||
@Override
|
||||
public boolean close() {
|
||||
if (executor.isAlive()) {
|
||||
MessageDialog
|
||||
.openWarning(getShell(), this.site
|
||||
+ " Service Backup Status",
|
||||
"You cannot close this dialog while tasks are in progress!");
|
||||
return false;
|
||||
}
|
||||
cancelJob();
|
||||
return super.close();
|
||||
}
|
||||
|
||||
private void startJob() {
|
||||
this.executor.start();
|
||||
updateJob.schedule(1000);
|
||||
getButton(IDialogConstants.CANCEL_ID).setEnabled(true);
|
||||
}
|
||||
|
||||
private void cancelJob() {
|
||||
this.executor.cancel();
|
||||
}
|
||||
|
||||
private void setFont(Font font) {
|
||||
for (Label[] labels : controls.values()) {
|
||||
for (Label label : labels) {
|
||||
label.setFont(font);
|
||||
}
|
||||
}
|
||||
getShell().pack(true);
|
||||
}
|
||||
|
||||
private void updateStatus(final AbstractSbuTask task) {
|
||||
String key = task.getStatusFileName();
|
||||
JobProgress jobProgress = task.getStatus();
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
|
||||
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||
|
||||
Date statusTime = task.getStatusTime();
|
||||
Label[] labels = controls.get(key);
|
||||
if (labels != null) {
|
||||
Label statusIcon = labels[0];
|
||||
Label timeLabel = labels[1];
|
||||
|
||||
StatusIcons icon;
|
||||
switch (jobProgress) {
|
||||
case IN_PROGRESS:
|
||||
icon = StatusIcons.IN_PROGRESS;
|
||||
statusTime = new Date(System.currentTimeMillis()
|
||||
- statusTime.getTime());
|
||||
break;
|
||||
case SUCCESS:
|
||||
icon = StatusIcons.SUCCESS;
|
||||
break;
|
||||
case FAILED:
|
||||
icon = StatusIcons.FAILED;
|
||||
break;
|
||||
|
||||
case UNKNOWN:
|
||||
icon = StatusIcons.NOT_STARTED;
|
||||
break;
|
||||
|
||||
default:
|
||||
statusHandler.error("Unknown JobProgress value received: "
|
||||
+ jobProgress.name());
|
||||
icon = StatusIcons.IN_PROGRESS;
|
||||
}
|
||||
if (!statusIcon.isDisposed()) {
|
||||
statusIcon.setForeground(statusIcon.getDisplay()
|
||||
.getSystemColor(icon.getColor()));
|
||||
statusIcon.setText(Character.toString(icon.getSymbol()));
|
||||
statusIcon.setToolTipText(icon.getToolTip());
|
||||
}
|
||||
|
||||
if (!timeLabel.isDisposed()) {
|
||||
timeLabel.setText(sdf.format(statusTime));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void doRefresh() {
|
||||
for (AbstractSbuTask task : tasks) {
|
||||
updateStatus(task);
|
||||
}
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
StatusIcons icon = StatusIcons.NOT_STARTED;
|
||||
|
||||
for (Label[] labels : controls.values()) {
|
||||
Label statusIcon = labels[0];
|
||||
Label timeLabel = labels[1];
|
||||
if (!statusIcon.isDisposed()) {
|
||||
statusIcon.setForeground(statusIcon.getDisplay()
|
||||
.getSystemColor(icon.getColor()));
|
||||
statusIcon.setText(Character.toString(icon.getSymbol()));
|
||||
statusIcon.setToolTipText(icon.getToolTip());
|
||||
}
|
||||
|
||||
if (!timeLabel.isDisposed()) {
|
||||
timeLabel.setText("00:00:00");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,129 +0,0 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.viz.gfe.dialogs.sbu.jobs;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.gfe.svcbu.JobProgress;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
|
||||
/**
|
||||
* Abstract base class for Service Backup tasks
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 9, 2015 randerso Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author randerso
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public abstract class AbstractSbuTask {
|
||||
protected final transient IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(AbstractSbuTask.class);
|
||||
|
||||
private String statusFileName;
|
||||
|
||||
private String guiDescription;
|
||||
|
||||
private JobProgress status;
|
||||
|
||||
private Date statusTime;
|
||||
|
||||
private Set<ITaskCompleteCallBack> callBacks;
|
||||
|
||||
public AbstractSbuTask(String statusFileName, String guiDescription) {
|
||||
this.statusFileName = statusFileName;
|
||||
this.guiDescription = guiDescription;
|
||||
|
||||
this.callBacks = new HashSet<>();
|
||||
|
||||
setStatus(JobProgress.UNKNOWN);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the statusFileName
|
||||
*/
|
||||
public String getStatusFileName() {
|
||||
return statusFileName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the guiDescription
|
||||
*/
|
||||
public String getGuiDescription() {
|
||||
return guiDescription;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the status
|
||||
*/
|
||||
public JobProgress getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
private void setStatus(JobProgress status) {
|
||||
this.status = status;
|
||||
if (status.equals(JobProgress.UNKNOWN)) {
|
||||
this.statusTime = new Date(0);
|
||||
} else {
|
||||
this.statusTime = new Date();
|
||||
}
|
||||
for (ITaskCompleteCallBack callBack : callBacks) {
|
||||
callBack.taskComplete(this);
|
||||
}
|
||||
}
|
||||
|
||||
public Date getStatusTime() {
|
||||
return this.statusTime;
|
||||
}
|
||||
|
||||
public void addCallBack(ITaskCompleteCallBack callBack) {
|
||||
this.callBacks.add(callBack);
|
||||
}
|
||||
|
||||
public void removeCallBack(ITaskCompleteCallBack callBack) {
|
||||
this.callBacks.remove(callBack);
|
||||
}
|
||||
|
||||
public final void run() {
|
||||
setStatus(JobProgress.IN_PROGRESS);
|
||||
|
||||
try {
|
||||
setStatus(runTask());
|
||||
} catch (VizException e) {
|
||||
statusHandler.error(e.getLocalizedMessage(), e);
|
||||
setStatus(JobProgress.FAILED);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract JobProgress runTask() throws VizException;
|
||||
|
||||
}
|
|
@ -1,190 +0,0 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.viz.gfe.dialogs.sbu.jobs;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.jface.dialogs.MessageDialog;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.gfe.server.notify.GfeNotification;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.server.notify.ServiceBackupJobStatusNotification;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.svcbu.JobProgress;
|
||||
import com.raytheon.uf.common.jms.notification.INotificationObserver;
|
||||
import com.raytheon.uf.common.jms.notification.NotificationException;
|
||||
import com.raytheon.uf.common.jms.notification.NotificationMessage;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
import com.raytheon.uf.common.time.util.TimeUtil;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.notification.jobs.NotificationManagerJob;
|
||||
|
||||
/**
|
||||
* Service Backup Task to wait for a particular
|
||||
* ServiceBackupJobStatusNotification
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 18, 2015 #4300 randerso Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author randerso
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class AwaitNotificationSbuTask extends AbstractSbuTask implements
|
||||
INotificationObserver {
|
||||
|
||||
private static final String NOTIFICATION_TOPIC = "edex.alerts.gfe";
|
||||
|
||||
private String siteID;
|
||||
|
||||
private String name;
|
||||
|
||||
private long timeout;
|
||||
|
||||
private Shell parent;
|
||||
|
||||
private volatile JobProgress status;
|
||||
|
||||
private long startTime;
|
||||
|
||||
/**
|
||||
* @param siteID
|
||||
* site ID to wait for
|
||||
* @param taskName
|
||||
* taskName to wait for
|
||||
* @param timeout
|
||||
* in milliseconds
|
||||
* @param statusFileName
|
||||
* @param guiDescription
|
||||
*/
|
||||
public AwaitNotificationSbuTask(String siteID, String taskName,
|
||||
long timeout, Shell parent, String statusFileName,
|
||||
String guiDescription) {
|
||||
super(statusFileName, guiDescription);
|
||||
this.siteID = siteID;
|
||||
this.name = taskName;
|
||||
this.timeout = timeout;
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.gfe.dialogs.sbu.jobs.AbstractSbuTask#runTask()
|
||||
*/
|
||||
@Override
|
||||
protected JobProgress runTask() throws VizException {
|
||||
NotificationManagerJob.addObserver(NOTIFICATION_TOPIC, this);
|
||||
|
||||
try {
|
||||
status = JobProgress.IN_PROGRESS;
|
||||
startTime = System.currentTimeMillis();
|
||||
while (status.equals(JobProgress.IN_PROGRESS)) {
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
status = JobProgress.FAILED;
|
||||
}
|
||||
|
||||
if ((this.timeout > 0)
|
||||
&& ((System.currentTimeMillis() - startTime) > this.timeout)) {
|
||||
|
||||
parent.getDisplay().syncExec(new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
String message = "Task " + name
|
||||
+ " has not completed after "
|
||||
+ TimeUtil.prettyDuration(timeout)
|
||||
+ ".\nDo you wish to continue waiting?";
|
||||
if (MessageDialog.openQuestion(parent, "Timeout",
|
||||
message)) {
|
||||
startTime = System.currentTimeMillis();
|
||||
} else {
|
||||
synchronized (status) {
|
||||
if (status.equals(JobProgress.IN_PROGRESS)) {
|
||||
status = JobProgress.FAILED;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
} finally {
|
||||
NotificationManagerJob.removeObserver(NOTIFICATION_TOPIC, this);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.uf.common.jms.notification.INotificationObserver#
|
||||
* notificationArrived
|
||||
* (com.raytheon.uf.common.jms.notification.NotificationMessage[])
|
||||
*/
|
||||
@Override
|
||||
public void notificationArrived(NotificationMessage[] messages) {
|
||||
for (NotificationMessage msg : messages) {
|
||||
Object obj;
|
||||
try {
|
||||
obj = msg.getMessagePayload();
|
||||
if (obj instanceof ServiceBackupJobStatusNotification) {
|
||||
handleNotification((ServiceBackupJobStatusNotification) obj);
|
||||
} else if (obj instanceof List) {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<GfeNotification> notifList = (List<GfeNotification>) obj;
|
||||
for (GfeNotification notif : notifList) {
|
||||
if (notif instanceof ServiceBackupJobStatusNotification) {
|
||||
handleNotification((ServiceBackupJobStatusNotification) notif);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (NotificationException e) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
"Unable to read incoming notification", e);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param notif
|
||||
*/
|
||||
private void handleNotification(ServiceBackupJobStatusNotification notif) {
|
||||
if (this.siteID.equals(notif.getSiteID())) {
|
||||
if (notif.getName().equals(this.name)) {
|
||||
synchronized (status) {
|
||||
status = notif.getState();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.viz.gfe.dialogs.sbu.jobs;
|
||||
|
||||
/**
|
||||
* Interface for Service Backup Task Completion
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 18, 2015 #4300 randerso Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author randerso
|
||||
* @version 1.0
|
||||
*/
|
||||
public interface ITaskCompleteCallBack {
|
||||
public void taskComplete(AbstractSbuTask task);
|
||||
}
|
|
@ -1,81 +0,0 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.viz.gfe.dialogs.sbu.jobs;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.gfe.request.AbstractGfeRequest;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.svcbu.JobProgress;
|
||||
import com.raytheon.uf.common.serialization.comm.IServerRequest;
|
||||
import com.raytheon.uf.viz.core.VizApp;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.requests.ThriftClient;
|
||||
import com.raytheon.viz.gfe.GFEServerException;
|
||||
|
||||
/**
|
||||
* Service Backup Task to run a server request
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 9, 2015 #4300 randerso Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author randerso
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class ServerRequestSbuTask extends AbstractSbuTask {
|
||||
protected IServerRequest request;
|
||||
|
||||
public ServerRequestSbuTask(String statusFileName, String guiDescription,
|
||||
IServerRequest request) {
|
||||
super(statusFileName, guiDescription);
|
||||
this.request = request;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.gfe.dialogs.sbu.jobs.AbstractSbuTask#runInternal()
|
||||
*/
|
||||
@Override
|
||||
public JobProgress runTask() throws VizException {
|
||||
JobProgress rval = JobProgress.FAILED;
|
||||
|
||||
if (request instanceof AbstractGfeRequest) {
|
||||
((AbstractGfeRequest) request).setWorkstationID(VizApp.getWsId());
|
||||
}
|
||||
|
||||
Object obj = ThriftClient.sendRequest(request);
|
||||
if (obj instanceof JobProgress) {
|
||||
rval = (JobProgress) obj;
|
||||
} else {
|
||||
throw new GFEServerException(
|
||||
"Received invalid response object from GFE Server. Received ["
|
||||
+ obj.getClass().getName() + "] excepted ["
|
||||
+ JobProgress.class.getName());
|
||||
}
|
||||
|
||||
return rval;
|
||||
}
|
||||
}
|
|
@ -1,95 +0,0 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.viz.gfe.dialogs.sbu.jobs;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.gfe.svcbu.JobProgress;
|
||||
|
||||
/**
|
||||
* Service Backup Task Executor
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 9, 2015 #4300 randerso Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author randerso
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class ServiceBackupTaskExecutor extends Thread {
|
||||
|
||||
private List<AbstractSbuTask> tasks;
|
||||
|
||||
private boolean cancelled;
|
||||
|
||||
private JobProgress jobStatus;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public ServiceBackupTaskExecutor(List<AbstractSbuTask> tasks) {
|
||||
this.tasks = tasks;
|
||||
}
|
||||
|
||||
public void cancel() {
|
||||
this.cancelled = true;
|
||||
this.interrupt();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see java.lang.Thread#start()
|
||||
*/
|
||||
@Override
|
||||
public synchronized void start() {
|
||||
this.jobStatus = JobProgress.IN_PROGRESS;
|
||||
this.cancelled = false;
|
||||
super.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
for (AbstractSbuTask task : tasks) {
|
||||
if (cancelled) {
|
||||
break;
|
||||
}
|
||||
|
||||
task.run();
|
||||
|
||||
if (!task.getStatus().equals(JobProgress.SUCCESS)) {
|
||||
cancelled = true;
|
||||
jobStatus = JobProgress.FAILED;
|
||||
}
|
||||
}
|
||||
jobStatus = JobProgress.SUCCESS;
|
||||
}
|
||||
|
||||
public JobProgress getJobStatus() {
|
||||
return this.jobStatus;
|
||||
}
|
||||
}
|
|
@ -1,152 +0,0 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.viz.gfe.dialogs.sbu.jobs;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.gfe.request.AbstractGfeRequest;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.svcbu.JobProgress;
|
||||
import com.raytheon.uf.common.jms.notification.INotificationObserver;
|
||||
import com.raytheon.uf.common.jms.notification.NotificationException;
|
||||
import com.raytheon.uf.common.jms.notification.NotificationMessage;
|
||||
import com.raytheon.uf.common.site.notify.ClusterActivationNotification;
|
||||
import com.raytheon.uf.common.site.notify.SiteActivationNotification.ACTIVATIONSTATUS;
|
||||
import com.raytheon.uf.common.site.notify.SiteActivationNotification.ACTIVATIONTYPE;
|
||||
import com.raytheon.uf.common.site.requests.ActivateSiteRequest;
|
||||
import com.raytheon.uf.common.site.requests.DeactivateSiteRequest;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
import com.raytheon.uf.viz.core.VizApp;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.notification.jobs.NotificationManagerJob;
|
||||
import com.raytheon.uf.viz.core.requests.ThriftClient;
|
||||
|
||||
/**
|
||||
* Service Backup Task to activate/deactivate a GFE site
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 18, 2015 #4300 randerso Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author randerso
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class SiteActivationSbuTask extends ServerRequestSbuTask implements
|
||||
INotificationObserver {
|
||||
private static final String SITE_ACTIVATION_TOPIC = "edex.alerts.siteActivate";
|
||||
|
||||
private JobProgress status;
|
||||
|
||||
private String siteID;
|
||||
|
||||
private ACTIVATIONTYPE type;
|
||||
|
||||
/**
|
||||
* @param siteID
|
||||
* @param activate
|
||||
* true to activate, false to deactivate
|
||||
* @param statusFileName
|
||||
* @param guiDescription
|
||||
*/
|
||||
public SiteActivationSbuTask(String siteID, ACTIVATIONTYPE type,
|
||||
String statusFileName, String guiDescription) {
|
||||
super(statusFileName, guiDescription, (type
|
||||
.equals(ACTIVATIONTYPE.ACTIVATE) ? new ActivateSiteRequest(
|
||||
siteID, "gfe") : new DeactivateSiteRequest(siteID, "gfe")));
|
||||
this.siteID = siteID;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.gfe.dialogs.sbu.jobs.ServerRequestSbuTask#runTask()
|
||||
*/
|
||||
@Override
|
||||
public JobProgress runTask() throws VizException {
|
||||
status = JobProgress.FAILED;
|
||||
|
||||
if (request instanceof AbstractGfeRequest) {
|
||||
((AbstractGfeRequest) request).setWorkstationID(VizApp.getWsId());
|
||||
}
|
||||
|
||||
NotificationManagerJob.addObserver(SITE_ACTIVATION_TOPIC, this);
|
||||
|
||||
try {
|
||||
ThriftClient.sendRequest(request);
|
||||
|
||||
status = JobProgress.IN_PROGRESS;
|
||||
while (status.equals(JobProgress.IN_PROGRESS)) {
|
||||
// TODO: add timeout
|
||||
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
status = JobProgress.FAILED;
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
NotificationManagerJob.removeObserver(SITE_ACTIVATION_TOPIC, this);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.uf.common.jms.notification.INotificationObserver#
|
||||
* notificationArrived
|
||||
* (com.raytheon.uf.common.jms.notification.NotificationMessage[])
|
||||
*/
|
||||
@Override
|
||||
public void notificationArrived(NotificationMessage[] messages) {
|
||||
for (NotificationMessage msg : messages) {
|
||||
Object obj;
|
||||
try {
|
||||
obj = msg.getMessagePayload();
|
||||
if (obj instanceof ClusterActivationNotification) {
|
||||
ClusterActivationNotification notif = (ClusterActivationNotification) obj;
|
||||
if (this.siteID.equals(notif.getModifiedSite())) {
|
||||
if (notif.getType().equals(this.type)) {
|
||||
if (notif.getStatus().equals(
|
||||
ACTIVATIONSTATUS.SUCCESS)) {
|
||||
status = JobProgress.SUCCESS;
|
||||
} else if (notif.getStatus().equals(
|
||||
ACTIVATIONSTATUS.FAILURE)) {
|
||||
status = JobProgress.FAILED;
|
||||
} else {
|
||||
status = JobProgress.FAILED;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (NotificationException e) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
"Unable to read incoming notification", e);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,106 +0,0 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.viz.gfe.dialogs.sbu.jobs;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.gfe.request.AbstractGfeRequest;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.request.GetGfeStartCmdRequest;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.svcbu.JobProgress;
|
||||
import com.raytheon.uf.common.util.RunProcess;
|
||||
import com.raytheon.uf.viz.core.VizApp;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.requests.ThriftClient;
|
||||
import com.raytheon.viz.gfe.GFEException;
|
||||
import com.raytheon.viz.gfe.GFEServerException;
|
||||
|
||||
/**
|
||||
* Service backup task to start a GFE session
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 18, 2015 #4300 randerso Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author randerso
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class StartGfeSbuTask extends ServerRequestSbuTask {
|
||||
|
||||
private String site;
|
||||
|
||||
/**
|
||||
* @param site
|
||||
* @param statusFileName
|
||||
* @param guiDescription
|
||||
*/
|
||||
public StartGfeSbuTask(String site, String statusFileName,
|
||||
String guiDescription) {
|
||||
super(statusFileName, guiDescription, new GetGfeStartCmdRequest(site));
|
||||
this.site = site;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.gfe.dialogs.sbu.jobs.ServerRequestSbuTask#runTask()
|
||||
*/
|
||||
@Override
|
||||
public JobProgress runTask() throws VizException {
|
||||
JobProgress rval = JobProgress.FAILED;
|
||||
|
||||
if (request instanceof AbstractGfeRequest) {
|
||||
((AbstractGfeRequest) request).setWorkstationID(VizApp.getWsId());
|
||||
}
|
||||
|
||||
Object obj = ThriftClient.sendRequest(request);
|
||||
if (obj instanceof String) {
|
||||
String cmd = (String) obj;
|
||||
|
||||
if (cmd != null) {
|
||||
statusHandler
|
||||
.info("Attempting to start GFE using the following command: "
|
||||
+ cmd);
|
||||
// start GFE session
|
||||
try {
|
||||
RunProcess.getRunProcess().exec(cmd.split(" "));
|
||||
rval = JobProgress.SUCCESS;
|
||||
} catch (IOException e) {
|
||||
throw new GFEException("Error starting GFE session for "
|
||||
+ this.site, e);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
throw new GFEServerException(
|
||||
"Received invalid response object from GFE Server. Received ["
|
||||
+ obj.getClass().getName() + "] excepted ["
|
||||
+ String.class.getName());
|
||||
}
|
||||
|
||||
return rval;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
<launcher title="HydroGenBless" >
|
||||
<application runDir="/awips/hydroapps/HydroGen/bin"
|
||||
path="/awips2/edex/data/share/hydroapps/HydroGen/bin"
|
||||
name="start_hg_bless" />
|
||||
</launcher>
|
|
@ -1,12 +0,0 @@
|
|||
<launcher title="RiverPro" >
|
||||
<application runDir="/awips/hydroapps/whfs/bin"
|
||||
path="/awips/hydroapps/whfs/bin"
|
||||
name="start_riverpro" >
|
||||
</application>
|
||||
|
||||
<settings>
|
||||
<environment>
|
||||
<variable name="sys_java_dir" value="$JAVA_HOME" />
|
||||
</environment>
|
||||
</settings>
|
||||
</launcher>
|
|
@ -36,7 +36,7 @@
|
|||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="sectorID">
|
||||
<constraint constraintValue="TCONUS"
|
||||
<constraint constraintValue="ECONUS"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="creatingEntity">
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<contribute xsi:type="separator" id="MySeparatorId"/>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultSatellite.xml"
|
||||
menuText="IR Window" id="irWindow">
|
||||
<substitute key="element" value="Imager 13 micron (IR)"/>
|
||||
<substitute key="element" value="Imager 13 micron IR"/>
|
||||
<substitute key="colormap" value="Sat/IR/CIRA (IR Default)"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultSatellite.xml"
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
</contribute>
|
||||
<contribute xsi:type="satBundleItem" file="bundles/DefaultCONUSSatellite.xml"
|
||||
menuText="13u" id="13u">
|
||||
<substitute key="element" value="Imager 13 micron (IR)"/>
|
||||
<substitute key="element" value="Imager 13 micron IR"/>
|
||||
<substitute key="colormap" value="Sat/IR/CIRA (IR Default)"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="satBundleItem" file="bundles/DerivedCONUSSatellite.xml"
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="subinclude" subMenu="Puerto Rico"
|
||||
fileName="menus/satellite/goesr/goesrByChannel.xml">
|
||||
<substitute key="sector" value="PRREGI" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subinclude" subMenu="CONUS"
|
||||
fileName="menus/satellite/goesr/goesrByChannel.xml">
|
||||
<substitute key="sector" value="ECONUS" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subinclude" subMenu="Full Disk"
|
||||
fileName="menus/satellite/goesr/goesrByChannel.xml">
|
||||
<substitute key="sector" value="EFD" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subinclude" subMenu="Mesoscale 1"
|
||||
fileName="menus/satellite/goesr/goesrByChannel.xml">
|
||||
<substitute key="sector" value="EMESO-1" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subinclude" subMenu="Mesoscale 2"
|
||||
fileName="menus/satellite/goesr/goesrByChannel.xml">
|
||||
<substitute key="sector" value="EMESO-2" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
</menuTemplate>
|
|
@ -0,0 +1,59 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!-- TOWRdocs Header
|
||||
Locally derived product sector by channel xml menu file.
|
||||
-->
|
||||
<!-- TOWRdocs Description
|
||||
This updated menu file includes the Test/Center Position sectors.
|
||||
-->
|
||||
<!-- TOWRdocs Status
|
||||
Modification of the baseline menu file, which does not include the Test/Center position for channel selection.
|
||||
-->
|
||||
<!-- TOWRdocs POC
|
||||
Lee Byerle
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="subinclude" subMenu="Puerto Rico"
|
||||
fileName="menus/satellite/goesr/goesrLocallyDerived.xml">
|
||||
<substitute key="sector" value="PRREGI" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subinclude" subMenu="CONUS"
|
||||
fileName="menus/satellite/goesr/goesrLocallyDerived.xml">
|
||||
<substitute key="sector" value="ECONUS" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subinclude" subMenu="Full Disk"
|
||||
fileName="menus/satellite/goesr/goesrLocallyDerived.xml">
|
||||
<substitute key="sector" value="EFD" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subinclude" subMenu="Mesoscale 1"
|
||||
fileName="menus/satellite/goesr/goesrLocallyDerived.xml">
|
||||
<substitute key="sector" value="EMESO-1" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subinclude" subMenu="Mesoscale 2"
|
||||
fileName="menus/satellite/goesr/goesrLocallyDerived.xml">
|
||||
<substitute key="sector" value="EMESO-2" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
</menuTemplate>
|
|
@ -33,7 +33,7 @@
|
|||
</contribute>
|
||||
<contribute xsi:type="satBundleItem" file="bundles/satellite/goesr/goesrConusLegacyBlend.xml"
|
||||
menuText="13u" id="13u">
|
||||
<substitute key="element" value="CH-16-13.30um,Imager 13 micron (IR)"/>
|
||||
<substitute key="element" value="CH-16-13.30um,Imager 13 micron IR"/>
|
||||
<substitute key="colormap" value="Sat/IR/CIRA (IR Default)"/>
|
||||
<substitute key="entity" value="GOES-16"/>
|
||||
</contribute>
|
||||
|
|
|
@ -1,377 +1,60 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="subMenu" menuText="GOES-16 Provisional Imagery" id="goesr">
|
||||
|
||||
<contribute xsi:type="subMenu" menuText="GOES East (GOES 16)" id="goesr">
|
||||
<contribute xsi:type="titleItem" titleText="------ CONUS ------" id="goesrBestRes"/>
|
||||
<contribute xsi:type="subinclude" fileName="menus/satellite/goesr/goesrBestResConusByChannel.xml"/>
|
||||
<contribute xsi:type="subMenu" menuText="Full Disk Imagery" id="goesrFullDisk">
|
||||
<contribute xsi:type="subinclude" fileName="menus/satellite/goesr/goesrFullDiskByChannel.xml"/>
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="titleItem" titleText="------ RGB Composites ------" id="goesrRGBComposites"/>
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesrRGBComposite.xml"
|
||||
menuText="Icing(1.61,0.87,0.64)" id="goesr-icing">
|
||||
<substitute key="productName" value="Icing" />
|
||||
<substitute key="redElement" value="CH-05-1.61um" />
|
||||
<substitute key="greenElement" value="CH-03-0.87um" />
|
||||
<substitute key="blueElement" value="CH-02-0.64um" />
|
||||
<substitute key="sector" value="TCONUS" />
|
||||
<contribute xsi:type="subinclude" subMenu="CONUS"
|
||||
fileName="menus/satellite/goesr/goesrRGBComposites.xml">
|
||||
<substitute key="sector" value="ECONUS" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesrRGBComposite.xml"
|
||||
menuText="Daytime Composite #1(0.64,1.61,11.20)" id="goesr-daytime1">
|
||||
<substitute key="productName" value="Daytime Composite #1" />
|
||||
<substitute key="redElement" value="CH-02-0.64um" />
|
||||
<substitute key="greenElement" value="CH-05-1.61um" />
|
||||
<substitute key="blueElement" value="CH-14-11.20um" />
|
||||
<substitute key="sector" value="TCONUS" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesrRGBComposite.xml"
|
||||
menuText="Daytime Composite #5(0.64,0.87,0.64)" id="goesr-daytime5">
|
||||
<substitute key="productName" value="Daytime Composite #5" />
|
||||
<substitute key="redElement" value="CH-02-0.64um" />
|
||||
<substitute key="greenElement" value="CH-03-0.87um" />
|
||||
<substitute key="blueElement" value="CH-02-0.64um" />
|
||||
<substitute key="sector" value="TCONUS" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="separator" id="id"/>
|
||||
|
||||
<contribute xsi:type="titleItem" titleText="------ Sectors ------" id="glmLightning"/>
|
||||
|
||||
<contribute xsi:type="subinclude" subMenu="Full Disk"
|
||||
fileName="menus/satellite/goesr/goesrByChannel.xml">
|
||||
<substitute key="sector" value="TFD" />
|
||||
fileName="menus/satellite/goesr/goesrRGBComposites.xml">
|
||||
<substitute key="sector" value="EFD" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subinclude" subMenu="Mesoscale 1"
|
||||
fileName="menus/satellite/goesr/goesrByChannel.xml">
|
||||
<substitute key="sector" value="TMESO-1" />
|
||||
fileName="menus/satellite/goesr/goesrRGBComposites.xml">
|
||||
<substitute key="sector" value="EMESO-1" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subinclude" subMenu="Mesoscale 2"
|
||||
fileName="menus/satellite/goesr/goesrByChannel.xml">
|
||||
<substitute key="sector" value="TMESO-2" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subinclude" subMenu="Puerto Rico"
|
||||
fileName="menus/satellite/goesr/goesrByChannel.xml">
|
||||
<substitute key="sector" value="PRREGI" />
|
||||
fileName="menus/satellite/goesr/goesrRGBComposites.xml">
|
||||
<substitute key="sector" value="EMESO-2" />
|
||||
<substitute key="entity" value="GOES-16" />
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="titleItem" titleText="------ By Sector ------" id="goesrBySector"/>
|
||||
<contribute xsi:type="subinclude" subMenu="All Channels" fileName="menus/satellite/goesr/goesrBySectorByChannel.xml" />
|
||||
<contribute xsi:type="subinclude" subMenu="Level 2 Products" fileName="menus/satellite/goesr/goesrLevel2.xml" />
|
||||
<contribute xsi:type="subinclude" subMenu="Locally Derived" fileName="menus/satellite/goesr/goesrBySectorLocallyDerived.xml" />
|
||||
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="subinclude" subMenu="GOES-16 Level 2 Products" fileName="menus/satellite/goesr/goesrLevel2.xml" />
|
||||
|
||||
<contribute xsi:type="subMenu" menuText="GOES-16 Derived Motion Winds" id="goesrDmw">
|
||||
<!-- Full Disk -->
|
||||
<!--
|
||||
<contribute xsi:type="subinclude" subMenu="Full Disk"
|
||||
fileName="menus/satellite/goesr/dmw/goesr-dmwMenuByFilter.xml" >
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
<substitute key="scene" value="Full Disk" />
|
||||
</contribute>
|
||||
-->
|
||||
|
||||
<contribute xsi:type="titleItem" titleText="------ By Channel ------" />
|
||||
<!-- Ch 02 -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByChannel.xml"
|
||||
menuText="0.64 μm Red Visible (Ch 02 Daytime 1000-700mb)" id="goesr-DMW-Channel-03">
|
||||
<substitute key="channel" value="2"/>
|
||||
<substitute key="legend" value="DMW (Ch 02)" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- Ch 07 -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByChannel.xml"
|
||||
menuText="3.90μm Shortwave IR (Ch 07 Nighttime 1000-700mb)" id="goesr-DMW-Channel-07">
|
||||
<substitute key="channel" value="7"/>
|
||||
<substitute key="legend" value="DMW (Ch 07)" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- Ch 08 -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByChannel.xml"
|
||||
menuText="6.19μm Upper-level Water Vapor IR (Ch 08)" id="goesr-DMW-Channel-08">
|
||||
<substitute key="channel" value="8"/>
|
||||
<substitute key="legend" value="DMW (Ch 08)" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- Ch 09 -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByChannel.xml"
|
||||
menuText="6.93μm Mid-level Water Vapor IR (Ch 09)" id="goesr-DMW-Channel-09">
|
||||
<substitute key="channel" value="9"/>
|
||||
<substitute key="legend" value="DMW (Ch 09)" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- Ch 10 -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByChannel.xml"
|
||||
menuText="7.34μm Low-level Water Vapor IR (Ch 10)" id="goesr-DMW-Channel-10">
|
||||
<substitute key="channel" value="10"/>
|
||||
<substitute key="legend" value="DMW (Ch 10)" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- Ch 14 -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByChannel.xml"
|
||||
menuText="11.21μm Legacy Window IR (Ch 14)" id="goesr-DMW-Channel-14">
|
||||
<substitute key="channel" value="14"/>
|
||||
<substitute key="legend" value="DMW (Ch 14)" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="separator" id="id"/>
|
||||
<contribute xsi:type="titleItem" titleText="------ By Pressure ------" />
|
||||
<!-- 100mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="100mb (0-150mb)" id="goesr-DMW-Pressure-100mb">
|
||||
<substitute key="legend" value="100mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="0--150" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 200 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="200mb (150-250mb)" id="goesr-DMW-Pressure-200mb">
|
||||
<substitute key="legend" value="200 mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="150--250" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 300 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="300mb (250-350mb)" id="goesr-DMW-Pressure-300mb">
|
||||
<substitute key="legend" value="300 mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="250--350" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 400 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="400mb (350-450mb)" id="goesr-DMW-Pressure-400mb">
|
||||
<substitute key="legend" value="400mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="350--450" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 500 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="500mb (450-550mb)" id="goesr-DMW-Pressure-500mb">
|
||||
<substitute key="legend" value="500 mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="450--550" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 600 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="600mb (550-650mb)" id="goesr-DMW-Pressure-600mb">
|
||||
<substitute key="legend" value="600 mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="550--650" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 700 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="700mb (650-750mb)" id="goesr-DMW-Pressure-700mb">
|
||||
<substitute key="legend" value="700mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="650--750" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 800 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="800mb (750-850mb)" id="goesr-DMW-Pressure-800mb">
|
||||
<substitute key="legend" value="800mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="750--850" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 900 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="900mb (850-950mb)" id="goesr-DMW-Pressure-900mb">
|
||||
<substitute key="legend" value="900mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="850--950" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 1000 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="1000mb (>950mb)" id="goesr-DMW-Pressure-1000mb">
|
||||
<substitute key="legend" value="1000mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="GREATER_THAN" />
|
||||
<substitute key="pressure" value="950" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="separator" id="id"/>
|
||||
<contribute xsi:type="titleItem" titleText="------ By Mandatory Levels ------" />
|
||||
<!-- 150 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="150mb (100-200mb)" id="goesr-DMW-ManWinds-150mb">
|
||||
<substitute key="legend" value="150mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="100--200" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 200 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="200mb (150-250mb)" id="goesr-DMW-ManWinds-200mb">
|
||||
<substitute key="legend" value="200mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="150--250" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 250 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="250mb (200-300mb)" id="goesr-DMW-ManWinds-250mb">
|
||||
<substitute key="legend" value="250mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="200--300" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 300 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="300mb (250-300mb)" id="goesr-DMW-ManWinds-300mb">
|
||||
<substitute key="legend" value="300mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="250--350" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 400 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="400mb (350-450mb)" id="goesr-DMW-ManWinds-400mb">
|
||||
<substitute key="legend" value="400mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="350--450" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 500 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="500mb (450-500mb)" id="goesr-DMW-ManWinds-500mb">
|
||||
<substitute key="legend" value="500mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="450--550" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 700 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="700mb (650-700mb)" id="goesr-DMW-ManWinds-700mb">
|
||||
<substitute key="legend" value="700mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="650--750" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 850 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="850mb (800-900mb)" id="goesr-DMW-ManWinds-850mb">
|
||||
<substitute key="legend" value="850mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="800--900" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 925 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="925mb (875-975mb)" id="goesr-DMW-ManWinds-925mb">
|
||||
<substitute key="legend" value="925mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="875--975" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
<!-- 1000 mb -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/satellite/goesr/goesr-dmwBundleByPressure.xml"
|
||||
menuText="1000mb (950-1050mb)" id="goesr-DMW-ManWinds-1000mb">
|
||||
<substitute key="legend" value="1000mb All Ch DMW"/>
|
||||
<substitute key="pressureConstraint" value="BETWEEN" />
|
||||
<substitute key="pressure" value="950--1050" />
|
||||
<substitute key="svg" value="goesr/dmwPlotDesign.svg" />
|
||||
<substitute key="plugin" value="dmw" />
|
||||
<substitute key="scene" value="CONUS" />
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="separator" id="id"/>
|
||||
<!-- Mesoscale -->
|
||||
<contribute xsi:type="subinclude" subMenu="Mesoscale Sectors"
|
||||
fileName="menus/satellite/goesr/dmw/goesr-dmwMenuByFilter.xml" >
|
||||
<substitute key="orbitalSlot" value="GOES-Test"/>
|
||||
<substitute key="scene" value="Mesoscale" />
|
||||
</contribute>
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="subMenu" menuText="GOES-16 Lightning Mapper" id="glmLightning">
|
||||
<contribute xsi:type="subMenu" menuText="GLM Flash" id="GLMflSubMenu">
|
||||
<contribute xsi:type="titleItem" titleText="------ GLM Lightning ------" id="glmLightning"/>
|
||||
<contribute xsi:type="subMenu" menuText="GLM Flash" id="GLMflSubMenu">
|
||||
<contribute xsi:type="subinclude"
|
||||
fileName="menus/lightning/nldnLightningBundleItems.xml">
|
||||
<substitute key="source" value="GLMfl" />
|
||||
|
@ -407,7 +90,6 @@
|
|||
<substitute key="source" value="GLMgr" />
|
||||
</contribute>
|
||||
</contribute>
|
||||
|
||||
|
||||
</contribute>
|
||||
|
||||
</menuTemplate>
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/HfoGoes.xml"
|
||||
menuText="13u" id="13u">
|
||||
<substitute key="element" value="Imager 13 micron (IR)"/>
|
||||
<substitute key="element" value="Imager 13 micron IR"/>
|
||||
<substitute key="colormap" value="Sat/IR/CIRA (IR Default)"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="placeholder" menuText="11-3.76u" id="11-3.76u" />
|
||||
|
|
|
@ -135,7 +135,7 @@
|
|||
<!-- PUERTO RICO REGIONAL -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultSatellite.xml"
|
||||
menuText="Puerto Rico Regional 13 micron IR" id="irWindow">
|
||||
<substitute key="element" value="Imager 13 micron (IR)"/>
|
||||
<substitute key="element" value="Imager 13 micron IR"/>
|
||||
<substitute key="sector" value="Puerto Rico Regional"/>
|
||||
<substitute key="entity" value="GOES-13(N)" />
|
||||
<substitute key="colormap" value="Sat/IR/CIRA (IR Default)"/>
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
This directory contains scripts to handle the upgrade from PostgreSQL 9.3.x to
|
||||
9.5.x, for servers running Openfire.
|
||||
|
||||
*** IMPORTANT: If you are upgrading a server that does NOT run openfire, do
|
||||
NOT use these scripts. Use the scripts in the directory "DR5737" instead.
|
||||
|
||||
There are two parts to this install: Steps to be done BEFORE installing
|
||||
the new PostgreSQL RPM packages (awips2-postgresql and awips2-psql), and steps
|
||||
to be done AFTER installing those packages. All scripts must be run as root.
|
||||
|
||||
|
||||
INSTRUCTIONS - BEFORE INSTALLING ANY RPMS:
|
||||
|
||||
1. Stop PostgreSQL if it is not already stopped.
|
||||
|
||||
2. Run postgres_pre_upgrade_openfire.sh.
|
||||
|
||||
|
||||
INSTRUCTIONS - AFTER INSTALLING RPMS:
|
||||
|
||||
1. BEFORE starting PostgreSQL, run postgres_post_upgrade_openfire.sh. This
|
||||
script should NOT be run unattended. Check the end of the output for "UPGRADE
|
||||
COMPLETE" before continuing.
|
||||
|
||||
2. When the upgrade is finished, start PostgreSQL.
|
||||
|
||||
3. Run rebuild_stats.sh. This must be done while PostgreSQL is running. To
|
||||
limit downtime, this script can be run even while EDEX or other users of the
|
||||
database are running. This script can be run unattended.
|
||||
|
||||
4. If all previous steps have completed successfully and PostgreSQL is not
|
||||
producing errors, you can delete the old PostgreSQL install located at
|
||||
/awips2/postgresql-9.3.10
|
|
@ -1,184 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
source "$(dirname $0)/settings_openfire.sh" || exit 1
|
||||
|
||||
# directory for temporarily keeping old config files
|
||||
TEMP_CONFIG_DIR=$(mktemp -d) || exit 1
|
||||
|
||||
export LD_LIBRARY_PATH=${POSTGRES_DIR}/lib:$LD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH=${PSQL_DIR}/lib:$LD_LIBRARY_PATH
|
||||
|
||||
|
||||
# roll back as much as possible in the event of an error
|
||||
cleanup_exit() {
|
||||
echo "INFO: Cleaning up"
|
||||
# remove symlinked psql
|
||||
if [[ -h "${POSTGRES_DIR}/bin/psql" ]]; then
|
||||
rm -vf "${POSTGRES_DIR}/bin/psql"
|
||||
fi
|
||||
# put back any tablespaces that had been moved
|
||||
for TS_DIR in "${TABLESPACES[@]}"; do
|
||||
if [[ -d "${TEMP_NEW_DATA}/${TS_DIR}" && ! -e "${POSTGRES_DATA_DIR}/${TS_DIR}" ]]; then
|
||||
mv -fv "${TEMP_NEW_DATA}/${TS_DIR}" "${POSTGRES_DATA_DIR}/${TS_DIR}"
|
||||
fi
|
||||
done
|
||||
# restore original pg_hba.conf
|
||||
if [[ -f "${TEMP_CONFIG_DIR}/pg_hba.conf" ]]; then
|
||||
cp -fv "${TEMP_CONFIG_DIR}/pg_hba.conf" "${POSTGRES_DATA_DIR}/pg_hba.conf"
|
||||
fi
|
||||
# clean up temp directories
|
||||
rm -rf "${TEMP_CONFIG_DIR}"
|
||||
rm -rf "${TEMP_OLD_DATA}"
|
||||
rm -rf "${TEMP_NEW_DATA}"
|
||||
sync
|
||||
echo -e "\nERROR: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
echo "ERROR: !! UPGRADE FAILED !!"
|
||||
echo "ERROR: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
echo -e "\nERROR: One or more errors occurred. See above output."
|
||||
echo -en "\nAny changes made by this script have been rolled back. You "
|
||||
echo -en "may run this script again once any issues have been resolved.\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
if [[ ! -d "${POSTGRES_COPY_OF_OLD}" ]]; then
|
||||
echo -n "ERROR: Did not find the old version of PostgreSQL at "
|
||||
echo "${POSTGRES_COPY_OF_OLD}. Upgrade might already be complete."
|
||||
echo "ERROR: Cannot continue."
|
||||
cleanup_exit
|
||||
fi
|
||||
|
||||
if [[ "${POSTGRES_VERSION}" != "${NEW_VER}" ]]; then
|
||||
echo -n "ERROR: Currently installed version of PostgreSQL is "
|
||||
echo "${POSTGRES_VERSION}. Expected ${NEW_VER}. Cannot continue."
|
||||
cleanup_exit
|
||||
fi
|
||||
|
||||
if [[ "${PSQL_VERSION}" != "${NEW_VER}" ]]; then
|
||||
echo -n "ERROR: Currently installed version of psql is "
|
||||
echo "${PSQL_VERSION}. Expected ${NEW_VER}. Cannot continue."
|
||||
cleanup_exit
|
||||
fi
|
||||
|
||||
${POSTGRES_DIR}/bin/pg_ctl -D "${POSTGRES_DATA_DIR}" status
|
||||
if [[ "$?" -eq 0 ]]; then
|
||||
echo "ERROR: It looks like PostgreSQL is running. Cannot continue."
|
||||
cleanup_exit
|
||||
fi
|
||||
|
||||
|
||||
# identify any tablespaces that need to be moved after running pg_upgrade
|
||||
TABLESPACES=()
|
||||
for TS_LINK in "${PG_TBLSPC}"/* ; do
|
||||
THIS_TS=$(readlink "${TS_LINK}")
|
||||
if [[ "${THIS_TS}" == "${POSTGRES_DATA_DIR}"* ]]; then
|
||||
TABLESPACES+=("$(basename ${THIS_TS})")
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
echo -e "\nINFO: Backing up config files"
|
||||
for CONF in "${CONFIG_FILES[@]}"; do
|
||||
cp -v "${POSTGRES_DATA_DIR}/${CONF}" "${TEMP_CONFIG_DIR}/${CONF}" || cleanup_exit
|
||||
done
|
||||
|
||||
|
||||
echo -e "\nINFO: Initializing new cluster at ${TEMP_NEW_DATA}"
|
||||
rm -rf "${TEMP_NEW_DATA}"
|
||||
"${INITDB}" -D "${TEMP_NEW_DATA}" || cleanup_exit
|
||||
|
||||
|
||||
echo -e "\nINFO: Starting new cluster on port ${TEMP_PORT}"
|
||||
"${POSTGRES_DIR}/bin/postgres" --port="${TEMP_PORT}" -D "${TEMP_NEW_DATA}" 2>&1 &
|
||||
sleep 10 # wait for server to start
|
||||
|
||||
|
||||
echo -e "\nINFO: Setting up awips db user"
|
||||
"${PSQL}" --port="${TEMP_PORT}" --db=postgres << EOF
|
||||
begin;
|
||||
alter role awips with password 'awips';
|
||||
commit;
|
||||
EOF
|
||||
|
||||
|
||||
echo -e "\nINFO: Stopping new cluster"
|
||||
"${POSTGRES_DIR}/bin/pg_ctl" -D "${TEMP_NEW_DATA}" stop
|
||||
sleep 3
|
||||
|
||||
|
||||
# prevent pg_upgrade from prompting for a password for the old cluster
|
||||
echo -e "\nINFO: Updating old pg_hba.conf to trust local connections"
|
||||
grep -E "local\s+all\s+all\s+trust" "${POSTGRES_DATA_DIR}/pg_hba.conf" >/dev/null
|
||||
if [[ "$?" -ne 0 ]]; then
|
||||
echo -e "local\tall\tall\ttrust" >> "${POSTGRES_DATA_DIR}/pg_hba.conf" || cleanup_exit
|
||||
fi
|
||||
|
||||
# Need to symlink psql,
|
||||
# because pg_upgrade expects $POSTGRES_DIR/bin/psql to exist
|
||||
echo -e "\nINFO: Creating link to ${PSQL} at ${POSTGRES_DIR}/bin/psql"
|
||||
if [[ ! -x "${POSTGRES_DIR}/bin/psql" ]]; then
|
||||
ln -fvs "${PSQL}" "${POSTGRES_DIR}/bin/psql" || exit 1
|
||||
fi
|
||||
|
||||
echo -e "\nINFO: Starting upgrade"
|
||||
|
||||
${PG_UPGRADE} --jobs=4 --link \
|
||||
--old-port="${TEMP_PORT}" \
|
||||
--new-port="${TEMP_PORT}" \
|
||||
--old-bindir="${POSTGRES_COPY_OF_OLD}/bin" \
|
||||
--new-bindir="${POSTGRES_DIR}/bin" \
|
||||
--old-datadir="${POSTGRES_DATA_DIR}" \
|
||||
--new-datadir="${TEMP_NEW_DATA}" \
|
||||
--username=awips \
|
||||
|| cleanup_exit
|
||||
# analyze_new_cluster.sh is created by pg_upgrade but is not needed.
|
||||
# admin should run the included "rebuild_stats.sh" instead.
|
||||
rm -f analyze_new_cluster.sh
|
||||
|
||||
|
||||
echo -e "\nINFO: Fixing postgresql.conf for 9.5"
|
||||
TEMP_POSTGRESQL_CONF="${TEMP_CONFIG_DIR}/postgresql.conf"
|
||||
cp -v "${TEMP_POSTGRESQL_CONF}" "${TEMP_POSTGRESQL_CONF}.old" \
|
||||
&& $(dirname $0)/_update_postgresql_conf.pl \
|
||||
"${TEMP_POSTGRESQL_CONF}" \
|
||||
>"${TEMP_POSTGRESQL_CONF}.new" \
|
||||
&& mv -v "${TEMP_POSTGRESQL_CONF}.new" "${TEMP_POSTGRESQL_CONF}"
|
||||
[[ "$?" -eq 0 ]] || cleanup_exit
|
||||
|
||||
|
||||
echo -e "\nINFO: Copying config files to new data directory"
|
||||
for CONF in "${CONFIG_FILES[@]}"; do
|
||||
cp -v "${TEMP_CONFIG_DIR}/${CONF}" "${TEMP_NEW_DATA}/${CONF}" || cleanup_exit
|
||||
done
|
||||
|
||||
|
||||
echo -e "\nINFO: Moving tablespaces"
|
||||
for TS_DIR in "${TABLESPACES[@]}"; do
|
||||
mv -v "${POSTGRES_DATA_DIR}/${TS_DIR}" "${TEMP_NEW_DATA}" || cleanup_exit
|
||||
done
|
||||
|
||||
|
||||
echo -e "\nINFO: Moving new data dir to ${POSTGRES_DATA_DIR}"
|
||||
rm -rf "${TEMP_OLD_DATA}"
|
||||
mkdir "${TEMP_OLD_DATA}" || cleanup_exit
|
||||
mv "${POSTGRES_DATA_DIR}"/* "${TEMP_OLD_DATA}"
|
||||
mv "${TEMP_NEW_DATA}"/* "${POSTGRES_DATA_DIR}"
|
||||
|
||||
|
||||
echo -e "\nINFO: Deleting temp directories"
|
||||
rm -rf "${TEMP_OLD_DATA}"
|
||||
rm -rf "${TEMP_NEW_DATA}"
|
||||
rm -rf "${TEMP_CONFIG_DIR}"
|
||||
|
||||
echo -e "\nINFO: Removing symlinked psql"
|
||||
if [[ -h "${POSTGRES_DIR}/bin/psql" ]]; then
|
||||
rm -f "${POSTGRES_DIR}/bin/psql"
|
||||
fi
|
||||
|
||||
echo -e "\nINFO: Syncing disks"
|
||||
sync
|
||||
|
||||
|
||||
echo -e "\nINFO: ****************************************"
|
||||
echo "INFO: ** UPGRADE COMPLETE **"
|
||||
echo "INFO: ****************************************"
|
|
@ -1,27 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
source "$(dirname $0)/settings_openfire.sh" || exit 1
|
||||
|
||||
|
||||
if [[ "${POSTGRES_VERSION}" != ${OLD_VER} ]]; then
|
||||
echo -n "ERROR: Currently installed version of PostgreSQL is "
|
||||
echo "${POSTGRES_VERSION}. Expected ${OLD_VER}. Cannot continue."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "INFO: Copying ${POSTGRES_DIR} to ${POSTGRES_COPY_OF_OLD}."
|
||||
|
||||
if [[ -e ${POSTGRES_COPY_OF_OLD} ]]; then
|
||||
rm -rf ${POSTGRES_COPY_OF_OLD}
|
||||
fi
|
||||
|
||||
cp -a ${POSTGRES_DIR} ${POSTGRES_COPY_OF_OLD}
|
||||
if [[ "$?" -ne 0 ]]; then
|
||||
echo -en "\nERROR: Failed to copy ${POSTGRES_DIR} to ${POSTGRES_COPY_OF_OLD}"
|
||||
echo "Cannot continue."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sync
|
||||
|
||||
echo "INFO: Pre-upgrade preparation is complete. No errors reported."
|
|
@ -1,20 +0,0 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
# Update postgresql.conf (read from stdin)
|
||||
# Accompanies upgrade from PostgreSQL 9.3.x to 9.5.x
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
while (<>) {
|
||||
if (/^checkpoint_segments\s*=\s*/ ||
|
||||
/^autocommit\s*=\s*/ ||
|
||||
/^debug_assertions\s*=\s*/ ||
|
||||
/^ssl_renegotiation_limit\s*=\s*/) {
|
||||
# comment out options removed in PostgreSQL 9.5
|
||||
chomp;
|
||||
print "# " . $_ . " # removed in 9.5\n";
|
||||
} else {
|
||||
print;
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [[ "$(id -u)" -ne 0 ]]; then
|
||||
echo "$(basename $0): need to be root."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ts=$(date +%F_%H%M%S)
|
||||
logdir=/data/fxa/INSTALL/a2logs/17.1.1/pg_upgrade-${ts}
|
||||
mkdir -p "${logdir}" || exit 1
|
||||
chown -R awips:fxalpha "${logdir}"
|
||||
chmod 2775 "${logdir}"
|
||||
echo INFO: Postgres upgrade logs will be saved to ${logdir}
|
||||
scriptdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
cd $logdir
|
||||
sudo -nu awips bash "${scriptdir}"/_postgres_post_upgrade_openfire.sh | sudo -nu awips tee ./postgres_upgrade_$(date +%F_%H%M%S).log
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [[ "$(id -u)" -ne 0 ]]; then
|
||||
echo "$(basename $0): need to be root."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo -nu awips bash $(dirname $0)/_postgres_pre_upgrade_openfire.sh
|
|
@ -1,21 +0,0 @@
|
|||
#!/bin/bash
|
||||
# After pg_upgrade from 9.3.x to 9.5.x, statistics are lost.
|
||||
# Once the new 9.5.x cluster is running, run this script to regenerate
|
||||
# the statistics.
|
||||
|
||||
VACUUMDB=/awips2/postgresql/bin/vacuumdb
|
||||
PSQL=/awips2/psql/bin/psql
|
||||
DATABASES=$(${PSQL} --db openfire -U awips -Atc "
|
||||
select datname
|
||||
from pg_database
|
||||
where datistemplate = false
|
||||
and datname not in ('awips', 'postgres');
|
||||
")
|
||||
|
||||
for DBNAME in ${DATABASES}; do
|
||||
if [[ "$(id -u)" -eq 0 ]]; then
|
||||
sudo -u awips ${VACUUMDB} --username awips --analyze-in-stages ${DBNAME}
|
||||
else
|
||||
${VACUUMDB} --username awips --analyze-in-stages ${DBNAME}
|
||||
fi
|
||||
done
|
|
@ -1,21 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Settings for PostgreSQL major version upgrade scripts.
|
||||
# Specifically for upgrading an Openfire cluster.
|
||||
|
||||
OLD_VER="9.3.10"
|
||||
NEW_VER="9.5.3"
|
||||
AWIPS2=/awips2
|
||||
POSTGRES_DIR=$AWIPS2/postgresql
|
||||
POSTGRES_VERSION=$($POSTGRES_DIR/bin/postgres --version | cut -d' ' -f3)
|
||||
POSTGRES_COPY_OF_OLD=$AWIPS2/postgresql-$OLD_VER
|
||||
POSTGRES_DATA_DIR=$AWIPS2/openfire_data
|
||||
PSQL_DIR=$AWIPS2/psql
|
||||
PSQL=$PSQL_DIR/bin/psql
|
||||
PSQL_VERSION=$($PSQL --version | cut -d' ' -f3)
|
||||
TEMP_OLD_DATA=$POSTGRES_DATA_DIR/.data-$OLD_VER
|
||||
TEMP_NEW_DATA=$POSTGRES_DATA_DIR/.data-$NEW_VER
|
||||
TEMP_PORT=50432
|
||||
PG_UPGRADE=$POSTGRES_DIR/bin/pg_upgrade
|
||||
PG_TBLSPC=$POSTGRES_DATA_DIR/pg_tblspc
|
||||
CONFIG_FILES=(pg_hba.conf pg_ident.conf postgresql.conf)
|
||||
INITDB=$POSTGRES_DIR/bin/initdb
|
|
@ -5,7 +5,7 @@ Quick instructions on how to deploy CAVE from Eclipse.
|
|||
|
||||
[awips2repo]
|
||||
name=AWIPS II Repository
|
||||
baseurl=http://www.unidata.ucar.edu/repos/yum/awips2-dev/
|
||||
baseurl=https://www.unidata.ucar.edu/repos/yum/awips2-dev/
|
||||
enabled=1
|
||||
protect=0
|
||||
gpgcheck=0
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# Case Study Server Configuration
|
||||
|
||||
This document covers what is necessary to install and run AWIPS EDEX as an archive and case study server (no purging or data).
|
||||
This document covers what is necessary to install and run AWIPS EDEX as an archive and case study server (no purging of data).
|
||||
|
||||
## Quick Install
|
||||
|
||||
Follow the [EDEX Install Instrutions](../install-edex/) including iptables config and an SSD mount (for large data volumes)
|
||||
Follow the [EDEX Install Instructions](../install-edex/) including iptables config and an optional SSD mount (for large data volumes)
|
||||
|
||||
groupadd fxalpha && useradd -G fxalpha awips
|
||||
mkdir -p /awips2/data_store
|
||||
|
@ -14,7 +14,7 @@ Follow the [EDEX Install Instrutions](../install-edex/) including iptables confi
|
|||
|
||||
## Disable Data Purging
|
||||
|
||||
The easiest way to disable data purging is to add an **<exclude>purge.*</exclude>** entry in **/awips2/edex/conf/modes/ingest-modes.xml** so that the purge plugin is not loaded when the EDEX JVMs are run:
|
||||
The easiest way to disable data purging is to add an **<exclude>purge.*</exclude>** entry in **/awips2/edex/conf/modes/ingest-modes.xml** so that the purge plugin is not loaded when the EDEX ingest JVM is started:
|
||||
|
||||
vi /awips2/edex/conf/modes/ingest-modes.xml
|
||||
|
||||
|
@ -64,13 +64,13 @@ for example
|
|||
|
||||
qpidNotify.py /awips2/data_store/radar/FTG_N0Q_20171015_1815 Level3
|
||||
|
||||
# Viewing Archive Data in CAVE
|
||||
## Viewing Archive Data in CAVE
|
||||
|
||||
Because we are installing and confiruging a standalone EDEX archive server with no real-time LDM data ingest, and with purge rules disabled, any archive data that is ingested will be the "latest available" to CAVE, and you will see CAVE product menu time fill in with the latest of all data ingested.
|
||||
Because we are installing and configuring a standalone EDEX archive server without real-time LDM data ingest (and with purge disabled), any case study data that is ingested will be the "latest available" to CAVE, and you will see CAVE product menu time fill in with the latest of all data ingested.
|
||||
|
||||
However, to display specific time-based data (in case you ingest more than one archive case study), there are two options:
|
||||
However, to display specific time-based data (in case you ingest more than one case study), there are two options:
|
||||
|
||||
## 1. Load Mode > Inventory
|
||||
### 1. Load Mode > Inventory
|
||||
|
||||
In the top-left toolbar change **Valid time seq** to **Inventory**.
|
||||
|
||||
|
@ -80,9 +80,9 @@ Now any data product selected from the menus or the Product Browser will prompt
|
|||
|
||||

|
||||
|
||||
## 2. Set Data Display Time in CAVE
|
||||
### 2. Set Data Display Time in CAVE
|
||||
|
||||
At the bottom of the CAVE application, double-click the **Time:** entry to bring up a dialog window.
|
||||
At the bottom of the CAVE application, double-click the **Time:** entry to bring up a dialog window where you can set CAVE to a previous time, and choose the option of freezing CAVE at that time or allowing CAVE to "move forward in time" from that position as if it were real-time.
|
||||
|
||||

|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ Create a short script to run once daily at 20 minutes after 00 UTC, appending ea
|
|||
1. `vi ~/edexUsers.sh`
|
||||
|
||||
#!/bin/bash
|
||||
/awips2/tools/bin/edex users >> /home/awips/edex-users.log
|
||||
/awips2/edex/bin/edex users >> /home/awips/edex-users.log
|
||||
|
||||
2. `crontab -e`
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ Available sectors and products
|
|||
- Imager Visible
|
||||
* East CONUS:
|
||||
- Imager 11 micron IR
|
||||
- Imager 13 micron (IR)
|
||||
- Imager 13 micron IR
|
||||
- Imager 3.9 micron IR
|
||||
- Imager 6.7-6.5 micron IR (WV)
|
||||
- Imager Visible
|
||||
|
@ -104,7 +104,7 @@ Available sectors and products
|
|||
- Sounder Visible imagery
|
||||
* Hawaii Regional:
|
||||
- Imager 11 micron IR
|
||||
- Imager 13 micron (IR)
|
||||
- Imager 13 micron IR
|
||||
- Imager 3.9 micron IR
|
||||
- Imager 6.7-6.5 micron IR (WV)
|
||||
- Imager Visible
|
||||
|
@ -136,7 +136,7 @@ Available sectors and products
|
|||
- Sounder Based Derived Precipitable Water (PW)
|
||||
* Puerto Rico Regional:
|
||||
- Imager 11 micron IR
|
||||
- Imager 13 micron (IR)
|
||||
- Imager 13 micron IR
|
||||
- Imager 3.9 micron IR
|
||||
- Imager 6.7-6.5 micron IR (WV)
|
||||
- Imager Visible
|
||||
|
@ -153,7 +153,7 @@ Available sectors and products
|
|||
- Sounder Based Derived Surface Skin Temp (SFC Skin)
|
||||
* West CONUS:
|
||||
- Imager 11 micron IR
|
||||
- Imager 13 micron (IR)
|
||||
- Imager 13 micron IR
|
||||
- Imager 3.9 micron IR
|
||||
- Imager 6.7-6.5 micron IR (WV)
|
||||
- Imager Visible
|
||||
|
|
|
@ -57,10 +57,12 @@
|
|||
<param name="feature"
|
||||
value="com.raytheon.uf.edex.gfe.feature" />
|
||||
</antcall>
|
||||
<!--
|
||||
<antcall target="build">
|
||||
<param name="feature"
|
||||
value="com.raytheon.uf.edex.ncep.feature" />
|
||||
</antcall>
|
||||
-->
|
||||
|
||||
</target>
|
||||
|
||||
|
|
|
@ -13,11 +13,11 @@
|
|||
|
||||
|
||||
<target name="main" depends="init, setup">
|
||||
<property name="esb.directory" value="${repo.dir}/build/deploy.edex.awips2/esb" />
|
||||
<property name="esb.directory" value="${repo.dir}/edexOsgi/deploy.edex.awips2/esb" />
|
||||
<!-- deploy esb {optionally: data, web} -->
|
||||
<ant antfile="${repo.dir}/build/deploy.edex.awips2/deploy/deploy-esb.xml" />
|
||||
<ant antfile="${repo.dir}/edexOsgi/deploy.edex.awips2/deploy/deploy-esb.xml" />
|
||||
<!-- deploy esb configuration -->
|
||||
<ant antfile="${repo.dir}/build/deploy.edex.awips2/deploy/deploy-esb-configuration.xml" />
|
||||
<ant antfile="${repo.dir}/edexOsgi/deploy.edex.awips2/deploy/deploy-esb-configuration.xml" />
|
||||
<!-- deploy edex plugins -->
|
||||
<!-- which feature do we want to deploy? -->
|
||||
<if>
|
||||
|
@ -138,4 +138,4 @@
|
|||
<!-- static -->
|
||||
<taskdef name="includegen" classname="com.raytheon.uf.anttasks.includesgen.GenerateIncludesFromFeature" classpathref="ant.classpath" />
|
||||
<taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${basedir}/lib/ant/ant-contrib-1.0b3.jar" />
|
||||
</project>
|
||||
</project>
|
||||
|
|
|
@ -1,23 +1,4 @@
|
|||
#!/bin/bash
|
||||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
# -----------------------------------------------------------------
|
||||
# ! script to create the HBDB database
|
||||
# !
|
||||
|
@ -28,15 +9,10 @@
|
|||
# ! $5 = log file path
|
||||
# !
|
||||
# -----------------------------------------------------------------
|
||||
echo ""
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
echo "\| Creating HMDB Database and Tables..."
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
# Creating HMDB Database and Tables
|
||||
${1}/bin/psql -d postgres -U ${3} -q -p ${2} -f ${4}/createHMDB.sql >> ${5} 2>&1
|
||||
${1}/bin/psql -d hmdb -U ${3} -q -p ${2} -f ${4}/createTables.sql >> ${5} 2>&1
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
echo "\| Populating HMDB Database Tables"
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
# Populating HMDB Database Tables
|
||||
${1}/bin/psql -d hmdb -U ${3} -q -p ${2} -f ${4}/load_boolean_values.sql >> ${5} 2>&1
|
||||
${1}/bin/psql -d hmdb -U ${3} -q -p ${2} -f ${4}/load_bufr_identifier.sql >> ${5} 2>&1
|
||||
${1}/bin/psql -d hmdb -U ${3} -q -p ${2} -f ${4}/load_cat_values.sql >> ${5} 2>&1
|
||||
|
@ -93,7 +69,5 @@ ${1}/bin/psql -d hmdb -U ${3} -q -p ${2} -f ${4}/load_units_system.sql >> ${5} 2
|
|||
${1}/bin/psql -d hmdb -U ${3} -q -p ${2} -f ${4}/load_units_translations.sql >> ${5} 2>&1
|
||||
${1}/bin/psql -d hmdb -U ${3} -q -p ${2} -f ${4}/load_weather_category.sql >> ${5} 2>&1
|
||||
${1}/bin/psql -d hmdb -U ${3} -q -p ${2} -f ${4}/load_wmo_state_region.sql >> ${5} 2>&1
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
echo "\| Creating HMDB Database Constraints..."
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
# Creating HMDB Database Constraints
|
||||
${1}/bin/psql -d hmdb -U ${3} -q -p ${2} -f ${4}/createConstraints.sql >> ${5} 2>&1
|
||||
|
|
|
@ -8,41 +8,18 @@
|
|||
# ! $4 = script directory
|
||||
# ! $5 = log file path
|
||||
# !
|
||||
echo -----------------------------------------------------
|
||||
echo \| Creating NCEP database and tables...
|
||||
echo -----------------------------------------------------
|
||||
|
||||
${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/createNcepConfigTables.sql >> ${5} 2>&1
|
||||
${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/createNcepSatTables.sql >> ${5} 2>&1
|
||||
${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/createNcepStnsTables.sql >> ${5} 2>&1
|
||||
${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/createNcepNwxTables.sql >> ${5} 2>&1
|
||||
#${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/createNcepNcgribTables.sql >> ${5} 2>&1
|
||||
echo -----------------------------------------------------
|
||||
echo \| Populating NCEP database and tables...
|
||||
echo -----------------------------------------------------
|
||||
|
||||
echo -----------------------------------------------------
|
||||
echo \| Populating config tables...
|
||||
echo -----------------------------------------------------
|
||||
# Populating config tables
|
||||
${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/loadConfigClo.sql >> ${5} 2>&1
|
||||
|
||||
#echo -----------------------------------------------------
|
||||
#echo \| Populating ncgrib tables...
|
||||
#echo -----------------------------------------------------
|
||||
# Populating ncgrib tables
|
||||
#${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/loadVcrdgrib1.sql >> ${5} 2>&1
|
||||
|
||||
echo -----------------------------------------------------
|
||||
echo \| Populating sat tables...
|
||||
echo -----------------------------------------------------
|
||||
# Populating sat tables
|
||||
${1}/bin/psql -d ncep -U ${3} -q -p ${2} -f ${4}/loadNcSat.sql >> ${5} 2>&1
|
||||
|
||||
echo -----------------------------------------------------
|
||||
echo \| Populating stns tables...
|
||||
echo -----------------------------------------------------
|
||||
${4}/loadNcepStns.sh ${1} ${2} ${3} ${4} ${5}
|
||||
|
||||
echo -----------------------------------------------------
|
||||
echo \| Populating nwx tables...
|
||||
echo -----------------------------------------------------
|
||||
${4}/loadNcepNwx.sh ${1} ${2} ${3} ${4} ${5}
|
||||
|
||||
# Populating stns tables
|
||||
${4}/loadNcepStns.sh ${1} ${2} ${3} ${4} ${5} 2>&1
|
||||
# Populating nwx tables
|
||||
${4}/loadNcepNwx.sh ${1} ${2} ${3} ${4} ${5} 2>&1
|
||||
|
|
|
@ -41,7 +41,7 @@ else
|
|||
PSQLBINDIR=/awips2/psql/bin/
|
||||
fi
|
||||
|
||||
echo " Importing `basename ${SHAPEFILE}` into ${SCHEMA}.${TABLE} ..."
|
||||
#echo " Importing `basename ${SHAPEFILE}` into ${SCHEMA}.${TABLE} ..."
|
||||
if [ -n "$LOGFILE" ] ; then
|
||||
${PSQLBINDIR}psql -d ncep -U ${PGUSER} -q -p ${PGPORT} -c "
|
||||
DELETE FROM public.geometry_columns WHERE f_table_schema = '${SCHEMA}' AND f_table_name = '${TABLE}';
|
||||
|
@ -67,10 +67,10 @@ else
|
|||
fi
|
||||
|
||||
if [ -n "$SIMPLEVS" ] ; then
|
||||
echo " Creating simplification levels ${SIMPLEVS}..."
|
||||
#echo " Creating simplification levels ${SIMPLEVS}..."
|
||||
IFS=", "
|
||||
for LEV in $SIMPLEVS ; do
|
||||
echo " Creating simplified geometry level $LEV ..."
|
||||
#echo " Creating simplified geometry level $LEV ..."
|
||||
IFS="."
|
||||
SUFFIX=
|
||||
for x in $LEV ; do SUFFIX=${SUFFIX}_${x} ; done
|
||||
|
|
|
@ -26,25 +26,19 @@ else
|
|||
PGPORT=${3}
|
||||
fi
|
||||
|
||||
# in /awips2/database/sqlScripts/share/sql/ncep/shapefiles/
|
||||
for shp in `find ${4}/shapefiles -name "*.shp"` ; do
|
||||
base=`basename \`dirname $shp\``
|
||||
echo Creating $base...
|
||||
SIMPLEV=
|
||||
if [[ $base == 'Adjcstlbnds' \
|
||||
|| $base == 'Airmetcstlbnds' \
|
||||
|| $base == 'Akpsabnds' \
|
||||
|| $base == 'Artccbnds' \
|
||||
|| $base == 'Ascairways' \
|
||||
|| $base == 'Ascarrfa' \
|
||||
|| $base == 'Ascartcc' \
|
||||
|| $base == 'Ascfaarea' \
|
||||
|| $base == 'Ascfaregion' \
|
||||
|| $base == 'Ascgulffa' \
|
||||
|| $base == 'Aschifiwo' \
|
||||
|| $base == 'Asctropfirs' \
|
||||
|| $base == 'Asctweb' \
|
||||
|| $base == 'Ascwrzones' \
|
||||
|| $base == 'Awcartcc' \
|
||||
|| $base == 'Awcccfcan' \
|
||||
|| $base == 'Atlbasin' \
|
||||
|| $base == 'Bwus_bnd' \
|
||||
|
@ -61,7 +55,6 @@ for shp in `find ${4}/shapefiles -name "*.shp"` ; do
|
|||
|| $base == 'Firbnds' \
|
||||
|| $base == 'Firebnds' \
|
||||
|| $base == 'FireWxAOR' \
|
||||
|| $base == 'FirKzoaAwc' \
|
||||
|| $base == 'G2t_atl_bnd' \
|
||||
|| $base == 'G2t_nwc' \
|
||||
|| $base == 'G2t_pac_bnd' \
|
||||
|
@ -69,33 +62,22 @@ for shp in `find ${4}/shapefiles -name "*.shp"` ; do
|
|||
|| $base == 'Gfa_conus' \
|
||||
|| $base == 'Greatlakesbnds' \
|
||||
|| $base == 'Hcnbnds' \
|
||||
|| $base == 'Hpc050_med' \
|
||||
|| $base == 'Hpcsfc' \
|
||||
|| $base == 'Lakesbnds' \
|
||||
|| $base == 'Locowobnds' \
|
||||
|| $base == 'Mwobnds' \
|
||||
|| $base == 'Mzbnds' \
|
||||
|| $base == 'Mzcntybnds' \
|
||||
|| $base == 'Npsabnds' \
|
||||
|| $base == 'OPC_Ssa' \
|
||||
|| $base == 'Opcbnds' \
|
||||
|| $base == 'Opcbnds_nomex' \
|
||||
|| $base == 'PacBasin' \
|
||||
|| $base == 'Pfzbnds' \
|
||||
|| $base == 'Rfcbnds' \
|
||||
|| $base == 'Sig_high' \
|
||||
|| $base == 'SPC_outlook_area' \
|
||||
|| $base == 'Ssa_bnd' \
|
||||
|| $base == 'Statebnds' \
|
||||
|| $base == 'Tpcbounds' \
|
||||
|| $base == 'Tzbnds' \
|
||||
|| $base == 'Ua_bnd' \
|
||||
|| $base == 'Us_ak' \
|
||||
|| $base == 'Vaacarbnds' \
|
||||
]]
|
||||
then
|
||||
SIMPLEV='0.064,0.016,0.004,0.001'
|
||||
${PGHOME}/importNcepShapeFile.sh $shp bounds $base "$SIMPLEV" $PGUSER $PGPORT $1 $LOGFILE
|
||||
${PGHOME}/importNcepShapeFile.sh $shp bounds $base "$SIMPLEV" $PGUSER $PGPORT $1 $LOGFILE 2>&1
|
||||
fi
|
||||
|
||||
done
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
|
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue