Skip to content

Commit c5e551b

Browse files
authored
Merge branch 'develop'
1 parent 986ae0f commit c5e551b

24 files changed

+203
-92
lines changed

.github/workflows/openstudio-server-tests.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ on: [push, pull_request]
1010

1111
env:
1212
USE_TESTING_TIMEOUTS: "true"
13-
OPENSTUDIO_VERSION: 3.6.1
14-
OPENSTUDIO_VERSION_SHA: bb9481519e
13+
OPENSTUDIO_VERSION: 3.7.0
14+
OPENSTUDIO_VERSION_SHA: d5269793f1
1515
OPENSTUDIO_VERSION_EXT: ""
1616
DOCKER_COMPOSE_VERSION: 1.21.1
1717
BUNDLE_WITHOUT: native_ext
@@ -97,7 +97,7 @@ jobs:
9797
- name: docker
9898
shell: bash
9999
run: |
100-
export OPENSTUDIO_TAG=3.6.1
100+
export OPENSTUDIO_TAG=3.7.0
101101
sed -i -E "s/.git//g" .dockerignore
102102
docker volume create --name=osdata
103103
docker images --all

.github/workflows/security-scan.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ on: [push, pull_request]
1010

1111
env:
1212
USE_TESTING_TIMEOUTS: "true"
13-
OPENSTUDIO_VERSION: 3.6.1
14-
OPENSTUDIO_VERSION_SHA: bb9481519e
13+
OPENSTUDIO_VERSION: 3.7.0
14+
OPENSTUDIO_VERSION_SHA: d5269793f1
1515
OPENSTUDIO_VERSION_EXT: ""
1616
DOCKER_COMPOSE_VERSION: 1.21.1
1717
BUNDLE_WITHOUT: native_ext
@@ -31,7 +31,7 @@ jobs:
3131
- name: docker
3232
shell: bash
3333
run: |
34-
export OPENSTUDIO_TAG=3.6.1
34+
export OPENSTUDIO_TAG=3.7.0
3535
sed -i -E "s/.git//g" .dockerignore
3636
docker volume create --name=osdata
3737
docker images --all

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
OpenStudio Server
22
=================
33

4+
Version 3.7.0
5+
-------------
6+
* update Analysis-gem to 1.3.5 in https://github.com/NREL/OpenStudio-server/pull/722
7+
* update Mongo to 6.0.9 in https://github.com/NREL/OpenStudio-server/pull/709
8+
* update Passenger to 6.0.18 in https://github.com/NREL/OpenStudio-server/pull/714
9+
* Fix indicies in Mongo Database in https://github.com/NREL/OpenStudio-server/pull/713
10+
* add XML and MAT files as valid downloadable Report Types https://github.com/NREL/OpenStudio-server/pull/720
11+
12+
413
Version 3.5.1
514
-------------
615
* update urbanopt to 0.9.0

Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
# NOTES: Currently this is one big dockerfile and non-optimal.
55

66
#may include suffix
7-
ARG OPENSTUDIO_VERSION=3.6.1
8-
FROM nrel/openstudio:3.6.1 as base
7+
ARG OPENSTUDIO_VERSION=3.7.0
8+
FROM nrel/openstudio:3.7.0 as base
99
MAINTAINER Nicholas Long nicholas.long@nrel.gov
1010

