summaryrefslogtreecommitdiffstats
path: root/bpmn/MSOCoreBPMN
AgeCommit message (Collapse)AuthorFilesLines
2018-12-11Skip cloud regions and fix macroKalkere Ramesh, Sharan (sk720x)1-0/+14
changed aai create tasks to use env instead of urn prop write serviceInstanceId from resource when exec is null Change-Id: I2c0acbeeded2b8a4b0afb0f27d65e24fa48b907b Issue-ID: SO-1329 Signed-off-by: Kalkere Ramesh, Sharan (sk720x) <sk720x@att.com>
2018-11-0711/7: merge casablanca to masterRob Daugherty1-0/+4
Commit: dbb53cabbff772880134699eb81dee775d7df8df Subject: Send correct resourceModuleName Issue: SO-1178 Commit: d3759e15184562647ea83b92cf02140fc705cb0d by ss835w Subject: Update Regex Logic to take into account new scale out URI... Issue: SO-117 Commit: 5dadc2c5790c961a74085d3d10b6f5aec6b7ba30 Subject: Fix msb url in homing cloudsite Issue: SO-1180 Commit: 9a9b0fa23afe8d46171fe95f1090de5a7f701d3d Subject: Updated Reference data for AutoScaleOut Issue: SO-1174 Commit: 3178cad6c756140b18eb658277598e3e2d2d3dcf Subject: ConfigurationParameter is empty for scaleout Issue: SO-1083 Commit: 402bf528e9a796f6ce31ad36c16316c2b31acc48 Subject: Added Null check for gtConfigurationParameter Issue: SO-1179 Commit: fb6ab40a64e74876ba1f08c4d3bdb6a040c21b94 Subject: Bug fixes November 5th Issue: SO-1188 Commit: ce37ae979311ed4e55150426d477db262773beb0 Subject: Removed slashes and added catch block Issue: SO-1183 Commit: 16aa0b6cc42c7287fc080c81451e301c0acc14cf Subject: removed retry from rainy day table Issue: SO-1185 Commit: 2073a3b4c20965252c7f3a0c1aea8e4407e876fa Subject: Fixing scaleOut workflow looping issue Issue: SO-1182 Commit: 5ca364a5e975877244ee51796602043a4b078a23 Subject: Make homingBB optinal and fix homing process Issue: SO-1168 Commit: 1c554c3332ccf6be4e576e9159bbb0f901197379 Subject: bug fixing with reading dmaap message Issue: SO-1191 Change-Id: Id747bc05b791787f304316396bc5fcd20d350b6f Issue-ID: SO-1190 Signed-off-by: Rob Daugherty <rd472p@att.com>
2018-11-05Springboot 2.0 upgradeBenjamin, Max (mb388a)2-46/+9
corrected typo in CloudConfiguration class removed files which should not have been merged updated gr api test cases with dynamic cloud owner updated groovy files to allow for dynamic cloud owner values moved VFModularity folder to mso-infrastructure bpmn updated GR API layer to include cloud owner added enum for default cloud owner - fixing junit test cases for using catalogDb client r2 - fixing junit test cases for using catalogDb client - Internal review comments incorporated for merging mocking into BaseTest - Internal review comments incorporated for removing direct repo calls - CLONE - Key Management Hardcoded encryption key | fixing junits - CLONE - Key Management Hardcoded encryption key Updated builder to use String.format Added exception specifically for issues interacting with requestdbadapter Updated exception message and added junit test case removed useless error handling test case from workflow changed method name and added junit coverage to errors added max retry and success status after completed bb Added case to handle when homing is not called during assign vnf. Fixing fortify issues | Implementing review comments - Key Management Hardcoded encryption key - fixing prop files - Key Management Hardcoded encryption key include network ID for completion handler Added exception handling for saving to requestdb - Adding a check on the predicate availability on the repository before firing the query with default conditions. This ensures that the api returns data only when there is an input against which it was able to form some conditions Modify UT to show that the API does not behave - adding negative test case for checkInstanceNameDuplicate added assertion that global count var was reset to 0 updated rollback to reset current sequence count var workflowaction calls rollback is complete before error workflowaction will set failure on successful rollback added check for isrollback to know which complete to call removed file which should not have been added add fabric check before running vf module a la carte Enhance UCPEMigrateService junits and add them to Jenkins build.. Added back removed test case for ManualTasks Added test case for response error Added rainy day test cases for ManualTasks revert the other change and fix the rollback logic instead fixed current sequence and updated rollback code added network cloud heat template parameters to mapper Generate a unique subRequestId for each request to APP-C. reverted conditional logic for determining fabric Fix Bean scanning so it picks up the resttemplate removed unnecessary RestTemplate Bean configurations removed file which should not have been added workflowaction calls rollback is complete before error workflowaction will set failure on successful rollback added check for isrollback to know which complete to call add fabric check before running vf module a la carte added assertion that global count var was reset to 0 updated rollback to reset current sequence count var include network ID for completion handler Revert Application.yaml change accidentally checked in Added exception handling for saving to requestdb Added case to handle when homing is not called during assign vnf. removed useless error handling test case from workflow changed method name and added junit coverage to errors ... add cloud owner variable to camunda in mapping Revert "Pass cloudOwner to subflow DoCreateVfModuleVolumeV2. Added juint test to verify variables are set in the execution. Set default cloudOwner in main module CreateVfModuleVolumeInfraV2" updated cloud configuration pojo to inlcude defaults Revert "Test to verify ServiceInstance object mapping" Test to verify ServiceInstance object mapping Pass cloudOwner to subflow DoCreateVfModuleVolumeV2. Added juint test to verify variables are set in the execution. Set default cloudOwner in main module CreateVfModuleVolumeInfraV2 Pass cloudOwner to subflow DoCreateVfModuleVolumeV2. Set default cloudOwner 'att-aic' if null per old requirements. removed references to att-aic from BBInputSetup Changes done in encryption decryption logic | used DelegateExecutionFake in Tests Changes done in encryption decryption logic | used DelegateExecutionFake in Tests Changes done in encryption decryption logic Changes done in encryption decryption logic | removed Default Auth Constant as per the comments Changes done in encryption decryption logic | Fixed UT Changes done in encryption decryption logic | Added XmlComparator assertion for verifying XML Changes done in encryption decryption logic | Reverted as per the review comment Changes done in encryption decryption logic | Fixed UTs Changes done in encryption decryption logic | Fixed UTs Changes done in encryption decryption logic | modified related encrypted properties in test yaml files Changes done in encryption decryption logic for fortify issue resolution | Fixed UTs Changes done in encryption decryption logic | modified related encrypted properties in yaml files Changes done in encryption decryption logic for fortify issue resolution. Fixed Property fetching issue in required file Added TasksBeansTest using openpojo Removed renamed test file from tasksbeans Updated imports on TasksBeansTest Added openpojo test to replace the individual tests Removed tests that provided no coverage script clean up -Update reference data to support distinct recreate and replace requests with their own sequences Update reference data to support distinct recreate and replace requests with their own sequences- Fix seq number Update reference data to support distinct recreate and replace requests with their own sequences added null check to mdc and interceptors to sdnc cxf validations can now match against multiple BBs reverted changes to BBInputSetup class added support for pre and post validation for BBs initial commit of generic building block validator converted test to no longer be a springboot test Remove cosmetic changes from BPMN files to be consistent. Remove minor changes that are not related to functionality. Rework to implement the functionality as part of Validator Combine the verification methods into one based on the flow's name; change the logging. Add verification of status of other VF Modules in the VNF for the delete/deactivate/unassign. added network-technology validation for CreateNetworkBB Sonar Issue Fix | Changes done in encryption decryption logic | Refactoring Changes done in encryption decryption logic| Used AES/GCM/NoPadding algorithm | fixed sonar issues added network-type and network-technology to mapper Continue the fight to make JUNITS work properly Update ASDC ATT to be springboot 2.0 compliant Continue to fix Unit tests for springboot 2.0 port removed autowired from workflowactionbbtaskstest fixed workflowactiontest and reduced size by 500 lines Update last of UT for mockito upgrade to 2.0 Fix more JUNITS due to mockito 2.0 upgrade Unit Test fixes to use proper mockito not spring Update Base Test to import proper packages for compile Additional Springboot 2.0 changes, for tests Additional springboot 2.0 fixes and upgrades Update Migration to be Flyway 5 Compliant Fix MSOBPMN Infrastructure common tests Fix Groovy Unit Tests in CommonBPMN Project Update MSO common BPMN to Springboot 2.0 Upgrade ASDC controller to SpringBoot 2.0 Port Openstack adapters to springboot 2.0 Fix VFC Adapter to be springboot 2 compatible Port CatalogDB adapter code to springboot 2 Port SDNC Adapter to Springboot 2.0 ... added update scripts to macro data instead of v12 sql added secondarypolicy to rainy day handling table confirm subnet map is not null in adapter response shallow copy subnet before AAI udpate update AAIObjectType to use uriTemplate extract subnet data from adapter response update correct AAIObjectType for subnet query update subnet(s) in AAI on network create completion confirm subnet map is not null in adapter response shallow copy subnet before AAI udpate update AAIObjectType to use uriTemplate extract subnet data from adapter response update correct AAIObjectType for subnet query update subnet(s) in AAI on network create completion fixed test http entity unit test to remove testing appid and transaction id added unit test for querySubsystemHealth method. also added resttemplate mock to implement healthcheck endpoint fixed unit test to use mock instead of actually goes out to health check endpoint added code to extend globalhealthcheck to include pinging other components and consolidate the responses converted test to no longer be a springboot test Remove cosmetic changes from BPMN files to be consistent. Remove minor changes that are not related to functionality. added update scripts to macro data instead of v12 sql Rework to implement the functionality as part of Validator added secondarypolicy to rainy day handling table added network-type and network-technology to mapper Combine the verification methods into one based on the flow's name; change the logging. Add verification of status of other VF Modules in the VNF for the delete/deactivate/unassign. updated how request db is set to failure in workflowA corrected code to match existing unit tests corrected tests after springboot 2 upgrade Added Required UTs in UpdateConfigurationStateTest and also fixed some UTs. added in missing parenthesis on method call added back execution variable for allotted uri addressed comments on pull request refactor AAI Rest calls from groovy files - Changes as per review comments checkin to refactor AAI rest | Fixing AAIResourceClient.update call refactor AAI Rest calls from groovy files - UpdateConfiguration refactor AAI Rest calls from groovy file - DeleteConfiguration refactor AAI Rest calls from groovy file - UpdateConfiguration refactor AAI Rest calls from groovy file - CreateConfiguration & ConfigurationUtils refactor AAI Rest calls from groovy files - Fix getARByID issue checkin to refactor AAI rest | Adding Junits checkin to refactor AAI rest | Adding few more classes checkin to refactor AAI rest of DoCreateVfModuleVolumeV2 checkin to refactor AAI rest | Update junit checkin to refactor AAI rest of DoCreateVfModuleVolumeV2 | Adding junits checkin to refactor AAI rest of DoCreateVfModuleVolumeV2 | Adding junits checkin to refactor AAI rest of DoCreateVfModuleVolumeV2.groovy ... updated in and out mapping to be generalBuildingBlock change source out mapping to generalBuildingBlock Change-Id: I122f1ebe3e15b77da0a55af201d89d47e326bf83 Issue-ID: SO-1098 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-11-01Fix msb url in homing cloudsiteMarcus G K Williams1-0/+4
This change adds a getMsbHost method to homingUtils to enable correct configuration of the msburl used in identity_services for multicloud. Issue-ID: SO-1180 Change-Id: Ib7adecda98b1d5f5770e2d17a2e76c970619ab46 Signed-off-by: Marcus G K Williams <marcus.williams@intel.com>
2018-10-238/23: merge casablanca to masterRob Daugherty2-8/+8
Change-Id: I0a73fbedf8c6f22e0a37cd8f0505ddcf83250341 Issue-ID: SO-1160 Signed-off-by: Rob Daugherty <rd472p@att.com>
2018-10-23removed att-aic from codebaseBenjamin, Max (mb388a)2-8/+8
remove att-aic cloud owner from ONAP files Change-Id: Ifba8ef6f53194ddca12d11973817f6d85e2fa7e3 Issue-ID: SO-1161 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-10-19Update version to 1.4.0-SNAPSHOT for DublinRob Daugherty1-1/+1
Henceforth, the master branch will be for Dublin work. Change-Id: I269fd8f227e37afdab9c633f45488c643e5e765e Issue-ID: SO-1151 Signed-off-by: Rob Daugherty <rd472p@att.com>
2018-09-20Update OofHoming w/ directivesMarcus G K Williams2-62/+5
Issue-ID: SO-746 Change-Id: I597f7621a32eeb5b8e92cf80700c60bccdc5e560 Signed-off-by: Marcus G K Williams <marcus.williams@intel.com>
2018-08-23update field in service decomp objectBenjamin, Max (mb388a)3-51/+61
removed duplicate json test file and updated existing update ServiceDecompoition serviceNetworks field Change-Id: Iea3dc7efe4edb8ba32e45772fd9d77d9e7fc0ef6 Issue-ID: SO-887 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-08-21updated ServiceInstance POJOBenjamin, Max (mb388a)1-3/+16
added new fields to pojo for groovy compatibility Change-Id: If88a9b51d506d6937bbd431c641410cc4ba07c9e Issue-ID: SO-878 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-07-31Containerization feature of SOBenjamin, Max (mb388a)114-7511/+6268
Change-Id: I95381232eeefcd247a66a5cec370a8ce1c288e18 Issue-ID: SO-670 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-07-27Sonar major issuesSumapriya Sarvepalli1-12/+12
This block of commented-out lines of code should be removed Sonar Link: https://sonar.onap.org/project/issues?fileUuids=AWHCr-EXEU5FCDfKtlqk&id=org.onap.so%3Aso&resolved=false&severities=MAJOR Location: src/main/java/org/openecomp/mso/bpmn/core/json/JsonUtils.java Line No: L39 L75 L112 L338 L473 L536 L555 L715 L736 L756 L794 L844 Change-Id: I6cbecd22eff2d86911405811686619771ac3f74e Issue-ID: SO-762 Signed-off-by: Sumapriya Sarvepalli <ss00493505@techmahindra.com>
2018-05-24Fix problem with singleton impact on TC executionBogumil Zebek1-1/+8
Change-Id: I154c150d8c6c6620344f3f584d3ec7e7201a46ff Issue-ID: SO-643 Signed-off-by: Bogumil Zebek <bogumil.zebek@nokia.com>
2018-05-24Fix problem with singleton and parallel unit testsBogumil Zebek2-0/+6
Change-Id: If4236506978795933564fc6507e780212edbfd5d Issue-ID: SO-641 Signed-off-by: Bogumil Zebek <bogumil.zebek@nokia.com>
2018-05-17Revert placementInfo to placement in SniroHomingMarcus G K Williams2-2/+2
Issue-ID: SO-628 Change-Id: I6e9e44d453a72b4e9ec1a0abe99eb8028aa5ba1a Signed-off-by: Marcus G K Williams <marcus.williams@intel.com>
2018-04-10Merge "Bug Fix - OOF api updates processing flavor-label"Seshu Kumar M3-1/+68
2018-04-09Add junit coverage for CompareModelsResult javaFelix Sangalang1-0/+83
junit coverage for CompareModelsResult Issue-ID: SO-569 Change-Id: I4bde75c36b19427580bf1b2483e7d16f88a69d2d Signed-off-by: Felix Sangalang <fs7692@us.att.com>
2018-04-09Bug Fix - OOF api updates processing flavor-labelMarcus G K Williams3-1/+68
Additional API interactions were added to OOF response post API freeze that enable core HPA functionality. This patch updates the processsing of the API reponse to process additional flavor parameters. Issue-ID: SO-408 Change-Id: I1656a7ba955ab41c57b7a3e07a3d0cc38b16e2fa Signed-off-by: Marcus G K Williams <marcus.williams@intel.com>
2018-03-27Refactor homing flows for OOF/HPAMarcus G K Williams2-142/+149
1. Split Homing into OOF and SNIRO versions 2. Added OOF API interactions 3. Added Unit tests for OOF Homing Code Issue-ID: SO-404 Change-Id: Ifeeeec9ea450d8b330110a565208ed89a1e18cde Signed-off-by: Marcus G K Williams <marcus.williams@intel.com>
2018-03-23add ResourceModelInfo CompareModelsResult javaYulian Han2-0/+111
Change-Id: Idaa55084f5ecb0dd3636c232cebc14fa5f0641e9 Issue-ID: SO-419 Signed-off-by: Yulian Han <elaine.hanyulian@huawei.com>
2018-03-21Merge "Adding Junit"Seshu Kumar M19-0/+986
2018-03-21Adding JunitSumapriya19-0/+986
Adding Junit for: 1.AllotedResource.java 2.ConfigResource.java 3.Configuration.java 4.Customer.java 5.HomingSolution.java 6.License.java 7.ModelInfo.java 8.ModuleResource.java 9.NetworkResource.java 10.OwningEntity.java 11.Project.java 12.Request.java 13.ResourceDecomposition.java 14.Resource.java 15.ServiceDecomposition.java 16.ServiceInstance.java 17.Subscriber.java 18.TunnelConnect.java 19.VnfResource.java Sonar Link: https://sonar.onap.org/code?id=org.onap.so%3Aso&selected=org.onap.so%3AMSOCoreBPMN%3Asrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fmso%2Fbpmn%2Fcore%2Fdomain Change-Id: I94c96ef50a0549ab20ea482db0c17e94c106b5d0 Issue-ID: SO-509 Signed-off-by: Sumapriya <SS00493505@techmahindra.com>
2018-03-21Add UT for HealthCheckHandlerTestsubhash kumar singh1-0/+38
Add UT for HealthCheckHandlerTest class. Change-Id: I073ff4491a746720f3e6a06d332d4193f5bf6fee Issue-ID: SO-369 Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
2018-03-19Fix the Jar vulnerability and licensingByung-Woo Jun1-1/+1
Updated Jar versions in pom.xml files Change-Id: I507b9348d7eabba879979a3cfeeefe9d850ecf4a Issue-ID: SO-457 Signed-off-by: byungwoojun<byung-woo.jun@ericsson.com>
2018-03-14AT&T 1712 and 1802 release codeRob Daugherty30-248/+1654
This is code from AT&T's 1712 and 1802 releases. Change-Id: Ie1e85851e94bc66c4d9514a0226c221939531a04 Issue-ID: SO-425 Signed-off-by: Rob Daugherty <rd472p@att.com>
2018-03-13Merge "Remove redundant type cast"Seshu Kumar M3-13/+13
2018-03-13Merge "Fix a potentional bug String comparison using !="Seshu Kumar M1-1/+1
2018-03-12Merge changes I5a320c60,I3fbd868eSeshu Kumar M1-1/+1
* changes: Remove unnecessary simicolon from all java classes private is redundant for enum constructors
2018-03-10Remove redundant type castMunir Ahmad3-13/+13
Change-Id: Ie00d5ec5a4677c99a9a689bf18a85055902f6384 Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-03-09private is redundant for enum constructorsMunir Ahmad1-1/+1
Change-Id: I3fbd868e83651111a6bce6c268ed4d7cf84c3fd5 Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-03-09Fix a potentional bug String comparison using !=Munir Ahmad1-1/+1
Change-Id: If4e3199dfb0210085e97997133a3cec83d6d99e5 Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-03-09Replace String concatination with chained appendMunir Ahmad1-1/+1
Change-Id: I7780265c1744b3677718461c1f3013465e83535f Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-03-09Merge "Collapse catch clauses where applicable"Rob Daugherty2-13/+5
2018-03-09Revert Reduce log noise/warningsRob Daugherty5-339/+337
This reverts commit 327b17ab250b4c17cf3f91f5e4cd9bffd89f3d1e. It is seriously impeding our ability complete the promised merge of AT&T 1802 code. While I'm all for coding standards, if we are serious about using spaces instead of tabs, then I think we need to (1) agree with the community when this will happen, (2) do consistently in all files, and (3) enforce it. Change-Id: Ib9b996f6b6c7d81ac9ac95d58b0c7d8cc39675ff Issue-ID: SO-368 Signed-off-by: Rob Daugherty <rd472p@att.com>
2018-03-09Collapse catch clauses where applicableMunir Ahmad2-13/+5
Change-Id: Idf9546b9d59bf23547bac4aa4f0fbee4f97a0255 Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-03-09Remove redundant groupId inherited from parentMunir Ahmad1-1/+0
Change-Id: If1df4b792fca2a127e169e393268d63ef31d9ed1 Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-03-08Reduce log noise/warnings format to conventionsMarcus G K Williams5-337/+339
Reduce build log warnings by formatting tests to ONAP code conventions (removing tabs etc.) Issue-ID: SO-368 Change-Id: I48c6d359b83617aebeb79db4e30c1d72d31f7eec Signed-off-by: Marcus G K Williams <marcus.williams@intel.com>
2018-03-07Make use of lambdaMunir Ahmad1-8/+2
Change-Id: I482b874a3e7e686068450c7b5ddf45e2b8ae0d47 Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-03-07Merge "Remove redundant catch clause"Rob Daugherty2-12/+0
2018-03-06Remove redundant catch clauseMunir Ahmad2-12/+0
Change-Id: Ib26f47171384125847a1b31bc1a958b50d0bba70 Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-03-06Fix javadocMunir Ahmad6-8/+6
Change-Id: Iddc39df32089e1a37c04d089522ead295a037118 Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-03-06Merge "Replace StringBuilder with String & inline return"Seshu Kumar M2-22/+11
2018-03-06Replace explicit type with dimond typeMunir Ahmad7-15/+15
Change-Id: I1dedb9ef1ca7b734e3cfc0a3a594d733dbd298d4 Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-03-06Replace StringBuilder with String & inline returnMunir Ahmad2-22/+11
Resolved merge conflicts Change-Id: I1a8c8b6fd801c1eb7719ea3d17f029972e2ba84f Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-03-02Make use of Map.getOrDefaultMunir Ahmad1-6/+2
Change-Id: Ifcd5c9b79179ee9ffd6705990bd4b1991034fb48 Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-02-28Merge "Remove the unnecessary toString"Seshu Kumar M1-1/+1
2018-02-27Make use of append instead of string concatenationMunir Ahmad2-3/+4
Change-Id: I94ad658026f165ba8b5a74352095188a27ee50e5 Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-02-27Remove the unnecessary toStringMunir Ahmad1-1/+1
Change-Id: I32f5d3674583db900f7aa9b45af9fba0f8d9c06c Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>
2018-02-26Merge "Swap while loops with foreach where applicable"Seshu Kumar M1-23/+14
2018-02-25Swap while loops with foreach where applicableMunir Ahmad1-23/+14
Change-Id: Id3b54e8192f0e60657aa4c50af56c1ef98fbff5e Issue-ID: SO-437 Signed-off-by: Munir Ahmad <munir.ahmad@bell.ca>