Giter VIP home page Giter VIP logo

scidash's Introduction

SciDash logo

Geppetto logo

SciDash

SciDash is a project that enables the reproducible execution and visualization of data-driven unit test (SciUnit) for assessing model quality.

SciDash is a geppetto / django-based client-server web application.

Installation

We recommend you to use a Python 3 (3.6 or newer at least) virtual environment for the installation, so you can keep all the dependencies within that environment.

Dependencies

Install Redis server (for the sockets communication)

For Ubuntu 16:
sudo apt-get install redis-server
For OS X:
brew install redis

Install PostgreSQL server

Install SciDash

Project root configuration

First of all we need to clone the scidash folder from the remote repo, follow the commands below:

git clone https://github.com/MetaCell/scidash
cd scidash

Once retrieved the data we need to create a .env file in the project root where we are at the moment if you followed the previous commands. An example can be found in the folder scidash/dotenv/env-docker but you will need to modify this based on your current configuration (e.g. if you want to configure this in your local machine you will need to change DB_HOST from "scidash-postgres" to "localhost", same principle for the other parameters if you want to use different hosts or ports for your deployment).

cp service/dotenv/env-docker .env
source .env

Just a reminder before going forward that this project requires at least a Python 3.6 version, if this requirement is not satisfied before proceeding further ensure you have Python 3.6 (or bigger) installed.

Configure Database

In order to configure the database you need the PostgreSQL server installed as per dependencies listed above, then you can proceed with the steps below that will need to be run as postgres user:

# navigate to scidash root folder
cd service/scripts
# impersonate postgres user (may not be necessary depending on your access rights)
sudo su postgres
# run db creation script located in the scidash folder
./db_create_psql.sh
# to return to your shell user only necessary if you used su
logout

Backend and Fronend Installation

Once done with the database configuration you can proceed with the backend (first) and the frontend (second) installation. First we start with the backend installation with the command below:

# navigate to scidash root folder
make install-backend

If you'd like to verify that all the packages have been correctly installed you can compare the output of the command "pip list" with the file requirements.txt that contains the list of all the packages required.

Once the backend installation is done we can move to the fronend installation:

# navigate to scidash root folder
make install-frontend

Run Scidash

Start the server
make run-dev

Go to http://localhost:8000/ and enjoy!

Requirements to neuronunit test and model classes to work with scidash

Note: to save compatibility with uploaded results you'll be able to save classes which are not meet requirements, but there is no guarantee that they will work with application

Model classes requirements

Capabilities of the model should be accessible by class method get_capabilities

model.get_capabilities()

Extra capabilities check should be accessible by class property extra_capability_checks

model.extra_capability_checks

Test classes requirements

Observations

Should be accessible by class property observation_schema

test.observation_schema

Supported schema

[(
    "<schema_name>",
    {
        '<observation_field_name>': {<cerberus_validation_schema>},
        ...<other_fields>
    }
), ...<other_schemas>]

In case there are more than one schema. And if there is only one

(
    "<schema_name>",
    {
        '<observation_field_name>': {<cerberus_validation_schema>},
        ...<other_fields>
    }
)

Iterable observations should have iterable: True in validation schema.

Parameters

Should be accessible by class property params_schema

test.params_schema

Supported format

{
    '<param_name>': {<cerberus_validation_schema>},
    ...<other_params>
}

Should have type property in validation schema

Units

Should be accessible with class property units

test.units

Supported formats

pq.Unit # importable string
pq.UnitQuantity('megaohm', pq.ohm*1e6, symbol='Mohm') # custom unit
{'v': pq.V, 'i': pq.pA} # mapping

Deployment

For scidash test deployment there are configurations in deploy folder $PROJECT_ROOT/service/kubernetes/scidash

What is what:

scidash-service.yaml

This configuration describes kubernetes service (what is service) for scidash deployment.

Section with general information:

kind: Service
apiVersion: v1
metadata:
  name: scidash
  namespace: scidash-testing
  labels:
    app: scidash

Section with port mappings and other important information:

spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 8000
  selector:
    app: scidash

This service in general is k8 resource with load balancer which provides access to the open ports from your pods (what is pods)

scidash-deployment.yaml

This file provides management for deploying (and updating) pod with containers (application container and redis container).

To better understanding you can compare k8 pods with composition created by docker-compose.

Section with general information:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: scidash
  name: scidash
  namespace: scidash-testing

Start of actual specification for deployment:

spec:
  replicas: 1 # Count of the similar pods that should by launched
  selector:
    matchLabels:
      app: scidash
  strategy:
    rollingUpdate:
      maxSurge: 50%
      maxUnavailable: 50%
    type: RollingUpdate

Containers descriptions start here in template:

  template:
    metadata:
      labels:
        app: scidash
    spec:
      containers:

      - image: r.cfcr.io/tarelli/metacell/scidash:deployment
        imagePullPolicy: Always
        name: scidash
        ports:
        - containerPort: 8000 # Ports that should be exposed
          protocol: TCP

Also example for environment description. And as you can see here it uses secrets (what is secret) as a source for sensible data.

        env:
          - name: DB_USER
            valueFrom:
              secretKeyRef:
                name: scidash-secret
                key: DB_USER
          - name: DB_PASSWORD
            valueFrom:
              secretKeyRef:
                name: scidash-secret
                key: DB_PASSWORD