1111
ENV DEBIAN_FRONTEND=noninteractive
@@ -59,7 +59,7 @@ RUN apt-get update && apt-get install -y wget gnupg \
5959
&& rm -rf /var/lib/apt/lists/*
6060

6161
# Install passenger (this also installs nginx)
62-
ENV PASSENGER_VERSION 6.0.2
62+
ENV PASSENGER_VERSION 6.0.18
6363

6464
RUN gem install passenger -v $PASSENGER_VERSION
6565
RUN passenger-install-nginx-module
@@ -104,7 +104,7 @@ RUN bundle exec rake assets:precompile
104104
# Bundle app source
105105
ADD /server /opt/openstudio/server
106106
# Add in /spec for testing
107-
#ADD /spec /opt/openstudio/spec
107+
#ADD /server/spec /opt/openstudio/server/spec
108108
ADD .rubocop.yml /opt/openstudio/.rubocop.yml
109109
# Run bundle again, because if the user has a local Gemfile.lock it will have been overriden
110110
RUN rm Gemfile.lock

README.md

Lines changed: 28 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,26 @@
33
[![Build Status][gh-img]][gh-url]
44
[![Coverage Status][coveralls-img]][coveralls-url]
55

6-
Windows Build (Under Development): [![Windows Build Status][appveyor-img]][appveyor-url]
6+
Please refer to the [wiki](https://github.com/NREL/OpenStudio-server/wiki) for additional documentation.
77

8-
The below documentation has not been recently reviewed. Please refer to the [wiki](https://github.com/NREL/OpenStudio-server/wiki) for current documentation.
8+
<img src="https://github.com/NREL/OpenStudio-server/assets/2235296/fe91da7d-9e3f-4459-ac5d-579444e6125e" width=50% height=50%>
9+
<img src="https://github.com/NREL/OpenStudio-server/assets/2235296/c4a75731-72f7-42e6-afc7-d24b9e835a2e" width=50% height=50%>
10+
11+
## About
12+
13+
OpenStudio Server is a web application and distributed computing tool, which is the backbone of the OpenStudio Analysis Framework (OSAF).
14+
It is intended to make parametric analysis of building energy models accessible to architects, engineers, and designers via the [OpenStudio PAT](http://nrel.github.io/OpenStudio-user-documentation/reference/parametric_studies/) GUI or the [OpenStudio Analysis Gem](https://github.com/NREL/OpenStudio-analysis-gem).
15+
OpenStudio Server analyses are defined by PAT projects or OSA's. Each analysis may include many OpenStudio simulations, as determined by project configuration.
16+
17+
Journal of Building Performance Simulation article: [An open source analysis framework for large-scale building energy modeling](https://www.tandfonline.com/doi/full/10.1080/19401493.2020.1778788)
918

1019
## Application Development and Deployment
1120

12-
There are primarily three ways to utilize and deploy this codebase.
21+
There are primarily two ways to utilize and deploy this codebase.
1322

14-
* [openstudio_meta](./bin/openstudio_meta) CLI: Allows for the server to be deployed on a local
15-
desktop without docker through a pre-compilation process of all required gem dependencies. Additionally, it allows for
16-
cloud instances to be created and analyses run on them.
17-
* [Docker Compose](https://docs.docker.com/compose/): This is the preferred environment for application development, as
18-
it is allows for rapid iteration and does not encumber developers with deployment configuration details.
19-
* [Docker Swarm](https://docs.docker.com/engine/swarm/): This is the recommended deployment pathway. Swarm is an
23+
* [openstudio-server-helm](https://github.com/NREL/openstudio-server-helm) This helm chart installs a OpenStudio-server instance deployment on a AWS, Azure, or Google Kubernetes cluster using the Helm package manager. You can interface with the OpenStudio-server cluster using the Parametric Analysis Tool or the [openstudio_meta](./bin/openstudio_meta) CLI.
24+
25+
* [Docker Swarm](https://docs.docker.com/engine/swarm/): This is the recommended local deployment pathway. Swarm is an
2026
orchestration engine which allows for multi-node clusters and provides significant benefits in the forms of
2127
customization and hardening of network and storage
2228
fundamentals.
@@ -25,42 +31,33 @@ fundamentals.
2531

2632
The [openstudio_meta](./bin/openstudio_meta) file is a ruby script which provides access to packaging and execution
2733
commands which allow for this codebase to be embedded in applications deployed to computers without docker. Deployment
28-
requires that [MongoDB v3.2](https://www.mongodb.com/download-center#previous) and [Ruby v2.2](https://www.ruby-lang.org/en/news/2014/12/25/ruby-2-2-0-released/)
29-
are additionally packaged. For an example of cross-platform deployment please see the OpenStudio build guide for the
30-
[2.X releases](https://github.com/NREL/OpenStudio/wiki/Configuring-OpenStudio-Build-Environments) and the [CMake lists](https://github.com/NREL/OpenStudio/blob/develop/openstudiocore/CMakeLists.txt).
34+
requires that [MongoDB 6.0.7](https://www.mongodb.com/download-center/community/releases/archive) and [Ruby v2.7](https://www.ruby-lang.org/en/downloads/)
35+
are additionally packaged.
3136

3237
The openstudio_meta deployment relies on the `install_gems` command, which uses local system libraries to build all
3338
required gem dependencies of the server. Additionally, the export flag allows for the resulting package to be
3439
automatically assembled and zipped for deployment. It is important to note that when used on OSX and Linux systems,
3540
it is critical to not specify the export path with home (`~`) substitution. Instead, pass a fully specified path to the
3641
desired output directory.
3742

38-
Once compiled or unpacked, the openstudio_meta file can be used for starting and stopping local and remote server, and
39-
submitting analyses to both. Assembling the required files for the analysis is left to either the OpenStudio Analysis
40-
Spreadsheet (the Spreadsheet) or the Parametric Assessment Tool (PAT). The Spreadsheet has a similar interface for
41-
submitting analyses to servers, and PAT makes complete use of the openstudio_meta features. For more details, please
42-
refer to the [wiki](https://github.com/NREL/OpenStudio-server/wiki/CLI).
43+
Once compiled or unpacked, the openstudio_meta file can be used for starting and stopping the local server for the [Parametric Analysis Tool (PAT)](https://github.com/NREL/OpenStudio-PAT) and
44+
submitting analyses to it. Assembling the required files for the analysis is done with the [Analysis-gem](https://github.com/NREL/OpenStudio-analysis-gem) or the export OSA function in PAT. For more details, please
45+
refer to the [wiki](https://github.com/NREL/OpenStudio-server/wiki/CLI). For examples, please refer to [OSAF notebooks](https://github.com/NREL/docker-openstudio-jupyter/tree/master).
4346

4447
### Local Docker Development
4548

4649
To develop locally the following dependency stack is recommended.
4750

48-
* Install Docker (Version 17.09.0 or greater is required)
51+
* Install Docker (Version 20.10.5 or greater is required)
4952
* OSX Users: [install Docker CE for Mac](https://docs.docker.com/docker-for-mac/install/). Please refer to [this guide](https://docs.docker.com/docker-for-mac/install/)
50-
* Windows 10 Users: [Docker CE for Windows](https://docs.docker.com/docker-for-windows/install/). More information
51-
can be found in [this guide](https://docs.docker.com/docker-for-windows/).
52-
* Pre Windows 10 Users: Use Docker Toolbox. You will need to install and configure dependencies, including [VirtualBox](https://docs.docker.com/toolbox/toolbox_install_windows/#next-steps).
53+
* Windows 10 Users: [Docker Desktop](https://www.docker.com/products/docker-desktop/).
5354
* Linux Users: Follow the instructions in the [appropriate guide](https://www.docker.com/community-edition)
5455

5556
*Note: Although generally newer versions of docker will behave as expected, certain CLI interactions change between
5657
releases, leading to scripts breaking and default behaviours, particularly regarding persistence, changing. The
5758
docker version installed and running can be found by typing `docker info` on the command line.*
5859

59-
* Install Docker Compose (Version 1.17.0 or greater is required)
60-
* Docker compose will be installed on Mac and Windows by default
61-
* Linux Users: See instructions [here](https://docs.docker.com/compose/install/)
62-
63-
#### Run Docker Compose
60+
#### Docker Compose
6461

6562
```bash
6663
docker-compose build
@@ -105,23 +102,13 @@ git checkout -- .dockerignore && git checkout -- Dockerfile
105102
docker-compose rm -f
106103
```
107104

108-
109-
110-
### Docker Deployment
105+
### Local Docker Swarm Deployment
111106

112107
To deploy the OpenStudio Server in a docker-based production environment one or more machines need to be running Docker
113-
Server version 17.9.01. If using docker on a Linux machine it is recommended that significant storage be available to
114-
the `/var` folder. This is where Docker reads and writes all data to by default. In addition, advanced users may wish
115-
to consider using specialized [storage drivers](https://docs.docker.com/engine/userguide/storagedriver/). Please refer
116-
to the [wiki](https://github.com/NREL/OpenStudio-server/wiki) page for additional details and
117-
a [configuration and reset guide](). Deploying a production docker swarm system outside of AWS (where complications
118-
are managed and support by NREL) can be a non-trivial problem that may require significant systems administration
119-
experience. Those embarking on this process are encouraged to refer to the scripts used by Packer to configure
120-
[Ubuntu](https://github.com/NREL/OpenStudio-server/blob/develop/docker/deployment/scripts/aws_system_init.sh) and
121-
[docker](https://github.com/NREL/OpenStudio-server/blob/develop/docker/deployment/scripts/aws_osserver_init.sh) in the
122-
base AMI images, as well as the scripts used to provision the [server](https://github.com/NREL/OpenStudio-server/blob/develop/docker/deployment/scripts/server_provision.sh)
123-
and [worker](https://github.com/NREL/OpenStudio-server/blob/develop/docker/deployment/scripts/worker_provision.sh)
124-
nodes upon instantiation in a cluster.
108+
Server version 20.10.05. If using docker on a Linux machine it is recommended that significant storage be available to
109+
the `/var` folder. This is where Docker reads and writes all data to by default unless changed in the docker-compose.yml file.
110+
There are scripts to help with docker swarm deployment [here](https://github.com/NREL/OpenStudio-server/tree/develop/local_setup_scripts).
111+
Make sure to change the defaults to be applicable to your hardware requirements.
125112

126113
## Testing procedure
127114

appveyor.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ image: Visual Studio 2019
44

55
environment:
66
USE_TESTING_TIMEOUTS: "true"
7-
OPENSTUDIO_VERSION: 3.6.1
8-
OPENSTUDIO_VERSION_SHA: bb9481519e
7+
OPENSTUDIO_VERSION: 3.7.0
8+
OPENSTUDIO_VERSION_SHA: d5269793f1
99
OPENSTUDIO_VERSION_EXT: ""
1010
OPENSTUDIO_TEST_EXE: C:\projects\openstudio\bin\openstudio.exe
1111
BUILD_TYPE: "test"

ci/appveyor/setup.cmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ set OS_INSTALL_NAME=OpenStudio-%OPENSTUDIO_VERSION%%OPENSTUDIO_VERSION_EXT%%%2B%
1010
echo Install name is %OS_INSTALL_NAME%
1111

1212
REM curl -SLO --insecure https://openstudio-ci-builds.s3-us-west-2.amazonaws.com/develop/%OS_INSTALL_NAME%
13-
curl -SLO --insecure https://github.com/NREL/OpenStudio/releases/download/v3.6.1/%OS_INSTALL_NAME%
13+
curl -SLO --insecure https://github.com/NREL/OpenStudio/releases/download/v3.7.0/%OS_INSTALL_NAME%
1414
dir .
1515
REM Install OpenStudio
1616
%OS_INSTALL_NAME% --script ci/appveyor/install-windows.qs

ci/github-actions/install_openstudio.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ if [ ! -z ${OPENSTUDIO_VERSION} ] && [ ! -z ${OPENSTUDIO_SHA} ]; then
1111
OPENSTUDIO_DOWNLOAD_FILENAME=OpenStudio-${OPENSTUDIO_VERSION}${OPENSTUDIO_VERSION_EXT}%2B${OPENSTUDIO_SHA}-Ubuntu-20.04-x86_64.deb
1212
echo "Installing OpenStudio ${OPENSTUDIO_DOWNLOAD_FILENAME}"
1313
#OPENSTUDIO_DOWNLOAD_BASE_URL=https://openstudio-ci-builds.s3-us-west-2.amazonaws.com/develop
14-
OPENSTUDIO_DOWNLOAD_BASE_URL=https://github.com/NREL/OpenStudio/releases/download/v3.6.1
14+
OPENSTUDIO_DOWNLOAD_BASE_URL=https://github.com/NREL/OpenStudio/releases/download/v3.7.0
1515
OPENSTUDIO_DOWNLOAD_URL=$OPENSTUDIO_DOWNLOAD_BASE_URL/$OPENSTUDIO_DOWNLOAD_FILENAME
1616

1717
# copying this from the docker-openstudio dockerfile

ci/github-actions/setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ else
3737
export OS_NAME=OpenStudio-${OPENSTUDIO_VERSION}${OPENSTUDIO_VERSION_EXT}%2B${OPENSTUDIO_VERSION_SHA}-Darwin-x86_64
3838
export OS_NAME_WITH_PLUS=OpenStudio-${OPENSTUDIO_VERSION}${OPENSTUDIO_VERSION_EXT}+${OPENSTUDIO_VERSION_SHA}-Darwin-x86_64
3939
#curl -SL --insecure https://openstudio-ci-builds.s3-us-west-2.amazonaws.com/develop/${OS_NAME}.tar.gz -o $OS_NAME_WITH_PLUS.tar.gz
40-
curl -SL --insecure https://github.com/NREL/OpenStudio/releases/download/v3.6.1/${OS_NAME}.tar.gz -o $OS_NAME_WITH_PLUS.tar.gz
40+
curl -SL --insecure https://github.com/NREL/OpenStudio/releases/download/v3.7.0/${OS_NAME}.tar.gz -o $OS_NAME_WITH_PLUS.tar.gz
4141
# OSX downloads with %2B but installs with + sign. These are the encoded chars in url strings.
4242
#hdiutil attach ${OS_NAME}.dmg
4343
#sed -i -e "s|REPLACEME|$HOME/openstudio|" ci/github-actions/install-mac.qs

docker/server/nginx.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
daemon off;
22
user nobody nogroup;
3-
worker_processes 1;
3+
worker_processes auto;
44
error_log /dev/stderr;
55

66
events {
77
worker_connections 1024;
88
}
99

1010
http {
11-
passenger_root /usr/local/lib/ruby/gems/2.7.0/gems/passenger-6.0.2;
11+
passenger_root /usr/local/lib/ruby/gems/2.7.0/gems/passenger-6.0.18;
1212
passenger_ruby /usr/local/bin/ruby;
1313
passenger_friendly_error_pages on;
1414

0 commit comments

Comments
 (0)