Skip to content

Commit

Permalink
also handle previously uploaded file in PUT /ont/
Browse files Browse the repository at this point in the history
  • Loading branch information
carueda committed Apr 16, 2016
1 parent def0466 commit 47f9069
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 19 deletions.
3 changes: 3 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
## change log ##

* 2016-04-16: 0.3.1:
- also handle previously uploaded file in PUT /ont

* 2016-04-11/12: 0.3.1:
- initial version of POST /ont/upload to perform first step toward registering an ontology
from an uploaded file.
Expand Down
39 changes: 32 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,19 @@



`orr-ont` is a preliminary prototype for a new version of the `Ont` service.
`orr-ont` is a new version of the `Ont` service.
See wiki.

**NOTE: these notes are still terse ..

## build package

sbt package

## build and push image

docker build -t carueda/orr-ont --no-cache .
docker push carueda/orr-ont
docker build -t mmisw/orr-ont --no-cache .
docker push mmisw/orr-ont

## deploy on target machine

Expand All @@ -29,10 +30,21 @@ e.g.,

mkdir -p /home/carueda/orr-ont-base-directory/mongo-data


BOCHICA:

docker run -d --name mongo \
-p 27017:27017 \
-v /Users/carueda/orr-ont-base-directory/mongo-dbpath:/data/db \
mvertes/alpine-mongo

REMOTE:

docker run -d --name mongo \
-p 27017:27017 \
-v /home/carueda/orr-ont-base-directory/mongo-data:/data/db \
mvertes/alpine-mongo


### configure orr-ont

Expand All @@ -41,11 +53,24 @@ e.g.,

### deploy and run orr-ont

docker pull carueda/orr-ont

docker pull mmisw/orr-ont


BOCHICA:

docker run -d --name orr-ont \
--link mongo \
-v /Users/carueda/github/orr-ont/orront.conf:/etc/orront.conf \
-v /tmp/docker-mongo-data:/opt/orr-ont-base-directory \
-p 9090:8080 \
mmisw/orr-ont

REMOTE:
NOTE: How to "expose" host 10035 (AllegroGraph not containerized) to the orr-ont container??

docker run -d --name orr-ont \
--link mongo \
-v /home/carueda/orront.conf:/etc/orront.conf \
-v /home/carueda/orr-ont-base-directory:/opt/orr-ont-base-directory \
-p 9090:8080 orr-ont

-p 9090:8080 \
mmisw/orr-ont
25 changes: 13 additions & 12 deletions src/main/scala/org/mmisw/orr/ont/app/OntController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,7 @@ class OntController(implicit setup: Setup, ontService: OntService) extends BaseO

val (version, date) = getVersion

// get OntFileWriter according to given relevant parameters:
val ontFileWriter = if (fileParams.isDefinedAt("file")) {
getOntFileWriterForJustUploadedFile
}
else {
getOntFileWriterForPreviouslyUploadedFile(user.userName)
}
val ontFileWriter = getOntFileWriter(user)

Created(createOntology(uri, name, version,
version_status, contact_name, date, ontFileWriter, orgName))
Expand Down Expand Up @@ -122,11 +116,11 @@ class OntController(implicit setup: Setup, ontService: OntService) extends BaseO
bug(s"currently I expect registered ont to have org associated")
}

// ok, authenticated user can PUT.
val ontFileWriter = getOntFileWriter(user)

versionOpt match {
case Some(version) => updateOntologyVersion(uri, version, user)
case None => createOntologyVersion(uri, user)
case None => createOntologyVersion(uri, user, ontFileWriter)
}
}

Expand Down Expand Up @@ -257,6 +251,14 @@ class OntController(implicit setup: Setup, ontService: OntService) extends BaseO
}
}

/** get OntFileWriter according to given relevant parameters */
private def getOntFileWriter(user: db.User): OntFileWriter = {
if (fileParams.isDefinedAt("file"))
getOntFileWriterForJustUploadedFile
else
getOntFileWriterForPreviouslyUploadedFile(user.userName)
}

private def getOntFileWriterForJustUploadedFile: OntFileWriter = {
val fileItem = fileParams.getOrElse("file", missing("file"))

Expand Down Expand Up @@ -291,9 +293,8 @@ class OntController(implicit setup: Setup, ontService: OntService) extends BaseO
/**
* Adds a new version of a registered ontology.
*/
private def createOntologyVersion(uri: String, user: db.User) = {
private def createOntologyVersion(uri: String, user: db.User, ontFileWriter: OntFileWriter) = {
val nameOpt = params.get("name")
val contents = getOntFileWriterForJustUploadedFile
val (version, date) = getVersion

// TODO capture version_status from parameter
Expand All @@ -303,7 +304,7 @@ class OntController(implicit setup: Setup, ontService: OntService) extends BaseO
val contact_name: Option[String] = None

Try(ontService.createOntologyVersion(uri, nameOpt, user.userName, version,
version_status, contact_name, date, contents)) match {
version_status, contact_name, date, ontFileWriter)) match {
case Success(ontologyResult) => ontologyResult

case Failure(exc: NoSuch) => error(404, exc.details)
Expand Down

0 comments on commit 47f9069

Please sign in to comment.