@@ -35,6 +35,7 @@ class PPMSSyncService (application: Application) extends Plugin {
3535 var ppmsUrl : String = " "
3636 var ppmsPumaApiKey : String = " "
3737 var ppmsApi2Key : String = " "
38+ var ppmsCoreids : List [String ] = List .empty
3839 var ppmsGetProjectAction : String = " "
3940 var ppmsGetProjectMemberAction : String = " "
4041 var ppmsGetUserAction : String = " "
@@ -55,7 +56,7 @@ class PPMSSyncService (application: Application) extends Plugin {
5556
5657 override def onStart () {
5758 Logger .info(" Starting ppms sync plugin" )
58- Logger .info(" There are total of:" + spaces.list().length + " spaces" )
59+ Logger .info(" There are total of: " + spaces.list().length + " spaces" )
5960 /* make sure username password is disabled, otherwise turn this off. reason: cannot create username password */
6061 // if ( play.Play.application().configuration().getBoolean("enableUsernamePassword") ) {
6162 // Logger.info("Make sure to turn off usernamepassword to make this plugin works")
@@ -68,6 +69,7 @@ class PPMSSyncService (application: Application) extends Plugin {
6869 this .ppmsUrl = ppmsUrl
6970 this .ppmsPumaApiKey = play.api.Play .configuration.getString(" ppms.pumapikey" ).getOrElse(" " )
7071 this .ppmsApi2Key = play.api.Play .configuration.getString(" ppms.api2key" ).getOrElse(" " )
72+ this .ppmsCoreids = play.api.Play .configuration.getString(" ppms.coreids" ).get.trim.split(" ," ).toList
7173 this .ppmsGetProjectAction = play.api.Play .configuration.getString(" ppms.action.getprojects" ).getOrElse(" getprojects" )
7274 this .ppmsGetProjectMemberAction = play.api.Play .configuration.getString(" ppms.action.getprojectmember" ).getOrElse(" getprojectmember" )
7375 this .ppmsGetUserAction = play.api.Play .configuration.getString(" ppms.action.getuser" ).getOrElse(" getuser" )
@@ -180,7 +182,7 @@ class PPMSSyncService (application: Application) extends Plugin {
180182 val projGroup = (projectInfo \ " ProjectGroup" ).as[String ]
181183 val projDesc = (projectInfo \ " Descr" ).as[String ]
182184 var rawDataStorage = (extraProfile \ ppmsStorageField).as[String ]
183- Logger .info( " >>> Syncing project: " + projName + " id=" + projId.toString)
185+ Logger .debug( " Syncing project: " + projName + " id=" + projId.toString)
184186 if (rawDataStorage == None || rawDataStorage.trim().isEmpty() || ! rawDataStorage.contains(" -" )) {
185187 Logger .info(" Project " + projName + " has no storage defined. Ignore!!!" )
186188 return
@@ -197,17 +199,17 @@ class PPMSSyncService (application: Application) extends Plugin {
197199 ProjectGroup:%s
198200 Desc:%s""" format(projId, rawDataStorage, projType, projGroup, projDesc)
199201
200- Logger .info(" Syncing project: name =" + projName + " projectId =" + projId + " rawdata=" + rawDataStorage)
202+ Logger .info(" Syncing project: name=" + projName + " id =" + projId + " rawdata=" + rawDataStorage)
201203 // allSpaces: List[ProjectSpace]
202204 // val allSpaces = spaces.list()
203205 // Logger.info("There are total of:" + allSpaces.length + " spaces")
204206 // var spaceList = allSpaces.filter(_space => _space.name == projName)
205207 val allSpaces = spaces.listAccess(0 , Set [Permission ](Permission .ViewSpace ), getFirstAdmin, showAll= true , showPublic= true , onlyTrial= false , showOnlyShared= false )
206- Logger .info(" There are total of:" + allSpaces.length + " spaces" )
208+ Logger .info(" There are total of: " + allSpaces.length + " spaces" )
207209 var spaceInDb : Option [ProjectSpace ] = None
208210 allSpaces.foreach{aSpace =>
209211 metadatas.getMetadataByAttachTo(ResourceRef (ResourceRef .space, aSpace.id)).foreach { metadata =>
210- Logger .info (" Space " + aSpace.name + " metadata: " + metadata.content)
212+ Logger .debug (" Space " + aSpace.name + " metadata: " + metadata.content)
211213 if (metadata.content != None && projId == (metadata.content \ " projId" ).as[Int ] ) {
212214 spaceInDb = Some (aSpace)
213215 }
@@ -219,6 +221,10 @@ class PPMSSyncService (application: Application) extends Plugin {
219221 spaceInDb match {
220222 case Some (_aSpace) => {
221223 Logger .info(" >>>>>>>>>>>>>Space exists, update it<<<<<<<<<<<<<<<" )
224+ if (_aSpace.name != projName) {
225+ Logger .info(" Updating space name: \" " + _aSpace.name + " \" -> \" " + projName + " \" " )
226+ spaces.update(_aSpace.copy(name = projName))
227+ }
222228 metadatas.getMetadataByAttachTo(ResourceRef (ResourceRef .space, _aSpace.id)).foreach { metadata =>
223229 Logger .info(" Space " + _aSpace.name + " metadata: " + metadata.content)
224230 if (metadata.content != None && rawDataStorage.equals( ((metadata.content \ " projStorage" ).as[String ]) ) ) {
@@ -283,15 +289,19 @@ class PPMSSyncService (application: Application) extends Plugin {
283289 return
284290 }
285291 // get projects
286- val projectsJsonArr = PPMSUtils .getPPMSProjects(ppmsUrl, ppmsPumaApiKey, ppmsGetProjectAction)
287- projectsJsonArr.value.foreach { projectInfo =>
288- Logger .info(" Syncing project: " + (projectInfo \ " ProjectName" ).as[String ])
289- val projId = (projectInfo \ " ProjectRef" ).as[Int ]
290- if ( projId >= startingProjectId ) {
291- val projectXtraProfileArr = PPMSUtils .getPPMSExtraProjectProfile(ppmsUrl, ppmsApi2Key, projId, ppmsGetXtraProjectProfileAction)
292- projectXtraProfileArr.value.foreach(syncProject(projectInfo, _))
292+ var numProjects = 0
293+ this .ppmsCoreids.foreach { ppmsCoreid =>
294+ val projectsJsonArr = PPMSUtils .getPPMSProjects(ppmsUrl, ppmsPumaApiKey, ppmsGetProjectAction, ppmsCoreid)
295+ numProjects += projectsJsonArr.value.size
296+ projectsJsonArr.value.foreach { projectInfo =>
297+ val projId = (projectInfo \ " ProjectRef" ).as[Int ]
298+ if ( projId >= startingProjectId ) {
299+ val projectXtraProfileArr = PPMSUtils .getPPMSExtraProjectProfile(ppmsUrl, ppmsApi2Key, projId, ppmsGetXtraProjectProfileAction)
300+ projectXtraProfileArr.value.foreach(syncProject(projectInfo, _))
301+ }
293302 }
294303 }
304+ Logger .info(" Synced " + numProjects + " projects" )
295305 } // end syncProjectsFromPPMS
296306
297307
0 commit comments