From 7b77552f65fef37e97825f6edfd0839c887052ae Mon Sep 17 00:00:00 2001 From: SDA Date: Mon, 23 May 2016 17:20:42 +0300 Subject: [PATCH] Fixes for support group migration procedure and other small changes --- build-0.base.xml | 8 +- build.properties | 17 +- build/profile.s.damian.properties | 2 +- build/profile.stefan.damian.properties | 25 -- build/profile.stefan.properties | 25 -- .../admin/SupportGroupRenameAction.java | 35 +- src/nsis/installer.nsi | 2 +- tests/data/ExportSample1.xls | Bin 10240 -> 0 bytes tests/data/ExportSample2.xls | Bin 10752 -> 0 bytes tests/data/ImportSample1.bin | Bin 22759 -> 0 bytes tests/data/ImportSample1.def | 329 ------------------ tests/data/ImportSample2.bin | Bin 13977 -> 0 bytes tests/data/OverlaySample.xls | Bin 81408 -> 0 bytes tests/data/RemoveSample1.xls | Bin 10240 -> 0 bytes tests/data/RemoveSample2.xls | Bin 10752 -> 0 bytes tests/data/StatusSample1.xls | Bin 10752 -> 0 bytes tests/data/StatusSample2.xls | Bin 10752 -> 0 bytes tests/src/definitions.properties | 83 ----- tests/test.bat | 65 ---- tests/test.sh | 40 --- 20 files changed, 34 insertions(+), 597 deletions(-) delete mode 100644 build/profile.stefan.damian.properties delete mode 100644 build/profile.stefan.properties delete mode 100644 tests/data/ExportSample1.xls delete mode 100644 tests/data/ExportSample2.xls delete mode 100644 tests/data/ImportSample1.bin delete mode 100644 tests/data/ImportSample1.def delete mode 100644 tests/data/ImportSample2.bin delete mode 100644 tests/data/OverlaySample.xls delete mode 100644 tests/data/RemoveSample1.xls delete mode 100644 tests/data/RemoveSample2.xls delete mode 100644 tests/data/StatusSample1.xls delete mode 100644 tests/data/StatusSample2.xls delete mode 100644 tests/src/definitions.properties delete mode 100644 tests/test.bat delete mode 100644 tests/test.sh diff --git a/build-0.base.xml b/build-0.base.xml index 1b865f1..ee10c68 100644 --- a/build-0.base.xml +++ b/build-0.base.xml @@ -44,14 +44,8 @@ - - - - - - - + diff --git a/build.properties b/build.properties index d715a24..baaf9ab 100644 --- a/build.properties +++ b/build.properties @@ -1,16 +1,3 @@ -################################################################################ -# Copyright (c) 2007-2016 AREasy Runtime -# -# This library, AREasy Runtime and API for BMC Remedy AR System, is free software ("Licensed Software"); -# you can redistribute it and/or modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either version 2.1 of the License, -# or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -# including but not limited to, the implied warranty of MERCHANTABILITY, NONINFRINGEMENT, -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. -################################################################################ - #Build Number for ANT. Do not edit! -#Thu Feb 25 09:12:13 EET 2016 -build.number=2432 +#Mon May 23 16:49:53 EEST 2016 +build.number=2437 diff --git a/build/profile.s.damian.properties b/build/profile.s.damian.properties index 478a60e..0c4c6cb 100644 --- a/build/profile.s.damian.properties +++ b/build/profile.s.damian.properties @@ -21,5 +21,5 @@ deploy.protocol = local deploy.host.path = C:\\Program Files (x86)\\AREasy Runtime # # Locations for imported projects and libraries -deploy.nsis.path = C:\\Program Files (x86)\\NSIS +location.tool.nsis = C:\\Program Files (x86)\\NSIS ################################################################# diff --git a/build/profile.stefan.damian.properties b/build/profile.stefan.damian.properties deleted file mode 100644 index 62b80f4..0000000 --- a/build/profile.stefan.damian.properties +++ /dev/null @@ -1,25 +0,0 @@ -################################################################################ -# Copyright (c) 2007-2016 AREasy Runtime -# -# This library, AREasy Runtime and API for BMC Remedy AR System, is free software ("Licensed Software"); -# you can redistribute it and/or modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either version 2.1 of the License, -# or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -# including but not limited to, the implied warranty of MERCHANTABILITY, NONINFRINGEMENT, -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. -################################################################################ -publish.host.name = amsd.go.ro -publish.host.path = /volume1/web/areasy/downloads -publish.host.user = root -# -# Host Deployment location details -deploy.protocol = local -#deploy.host.name = 192.168.121.100 -#deploy.host.user = stefan -deploy.host.path = C:\\Tests\\AREasy Runtime -# -# Locations for imported projects and libraries -deploy.nsis.path = C:\\Program Files\\NSIS -################################################################# diff --git a/build/profile.stefan.properties b/build/profile.stefan.properties deleted file mode 100644 index fc0c91a..0000000 --- a/build/profile.stefan.properties +++ /dev/null @@ -1,25 +0,0 @@ -################################################################################ -# Copyright (c) 2007-2016 AREasy Runtime -# -# This library, AREasy Runtime and API for BMC Remedy AR System, is free software ("Licensed Software"); -# you can redistribute it and/or modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either version 2.1 of the License, -# or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -# including but not limited to, the implied warranty of MERCHANTABILITY, NONINFRINGEMENT, -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. -################################################################################ -publish.host.name = amsd.go.ro -publish.host.path = /volume1/web/areasy/downloads -publish.host.user = root -# -# Host Deployment location details -deploy.protocol = local -#deploy.host.name = 192.168.1.100 -#deploy.host.user = stefan -deploy.host.path = /home/stefan/Tests/areasy -# -# Locations for imported projects and libraries -deploy.nsis.path = C:/Program Files (x86)/NSIS -################################################################# diff --git a/src/java/org/areasy/runtime/actions/arserver/admin/SupportGroupRenameAction.java b/src/java/org/areasy/runtime/actions/arserver/admin/SupportGroupRenameAction.java index 1f802a4..b7182bd 100644 --- a/src/java/org/areasy/runtime/actions/arserver/admin/SupportGroupRenameAction.java +++ b/src/java/org/areasy/runtime/actions/arserver/admin/SupportGroupRenameAction.java @@ -37,6 +37,9 @@ */ public class SupportGroupRenameAction extends AbstractAction { + private SupportGroup oldSG = null; + private SupportGroup newSG = null; + public void run() throws AREasyException { boolean allgroupdetails = getConfiguration().getBoolean("allgroupdetails", false); @@ -70,12 +73,12 @@ public void run() throws AREasyException String newOrganisation = getConfiguration().getString("newsgrouporganisation", getConfiguration().getString("newsupportgrouporganisation", null)); String newGroup = getConfiguration().getString("newsgroup", getConfiguration().getString("newsgroupname", getConfiguration().getString("newsupportgroup", getConfiguration().getString("newsupportgroupname", null)))); - SupportGroup oldSG = new SupportGroup(); + oldSG = new SupportGroup(); oldSG.setCompanyName(oldCompany); oldSG.setOrganisationName(oldOrganisation); oldSG.setSupportGroupName(oldGroup); - SupportGroup newSG = new SupportGroup(); + newSG = new SupportGroup(); newSG.setCompanyName(newCompany); newSG.setOrganisationName(newOrganisation); newSG.setSupportGroupName(newGroup); @@ -93,6 +96,7 @@ public void run() throws AREasyException //run new support group creation procedure and to make the old one obsolete updateSupportGroup(oldSG, newSG); + //update/create all related details if (memberships || allgroupdetails) transferMemberships(oldSG, newSG); if(aliases || allgroupdetails) transferGroupAliases(oldSG, newSG); if(approvalmappings || allgroupdetails) transferApprovalMappings(oldSG, newSG); @@ -100,29 +104,52 @@ public void run() throws AREasyException if(oncalls || allgroupdetails) transferOnCallRecords(oldSG, newSG); if(shifts || allgroupdetails) transferShifts(oldSG, newSG); + //make old group obsolete + oldSG.setStatus("Obsolete"); + oldSG.update(getServerConnection()); + RuntimeLogger.info("Support group '" + oldSG.getCompanyName() + "/" + oldSG.getOrganisationName() + "/" + oldSG.getSupportGroupName() + "' has been set as Obsolete"); + + // update incidents and related templates if(incidentTemplates || allrelatedtickets) updateIncidentTemplates(oldSG, newSG); if(incidents || allrelatedtickets) updateIncidents(oldSG, newSG); + //update problems and related templates if(problemTemplates || allrelatedtickets) updateProblemTemplates(oldSG, newSG); if(problems || allrelatedtickets) updateProblems(oldSG, newSG); + //update know errors if(knownerrors || allrelatedtickets) updateKnownErrors(oldSG, newSG); + //update changes and related templates if(changeTemplates || allrelatedtickets) updateChangeTemplates(oldSG, newSG); if(changes || allrelatedtickets) updateChanges(oldSG, newSG); + //update tasks and related templates if(taskTemplates || allrelatedtickets) updateTaskTemplates(oldSG, newSG); if(tasks || allrelatedtickets) updateTasks(oldSG, newSG); + //update workorders and related templates if(workorderTemplates || allrelatedtickets) updateWorkOrderTemplates(oldSG, newSG); if(workorders || allrelatedtickets) updateWorkOrders(oldSG, newSG); + // update CIs and related assets if(assetrelationships || allrelatedtickets) updateAssetRelationships(oldSG, newSG); if(cmdbrelationships || allrelatedtickets) updateCMDBRelationships(oldSG, newSG); + //update KRs if(knowledgerecords || allrelatedtickets) updateKnowledgeRecords(oldSG, newSG); } + protected SupportGroup getOldSupportEntity() + { + return this.oldSG; + } + + protected SupportGroup getNewSupportEntity() + { + return this.newSG; + } + protected void updateSupportGroup(SupportGroup oldSG, SupportGroup newSG) throws AREasyException { boolean create = true; @@ -160,10 +187,6 @@ protected void updateSupportGroup(SupportGroup oldSG, SupportGroup newSG) throws newSG.update(getServerConnection()); RuntimeLogger.info("Support group '" + newSG.getCompanyName() + "/" + newSG.getOrganisationName() + "/" + newSG.getSupportGroupName() + "' has been updated and enabled"); } - - oldSG.setStatus("Obsolete"); - oldSG.update(getServerConnection()); - RuntimeLogger.info("Support group '" + oldSG.getCompanyName() + "/" + oldSG.getOrganisationName() + "/" + oldSG.getSupportGroupName() + "' has been set as Obsolete"); } protected void transferMemberships(SupportGroup fromGroup, SupportGroup toGroup) throws AREasyException diff --git a/src/nsis/installer.nsi b/src/nsis/installer.nsi index ef0c816..42f1c50 100644 --- a/src/nsis/installer.nsi +++ b/src/nsis/installer.nsi @@ -152,7 +152,7 @@ SectionIn 1 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\%fullname%" "UninstallString" "$INSTDIR\bin\uninstall.exe" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\%fullname%" "DisplayVersion" "%version%" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\%fullname%" "Publisher" "%vendor%" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\%fullname%" "URLInfoAbout" "http://areasy.snt.ro" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\%fullname%" "URLInfoAbout" "http://stefandmn.github.io/AREasy" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\%fullname%" "DisplayIcon" "$INSTDIR\bin\areasy.exe" ;Get estimated size diff --git a/tests/data/ExportSample1.xls b/tests/data/ExportSample1.xls deleted file mode 100644 index 928328412b9df12e977b08d4313f55ca4a32f95d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10240 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 Bq*VX_ diff --git a/tests/data/ExportSample2.xls b/tests/data/ExportSample2.xls deleted file mode 100644 index 0be7f730f1254a947e4c75cd6ed880093aa59018..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10752 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 diff --git a/tests/data/ImportSample1.bin b/tests/data/ImportSample1.bin deleted file mode 100644 index 20c58febabaa92a42813f034bbccd00c04f56b8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22759 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 diff --git a/tests/data/RemoveSample1.xls b/tests/data/RemoveSample1.xls deleted file mode 100644 index e9c3b2a4feac53a3656b61272eb6c3f7ac17d06d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10240 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 diff --git a/tests/data/StatusSample1.xls b/tests/data/StatusSample1.xls deleted file mode 100644 index 4d1e7bb42cade0ac48e1ae189a79d75f899c5a5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10752 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 JH~(w>{|4N8n(F`n diff --git a/tests/data/StatusSample2.xls b/tests/data/StatusSample2.xls deleted file mode 100644 index 0f47fec2f37fad4fc47c68a7ba56637e08a66e8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10752 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 -rem --------------------------------------------------------------------------- - - -rem Get path variables -set APP_CUR=%~dp0 -for %%? in ("%_APP_CUR%..") do set APP_HOME=%%~f? - -rem Check JVM home -if "%JAVA_HOME%" == "" -( - echo The "Invalid parameter JAVA_HOME" - goto end -) - -rem Check ANT home -if "%ANT_HOME%" == "" -( - echo The "Invalid parameter ANT_HOME" - goto end -) - -rem Check AREASY home -if "%AREASY_HOME%" == "" -( - echo The "Invalid parameter AREASY_HOME" - goto end -) - -rem Check input parameters -if not "%1" == "" -( - if "%2" == "" - ( - echo The "Please specify the test name and index" - goto end - ) - - goto askRun -) -else -( - echo The "Please specify the test name and index" - goto end -) - - -:askRun -"%ANT_HOME%\bin\ant" -Darg0=$1 -Darg1=$2 -buildfile="$APP_HOME/build.xml" "4.Tests.1.Exec" -goto end - - -:end -rem End program \ No newline at end of file diff --git a/tests/test.sh b/tests/test.sh deleted file mode 100644 index 5a9e275..0000000 --- a/tests/test.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh - -# Get path variables -APP_HOME=`dirname $0` -APP_HOME=$(cd $APP_HOME/../;pwd) - - -# Check JVM home -if [ "$JAVA_HOME" = "" ] - then - echo "Invalid parameter JAVA_HOME" - echo - exit 1 -fi - -# Check ANT home -if [ "$ANT_HOME" = "" ] - then - echo "Invalid parameter ANT_HOME" - echo - exit 1 -fi - -# Check AREASY home -if [ "$AREASY_HOME" = "" ] - then - echo "Invalid parameter AREASY_HOME" - echo - exit 1 -fi - -# Check input parameters -if [ "$1" = "" ] || [ "$2" = "" ] - then - echo "Please specify the test name and index" - echo - exit 1 -fi - -$ANT_HOME/bin/ant -Darg0=$1 -Darg1=$2 -buildfile "$APP_HOME/build.xml" "4.Tests.1.Exec" \ No newline at end of file