Try adding the module cas-server-support-git-service-registry to your
overlay for cas-mgmt if it is not already there.

On Fri, Jan 31, 2020 at 11:33 AM Nathan Lewan <[email protected]> wrote:

> first off, thanks for responding so quickly!
>
> I added this to management.properties first:
> cas.serviceRegistry.git.cloneDirectory=${git-repo-folder-location}
> that lead to the same behavior
>
> I then set this in management.properties
> mgmt.versionControl=false
> that lead to the same behavior
>
> I then added in management.properties
> cas.serviceRegistry.git.privateKeyPath
> =${hcc.base.dir}/cas-settings/keys/coderepo_id_rsa
> this leads to this error:
>
> ***************************
> APPLICATION FAILED TO START
> ***************************
>
> Description:
>
> Binding to target [Bindable@60c98ce4 type =
> org.apereo.cas.configuration.CasConfigurationProperties, value =
> 'provided', annotations =
> array<Annotation>[@org.springframework.boot.context.properties.ConfigurationProperties(ignoreInvalidFields=false,
> ignoreUnknownFields=false, prefix=cas, value=cas)]] failed:
>
>     Property: cas.serviceregistry.git.privatekeypath
>     Value: ${me.base.dir}/cas-settings/keys/coderepo_id_rsa
>     Origin: "cas.serviceRegistry.git.privateKeyPath" from property source
> "bootstrapProperties"
>     Reason: The elements [cas.serviceregistry.git.privatekeypath] were
> left unbound.
>
> Action:
>
> Update your application's configuration
>
>
> So everything is working great, like when I delete a service record in
> CAS-MANAGEMENT, it get's deleted in the cloned ${git-repo-folder-location},
> it gets picked up by the cas app itself, it even successfully commits it to
> the cloned  ${git-repo-folder-location}, but neither cas, or
> cas-management seem to want to actually 'push' it to the git repo.
>
>
> on a whim, I decided to take a stab at adding this key that I made up to
> management.properties:
> mgmt.versionControl.pushChanges=true
> that, predictably lead to this:
>
> ***************************
> APPLICATION FAILED TO START
> ***************************
>
> Description:
>
> Binding to target [Bindable@13be93b8 type =
> org.apereo.cas.configuration.CasManagementConfigurationProperties, value =
> 'provided', annotations =
> array<Annotation>[@org.springframework.boot.context.properties.ConfigurationProperties(ignoreInvalidFields=false,
> ignoreUnknownFields=false, prefix=mgmt, value=mgmt)]] failed:
>
>     Property: mgmt.versioncontrol.pushchanges
>     Value: true
>     Origin: "mgmt.versionControl.pushChanges" from property source
> "bootstrapProperties"
>     Reason: The elements [mgmt.versioncontrol.pushchanges] were left
> unbound.
>
> Action:
>
> Update your application's configuration
>
>
> I guess I should try putting it on another server to rule that out, it's
> just so close to functional, I feel there's just something silly i'm
> missing.
>
> thanks again!
>
> On Friday, January 31, 2020 at 1:12:18 PM UTC-5, Travis Schmidt wrote:
>
>> I think the key that you are missing is this in the management properties
>>
>> cas.serviceRegistry.git.cloneDirectory=${git-repo-folder-location}
>>
>> You cas.serviceRegistry properties from cas.properties to mgmt.properties
>> should be identical.  Also running the Git services repo with
>> management and server in the same JVM, might be an issue.
>>
>> Try turning version control off in management and make your
>> serviceRegistry properties in both to rule out running in same JVM is a
>> problem.
>>
>>
>>
>> On Fri, Jan 31, 2020 at 8:00 AM Nathan Lewan <[email protected]> wrote:
>>
>>> hello!
>>>
>>> these forums have been great for me, and I'd like to throw out a
>>> question to see if anyone has any insights.
>>>
>>> here's what's working:
>>>
>>> cas and cas-management 6.1 RC4 running on tomcat9 on the same server,
>>> are both able to see the git service registry I have set up.
>>>
>>> my fun begins when cas-management commits it's changes. It commits them
>>> in the local git cache, which the cas service is also pointing at and picks
>>> up, BUT it never pushes the commit to the git repo.
>>>
>>> I get java nullopintexception error. actually I get that error right
>>> when I select to look at the services in the cas-management web interface:
>>>
>>> ---------------------------------------
>>> 2020-01-31 10:44:07,275 ERROR
>>> [org.apereo.cas.mgmt.controller.CommitController] - <null>
>>> java.lang.NullPointerException: null
>>>     at
>>> org.apereo.cas.mgmt.controller.CommitController.isPublishedBehind(CommitController.java:201)
>>> ~[cas-mgmt-support-version-control-6.1.0-RC4.jar:6.1.0-RC4]
>>>     at
>>> org.apereo.cas.mgmt.controller.CommitController.gitStatus(CommitController.java:225)
>>> [cas-mgmt-support-version-control-6.1.0-RC4.jar:6.1.0-RC4]
>>>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>>> Method) ~[?:?]
>>>     at
>>> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>> ~[?:?]
>>>     at
>>> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> ~[?:?]
>>>     at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
>>>     at
>>> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
>>> [spring-web-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
>>> [spring-web-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
>>> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:889)
>>> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:794)
>>> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
>>> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039)
>>> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
>>> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
>>> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)
>>> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
>>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
>>> [servlet-api.jar:?]
>>>     at
>>> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
>>> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
>>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
>>> [servlet-api.jar:?]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
>>> [tomcat-websocket.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apereo.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:66)
>>> [inspektr-common-1.8.5.GA.jar:1.8.5.GA]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
>>> [spring-web-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>>> [spring-web-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
>>> [spring-web-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>>> [spring-web-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
>>> [spring-web-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>>> [spring-web-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)
>>> [spring-boot-2.2.0.M3.jar:2.2.0.M3]
>>>     at
>>> org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:66)
>>> [spring-boot-2.2.0.M3.jar:2.2.0.M3]
>>>     at
>>> org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:105)
>>> [spring-boot-2.2.0.M3.jar:2.2.0.M3]
>>>     at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>>> [spring-web-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)
>>> [spring-boot-2.2.0.M3.jar:2.2.0.M3]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
>>> [spring-web-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>>> [spring-web-5.2.0.M2.jar:5.2.0.M2]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
>>> [log4j-web-2.11.2.jar:2.11.2]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
>>> [catalina.jar:9.0.30]
>>>     at
>>> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)
>>> [tomcat-coyote.jar:9.0.30]
>>>     at
>>> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
>>> [tomcat-coyote.jar:9.0.30]
>>>     at
>>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
>>> [tomcat-coyote.jar:9.0.30]
>>>     at 
>>> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:1998)
>>> [tomcat-coyote.jar:9.0.30]
>>>     at 
>>> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
>>> [tomcat-coyote.jar:9.0.30]
>>>     at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>>> [?:?]
>>>     at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>>> [?:?]
>>>     at
>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>>> [tomcat-util.jar:9.0.30]
>>>     at java.lang.Thread.run(Thread.java:834) [?:?]
>>>
>>>
>>>
>>>
>>> I have a rather fun setup, here's what I think is pertinent:
>>>
>>> the git repo in question is set up in a folder on the tomcat server.
>>> Call it: *git-repo-folder.*
>>> the linux user environment this all runs in is aware of the git repo, as
>>> well as the ssh key wich allows for unprompted git processes to be run.
>>> This was achieved by cloning *git-repo-folder *via ssh, generating a
>>> pub/private key, importing the key into the git server, importing the key
>>> into my known_hosts file, then editing the ~/.ssh/config file to have that
>>> key used whenever this particular git server is accessed.
>>>
>>>
>>> so CAS interfaces with all this via these cas.properties:
>>> # SERVICE REGISTRY
>>> cas.serviceRegistry.initFromJson=false
>>> [email protected]
>>> :user/cas-6_1-service-definitions.git
>>> cas.serviceRegistry.git.branchesToClone=master
>>> cas.serviceRegistry.git.activeBranch=master
>>> cas.serviceRegistry.git.cloneDirectory=${git-repo-folder-location}
>>> cas.serviceRegistry.git.pushChanges=true
>>> cas.serviceRegistry.git.timeout=PT10S
>>> cas.serviceRegistry.git.privateKeyPath
>>> =${me.base.dir}/cas-settings/keys/coderepo_id_rsa
>>>
>>>
>>> and CAS-MANAGEMENT interfaces with all this via these
>>> management.properties:
>>> mgmt.versionControl.servicesRepo=${git-repo-folder-location}
>>> mgmt.versionControl=true
>>>
>>> # SERVICE REGISTRY
>>> cas.serviceRegistry.initFromJson=false
>>> [email protected]
>>> :user/cas-6_1-service-definitions.git
>>> cas.serviceRegistry.git.branchesToClone=master
>>> cas.serviceRegistry.git.activeBranch=master
>>> cas.serviceRegistry.git.pushChanges=true
>>>
>>>
>>> now in the management.properties, if I try and put the
>>> cas.serviceRegistry.git.privateKeyPath entry in there, it blows up and
>>> says that's not a proper key property and won't even start
>>>
>>> it appears as thought the commitController is not happy with my
>>> settings. I had a HECK of a time finding the
>>> mgmt.versionControl.servicesRepo key. I found it on another site, but
>>> haven't actually seen it referenced on any of apereo's docs. they reference
>>> it as mgmt.servicesRepo, which always blew up as an unknown key.
>>>
>>> that leads me to think, there's another key I need, that I just don't
>>> know about... maybe?
>>>
>>> any insight would be wonderful! thanks!
>>>
>>> --
>>> - Website: https://apereo.github.io/cas
>>> - Gitter Chatroom: https://gitter.im/apereo/cas
>>> - List Guidelines: https://goo.gl/1VRrw7
>>> - Contributions: https://goo.gl/mh7qDG
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "CAS Community" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/apereo.org/d/msgid/cas-user/20003e1c-e2fb-4d44-9982-52a540e4db4a%40apereo.org
>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/20003e1c-e2fb-4d44-9982-52a540e4db4a%40apereo.org?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> - Website: https://apereo.github.io/cas
> - Gitter Chatroom: https://gitter.im/apereo/cas
> - List Guidelines: https://goo.gl/1VRrw7
> - Contributions: https://goo.gl/mh7qDG
> ---
> You received this message because you are subscribed to the Google Groups
> "CAS Community" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/a/apereo.org/d/msgid/cas-user/ec44964c-eea0-416a-ad71-eab6ac310cc4%40apereo.org
> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/ec44964c-eea0-416a-ad71-eab6ac310cc4%40apereo.org?utm_medium=email&utm_source=footer>
> .
>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/CAC_RtEZdJGPJ-uRiZ8PFrH24j0uXYEVu3z1vtUHShcLj%3DGHTSw%40mail.gmail.com.

Reply via email to