From 9054eb1a23125045215931cc0b0980f8ffcf4487 Mon Sep 17 00:00:00 2001 From: Stephen Joyner Date: Tue, 7 May 2024 13:15:48 -0500 Subject: [PATCH] Moving BaseNodeFilters and ExtNodeFilters to shared project --- .../job/reference/JobReferenceImpl.groovy | 1 - .../rundeck/data/util/NodeFiltersUtil.groovy | 37 +++++++++++++++ .../support/filters}/BaseNodeFilters.groovy | 2 +- .../support/filters}/ExtNodeFilters.groovy | 4 +- .../controllers/FrameworkController.groovy | 6 +-- .../domain/rundeck/ScheduledExecution.groovy | 3 +- .../grails-app/i18n/messages.properties | 4 +- .../i18n/messages_es_419.properties | 4 +- .../grails-app/i18n/messages_fr_FR.properties | 4 +- .../grails-app/i18n/messages_ja.properties | 4 +- .../grails-app/i18n/messages_pt_BR.properties | 4 +- .../grails-app/i18n/messages_zh_cn.properties | 4 +- .../rundeck/services/ExecutionService.groovy | 2 +- .../services/JobImportReferenceImpl.groovy | 1 + .../rundeck/services/JobReferenceImpl.groovy | 47 ------------------- .../services/JobRevReferenceImpl.groovy | 38 --------------- .../JobSerializerReferenceImpl.groovy | 1 + .../rundeck/services/JobStateService.groovy | 2 +- .../services/ScheduledExecutionService.groovy | 5 +- .../rundeck/services/ScmService.groovy | 1 + .../execution/ExecutionReferenceImpl.groovy | 1 - .../services/scm/ScmLoaderService.groovy | 3 +- .../app/support/ExecutionContext.groovy | 1 + .../DefaultJobDataChangeDetector.groovy | 2 +- .../data/providers/GormJobDataProvider.groovy | 5 +- .../FrameworkController2Spec.groovy | 3 +- .../FrameworkControllerSpec.groovy | 5 +- .../services/JobStateServiceSpec.groovy | 1 + .../ScheduledExecutionServiceSpec.groovy | 1 + .../jobs/ResolvedAuthJobServiceSpec.groovy | 2 +- .../services/scm/ScmLoaderServiceSpec.groovy | 4 +- 31 files changed, 79 insertions(+), 123 deletions(-) create mode 100644 grails-rundeck-data-shared/src/main/groovy/rundeck/data/util/NodeFiltersUtil.groovy rename {rundeckapp/src/main/groovy/com/dtolabs/rundeck/app/support => grails-rundeck-data-shared/src/main/groovy/rundeck/support/filters}/BaseNodeFilters.groovy (99%) rename {rundeckapp/src/main/groovy/com/dtolabs/rundeck/app/support => grails-rundeck-data-shared/src/main/groovy/rundeck/support/filters}/ExtNodeFilters.groovy (96%) delete mode 100644 rundeckapp/grails-app/services/rundeck/services/JobReferenceImpl.groovy delete mode 100644 rundeckapp/grails-app/services/rundeck/services/JobRevReferenceImpl.groovy diff --git a/grails-rundeck-data-shared/src/main/groovy/rundeck/data/job/reference/JobReferenceImpl.groovy b/grails-rundeck-data-shared/src/main/groovy/rundeck/data/job/reference/JobReferenceImpl.groovy index 623089a896c..460158df399 100644 --- a/grails-rundeck-data-shared/src/main/groovy/rundeck/data/job/reference/JobReferenceImpl.groovy +++ b/grails-rundeck-data-shared/src/main/groovy/rundeck/data/job/reference/JobReferenceImpl.groovy @@ -24,7 +24,6 @@ class JobReferenceImpl implements JobReference { ", project='" + project + '\'' + ", jobName='" + jobName + '\'' + ", groupPath='" + groupPath + '\'' + - ", version='" + version + '\'' + '}'; } } diff --git a/grails-rundeck-data-shared/src/main/groovy/rundeck/data/util/NodeFiltersUtil.groovy b/grails-rundeck-data-shared/src/main/groovy/rundeck/data/util/NodeFiltersUtil.groovy new file mode 100644 index 00000000000..f5b245b64b2 --- /dev/null +++ b/grails-rundeck-data-shared/src/main/groovy/rundeck/data/util/NodeFiltersUtil.groovy @@ -0,0 +1,37 @@ +package rundeck.data.util + +import com.dtolabs.rundeck.core.utils.NodeSet +import rundeck.support.filters.BaseNodeFilters + +class NodeFiltersUtil { + static NodeSet filtersAsNodeSet(BaseNodeFilters econtext) { + final NodeSet nodeset = new NodeSet(); + nodeset.createExclude(BaseNodeFilters.asExcludeMap(econtext)).setDominant(econtext.nodeExcludePrecedence ? true : false); + nodeset.createInclude(BaseNodeFilters.asIncludeMap(econtext)).setDominant(!econtext.nodeExcludePrecedence ? true : false); + return nodeset + } + + static Map extractApiNodeFilterParams(Map params){ + def result=[:] + def value=false + //convert api parameters to node filter parameters + BaseNodeFilters.filterKeys.each{k,v-> + if(params[k]){ + result["nodeInclude${v}"]=params[k] + value=true + } + if(params["exclude-"+k]){ + result["nodeExclude${v}"]=params["exclude-"+k] + value = true + } + } + if(params.filter){ + result.filter=params.filter + value=true + } + if (value && null!=params.'exclude-precedence') { + result.nodeExcludePrecedence = params['exclude-precedence'] == 'true' + } + return result + } +} diff --git a/rundeckapp/src/main/groovy/com/dtolabs/rundeck/app/support/BaseNodeFilters.groovy b/grails-rundeck-data-shared/src/main/groovy/rundeck/support/filters/BaseNodeFilters.groovy similarity index 99% rename from rundeckapp/src/main/groovy/com/dtolabs/rundeck/app/support/BaseNodeFilters.groovy rename to grails-rundeck-data-shared/src/main/groovy/rundeck/support/filters/BaseNodeFilters.groovy index 25836b59efe..22a9ac8528e 100644 --- a/rundeckapp/src/main/groovy/com/dtolabs/rundeck/app/support/BaseNodeFilters.groovy +++ b/grails-rundeck-data-shared/src/main/groovy/rundeck/support/filters/BaseNodeFilters.groovy @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.dtolabs.rundeck.app.support +package rundeck.support.filters import com.dtolabs.rundeck.core.utils.NodeSet import com.dtolabs.rundeck.core.utils.OptsUtil diff --git a/rundeckapp/src/main/groovy/com/dtolabs/rundeck/app/support/ExtNodeFilters.groovy b/grails-rundeck-data-shared/src/main/groovy/rundeck/support/filters/ExtNodeFilters.groovy similarity index 96% rename from rundeckapp/src/main/groovy/com/dtolabs/rundeck/app/support/ExtNodeFilters.groovy rename to grails-rundeck-data-shared/src/main/groovy/rundeck/support/filters/ExtNodeFilters.groovy index 0e0eef769f5..d3ea8344ce9 100644 --- a/rundeckapp/src/main/groovy/com/dtolabs/rundeck/app/support/ExtNodeFilters.groovy +++ b/grails-rundeck-data-shared/src/main/groovy/rundeck/support/filters/ExtNodeFilters.groovy @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.dtolabs.rundeck.app.support +package rundeck.support.filters import com.dtolabs.rundeck.core.common.FrameworkResource import grails.validation.Validateable @@ -34,6 +34,8 @@ public class ExtNodeFilters extends BaseNodeFilters implements Validateable { + Long id + Long version String project String filterName String filterExcludeName diff --git a/rundeckapp/grails-app/controllers/rundeck/controllers/FrameworkController.groovy b/rundeckapp/grails-app/controllers/rundeck/controllers/FrameworkController.groovy index 9477d7ed7a6..4e0bdc4f409 100644 --- a/rundeckapp/grails-app/controllers/rundeck/controllers/FrameworkController.groovy +++ b/rundeckapp/grails-app/controllers/rundeck/controllers/FrameworkController.groovy @@ -22,7 +22,6 @@ import com.dtolabs.rundeck.app.api.project.sources.Source import com.dtolabs.rundeck.app.api.project.sources.Sources import com.dtolabs.rundeck.app.support.ExecutionCleanerConfigImpl import com.dtolabs.rundeck.app.support.PluginConfigParams -import com.dtolabs.rundeck.app.support.StoreFilterCommand import com.dtolabs.rundeck.core.authorization.AuthContext import com.dtolabs.rundeck.core.authorization.Validation import com.dtolabs.rundeck.core.common.NodeFileParserException @@ -99,9 +98,8 @@ import com.dtolabs.rundeck.core.resources.format.ResourceFormatGeneratorExceptio import com.dtolabs.client.utils.Constants import com.dtolabs.rundeck.core.common.NodeSetImpl import com.dtolabs.rundeck.core.common.FrameworkResource -import com.dtolabs.rundeck.app.support.BaseNodeFilters -import com.dtolabs.rundeck.app.support.ExtNodeFilters -import rundeck.User +import rundeck.support.filters.BaseNodeFilters +import rundeck.support.filters.ExtNodeFilters import rundeck.services.ExecutionService import rundeck.services.FrameworkService import rundeck.services.UserService diff --git a/rundeckapp/grails-app/domain/rundeck/ScheduledExecution.groovy b/rundeckapp/grails-app/domain/rundeck/ScheduledExecution.groovy index c1c6dd40f1c..af14fd5ce8a 100644 --- a/rundeckapp/grails-app/domain/rundeck/ScheduledExecution.groovy +++ b/rundeckapp/grails-app/domain/rundeck/ScheduledExecution.groovy @@ -35,12 +35,11 @@ import org.rundeck.app.data.model.v1.job.JobData import org.rundeck.app.data.model.v1.job.notification.NotificationData import org.rundeck.app.data.model.v1.job.option.OptionData import org.rundeck.util.Sizes +import rundeck.data.job.reference.JobReferenceImpl import rundeck.data.validation.shared.SharedJobConstraints -import rundeck.data.validation.shared.SharedJobScheduleConstraints import rundeck.data.validation.shared.SharedLogConfigConstraints import rundeck.data.validation.shared.SharedNodeConfigConstraints import rundeck.data.validation.shared.SharedProjectNameConstraints -import rundeck.services.JobReferenceImpl import java.util.stream.Collectors diff --git a/rundeckapp/grails-app/i18n/messages.properties b/rundeckapp/grails-app/i18n/messages.properties index 27597c9ed6e..9a054908b2b 100644 --- a/rundeckapp/grails-app/i18n/messages.properties +++ b/rundeckapp/grails-app/i18n/messages.properties @@ -236,8 +236,8 @@ rundeck.Execution.project.matches.invalid=The project name must match: {3} rundeck.ScheduledExecution.project.matches.invalid=The project name must match: {3} rundeck.ScheduledExecution.retry.validator.error=The retry value must be a valid integer, or contain an option reference: "{2}" rundeck.ScheduledExecution.nodeThreadcount.validator.error=Thread Count must be an integer greater than 0 -com.dtolabs.rundeck.app.support.ExtNodeFilters.project.matches.invalid=The project name must match: {3} -com.dtolabs.rundeck.app.support.ExtNodeFilters.filterName.matches.invalid=The filter name must match: {3} +rundeck.support.filters.ExtNodeFilters.project.matches.invalid=The project name must match: {3} +rundeck.support.filters.ExtNodeFilters.filterName.matches.invalid=The filter name must match: {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.id.matches.invalid=The ID must match: {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.idlist.matches.invalid=The idlist must be a comma-separated list of valid IDs, matching: {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.ids.validator.error=The ids must be a list of valid IDs, matching: [-_a-zA-Z0-9+][-\\._a-zA-Z0-9+]* diff --git a/rundeckapp/grails-app/i18n/messages_es_419.properties b/rundeckapp/grails-app/i18n/messages_es_419.properties index 1f09d246675..b0e103cb158 100644 --- a/rundeckapp/grails-app/i18n/messages_es_419.properties +++ b/rundeckapp/grails-app/i18n/messages_es_419.properties @@ -224,8 +224,8 @@ rundeck.Execution.project.matches.invalid=El nombre del proyecto debe coincidir: rundeck.ScheduledExecution.project.matches.invalid=El nombre del proyecto debe coincidir: {3} rundeck.ScheduledExecution.retry.validator.error=El valor de reintentos debe ser un entero válido o contener una opción dereferencia: "{2}" rundeck.ScheduledExecution.nodeThreadcount.validator.error=El Número de Subprocesos deber ser un entero válido 0 -com.dtolabs.rundeck.app.support.ExtNodeFilters.project.matches.invalid=El nombre del proyecto debe coincidir: {3} -com.dtolabs.rundeck.app.support.ExtNodeFilters.filterName.matches.invalid=El nombre del filtro debe coincidir: {3} +rundeck.support.filters.ExtNodeFilters.project.matches.invalid=El nombre del proyecto debe coincidir: {3} +rundeck.support.filters.ExtNodeFilters.filterName.matches.invalid=El nombre del filtro debe coincidir: {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.id.matches.invalid=El ID debe coincidir: {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.idlist.matches.invalid=El idlist debe ser una lista separada por comas de ID válidas, que coincidan: {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.ids.validator.error=Los ID deben ser una lista de ID, que coincidan: [-_a-zA-Z0-9+][-\\._a-zA-Z0-9+]* diff --git a/rundeckapp/grails-app/i18n/messages_fr_FR.properties b/rundeckapp/grails-app/i18n/messages_fr_FR.properties index ef7dfbf6cf0..31e521df6c8 100644 --- a/rundeckapp/grails-app/i18n/messages_fr_FR.properties +++ b/rundeckapp/grails-app/i18n/messages_fr_FR.properties @@ -236,8 +236,8 @@ rundeck.Execution.project.matches.invalid=Le nom du projet doit correspondre : { rundeck.ScheduledExecution.project.matches.invalid=Le nom du projet doit correspondre : {3} rundeck.ScheduledExecution.retry.validator.error=La valeur de nouvelle tentative doit \u00eatre un entier valide ou contenir une r\u00e9f\u00e9rence d\u02bcoption : "{2}" rundeck.ScheduledExecution.nodeThreadcount.validator.error=Le nombre de threads doit \u00eatre un nombre entier sup\u00e9rieur \u00e0 0 -com.dtolabs.rundeck.app.support.ExtNodeFilters.project.matches.invalid=Le nom du projet doit correspondre : {3} -com.dtolabs.rundeck.app.support.ExtNodeFilters.filterName.matches.invalid=Le nom du filtre doit correspondre : {3} +rundeck.support.filters.ExtNodeFilters.project.matches.invalid=Le nom du projet doit correspondre : {3} +rundeck.support.filters.ExtNodeFilters.filterName.matches.invalid=Le nom du filtre doit correspondre : {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.id.matches.invalid=L\u02bcID doit correspondre : {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.idlist.matches.invalid=L\u02bcidlist doit \u00eatre une liste d\u02bcidentifiants valides s\u00e9par\u00e9s par des virgules, correspondant : {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.ids.validator.error=Les ID doivent \u00eatre une liste d\u02bcID valides, correspondant \u00e0: [-a-zA-Z0-9 +] [- \\ ._ a-zA-Z0-9 +] * diff --git a/rundeckapp/grails-app/i18n/messages_ja.properties b/rundeckapp/grails-app/i18n/messages_ja.properties index 62f2497dcf5..33ae9c3946c 100644 --- a/rundeckapp/grails-app/i18n/messages_ja.properties +++ b/rundeckapp/grails-app/i18n/messages_ja.properties @@ -213,8 +213,8 @@ rundeck.Execution.project.matches.invalid=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u rundeck.ScheduledExecution.project.matches.invalid=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u306f {3} \u306b\u30de\u30c3\u30c1\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 rundeck.ScheduledExecution.retry.validator.error=\u30ea\u30c8\u30e9\u30a4\u306e\u5024\u306f\u6709\u52b9\u306a\u6570\u5024\u304b\u3001\u30aa\u30d7\u30b7\u30e7\u30f3\u3078\u306e\u53c2\u7167\u3092\u542b\u3080\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002: "{2}" rundeck.ScheduledExecution.nodeThreadcount.validator.error=\u30b9\u30ec\u30c3\u30c9\u6570\u306f0\u3088\u308a\u5927\u304d\u304f\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002 -com.dtolabs.rundeck.app.support.ExtNodeFilters.project.matches.invalid=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u306f {3} \u306b\u30de\u30c3\u30c1\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 -com.dtolabs.rundeck.app.support.ExtNodeFilters.filterName.matches.invalid=\u30d5\u30a3\u30eb\u30bf\u540d\u306f {3} \u306b\u30de\u30c3\u30c1\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 +rundeck.support.filters.ExtNodeFilters.project.matches.invalid=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u306f {3} \u306b\u30de\u30c3\u30c1\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 +rundeck.support.filters.ExtNodeFilters.filterName.matches.invalid=\u30d5\u30a3\u30eb\u30bf\u540d\u306f {3} \u306b\u30de\u30c3\u30c1\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.id.matches.invalid=ID\u306f {3} \u306b\u30de\u30c3\u30c1\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.idlist.matches.invalid=ID\u306e\u30ea\u30b9\u30c8\u306f\u6709\u52b9\u306aID\u3092\u30ab\u30f3\u30de\u3067\u533a\u5207\u3063\u3066 {3} \u306b\u30de\u30c3\u30c1\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.ids.validator.error=ID\u306f\u6709\u52b9\u306aID\u306e\u30ea\u30b9\u30c8\u3067\u6b21\u306b\u30de\u30c3\u30c1\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002: [-_a-zA-Z0-9+][-\\._a-zA-Z0-9+]* diff --git a/rundeckapp/grails-app/i18n/messages_pt_BR.properties b/rundeckapp/grails-app/i18n/messages_pt_BR.properties index 7343fe9e2df..78d56c87724 100644 --- a/rundeckapp/grails-app/i18n/messages_pt_BR.properties +++ b/rundeckapp/grails-app/i18n/messages_pt_BR.properties @@ -227,8 +227,8 @@ rundeck.Execution.project.matches.invalid=O nome do projeto deve corresponder: { rundeck.ScheduledExecution.project.matches.invalid=O nome do projeto deve corresponder: {3} rundeck.ScheduledExecution.retry.validator.error=O valor de repeti\u00e7\u00e3o deve ser um inteiro v\u00e1lido ou conter uma refer\u00eancia de op\u00e7\u00e3o: "{2}" rundeck.ScheduledExecution.nodeThreadcount.validator.error=A contagem de threads deve ser um n\u00famero inteiro maior que 0 -com.dtolabs.rundeck.app.support.ExtNodeFilters.project.matches.invalid=O nome do projeto deve corresponder: {3} -com.dtolabs.rundeck.app.support.ExtNodeFilters.filterName.matches.invalid=O nome do filtro deve corresponder: {3} +rundeck.support.filters.ExtNodeFilters.project.matches.invalid=O nome do projeto deve corresponder: {3} +rundeck.support.filters.ExtNodeFilters.filterName.matches.invalid=O nome do filtro deve corresponder: {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.id.matches.invalid=O ID deve corresponder: {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.idlist.matches.invalid=A lista de c\u00f3digos deve ser uma lista separada por v\u00edrgulas de c\u00f3digos v\u00e1lidos, correspondente: {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.ids.validator.error=Os IDs devem ser uma lista de IDs v\u00e1lidos, correspondentes: [-_a-zA-Z0-9+][-\\._a-zA-Z0-9+]* diff --git a/rundeckapp/grails-app/i18n/messages_zh_cn.properties b/rundeckapp/grails-app/i18n/messages_zh_cn.properties index 36f76c7fdee..e9e7f119346 100644 --- a/rundeckapp/grails-app/i18n/messages_zh_cn.properties +++ b/rundeckapp/grails-app/i18n/messages_zh_cn.properties @@ -221,8 +221,8 @@ rundeck.Execution.project.matches.invalid=The project name must match: {3} rundeck.ScheduledExecution.project.matches.invalid=The project name must match: {3} rundeck.ScheduledExecution.retry.validator.error=The retry value must be a valid integer, or contain an option reference: "{2}" rundeck.ScheduledExecution.nodeThreadcount.validator.error=Thread Count must be an integer greater than 0 -com.dtolabs.rundeck.app.support.ExtNodeFilters.project.matches.invalid=The project name must match: {3} -com.dtolabs.rundeck.app.support.ExtNodeFilters.filterName.matches.invalid=The filter name must match: {3} +rundeck.support.filters.ExtNodeFilters.project.matches.invalid=The project name must match: {3} +rundeck.support.filters.ExtNodeFilters.filterName.matches.invalid=The filter name must match: {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.id.matches.invalid=The ID must match: {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.idlist.matches.invalid=The idlist must be a comma-separated list of valid IDs, matching: {3} com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.ids.validator.error=The ids must be a list of valid IDs, matching: [-_a-zA-Z0-9+][-\\._a-zA-Z0-9+]* diff --git a/rundeckapp/grails-app/services/rundeck/services/ExecutionService.groovy b/rundeckapp/grails-app/services/rundeck/services/ExecutionService.groovy index 3d1b5fb05b1..8e9fe561938 100644 --- a/rundeckapp/grails-app/services/rundeck/services/ExecutionService.groovy +++ b/rundeckapp/grails-app/services/rundeck/services/ExecutionService.groovy @@ -19,7 +19,7 @@ package rundeck.services import com.dtolabs.rundeck.core.logging.internal.LogFlusher import com.dtolabs.rundeck.app.internal.workflow.MultiWorkflowExecutionListener -import com.dtolabs.rundeck.app.support.BaseNodeFilters +import rundeck.support.filters.BaseNodeFilters import com.dtolabs.rundeck.app.support.ExecutionContext import com.dtolabs.rundeck.app.support.ExecutionQuery import com.dtolabs.rundeck.app.support.QueueQuery diff --git a/rundeckapp/grails-app/services/rundeck/services/JobImportReferenceImpl.groovy b/rundeckapp/grails-app/services/rundeck/services/JobImportReferenceImpl.groovy index 026b34f00c9..3ec5d827a45 100644 --- a/rundeckapp/grails-app/services/rundeck/services/JobImportReferenceImpl.groovy +++ b/rundeckapp/grails-app/services/rundeck/services/JobImportReferenceImpl.groovy @@ -20,6 +20,7 @@ import com.dtolabs.rundeck.core.jobs.JobRevReference import com.dtolabs.rundeck.plugins.scm.JobImportReference import com.dtolabs.rundeck.plugins.scm.JobScmReference import com.dtolabs.rundeck.plugins.scm.JobSerializer +import rundeck.data.job.reference.JobReferenceImpl /** * Created by greg on 9/14/15. diff --git a/rundeckapp/grails-app/services/rundeck/services/JobReferenceImpl.groovy b/rundeckapp/grails-app/services/rundeck/services/JobReferenceImpl.groovy deleted file mode 100644 index 590b8216599..00000000000 --- a/rundeckapp/grails-app/services/rundeck/services/JobReferenceImpl.groovy +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2016 SimplifyOps, Inc. (http://simplifyops.com) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package rundeck.services - -import com.dtolabs.rundeck.core.jobs.JobReference - -/** - * Created by greg on 2/3/15. - */ -class JobReferenceImpl implements JobReference { - String id - String project - String jobName - String groupPath - String serverUUID - String originalQuartzJobName - String originalQuartzGroupName - - @Override - String getJobAndGroup() { - null != groupPath ? groupPath + '/' + jobName : jobName - } - - @Override - public String toString() { - return "JobReference{" + - "id='" + id + '\'' + - ", project='" + project + '\'' + - ", jobName='" + jobName + '\'' + - ", groupPath='" + groupPath + '\'' + - '}'; - } -} diff --git a/rundeckapp/grails-app/services/rundeck/services/JobRevReferenceImpl.groovy b/rundeckapp/grails-app/services/rundeck/services/JobRevReferenceImpl.groovy deleted file mode 100644 index 6dc7eed990c..00000000000 --- a/rundeckapp/grails-app/services/rundeck/services/JobRevReferenceImpl.groovy +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2016 SimplifyOps, Inc. (http://simplifyops.com) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package rundeck.services - -import com.dtolabs.rundeck.core.jobs.JobRevReference - -/** - * Created by greg on 8/21/15. - */ -class JobRevReferenceImpl extends JobReferenceImpl implements JobRevReference { - Long version - - - @Override - public String toString() { - return "JobReference{" + - "id='" + id + '\'' + - ", project='" + project + '\'' + - ", jobName='" + jobName + '\'' + - ", groupPath='" + groupPath + '\'' + - ", version='" + version + '\'' + - '}'; - } -} diff --git a/rundeckapp/grails-app/services/rundeck/services/JobSerializerReferenceImpl.groovy b/rundeckapp/grails-app/services/rundeck/services/JobSerializerReferenceImpl.groovy index 23a9978f62c..45db60ed61e 100644 --- a/rundeckapp/grails-app/services/rundeck/services/JobSerializerReferenceImpl.groovy +++ b/rundeckapp/grails-app/services/rundeck/services/JobSerializerReferenceImpl.groovy @@ -19,6 +19,7 @@ package rundeck.services import com.dtolabs.rundeck.plugins.scm.JobExportReference import com.dtolabs.rundeck.core.jobs.JobRevReference import com.dtolabs.rundeck.plugins.scm.JobSerializer +import rundeck.data.job.reference.JobReferenceImpl /** * Created by greg on 4/28/15. diff --git a/rundeckapp/grails-app/services/rundeck/services/JobStateService.groovy b/rundeckapp/grails-app/services/rundeck/services/JobStateService.groovy index 5ca3ed5ca6d..f0a72f24421 100644 --- a/rundeckapp/grails-app/services/rundeck/services/JobStateService.groovy +++ b/rundeckapp/grails-app/services/rundeck/services/JobStateService.groovy @@ -16,7 +16,7 @@ package rundeck.services -import com.dtolabs.rundeck.app.support.BaseNodeFilters +import rundeck.support.filters.BaseNodeFilters import com.dtolabs.rundeck.app.support.ExecutionQuery import com.dtolabs.rundeck.core.authorization.AuthContext import com.dtolabs.rundeck.core.authorization.UserAndRolesAuthContext diff --git a/rundeckapp/grails-app/services/rundeck/services/ScheduledExecutionService.groovy b/rundeckapp/grails-app/services/rundeck/services/ScheduledExecutionService.groovy index fc86368219c..ad6444fe911 100644 --- a/rundeckapp/grails-app/services/rundeck/services/ScheduledExecutionService.groovy +++ b/rundeckapp/grails-app/services/rundeck/services/ScheduledExecutionService.groovy @@ -17,7 +17,9 @@ package rundeck.services import com.dtolabs.rundeck.app.api.jobs.browse.ItemMeta -import com.dtolabs.rundeck.app.support.BaseNodeFilters +import rundeck.data.job.reference.JobReferenceImpl +import rundeck.data.job.reference.JobRevReferenceImpl +import rundeck.support.filters.BaseNodeFilters import com.dtolabs.rundeck.app.support.ScheduledExecutionQuery import com.dtolabs.rundeck.core.audit.ActionTypes import com.dtolabs.rundeck.core.audit.ResourceTypes @@ -3333,6 +3335,7 @@ class ScheduledExecutionService implements ApplicationContextAware, Initializing ].each { scheduledExecution."$it" = null } + basicProps.remove("id") //id is a uuid and should not attempt to set the id field of the scheduled execution domain class scheduledExecution.properties = basicProps if (scheduledExecution.groupPath) { def re = /^\/*(.+?)\/*$/ diff --git a/rundeckapp/grails-app/services/rundeck/services/ScmService.groovy b/rundeckapp/grails-app/services/rundeck/services/ScmService.groovy index a7595349b83..f04c4650ec8 100644 --- a/rundeckapp/grails-app/services/rundeck/services/ScmService.groovy +++ b/rundeckapp/grails-app/services/rundeck/services/ScmService.groovy @@ -63,6 +63,7 @@ import org.slf4j.Logger import org.slf4j.LoggerFactory import rundeck.ScheduledExecution import rundeck.User +import rundeck.data.job.reference.JobRevReferenceImpl import rundeck.services.scm.ContextJobImporter import rundeck.services.scm.ResolvedJobImporter import rundeck.services.scm.ScmPluginConfig diff --git a/rundeckapp/grails-app/services/rundeck/services/execution/ExecutionReferenceImpl.groovy b/rundeckapp/grails-app/services/rundeck/services/execution/ExecutionReferenceImpl.groovy index 0e16f4c3465..b8c62cb2471 100644 --- a/rundeckapp/grails-app/services/rundeck/services/execution/ExecutionReferenceImpl.groovy +++ b/rundeckapp/grails-app/services/rundeck/services/execution/ExecutionReferenceImpl.groovy @@ -2,7 +2,6 @@ package rundeck.services.execution import com.dtolabs.rundeck.core.execution.ExecutionReference import com.dtolabs.rundeck.core.jobs.JobReference -import rundeck.services.JobReferenceImpl class ExecutionReferenceImpl implements ExecutionReference { diff --git a/rundeckapp/grails-app/services/rundeck/services/scm/ScmLoaderService.groovy b/rundeckapp/grails-app/services/rundeck/services/scm/ScmLoaderService.groovy index e0a677bb6dd..2f66135ae78 100644 --- a/rundeckapp/grails-app/services/rundeck/services/scm/ScmLoaderService.groovy +++ b/rundeckapp/grails-app/services/rundeck/services/scm/ScmLoaderService.groovy @@ -12,9 +12,10 @@ import grails.gorm.transactions.Transactional import groovy.transform.CompileDynamic import groovy.transform.CompileStatic import rundeck.ScheduledExecution +import rundeck.data.job.reference.JobRevReferenceImpl import rundeck.services.ConfigurationService import rundeck.services.FrameworkService -import rundeck.services.JobRevReferenceImpl + import rundeck.services.ScheduledExecutionService import rundeck.services.ScmService import rundeck.services.StoredJobChangeEvent diff --git a/rundeckapp/src/main/groovy/com/dtolabs/rundeck/app/support/ExecutionContext.groovy b/rundeckapp/src/main/groovy/com/dtolabs/rundeck/app/support/ExecutionContext.groovy index b262819d740..e5eb169cf4b 100644 --- a/rundeckapp/src/main/groovy/com/dtolabs/rundeck/app/support/ExecutionContext.groovy +++ b/rundeckapp/src/main/groovy/com/dtolabs/rundeck/app/support/ExecutionContext.groovy @@ -17,6 +17,7 @@ package com.dtolabs.rundeck.app.support import grails.gorm.dirty.checking.DirtyCheck +import rundeck.support.filters.BaseNodeFilters /** * ExecutionContext diff --git a/rundeckapp/src/main/groovy/org/rundeck/app/data/job/schedule/DefaultJobDataChangeDetector.groovy b/rundeckapp/src/main/groovy/org/rundeck/app/data/job/schedule/DefaultJobDataChangeDetector.groovy index 8c9487262a5..106f34d0c95 100644 --- a/rundeckapp/src/main/groovy/org/rundeck/app/data/job/schedule/DefaultJobDataChangeDetector.groovy +++ b/rundeckapp/src/main/groovy/org/rundeck/app/data/job/schedule/DefaultJobDataChangeDetector.groovy @@ -1,7 +1,7 @@ package org.rundeck.app.data.job.schedule import org.rundeck.app.data.model.v1.job.JobData -import rundeck.services.JobRevReferenceImpl +import rundeck.data.job.reference.JobRevReferenceImpl class DefaultJobDataChangeDetector implements JobDataChangeDetector { diff --git a/rundeckapp/src/main/groovy/org/rundeck/app/data/providers/GormJobDataProvider.groovy b/rundeckapp/src/main/groovy/org/rundeck/app/data/providers/GormJobDataProvider.groovy index ea3af76ff7f..61af40ce8b2 100644 --- a/rundeckapp/src/main/groovy/org/rundeck/app/data/providers/GormJobDataProvider.groovy +++ b/rundeckapp/src/main/groovy/org/rundeck/app/data/providers/GormJobDataProvider.groovy @@ -19,6 +19,8 @@ import org.rundeck.app.authorization.AppAuthContextProcessor import org.rundeck.app.components.RundeckJobDefinitionManager import org.rundeck.app.components.jobs.ImportedJob import org.rundeck.app.data.model.v1.job.JobDataSummary +import rundeck.data.job.reference.JobReferenceImpl +import rundeck.data.job.reference.JobRevReferenceImpl import rundeck.data.validation.exception.DataValidationException import org.rundeck.app.data.job.schedule.DefaultJobDataChangeDetector import org.rundeck.app.data.model.v1.DeletionResult @@ -39,8 +41,7 @@ import rundeck.ScheduledExecution import rundeck.data.job.RdOption import rundeck.services.FrameworkService import rundeck.services.JobLifecycleComponentService -import rundeck.services.JobReferenceImpl -import rundeck.services.JobRevReferenceImpl + import rundeck.services.JobSchedulerService import rundeck.services.JobSchedulesService import rundeck.services.ScheduledExecutionService diff --git a/rundeckapp/src/test/groovy/rundeck/controllers/FrameworkController2Spec.groovy b/rundeckapp/src/test/groovy/rundeck/controllers/FrameworkController2Spec.groovy index 03f9c955b6b..a89bbc00c73 100644 --- a/rundeckapp/src/test/groovy/rundeck/controllers/FrameworkController2Spec.groovy +++ b/rundeckapp/src/test/groovy/rundeck/controllers/FrameworkController2Spec.groovy @@ -16,7 +16,7 @@ package rundeck.controllers -import com.dtolabs.rundeck.app.support.ExtNodeFilters +import rundeck.support.filters.ExtNodeFilters import com.dtolabs.rundeck.app.support.PluginConfigParams import com.dtolabs.rundeck.core.common.IRundeckProject import com.dtolabs.rundeck.core.config.Features @@ -33,7 +33,6 @@ import grails.testing.web.controllers.ControllerUnitTest import groovy.mock.interceptor.MockFor import org.grails.web.servlet.mvc.SynchronizerTokensHolder import org.rundeck.app.authorization.AppAuthContextProcessor -import org.rundeck.app.data.providers.GormProjectDataProvider import org.rundeck.core.auth.AuthConstants import rundeck.* import rundeck.services.* diff --git a/rundeckapp/src/test/groovy/rundeck/controllers/FrameworkControllerSpec.groovy b/rundeckapp/src/test/groovy/rundeck/controllers/FrameworkControllerSpec.groovy index 02e2e83729c..d942cc98208 100644 --- a/rundeckapp/src/test/groovy/rundeck/controllers/FrameworkControllerSpec.groovy +++ b/rundeckapp/src/test/groovy/rundeck/controllers/FrameworkControllerSpec.groovy @@ -16,8 +16,7 @@ package rundeck.controllers -import com.dtolabs.rundeck.app.support.ExtNodeFilters -import com.dtolabs.rundeck.core.authorization.AuthContextProvider +import rundeck.support.filters.ExtNodeFilters import com.dtolabs.rundeck.core.authorization.RuleSetValidation import com.dtolabs.rundeck.core.authorization.UserAndRolesAuthContext import com.dtolabs.rundeck.core.common.* @@ -37,10 +36,8 @@ import grails.testing.gorm.DataTest import grails.testing.web.controllers.ControllerUnitTest import org.grails.plugins.metricsweb.MetricService import org.grails.web.servlet.mvc.SynchronizerTokensHolder -import org.rundeck.app.acl.ACLFileManager import org.rundeck.app.acl.AppACLContext import org.rundeck.app.acl.ContextACLManager -import org.rundeck.app.authorization.AppAuthContextEvaluator import org.rundeck.app.authorization.AppAuthContextProcessor import org.rundeck.core.auth.AuthConstants import org.rundeck.core.projects.ProjectConfigurable diff --git a/rundeckapp/src/test/groovy/rundeck/services/JobStateServiceSpec.groovy b/rundeckapp/src/test/groovy/rundeck/services/JobStateServiceSpec.groovy index fbc6bf77dc0..26157aa102d 100644 --- a/rundeckapp/src/test/groovy/rundeck/services/JobStateServiceSpec.groovy +++ b/rundeckapp/src/test/groovy/rundeck/services/JobStateServiceSpec.groovy @@ -33,6 +33,7 @@ import rundeck.CommandExec import rundeck.Execution import rundeck.ScheduledExecution import rundeck.Workflow +import rundeck.data.job.reference.JobReferenceImpl import spock.lang.Specification import static org.junit.Assert.assertNotNull diff --git a/rundeckapp/src/test/groovy/rundeck/services/ScheduledExecutionServiceSpec.groovy b/rundeckapp/src/test/groovy/rundeck/services/ScheduledExecutionServiceSpec.groovy index 788aa772382..a6e145c4659 100644 --- a/rundeckapp/src/test/groovy/rundeck/services/ScheduledExecutionServiceSpec.groovy +++ b/rundeckapp/src/test/groovy/rundeck/services/ScheduledExecutionServiceSpec.groovy @@ -68,6 +68,7 @@ import rundeck.User import org.rundeck.app.jobs.options.JobOptionConfigRemoteUrl import rundeck.data.constants.NotificationConstants import rundeck.data.job.RdJobDataSummary +import rundeck.data.job.reference.JobReferenceImpl import spock.lang.Specification import static org.junit.Assert.* diff --git a/rundeckapp/src/test/groovy/rundeck/services/jobs/ResolvedAuthJobServiceSpec.groovy b/rundeckapp/src/test/groovy/rundeck/services/jobs/ResolvedAuthJobServiceSpec.groovy index 64796928380..770f7f0a96e 100644 --- a/rundeckapp/src/test/groovy/rundeck/services/jobs/ResolvedAuthJobServiceSpec.groovy +++ b/rundeckapp/src/test/groovy/rundeck/services/jobs/ResolvedAuthJobServiceSpec.groovy @@ -20,7 +20,7 @@ import com.dtolabs.rundeck.core.authorization.UserAndRolesAuthContext import com.dtolabs.rundeck.core.jobs.JobExecutionError import com.dtolabs.rundeck.core.jobs.JobNotFound import grails.testing.services.ServiceUnitTest -import rundeck.services.JobReferenceImpl +import rundeck.data.job.reference.JobReferenceImpl import rundeck.services.execution.ExecutionReferenceImpl import spock.lang.Specification diff --git a/rundeckapp/src/test/groovy/rundeck/services/scm/ScmLoaderServiceSpec.groovy b/rundeckapp/src/test/groovy/rundeck/services/scm/ScmLoaderServiceSpec.groovy index 218ac3eb35f..44b79e0fd12 100644 --- a/rundeckapp/src/test/groovy/rundeck/services/scm/ScmLoaderServiceSpec.groovy +++ b/rundeckapp/src/test/groovy/rundeck/services/scm/ScmLoaderServiceSpec.groovy @@ -2,7 +2,6 @@ package rundeck.services.scm import com.dtolabs.rundeck.core.jobs.JobRevReference import com.dtolabs.rundeck.core.plugins.CloseableProvider -import com.dtolabs.rundeck.core.plugins.configuration.ConfigurationException import com.dtolabs.rundeck.plugins.scm.JobChangeEvent import com.dtolabs.rundeck.plugins.scm.JobScmReference import com.dtolabs.rundeck.plugins.scm.ScmExportPlugin @@ -12,8 +11,9 @@ import grails.events.bus.EventBus import grails.testing.gorm.DataTest import grails.testing.services.ServiceUnitTest import rundeck.ScheduledExecution +import rundeck.data.job.reference.JobRevReferenceImpl import rundeck.services.FrameworkService -import rundeck.services.JobRevReferenceImpl + import rundeck.services.ScheduledExecutionService import rundeck.services.ScmService import spock.lang.Specification