Skip to content

Commit e4f5132

Browse files
committed
fix spacesearch
1 parent 016ea3e commit e4f5132

1 file changed

Lines changed: 52 additions & 66 deletions

File tree

app/services/PPMSSyncService.scala

Lines changed: 52 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -209,82 +209,68 @@ class PPMSSyncService (application: Application) extends Plugin {
209209
metadatas.getMetadataByAttachTo(ResourceRef(ResourceRef.space, aSpace.id)).foreach { metadata =>
210210
Logger.info("Space "+ aSpace.name + " metadata: " + metadata.content)
211211
if (metadata.content != None && projId == (metadata.content \ "projId").as[Int] ) {
212-
spaceInDb = aSpace
212+
spaceInDb = Some(aSpace)
213213
}
214214
}
215215
} // end spaces for each
216216

217217
// var spaceList = allSpaces.filter(_space => _space.name == projName)
218218
// Logger.info("Found:" + spaceList.length + " spaces with given name")
219-
220-
if (spaceInDb == None) {
221-
Logger.info(">>>>>>> No space exists, create a new one <<<<<<")
222-
//create new space
223-
var newSpace = ProjectSpace(name = projName, description = desc,
224-
created = new Date, creator = getFirstAdmin.get.id,
225-
homePage = List.empty, logoURL = None, bannerURL = None,
226-
collectionCount = 0, datasetCount = 0, userCount = 0,
227-
metadata = List.empty,
228-
resourceTimeToLive = SpaceConfig.getTimeToLive(),
229-
isTimeToLiveEnabled = SpaceConfig.getIsTimeToLiveEnabled(),
230-
status = SpaceStatus.PRIVATE.toString,
231-
affiliatedSpaces = List.empty)
232-
val addedSpace = spaces.insert(newSpace)
233-
if(addedSpace == None) {
234-
Logger.error("Failed to add space")
235-
return
219+
spaceInDb match {
220+
case Some(_aSpace) => {
221+
Logger.info(">>>>>>>>>>>>>Space exists, update it<<<<<<<<<<<<<<<")
222+
metadatas.getMetadataByAttachTo(ResourceRef(ResourceRef.space, _aSpace.id)).foreach { metadata =>
223+
Logger.info("Space "+ _aSpace.name + " metadata: " + metadata.content)
224+
if (metadata.content != None && rawDataStorage.equals( ((metadata.content \ "projStorage").as[String]) ) ) {
225+
syncUsersInproject(projId, _aSpace)
226+
}
227+
}
236228
}
237-
val addedSpaceUUID = UUIDConversions.stringToUUID(addedSpace.get)
238-
events.addObjectEvent(getFirstAdmin, addedSpaceUUID, newSpace.name, "create_space")
239-
// metadata
240-
val creator = SyncAgent(id=UUID.generate, serverUrl=Some(new URL(ppmsUrl)) )
241-
val spaceMetadata : JsValue = JsObject(
242-
Seq(
243-
"projType" -> JsString(projType),
244-
"projGroup" -> JsString(projGroup),
245-
"projStorage" -> JsString(rawDataStorage),
246-
"projId" -> JsNumber(projId)
229+
case None => {
230+
Logger.info(">>>>>>> No space exists, create a new one <<<<<<")
231+
//create new space
232+
var newSpace = ProjectSpace(name = projName, description = desc,
233+
created = new Date, creator = getFirstAdmin.get.id,
234+
homePage = List.empty, logoURL = None, bannerURL = None,
235+
collectionCount = 0, datasetCount = 0, userCount = 0,
236+
metadata = List.empty,
237+
resourceTimeToLive = SpaceConfig.getTimeToLive(),
238+
isTimeToLiveEnabled = SpaceConfig.getIsTimeToLiveEnabled(),
239+
status = SpaceStatus.PRIVATE.toString,
240+
affiliatedSpaces = List.empty)
241+
val addedSpace = spaces.insert(newSpace)
242+
if(addedSpace == None) {
243+
Logger.error("Failed to add space")
244+
return
245+
}
246+
val addedSpaceUUID = UUIDConversions.stringToUUID(addedSpace.get)
247+
events.addObjectEvent(getFirstAdmin, addedSpaceUUID, newSpace.name, "create_space")
248+
// metadata
249+
val creator = SyncAgent(id=UUID.generate, serverUrl=Some(new URL(ppmsUrl)) )
250+
val spaceMetadata : JsValue = JsObject(
251+
Seq(
252+
"projType" -> JsString(projType),
253+
"projGroup" -> JsString(projGroup),
254+
"projStorage" -> JsString(rawDataStorage),
255+
"projId" -> JsNumber(projId)
256+
)
247257
)
248-
)
249-
// newSpace.metadata = List(Metadata(content=spaceMetadata, creator=creator, attachedTo=ResourceRef(ResourceRef.space, newSpace.id)))
250-
// spaces.update(newSpace)
251-
val newSpaceMetadata = Metadata(content=spaceMetadata, creator=creator, attachedTo=ResourceRef(ResourceRef.space, addedSpaceUUID))
252-
metadatas.addMetadata(newSpaceMetadata)
253-
// add admins first
254-
users.getAdmins.foreach ( admin => spaces.addUser(admin.id , Role.Admin, newSpace.id) )
255-
// go though users in this project
256-
syncUsersInproject(projId, newSpace)
257-
// metadata
258-
val clowder_metadata = metadatas.getDefinitions()
259-
clowder_metadata.foreach { md =>
260-
val new_metadata = MetadataDefinition(spaceId = Some(newSpace.id), json = md.json)
261-
metadatas.addDefinition(new_metadata)
262-
}
263-
} else {
264-
Logger.info(">>>>>>>>>>>>>Space exists, update it<<<<<<<<<<<<<<<")
265-
metadatas.getMetadataByAttachTo(ResourceRef(ResourceRef.space, spaceInDb.id)).foreach { metadata =>
266-
Logger.info("Space "+ spaceInDb.name + " metadata: " + metadata.content)
267-
if (metadata.content != None && rawDataStorage.equals( ((metadata.content \ "projStorage").as[String]) ) ) {
268-
syncUsersInproject(projId, spaceInDb)
258+
// newSpace.metadata = List(Metadata(content=spaceMetadata, creator=creator, attachedTo=ResourceRef(ResourceRef.space, newSpace.id)))
259+
// spaces.update(newSpace)
260+
val newSpaceMetadata = Metadata(content=spaceMetadata, creator=creator, attachedTo=ResourceRef(ResourceRef.space, addedSpaceUUID))
261+
metadatas.addMetadata(newSpaceMetadata)
262+
// add admins first
263+
users.getAdmins.foreach ( admin => spaces.addUser(admin.id , Role.Admin, newSpace.id) )
264+
// go though users in this project
265+
syncUsersInproject(projId, newSpace)
266+
// metadata
267+
val clowder_metadata = metadatas.getDefinitions()
268+
clowder_metadata.foreach { md =>
269+
val new_metadata = MetadataDefinition(spaceId = Some(newSpace.id), json = md.json)
270+
metadatas.addDefinition(new_metadata)
269271
}
270272
}
271-
// go through the metadata of each space to make sure the collection is there
272-
// spaceList.foreach{aSpace =>
273-
// metadatas.getMetadataByAttachTo(ResourceRef(ResourceRef.space, aSpace.id)).foreach { metadata =>
274-
// Logger.info("Space "+ aSpace.name + " metadata: " + metadata.content)
275-
// if (metadata.content != None && rawDataStorage.equals( ((metadata.content \ "projStorage").as[String]) ) ) {
276-
// syncUsersInproject(projId, aSpace)
277-
// }
278-
// }
279-
// // aSpace.metadata.foreach{metadata =>
280-
// // Logger.info("Space "+ aSpace.name + " metadata: " + metadata.content)
281-
// // if (metadata.content != None && rawDataStorage.equals( ((metadata.content \ "projStorage").as[String]) ) ) {
282-
// // // now update the space
283-
// // syncUsersInproject(projId, aSpace)
284-
// // }
285-
// // } // end metadata for each
286-
// } // end spaces for each
287-
} // end space exists
273+
}
288274
}
289275

290276
/**

0 commit comments

Comments
 (0)