Merge branch 'master' into 'master'

Master

See merge request !1
parents 63146208 b3b49300
......@@ -43,6 +43,15 @@ Subdirectories:
htdocs: Web pages containing the VR software and documentation.
cgi-bin: cgi scripts to create suitable config files from a material number.
Docker container running the VR webservices
# install docker
# add your NOMAD username and password in webserver/pass
# build container
sudo docker build -t nomadvr .
# run container
sudo docker run -d -p 8080:8080 nomadvr
# Test e.g. with you.rip.add.res:8080/cgi-bin/NOMAD/material?109702
RemoteVisualization: NOMAD2xyz app
Transforms a json from encyclopedia or archive into an XYZ file
Useful for the remote visualization infrastructure
......@@ -54,6 +63,7 @@ Subdirectories:
MD-Driver/SimpleMove and MD-Driver/PeriodicTable: see MD-Driver/Readme
Support for atom drag-and-drop functionality in OpenVR NOMAD VR.
More platforms will be added in the future.
The code is distributed under the Apache 2.0 License (See LICENSE file).
......
# note, copy this file to VR-demos folder first
FROM bitnami/apache:2.4
# copy NOMAD webservices
COPY ./webserver/htdocs/NOMAD/ /opt/bitnami/apache/htdocs/NOMAD/
COPY ./webserver/cgi-bin/NOMAD/ /opt/bitnami/apache/cgi-bin/NOMAD/
COPY ./webserver/pass /opt/bitnami/apache/
# allow cgi-bin
RUN sed -i 's%#LoadModule cgid_module modules/mod_cgid.so%LoadModule cgid_module modules/mod_cgid.so%' /opt/bitnami/apache/conf/httpd.conf
# add wget. gzip, curl, tar are there by default
USER root
RUN apt-get update \
&& apt-get install -y wget \
&& apt-get install -y zip \
&& rm -rf /var/lib/apt/lists/*
Docker file to build a container to perform the VR conversion webservices
* copy the Dockerfile to .. (VR-demos -folder)
* install docker
* add your NOMAD username and password in webserver/pass
* build container
sudo docker build -t nomadvr .
* run container
sudo docker run -d -p 8080:8080 nomadvr
* Test e.g. with you.rip.add.res:8080/cgi-bin/NOMAD/material?109702
* stop container
sudo docker stop <container-name>
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
#!/bin/bash
# Copyright 2016-2018 Ruben Jesus Garcia Hernandez
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
source ../../pass
if [[ "$QUERY_STRING" = "" ]]
then
#echo Location: /NOMAD/
echo Location:https://www.nomad-coe.eu/the-project/graphics/VR-prototype
echo ''
else
#rgh: text/plain works in pc but android chrome saves it as .txt, removing the extension
# export TOKEN=`cat t.b64`
export MAT=$QUERY_STRING
export RAND=$RANDOM
#rgh: before end of september 2017, use /var/tmp, after, use /tmp (apache update)
cd /tmp
/usr/bin/mkdir $RAND
cd $RAND
#pre 2018: http://encyclopedia-api.nomad-coe.eu/v1.0/saml/
#post 2018:
SAMLURL=https://encyclopedia.nomad-coe.eu/api/v1.0/saml/
wget --save-cookies cookies.txt \
--keep-session-cookies \
--no-check-certificate $SAMLURL -O login.html >/dev/null 2>&1
URL=`grep "form action" login.html |cut -f 2 -d \" |head -n 1`
wget --save-cookies cookies2.txt --keep-session-cookies --load-cookies cookies.txt --no-check-certificate \
"https://idp.nomad-coe.eu$URL&j_username=$USER&j_password=$PASS&_eventId_proceed" -O a.html >/dev/null 2>&1
URL=`grep "form action" a.html |cut -f 2 -d \" |head -n 1`
wget --save-cookies cookies3.txt --keep-session-cookies --load-cookies cookies2.txt --no-check-certificate \
"https://idp.nomad-coe.eu$URL&_shib_idp_consentOptions=_shib_idp_globalConsent&_eventId_proceed" \
-O b.html >/dev/null 2>&1
#now continue, as we don't support javascript :o)
URL2=`echo $URL |cut -f 1 -d \?`
DEST=`grep action b.html |cut -f 2 -d \"`
RELAY=`grep RelayState b.html |cut -f6 -d \"`
SAML=`grep SAMLResponse b.html |cut -f6 -d \"`
#rgh: since 25-09-2017, this line gives "invalid url" (possibly curl update)
#RELAY="https%3A%2F%2Fencyclopedia-api.nomad-coe.eu%2Fv1.0%2Fsaml%2F"
#pre-2018
#RELAY="https://encyclopedia-api.nomad-coe.eu/v1.0/saml/"
RELAY=$SAMLURL
#echo relay is $RELAY
MATERIALSURL=https://encyclopedia.nomad-coe.eu/api/v1.0/materials
curl -L -c cookies3.txt -X GET -F "RelayState=$RELAY" -F "SAMLResponse=$SAML" "$SAMLURL?acs" -o resp.json >/dev/null 2>&1
TOKEN=`grep data resp.json |cut -f 4 -d \"`
mkdir $MAT
cd $MAT
wget --no-check-certificate --user "$TOKEN" --password "" $MATERIALSURL/$MAT/cells?pagination=off -O material_cells.json >/dev/null 2>&1
wget --no-check-certificate --user "$TOKEN" --password "" $MATERIALSURL/$MAT/elements?pagination=off -O material_elements.json >/dev/null 2>&1
echo \# Material $QUERY_STRING >> $MAT.ncfg
echo background 0 0 0 >> $MAT.ncfg
echo atomscaling 0.5 >> $MAT.ncfg
echo json material >> $MAT.ncfg
echo displaybonds >> $MAT.ncfg
echo displayunitcell >> $MAT.ncfg
echo showcontrollers >> $MAT.ncfg
cd ..
if grep html $MAT/material_cells.json > /dev/null ; then
echo "CGI backend for NOMAD VR: Encyclopedia API issue. Material $MAT" |
mailx -s 'CGI backend for NOMAD VR: Encyclopedia API issue' $EMAIL
echo "Content-type: text/html"
echo ''
echo "<html><head><title>"
echo "VR backend currently being updated"
echo "</title></head><body>"
echo "VR backend currently being updated."
echo "Please <a href=\"https://www.nomad-coe.eu/the-project/graphics/contact-2\">contact us</a> if the problem persists."
echo "</body></html>"
else
zip -r $MAT $MAT >/dev/null 2>&1
echo "Content-type: application/octet-stream"
echo "Content-disposition: attachment; filename=${QUERY_STRING}.zip"
echo ''
cat $MAT.zip
fi
cd ..
\rm -r $RAND
fi
#!/bin/bash
# Copyright 2016-2018 Ruben Jesus Garcia Hernandez
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
source ../../pass
if [[ "$QUERY_STRING" = "" ]]
then
#echo Location: /NOMAD/
echo Location:https://www.nomad-coe.eu/the-project/graphics/VR-prototype
echo ''
else
#rgh: text/plain works in pc but android chrome saves it as .txt, removing the extension
# export TOKEN=`cat t.b64`
export MAT=$QUERY_STRING
export RAND=$RANDOM
#rgh: before end of september 2017, use /var/tmp, after, use /tmp (apache update)
cd /tmp
/usr/bin/mkdir $RAND
cd $RAND
#pre 2018: http://encyclopedia-api.nomad-coe.eu/v1.0/saml/
#post 2018:
SAMLURL=https://encyclopedia.nomad-coe.eu/api/v1.0/saml/
wget --save-cookies cookies.txt \
--keep-session-cookies \
--no-check-certificate $SAMLURL -O login.html >/dev/null 2>&1
URL=`grep "form action" login.html |cut -f 2 -d \" |head -n 1`
wget --save-cookies cookies2.txt --keep-session-cookies --load-cookies cookies.txt --no-check-certificate \
"https://idp.nomad-coe.eu$URL&j_username=$USER&j_password=$PASS&_eventId_proceed" -O a.html >/dev/null 2>&1
URL=`grep "form action" a.html |cut -f 2 -d \" |head -n 1`
wget --save-cookies cookies3.txt --keep-session-cookies --load-cookies cookies2.txt --no-check-certificate \
"https://idp.nomad-coe.eu$URL&_shib_idp_consentOptions=_shib_idp_globalConsent&_eventId_proceed" \
-O b.html >/dev/null 2>&1
#now continue, as we don't support javascript :o)
URL2=`echo $URL |cut -f 1 -d \?`
DEST=`grep action b.html |cut -f 2 -d \"`
RELAY=`grep RelayState b.html |cut -f6 -d \"`
SAML=`grep SAMLResponse b.html |cut -f6 -d \"`
#rgh: since 25-09-2017, this line gives "invalid url" (possibly curl update)
#RELAY="https%3A%2F%2Fencyclopedia-api.nomad-coe.eu%2Fv1.0%2Fsaml%2F"
#pre-2018
#RELAY="https://encyclopedia-api.nomad-coe.eu/v1.0/saml/"
RELAY=$SAMLURL
#echo relay is $RELAY
MATERIALSURL=https://encyclopedia.nomad-coe.eu/api/v1.0/materials
curl -L -c cookies3.txt -X GET -F "RelayState=$RELAY" -F "SAMLResponse=$SAML" "$SAMLURL?acs" -o resp.json >/dev/null 2>&1
TOKEN=`grep data resp.json |cut -f 4 -d \"`
mkdir $MAT
cd $MAT
wget --no-check-certificate --user "$TOKEN" --password "" $MATERIALSURL/$MAT/cells?pagination=off -O material_cells.json >/dev/null 2>&1
wget --no-check-certificate --user "$TOKEN" --password "" $MATERIALSURL/$MAT/elements?pagination=off -O material_elements.json >/dev/null 2>&1
echo \# Material $QUERY_STRING >> $MAT.ncfg
echo background 0 0 0 >> $MAT.ncfg
echo atomscaling 0.5 >> $MAT.ncfg
echo json material >> $MAT.ncfg
echo displaybonds >> $MAT.ncfg
echo displayunitcell >> $MAT.ncfg
echo showcontrollers >> $MAT.ncfg
cd ..
if grep html $MAT/material_cells.json > /dev/null ; then
echo "CGI backend for NOMAD VR: Encyclopedia API issue. Material $MAT" |
mailx -s 'CGI backend for NOMAD VR: Encyclopedia API issue' $EMAIL
echo "Content-type: text/html"
echo ''
echo "<html><head><title>"
echo "VR backend currently being updated"
echo "</title></head><body>"
echo "VR backend currently being updated."
echo "Please <a href=\"https://www.nomad-coe.eu/the-project/graphics/contact-2\">contact us</a> if the problem persists."
echo "</body></html>"
else
zip -r $MAT $MAT >/dev/null 2>&1
echo "Content-type: application/octet-stream"
echo "Content-disposition: attachment; filename=${QUERY_STRING}.zip"
echo ''
cat $MAT.zip
fi
cd ..
# \rm -r $RAND
fi
File mode changed from 100644 to 100755
......@@ -3,5 +3,5 @@ export USER=
export PASS=
#Notification email
export EMAIL=
export EMAIL
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment