Merge remote-tracking branch 'unidata/unidata_17.1.1' into unidata_17.1.1-osx

This commit is contained in:
Michael James 2017-12-21 09:44:01 -07:00
commit 837a8e7111
2136 changed files with 2066 additions and 179720 deletions

1
.gitignore vendored
View file

@ -6,6 +6,7 @@ testbin/
testBin/
bin-test/
bin
.idea
*.swp
*.class
*.pyo

View file

@ -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}

View file

@ -1,8 +1,10 @@
# Unidata AWIPS
[![GitHub release](https://img.shields.io/github/release/Unidata/awips2.svg)]() [![Travis Badge](https://travis-ci.org/Unidata/awips2.svg?branch=unidata_17.1.1)](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).
[![GitHub release](https://img.shields.io/github/release/Unidata/awips2/all.svg)]() [![Travis Badge](https://travis-ci.org/Unidata/awips2.svg?branch=unidata_17.1.1)](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

View 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"]

View 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
View 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
View 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
View 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

View file

@ -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
View 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
View 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
View 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>

View file

@ -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 $@

View file

@ -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

View file

@ -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

View file

@ -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}

View file

@ -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>

View file

@ -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

View file

@ -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/

View file

@ -1,4 +1,4 @@
build/* edexOsgi/* cave/* localization/*
edexOsgi/* cave/* localization/*
javaUtilities/* rpms pythonPackages nativeLib/*
*.pdf
../awips2-core/common/*

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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"/>

View file

@ -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;
}
}

View file

@ -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.

View file

@ -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");
}
}
}
}

View file

@ -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;
}

View file

@ -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();
}
}
}
}
}

View file

@ -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);
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}
}
}

View file

@ -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;
}
}

View file

@ -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>

View file

@ -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>

View file

@ -36,7 +36,7 @@
constraintType="EQUALS" />
</mapping>
<mapping key="sectorID">
<constraint constraintValue="TCONUS"
<constraint constraintValue="ECONUS"
constraintType="EQUALS" />
</mapping>
<mapping key="creatingEntity">

View file

@ -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"

View file

@ -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"

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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" />

View file

@ -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)"/>

View file

@ -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

View file

@ -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: ****************************************"

View file

@ -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."

View file

@ -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;
}
}

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 **&lt;exclude&gt;purge.*&lt;/exclude&gt;** 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 **&lt;exclude&gt;purge.*&lt;/exclude&gt;** 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 &gt; Inventory
### 1. Load Mode &gt; 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
![](/images/load_mode_inventory2.png)
## 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.
![](/images/cave_set_time.png)

View file

@ -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`

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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]]

View file

@ -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]]

View file

@ -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]]

View file

@ -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]]

View file

@ -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]]

View file

@ -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]]

Some files were not shown because too many files have changed in this diff Show more