Every secret should be mounted as a volume

        volumeMounts:
          - name: scidash-secret
            mountPath: /scidash-secret

And described in volumes section on the same level as containers:

      volumes:
        - name: scidash-secret
          secret:
            secretName: scidash-secret

Also codefresh repository requires especial secret for pulling images:

      imagePullSecrets:
      - name: codefresh-generated-r.cfcr.io-cfcr-scidash-testing

scidash's People

Contributors

ddelpiano avatar dependabot[bot] avatar gidili avatar jrmartin avatar nezanyat avatar tarelli avatar zsinnema avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

nezanyat sanyam07

scidash's Issues

make install-backend not working properly

The script ran by the instance make install-backend run successfully and does not raise erros, however I noticed that when I tried to run the server with make run-dev the requirements.txt were not all installed, not sure why but re-installing all of them (the main packages) I got this sorted.

Connection error to Virgo

Going to the new model page and entering a URL gave a red message:

HTTPConnectionPool(host='scidash-virgo', port=8080): Max retries exceeded with url: /org.geppetto.frontend/geppetto (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2dc1997748>: Failed to establish a new connection: [Errno 111] Connection refused',))

This was using the staging IP address on Slack: https://asuiconlab.slack.com/archives/CL7JKNG10/p1587728784005000.

minor errors running installation as described in README

I encountered the following issues following the installation steps (on macOS):

  • pip install -r requirements.txt failed because psycopg2 package requires libpq-dev. Running brew install postgresql before running pip install -r requirements.txt solved it.
  • npm run build-dev-noTest should be executed after cloning geppetto-scidash extension and modification of GeppettoConfiguration.json.
  • mkdir static was not required.
  • python<=3.6.5 was required

CTAGS not available by default

As per title, progressing with the installation I noticed that ctags is not available and the current installation scripts do not took this into account.

ctags -R --exclude=.git --exclude=node_modules --exclude=dist --exclude=env .
make: ctags: Command not found
Makefile:83: recipe for target 'generate-tags' failed
make: *** [generate-tags] Error 127

make run-dev not working

After following the installation procedure (revisited since the issue with the database creation) I tried to start the server but getting the error below.

(venv) ddelpiano@GoldMarry:~/git/scidash/scidash$ make run-dev 
./manage.py migrate
Traceback (most recent call last):
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/backends/base/base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not translate host name "scidash-postgres" to address: Name or service not known


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/core/management/commands/migrate.py", line 83, in handle
    executor = MigrationExecutor(connection, self.migration_progress_callback)
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/migrations/executor.py", line 20, in __init__
    self.loader = MigrationLoader(self.connection)
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/migrations/loader.py", line 52, in __init__
    self.build_graph()
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/migrations/loader.py", line 209, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/migrations/recorder.py", line 65, in applied_migrations
    self.ensure_schema()
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/migrations/recorder.py", line 52, in ensure_schema
    if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/backends/base/base.py", line 254, in cursor
    return self._cursor()
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/backends/base/base.py", line 229, in _cursor
    self.ensure_connection()
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/backends/base/base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: could not translate host name "scidash-postgres" to address: Name or service not known

Makefile:52: recipe for target 'migrate' failed
make: *** [migrate] Error 1

Procedure followed

ddelpiano@GoldMarry:~/git/scidash$ git clone https://github.com/MetaCell/scidash
ddelpiano@GoldMarry:~/git/scidash$ cd scidash/
ddelpiano@GoldMarry:~/git/scidash/scidash$ cp service/dotenv/env-docker .env
ddelpiano@GoldMarry:~/git/scidash/scidash$ . .env
ddelpiano@GoldMarry:~/git/scidash/scidash$ virtualenv -p python3 ./venv
ddelpiano@GoldMarry:~/git/scidash/scidash$     source ./venv/bin/activate;
(venv) ddelpiano@GoldMarry:~/git/scidash/scidash$ . .env 
(venv) ddelpiano@GoldMarry:~/git/scidash/scidash$ sudo su postgres
postgres@GoldMarry:/home/ddelpiano/git/scidash/scidash/service/scripts$ ./db-create-psql.sh 
postgres@GoldMarry:/home/ddelpiano/git/scidash/scidash/service/scripts$ exit



(venv) ddelpiano@GoldMarry:~/git/scidash/scidash$ make install-backend
===========================
=    Install backend      =
===========================
Collecting asgiref==2.3.2 (from -r requirements.txt (line 7))
  Using cached https://files.pythonhosted.org/packages/6a/ca/c141dc77da60230e393d33b5b29afbca718b7e6ce07921c42cf08af907f8/asgiref-2.3.2-py2.py3-none-any.whl
Collecting async-timeout==3.0.0 (from -r requirements.txt (line 8))
  Could not find a version that satisfies the requirement async-timeout==3.0.0 (from -r requirements.txt (line 8)) (from versions: 1.0.0, 1.1.0, 1.2.0, 1.2.1, 
1.3.0, 1.4.0, 2.0.0, 2.0.1)
No matching distribution found for async-timeout==3.0.0 (from -r requirements.txt (line 8))
Cloning into 'pygeppetto-django'...
remote: Enumerating objects: 45, done.
remote: Counting objects: 100% (45/45), done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 185 (delta 20), reused 31 (delta 13), pack-reused 140
Receiving objects: 100% (185/185), 39.02 KiB | 0 bytes/s, done.
Resolving deltas: 100% (83/83), done.
Checking connectivity... done.
Obtaining file:///home/ddelpiano/git/scidash/scidash/pygeppetto-django
Collecting channels==2.1.2 (from pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/00/3b/92d09d374dd2bc5339e4587ba4869d9bd335135f655bdecf4431c5890c5f/channels-2.1.2-py2.py3-none-any.whl
Collecting Django==1.11.7 (from pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/15/d8/b17afdcd527026d2f1acd30ac33406e6b22c0f573a3c14b2d9e0bd7df945/Django-1.11.7-py2.py3-none-any.whl
Collecting websocket-client==0.48.0 (from pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/8a/a1/72ef9aa26cfe1a75cee09fc1957e4723add9de098c15719416a1ee89386b/websocket_client-0.48.0-py2.py3-none-
any.whl
Collecting requests==2.19.1 (from pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Collecting asgiref~=2.3 (from channels==2.1.2->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/6a/ca/c141dc77da60230e393d33b5b29afbca718b7e6ce07921c42cf08af907f8/asgiref-2.3.2-py2.py3-none-any.whl
Collecting daphne~=2.2 (from channels==2.1.2->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/12/db/cecc130407d073470812f9e2f66897aa81399fa819671c8cf7b16e84366d/daphne-2.2.5-py2.py3-none-any.whl
Collecting pytz (from Django==1.11.7->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/61/28/1d3920e4d1d50b19bc5d24398a7cd85cc7b9a75a490570d5a30c57622d34/pytz-2018.9-py2.py3-none-any.whl
Collecting six (from websocket-client==0.48.0->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests==2.19.1->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/9f/e0/accfc1b56b57e9750eba272e24c4dddeac86852c2bebd1236674d7887e8a/certifi-2018.11.29-py2.py3-none-any.w
hl
Collecting chardet<3.1.0,>=3.0.2 (from requests==2.19.1->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting idna<2.8,>=2.5 (from requests==2.19.1->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl
Collecting urllib3<1.24,>=1.21.1 (from requests==2.19.1->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl
Collecting async-timeout<4.0,>=2.0 (from asgiref~=2.3->channels==2.1.2->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/1d/b9/213521db2918b5b7f7df333a33ea3d38ba70ba705d9db6c29f0343c213ea/async_timeout-2.0.1-py3-none-any.whl
Collecting twisted>=18.7 (from daphne~=2.2->channels==2.1.2->pygeppetto-django==0.0.1)
Collecting autobahn>=0.18 (from daphne~=2.2->channels==2.1.2->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/d5/5d/49152a3ce88ad8f985a4f82ff9633a29f3ef2da050ae8aba8075142f5a61/autobahn-19.2.1-py2.py3-none-any.whl
Collecting PyHamcrest>=1.9.0 (from twisted>=18.7->daphne~=2.2->channels==2.1.2->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/9a/d5/d37fd731b7d0e91afcc84577edeccf4638b4f9b82f5ffe2f8b62e2ddc609/PyHamcrest-1.9.0-py2.py3-none-any.whl
Collecting attrs>=17.4.0 (from twisted>=18.7->daphne~=2.2->channels==2.1.2->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/3a/e1/5f9023cc983f1a628a8c2fd051ad19e76ff7b142a0faf329336f9a62a514/attrs-18.2.0-py2.py3-none-any.whl
Collecting incremental>=16.10.1 (from twisted>=18.7->daphne~=2.2->channels==2.1.2->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/f5/1d/c98a587dc06e107115cf4a58b49de20b19222c83d75335a192052af4c4b7/incremental-17.5.0-py2.py3-none-any.w
hl
Collecting constantly>=15.1 (from twisted>=18.7->daphne~=2.2->channels==2.1.2->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/b9/65/48c1909d0c0aeae6c10213340ce682db01b48ea900a7d9fce7a7910ff318/constantly-15.1.0-py2.py3-none-any.wh
l
Collecting Automat>=0.3.0 (from twisted>=18.7->daphne~=2.2->channels==2.1.2->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/a3/86/14c16bb98a5a3542ed8fed5d74fb064a902de3bdd98d6584b34553353c45/Automat-0.7.0-py2.py3-none-any.whl
Collecting hyperlink>=17.1.1 (from twisted>=18.7->daphne~=2.2->channels==2.1.2->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/a7/b6/84d0c863ff81e8e7de87cff3bd8fd8f1054c227ce09af1b679a8b17a9274/hyperlink-18.0.0-py2.py3-none-any.whl
Collecting zope.interface>=4.4.2 (from twisted>=18.7->daphne~=2.2->channels==2.1.2->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/0c/dc/d715a3f2f9df4e0440e67b1dc654bcfb6dc11aac8296353eaf56164b8f01/zope.interface-4.6.0-cp35-cp35m-manyl
inux1_x86_64.whl
Collecting txaio>=18.8.1 (from autobahn>=0.18->daphne~=2.2->channels==2.1.2->pygeppetto-django==0.0.1)
  Using cached https://files.pythonhosted.org/packages/e9/6d/e1a6f7835cde86728e5bb1f577be9b2d7d273fdb33c286e70b087d418ded/txaio-18.8.1-py2.py3-none-any.whl
Requirement already satisfied: setuptools in /home/ddelpiano/git/scidash/scidash/venv/lib/python3.5/site-packages (from PyHamcrest>=1.9.0->twisted>=18.7->daphn
e~=2.2->channels==2.1.2->pygeppetto-django==0.0.1) (40.8.0)
Installing collected packages: pytz, Django, async-timeout, asgiref, six, PyHamcrest, attrs, incremental, constantly, Automat, idna, hyperlink, zope.interface,
 twisted, txaio, autobahn, daphne, channels, websocket-client, certifi, chardet, urllib3, requests, pygeppetto-django
  Running setup.py develop for pygeppetto-django
Successfully installed Automat-0.7.0 Django-1.11.7 PyHamcrest-1.9.0 asgiref-2.3.2 async-timeout-2.0.1 attrs-18.2.0 autobahn-19.2.1 certifi-2018.11.29 channels-
2.1.2 chardet-3.0.4 constantly-15.1.0 daphne-2.2.5 hyperlink-18.0.0 idna-2.7 incremental-17.5.0 pygeppetto-django pytz-2018.9 requests-2.19.1 six-1.12.0 twiste
d-18.9.0 txaio-18.8.1 urllib3-1.23 websocket-client-0.48.0 zope.interface-4.6.0



(venv) ddelpiano@GoldMarry:~/git/scidash/scidash$ make install-frontend
===========================
=    Install frontend     =
===========================
v7.10.1
Cloning into './static/org.geppetto.frontend'...
remote: Enumerating objects: 361, done.
remote: Counting objects: 100% (361/361), done.
remote: Compressing objects: 100% (222/222), done.
remote: Total 70127 (delta 218), reused 235 (delta 135), pack-reused 69766
Receiving objects: 100% (70127/70127), 26.09 MiB | 475.00 KiB/s, done.
Resolving deltas: 100% (48688/48688), done.
Checking connectivity... done.
Cloning into './static/org.geppetto.frontend/src/main/webapp/extensions/geppetto-scidash'...
remote: Enumerating objects: 189, done.
remote: Counting objects: 100% (189/189), done.
remote: Compressing objects: 100% (154/154), done.
remote: Total 2520 (delta 87), reused 105 (delta 31), pack-reused 2331
Receiving objects: 100% (2520/2520), 636.43 KiB | 702.00 KiB/s, done.
Resolving deltas: 100% (1520/1520), done.
Checking connectivity... done.
npm WARN npm npm does not support Node.js v7.10.1
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 6, 8, 9, 10, 11, 12.
npm WARN npm You can find the latest version at https://nodejs.org/
npm WARN tarball tarball data for [email protected] (sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI=) seems to be corrupted. Trying one more time.
npm ERR! code EINTEGRITY
npm ERR! sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI= integrity checksum failed when using sha1: wanted sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI= but got sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg== sha1-5oowx8sETi+zYrQoRp/rKRwuCdg=. (10700 bytes)

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ddelpiano/.npm/_logs/2019-02-20T15_27_33_865Z-debug.log


(venv) ddelpiano@GoldMarry:~/git/scidash/scidash$ cd static/org.geppetto.frontend/src/main/webapp/
(venv) ddelpiano@GoldMarry:~/git/scidash/scidash/static/org.geppetto.frontend/src/main/webapp$ rm package-lock.json 


(venv) ddelpiano@GoldMarry:~/git/scidash/scidash/static/org.geppetto.frontend/src/main/webapp$ npm install                                                     
npm WARN npm npm does not support Node.js v7.10.1
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 6, 8, 9, 10, 11, 12.
npm WARN npm You can find the latest version at https://nodejs.org/
npm WARN deprecated [email protected]: Use the official dat.gui: https://www.npmjs.com/package/dat.gui
npm WARN deprecated [email protected]: 2.4.1 is the last version where QUnit will be published as 'qunitjs'. To receive future updates, you will need to change the
 package name to 'qunit'.
npm WARN deprecated [email protected]: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
npm WARN deprecated @mapbox/[email protected]: This
npm WARN deprecated [email protected]: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
npm WARN deprecated [email protected]: This version is no longer maintained. Please upgrade to the latest version.
npm WARN deprecated [email protected]: This version is no longer maintained. Please upgrade to the latest version.
npm WARN deprecated [email protected]: This version is no longer maintained. Please upgrade to the latest version.
npm WARN deprecated [email protected]: gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5

> [email protected] postinstall /home/ddelpiano/git/scidash/scidash/static/org.geppetto.frontend/src/main/webapp/node_modules/uglifyjs-webpack-plug
in
> node lib/post_install.js


> [email protected] postinstall /home/ddelpiano/git/scidash/scidash/static/org.geppetto.frontend/src/main/webapp/node_modules/gifsicle
> node lib/install.js

  ✔ gifsicle pre-build test passed successfully

> [email protected] postinstall /home/ddelpiano/git/scidash/scidash/static/org.geppetto.frontend/src/main/webapp/node_modules/jpegtran-bin
> node lib/install.js

  ✔ jpegtran pre-build test passed successfully

> [email protected] postinstall /home/ddelpiano/git/scidash/scidash/static/org.geppetto.frontend/src/main/webapp/node_modules/optipng-bin
> node lib/install.js

  ✔ optipng pre-build test passed successfully

> [email protected] postinstall /home/ddelpiano/git/scidash/scidash/static/org.geppetto.frontend/src/main/webapp/node_modules/pngquant-bin
> node lib/install.js

  ✔ pngquant pre-build test passed successfully
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN [email protected] requires a peer of [email protected] - 1.x but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of webpack@^4.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 2053 packages from 1930 contributors and audited 26409 packages in 118.577s
found 76 vulnerabilities (23 low, 43 moderate, 10 high)
  run `npm audit fix` to fix them, or `npm audit` for details


(venv) ddelpiano@GoldMarry:~/git/scidash/scidash/static/org.geppetto.frontend/src/main/webapp$ cd -
(venv) ddelpiano@GoldMarry:~/git/scidash/scidash$ cp service/geppetto/GeppettoConfiguration.json static/org.geppetto.frontend/src/main/webapp/GeppettoConfiguration.json 

Floating-point rounding issues in test parameters

Test parameters (and probably observation values) have awkward representation issues (see e.g. Amplitude below):
Screen Shot 2020-11-23 at 9 52 16 AM
That is from the test "RheobaseTestToRemove" on the staging server. Desired behavior would be to represent 1e10 as 1e10, not as 1.0000000000002e10. This could mean using higher precision floats or explicit representations of decimals.

`imported_units` references before assignment when scheduling models.

Trying to schedule one model and test at the staging IP address under the rgerkin account as shown below:

Screen Shot 2020-11-23 at 9 39 47 AM

Results in the error below. Since this could very well be an error in my code, please let me know how I can most quickly determine this.

Error: Internal Server Error

UnboundLocalError at /api/compatibility/
local variable 'imported_units' referenced before assignment Request Method: POST Request URL: http://35.188.223.116:8000/api/compatibility/ Django Version: 1.11.23 Python Executable: /app/scidash/venv/bin/python3 Python Version: 3.6.10 Python Path: ['/app/scidash/venv/lib/python3.6/site-packages/git/ext/gitdb', '/app/scidash', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/app/scidash/venv/lib/python3.6/site-packages', '/app/scidash/pygeppetto-django', '/app/scidash', '/app/scidash/venv/lib/python3.6/site-packages/IPython/extensions', '/app/scidash/venv/lib/python3.6/site-packages/gitdb/ext/smmap'] Server time: Mon, 23 Nov 2020 16:39:26 +0000 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.postgres', 'pygeppetto_server', 'channels', 'rest_framework', 'django_extensions', 'django_filters', 'rest_framework_cache', 'material', 'django_celery_beat', 'django_celery_results', 'django_db_logger', 'ckeditor', 'adminsortable2', 'scidash.sciunitmodels', 'scidash.sciunittests', 'scidash.general', 'scidash.account', 'scidash.logviewer'] Installed Middleware: ['django.middleware.gzip.GZipMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] Traceback: File "/usr/local/lib/python3.6/json/decoder.py" in raw_decode 355. obj, end = self.scan_once(s, idx) During handling of the above exception (0), another exception occurred: File "/app/scidash/scidash/general/api/views.py" in get_observation 46. imported_units = json.loads(units) File "/usr/local/lib/python3.6/json/__init__.py" in loads 354. return _default_decoder.decode(s) File "/usr/local/lib/python3.6/json/decoder.py" in decode 339. obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/local/lib/python3.6/json/decoder.py" in raw_decode 357. raise JSONDecodeError("Expecting value", s, err.value) from None During handling of the above exception (Expecting value: line 1 column 1 (char 0)), another exception occurred: File "/app/scidash/venv/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/app/scidash/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/app/scidash/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request) File "/app/scidash/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/app/scidash/venv/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view 58. return view_func(*args, **kwargs) File "/app/scidash/venv/lib/python3.6/site-packages/django/views/generic/base.py" in view 68. return self.dispatch(request, *args, **kwargs) File "/app/scidash/venv/lib/python3.6/site-packages/rest_framework/views.py" in dispatch 489. response = self.handle_exception(exc) File "/app/scidash/venv/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception 449. self.raise_uncaught_exception(exc) File "/app/scidash/venv/lib/python3.6/site-packages/rest_framework/views.py" in dispatch 486. response = handler(request, *args, **kwargs) File "/app/scidash/scidash/general/api/views.py" in post 97. ) for test in test_models File "/app/scidash/scidash/general/api/views.py" in 97. ) for test in test_models File "/app/scidash/scidash/general/api/views.py" in get_observation 51. imported_units = import_class(imported_units) Exception Type: UnboundLocalError at /api/compatibility/ Exception Value: local variable 'imported_units' referenced before assignment Request information: USER: rgerkin GET: No GET data POST: No POST data FILES: No FILES data COOKIES: __utmz = '94954206.1605888760.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' __utma = '94954206.669829707.1605888760.1605888760.1606149052.2' __utmc = '94954206' __utmt = '1' csrftoken = 'okuTBHn7p99YilbNNT8Qu7bfWYDCDvbwBgvSljDKYITB8lhHsJeQPdi4DCz4OYZ2' sessionid = '3mgveyf9ki5fcru9stzn0cn9nce2mq5i' __utmb = '94954206.4.10.1606149052' META: CONTENT_LENGTH = '28' CONTENT_TYPE = 'application/json' HTTP_ACCEPT = 'application/json' HTTP_ACCEPT_ENCODING = 'gzip, deflate' HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.9,be;q=0.8' HTTP_CONNECTION = 'keep-alive' HTTP_COOKIE = '__utmz=94954206.1605888760.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=94954206.669829707.1605888760.1605888760.1606149052.2; __utmc=94954206; __utmt=1; csrftoken=okuTBHn7p99YilbNNT8Qu7bfWYDCDvbwBgvSljDKYITB8lhHsJeQPdi4DCz4OYZ2; sessionid=3mgveyf9ki5fcru9stzn0cn9nce2mq5i; __utmb=94954206.4.10.1606149052' HTTP_HOST = '35.188.223.116:8000' HTTP_ORIGIN = 'http://35.188.223.116:8000' HTTP_REFERER = 'http://35.188.223.116:8000/scheduling/' HTTP_USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' PATH_INFO = '/api/compatibility/' QUERY_STRING = '' REMOTE_ADDR = '10.128.15.194' REMOTE_HOST = '10.128.15.194' REMOTE_PORT = 59467 REQUEST_METHOD = 'POST' SCRIPT_NAME = '' SERVER_NAME = '10.52.4.245' SERVER_PORT = '8000' wsgi.multiprocess = True wsgi.multithread = True Settings: Using settings module scidash.main.settings ABSOLUTE_URL_OVERRIDES = {} ACCEPTABLE_SCORE_INSTANCES_AMOUNT = 50 ADMINS = [] ALLOWED_HOSTS = ['*'] APPEND_SLASH = True ASGI_APPLICATION = 'scidash.main.routing.application' AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS = '********************' AUTH_USER_MODEL = 'general.ScidashUser' BASE_DIR = '/app/scidash' BASE_PROJECT_FILES_HOST = 'http://scidash:8000/static/projects/' CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} CACHE_MIDDLEWARE_ALIAS = 'default' CACHE_MIDDLEWARE_KEY_PREFIX = '********************' CACHE_MIDDLEWARE_SECONDS = 600 CELERY_RESULT_BACKEND = 'django-db' CKEDITOR_CONFIGS = {'default': {'skin': 'moono', 'toolbar_Basic': [['Source', '-', 'Bold', 'Italic']], 'toolbar_YourCustomToolbarConfig': [{'name': 'document', 'items': ['Source', '-', 'Save', 'NewPage', 'Preview', 'Print', '-', 'Templates']}, {'name': 'clipboard', 'items': ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo']}, {'name': 'editing', 'items': ['Find', 'Replace', '-', 'SelectAll']}, {'name': 'forms', 'items': ['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField']}, '/', {'name': 'basicstyles', 'items': ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'RemoveFormat']}, {'name': 'paragraph', 'items': ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote', 'CreateDiv', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', '-', 'BidiLtr', 'BidiRtl', 'Language']}, {'name': 'links', 'items': ['Link', 'Unlink', 'Anchor']}, {'name': 'insert', 'items': ['Image', 'Flash', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak', 'Iframe']}, '/', {'name': 'styles', 'items': ['Styles', 'Format', 'Font', 'FontSize']}, {'name': 'colors', 'items': ['TextColor', 'BGColor']}, {'name': 'tools', 'items': ['Maximize', 'ShowBlocks']}, {'name': 'about', 'items': ['About']}, '/', {'name': 'yourcustomtools', 'items': ['Preview', 'Maximize']}], 'toolbar': 'YourCustomToolbarConfig', 'tabSpaces': 4, 'extraPlugins': 'uploadimage,div,autolink,autoembed,embedsemantic,autogrow,widget,lineutils,clipboard,dialog,dialogui,elementspath'}} CSRF_COOKIE_AGE = 31449600 CSRF_COOKIE_DOMAIN = None CSRF_COOKIE_HTTPONLY = False CSRF_COOKIE_NAME = 'csrftoken' CSRF_COOKIE_PATH = '/' CSRF_COOKIE_SECURE = False CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure' CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS = [] CSRF_USE_SESSIONS = False DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql', 'NAME': 'scidash', 'USER': 'scidash_admin', 'PASSWORD': '********************', 'HOST': 'scidash-postgres', 'PORT': '5432', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}} DATABASE_ROUTERS = [] DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000 DATETIME_FORMAT = 'N j, Y, P' DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y'] DATE_FORMAT = 'N j, Y' DATE_INPUT_FORMATS = ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'] DEBUG = True DEBUG_PROPAGATE_EXCEPTIONS = False DECIMAL_SEPARATOR = '.' DEFAULT_CHARSET = 'utf-8' DEFAULT_CONTENT_TYPE = 'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL = 'webmaster@localhost' DEFAULT_INDEX_TABLESPACE = '' DEFAULT_TABLESPACE = '' DISALLOWED_USER_AGENTS = [] DJANGO_APPS = ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.postgres'] DOWNLOADED_MODEL_DIR = '/app/scidash/static/models' EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_HOST_PASSWORD = '********************' EMAIL_HOST_USER = '[email protected]' EMAIL_PORT = 465 EMAIL_SSL_CERTFILE = None EMAIL_SSL_KEYFILE = '********************' EMAIL_SUBJECT_PREFIX = '[Django] ' EMAIL_TIMEOUT = None EMAIL_USE_LOCALTIME = False EMAIL_USE_SSL = True EMAIL_USE_TLS = False FILE_CHARSET = 'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS = None FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440 FILE_UPLOAD_PERMISSIONS = None FILE_UPLOAD_TEMP_DIR = None FIRST_DAY_OF_WEEK = 0 FIXTURE_DIRS = [] FORCE_SCRIPT_NAME = None FORMAT_MODULE_PATH = None FORM_RENDERER = 'django.forms.renderers.DjangoTemplates' GEPPETTO_BASE_URL = 'http://scidash-virgo:8080/org.geppetto.frontend/geppetto' GEPPETTO_SERVLET_URL = 'ws://scidash-virgo:8080/org.geppetto.frontend/GeppettoServlet' IGNORABLE_404_URLS = [] INSTALLED_APPS = ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.postgres', 'pygeppetto_server', 'channels', 'rest_framework', 'django_extensions', 'django_filters', 'rest_framework_cache', 'material', 'django_celery_beat', 'django_celery_results', 'django_db_logger', 'ckeditor', 'adminsortable2', 'scidash.sciunitmodels', 'scidash.sciunittests', 'scidash.general', 'scidash.account', 'scidash.logviewer'] INTERNAL_IPS = [] LANGUAGES = [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur'] LANGUAGE_CODE = 'en-us' LANGUAGE_COOKIE_AGE = None LANGUAGE_COOKIE_DOMAIN = None LANGUAGE_COOKIE_NAME = 'django_language' LANGUAGE_COOKIE_PATH = '/' LOCALE_PATHS = [] LOGGING = {'version': 1, 'disable_existing_loggers': False, 'formatters': {'verbose': {'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'}, 'simple': {'format': '%(levelname)s %(asctime)s %(message)s'}}, 'handlers': {'db_log': {'level': 'DEBUG', 'class': 'django_db_logger.db_log_handler.DatabaseLogHandler'}}, 'loggers': {'django': {'handlers': ['db_log'], 'level': 'ERROR', 'propagate': False}, 'db': {'handlers': ['db_log'], 'level': 'DEBUG'}}} LOGGING_CONFIG = 'logging.config.dictConfig' LOGIN_REDIRECT_URL = '/accounts/profile/' LOGIN_URL = '/accounts/login/' LOGOUT_REDIRECT_URL = '/' MANAGERS = [] MEDIA_ROOT = '' MEDIA_URL = '' MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE = None MIDDLEWARE_CLASSES = ['django.middleware.gzip.GZipMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] MIGRATION_MODULES = {} MONTH_DAY_FORMAT = 'F j' NO_IMPORT_TAG = 'unschedulable' NUMBER_GROUPING = 0 PASSWORD_HASHERS = '********************' PASSWORD_RESET_TIMEOUT_DAYS = '********************' POPULATE_USERS = True PREPEND_WWW = False PYGEPPETTO_BUILDER_PROJECT_BASE_URL = '/app/scidash/static/projects' PYGEPPETTO_SOCKET_URL = 'org.geppetto.frontend/GeppettoServlet' REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': ['scidash.account.auth.CsrfExemptSessionAuthentication', 'rest_framework_jwt.authentication.JSONWebTokenAuthentication'], 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']} REST_FRAMEWORK_CACHE = {'DEFAULT_CACHE_TIMEOUT': 86400} ROOT_URLCONF = 'scidash.main.urls' SCIDASH_APPS = ['scidash.sciunitmodels', 'scidash.sciunittests', 'scidash.general', 'scidash.account', 'scidash.logviewer'] SCIDASH_DEMO_USER_ID = None SCIDASH_INITIAL_SEARCH_QUARTERS = 12 SECRET_KEY = '********************' SECURE_BROWSER_XSS_FILTER = False SECURE_CONTENT_TYPE_NOSNIFF = False SECURE_HSTS_INCLUDE_SUBDOMAINS = False SECURE_HSTS_PRELOAD = False SECURE_HSTS_SECONDS = 0 SECURE_PROXY_SSL_HEADER = None SECURE_REDIRECT_EXEMPT = [] SECURE_SSL_HOST = None SECURE_SSL_REDIRECT = False SERVER_EMAIL = 'root@localhost' SESSION_CACHE_ALIAS = 'default' SESSION_COOKIE_AGE = 1209600 SESSION_COOKIE_DOMAIN = None SESSION_COOKIE_HTTPONLY = True SESSION_COOKIE_NAME = 'sessionid' SESSION_COOKIE_PATH = '/' SESSION_COOKIE_SECURE = False SESSION_ENGINE = 'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE = False SESSION_FILE_PATH = None SESSION_SAVE_EVERY_REQUEST = False SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE = 'scidash.main.settings' SHORT_DATETIME_FORMAT = 'm/d/Y P' SHORT_DATE_FORMAT = 'm/d/Y' SIGNING_BACKEND = 'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS = [] STATICFILES_DIRS = ['/app/scidash/static'] STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT = None STATIC_URL = '/static/' TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/app/scidash/static'], 'APP_DIRS': True, 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}] TEMPLATE_DEBUG = True TEST_NON_SERIALIZED_APPS = [] TEST_RUNNER = 'django.test.runner.DiscoverRunner' THIRD_PARTY_APPS = ['pygeppetto_server', 'channels', 'rest_framework', 'django_extensions', 'django_filters', 'rest_framework_cache', 'material', 'django_celery_beat', 'django_celery_results', 'django_db_logger', 'ckeditor', 'adminsortable2'] THOUSAND_SEPARATOR = ',' TIME_FORMAT = 'P' TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] TIME_ZONE = 'UTC' USE_ETAGS = False USE_I18N = True USE_L10N = True USE_THOUSAND_SEPARATOR = False USE_TZ = False USE_X_FORWARDED_HOST = False USE_X_FORWARDED_PORT = False WSGI_APPLICATION = None X_FRAME_OPTIONS = 'SAMEORIGIN' YEAR_MONTH_FORMAT = 'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code.

make install-frontend fails due to checksum validation failure

As per title, when I run the command make install-frontend this returns the error below.

(venv) ddelpiano@GoldMarry:~/git/scidash/scidash$ make install-frontend
===========================
=    Install frontend     =
===========================
v7.10.1
Cloning into './static/org.geppetto.frontend'...
remote: Enumerating objects: 361, done.
remote: Counting objects: 100% (361/361), done.
remote: Compressing objects: 100% (222/222), done.
remote: Total 70127 (delta 218), reused 235 (delta 135), pack-reused 69766
Receiving objects: 100% (70127/70127), 26.09 MiB | 475.00 KiB/s, done.
Resolving deltas: 100% (48688/48688), done.
Checking connectivity... done.
Cloning into './static/org.geppetto.frontend/src/main/webapp/extensions/geppetto-scidash'...
remote: Enumerating objects: 189, done.
remote: Counting objects: 100% (189/189), done.
remote: Compressing objects: 100% (154/154), done.
remote: Total 2520 (delta 87), reused 105 (delta 31), pack-reused 2331
Receiving objects: 100% (2520/2520), 636.43 KiB | 702.00 KiB/s, done.
Resolving deltas: 100% (1520/1520), done.
Checking connectivity... done.
npm WARN npm npm does not support Node.js v7.10.1
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 6, 8, 9, 10, 11, 12.
npm WARN npm You can find the latest version at https://nodejs.org/
npm WARN tarball tarball data for [email protected] (sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI=) seems to be corrupted. Trying one more time.
npm ERR! code EINTEGRITY
npm ERR! sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI= integrity checksum failed when using sha1: wanted sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI= but got sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg== sha1-5oowx8sETi+zYrQoRp/rKRwuCdg=. (10700 bytes)

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ddelpiano/.npm/_logs/2019-02-20T15_27_33_865Z-debug.log

An extract from the logfile

20327 silly extract [email protected]
20328 silly tarball trying [email protected] by hash: sha512-71DpYoJKAopjCP8kRgdReoBLIUre9vsoUgoWDEEeSHRsDEqIwPguhuEerxXpqY5zZ8P3COEqjYZ/sGpoeI8WCA==
20329 silly tarball trying [email protected] by hash: sha512-yw8jDQIe9FlSH5NiZEqSAsCPj9HI7nhXgXLAgSv2Nm9eBPsFJmyN9+rNwbiozJapcj9xtc/71rMYlN9cxp1B8Q==
20330 silly extract [email protected] extracted to /home/ddelpiano/git/scidash/scidash/static/org.geppetto.frontend/src/main/webapp/node_modules/.staging/cwise-f278a9aa (218ms)
20331 silly extract [email protected] extracted to /home/ddelpiano/git/scidash/scidash/static/org.geppetto.frontend/src/main/webapp/node_modules/.staging/os-locale-bfaf8153 (140ms)
20332 silly extract [email protected]
20333 silly extract [email protected]
20334 silly tarball trying [email protected] by hash: sha512-bTsuvTw4No25kUKGiXwOm0sLJT9kZ7vAkZOZYyXLxKCMRYIz1TS0j7DfqtC5ammzni8AdSahuTT0x52RU4Izuw==
20335 silly tarball trying [email protected] by hash: sha512-yw8jDQIe9FlSH5NiZEqSAsCPj9HI7nhXgXLAgSv2Nm9eBPsFJmyN9+rNwbiozJapcj9xtc/71rMYlN9cxp1B8Q==
20336 verbose stack Error: sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI= integrity checksum failed when using sha1: wanted sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI= but got sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg== sha1-5oowx8sETi+zYrQoRp/rKRwuCdg=. (10700 bytes)
20336 verbose stack     at Transform.on (/usr/local/lib/node_modules/npm/node_modules/ssri/index.js:328:19)
20336 verbose stack     at emitNone (events.js:91:20)
20336 verbose stack     at Transform.emit (events.js:188:7)
20336 verbose stack     at endReadableNT (_stream_readable.js:975:12)
20336 verbose stack     at _combinedTickCallback (internal/process/next_tick.js:80:11)
20336 verbose stack     at process._tickCallback (internal/process/next_tick.js:104:9)
20337 verbose cwd /home/ddelpiano/git/scidash/scidash/static/org.geppetto.frontend/src/main/webapp
20338 verbose Linux 4.4.0-142-generic
20339 verbose argv "/usr/bin/nodejs" "/usr/local/bin/npm" "install"
20340 verbose node v7.10.1
20341 verbose npm  v6.7.0
20342 error code EINTEGRITY
20343 error sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI= integrity checksum failed when using sha1: wanted sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI= but got sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg== sha1-5oowx8sETi+zYrQoRp/rKRwuCdg=. (10700 bytes)
20344 verbose exit [ 1, true ]

An error on the scheduling page does not stop phantom scheduling

The error in #190 does not prevent me from clicking "Run Tests" on the scheduling page, which then returns me back to the Test Scores page. However, nothing shows up there (i.e. there is no indication that the test was scheduled and is pending). Presumably the test was never actually scheduled, which makes sense, but in that case the user should not be able to press "Run Tests" and should not be directed back to the Test Scores page as if it was successful.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.