cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
629
Views
0
Helpful
4
Replies

SDWAN VManage API Query with not_in Operator fails

r.somma
Level 1
Level 1

Hi all

I am trying to get some Alarms from the SD-WAN VManage API and i also want to filter them. The Authentication works, because all other requests to the API work and also if i change the body, the query works.

i am querying this URL: https://{{ VManage IP }}/dataservice/alarms. I make a POST Request on that URL with the following Body.

{
	"query": {
		"condition": "AND",
		"rules": [
			{
				"field": "entry_time",
				"operator": "last_n_hours",
				"type": "date",
				"value": [
					"42"
				]
			},
			{
				"field": "active",
				"operator": "in",
				"type": "string",
				"value": [
					"false",
					"true"
				]
			},
			{
				"field": "severity",
				"operator": "in",
				"type": "string",
				"value": [
					"Medium",
					"Critical",
					"Major"
				]
			},
			{
				"field": "type",
				"operator": "not_in",
				"type": "string",
				"value": [
					"sla-change",
					"security-root-cert-chain-installed",
					"tloc_down"
				]
			}
		]
	}
}

If i only remove the last rule, the query works perfectly. so if I remove the not_in Operator rule, everything works fine.

This rule:

{
	"field": "type",
	"operator": "not_in",
	"type": "string",
	"value": [
		"sla-change",
		"security-root-cert-chain-installed",
		"tloc_down"
	]
}

When i execute the query with the not_in Operator, i get the Return Code 500 with the Message "HTTP Error 500: Internal Server Error"

I checked the logfile /var/log/nms/vmanage-server.log and i see the following error in it:

26-Aug-2021 09:19:02,742 CEST ERROR [vmanage] [RestfulDefaultExceptionMapper] (default task-2042) |default| Uncaught exception thrown by REST
java.lang.IllegalArgumentException: inner bool query clause cannot be null
        at org.elasticsearch.index.query.BoolQueryBuilder.must(BoolQueryBuilder.java:123) ~[elasticsearch-6.8.0.jar:6.8.0]
        at com.viptela.vmanage.server.elasticsearch.query.ElasticSearchQueryUtil.parseQuery(ElasticSearchQueryUtil.java:144) ~[vmanage-99.99.99.jar:?]
        at com.viptela.vmanage.server.elasticsearch.ElasticSearchUtil.getSingleIndexQuery(ElasticSearchUtil.java:52) ~[vmanage-99.99.99.jar:?]
        at com.viptela.vmanage.server.elasticsearch.AbstractDeviceDataRestfulResource.getScrollResponse(AbstractDeviceDataRestfulResource.java:135) ~[vmanage-99.99.99.jar:?]
        at com.viptela.vmanage.server.elasticsearch.AbstractDeviceDataRestfulResource.getRawDataAsStream(AbstractDeviceDataRestfulResource.java:129) ~[vmanage-99.99.99.jar:?]
        at com.viptela.vmanage.server.correlation.engine.AlarmsRestfulResources.getRawAlarmData(AlarmsRestfulResources.java:239) ~[vmanage-99.99.99.jar:?]
        at com.viptela.vmanage.server.correlation.engine.AlarmsRestfulResources$Proxy$_$$_WeldClientProxy.getRawAlarmData(Unknown Source) ~[vmanage-99.99.99.jar:?]
        at sun.reflect.GeneratedMethodAccessor1105.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_162]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_162]
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:138) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:535) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:424) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$0(ResourceMethodInvoker.java:385) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:356) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:387) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:356) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:329) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:440) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:229) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:135) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:356) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:138) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:215) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:227) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) ~[resteasy-jaxrs-3.11.2.Final.jar!/:3.11.2.Final]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:590) ~[jboss-servlet-api_4.0_spec-2.0.0.Final.jar!/:2.0.0.Final]
        at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.opentracing.contrib.jaxrs2.server.SpanFinishingFilter.doFilter(SpanFinishingFilter.java:52) ~[opentracing-jaxrs2-0.4.1.jar!/:?]
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at com.viptela.vmanage.server.disasterrecovery.DisasterRecoveryServletFilter.doFilter(DisasterRecoveryServletFilter.java:141) ~[vmanage-99.99.99.jar:?]
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at com.viptela.vmanage.server.tenantbackup.TenantBackupRestoreServletFilter.doFilter(TenantBackupRestoreServletFilter.java:64) ~[vmanage-99.99.99.jar:?]
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at com.viptela.vmanage.server.DataServiceLoggingFilter.doFilter(DataServiceLoggingFilter.java:197) ~[vmanage-99.99.99.jar:?]
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at com.viptela.vmanage.server.APIValidationFilter.doFilter(APIValidationFilter.java:128) ~[vmanage-99.99.99.jar:?]
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at com.viptela.vmanage.server.SessionTokenFilter.doFilter(SessionTokenFilter.java:61) ~[vmanage-99.99.99.jar:?]
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at com.viptela.vmanage.server.HeaderValidationFilter.doFilter(HeaderValidationFilter.java:56) ~[vmanage-99.99.99.jar:?]
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at com.viptela.vmanage.server.tenant.TenantServletFilter.doFilter(TenantServletFilter.java:96) ~[vmanage-99.99.99.jar:?]
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71) ~[log4j-web-2.13.0.jar:2.13.0]
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) ~[?:?]
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:53) ~[undertow-core-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) ~[undertow-core-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:59) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) ~[undertow-core-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) ~[undertow-core-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) ~[undertow-core-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.1.0.Final.jar!/:2.1.0.Final]
        at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) ~[?:?]
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.1.0.Final.jar!/:2.1.0.Final]
        at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68) ~[?:?]
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) ~[undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105) ~[?:?]
        at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541) ~[?:?]
        at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541) ~[?:?]
        at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541) ~[?:?]
        at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541) ~[?:?]
        at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249) [undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78) [undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99) [undertow-servlet-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.server.Connectors.executeRootHandler(Connectors.java:370) [undertow-core-2.1.0.Final.jar!/:2.1.0.Final]
        at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830) [undertow-core-2.1.0.Final.jar!/:2.1.0.Final]
        at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) [jboss-threads-2.3.3.Final.jar!/:2.3.3.Final]
        at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982) [jboss-threads-2.3.3.Final.jar!/:2.3.3.Final]
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486) [jboss-threads-2.3.3.Final.jar!/:2.3.3.Final]
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377) [jboss-threads-2.3.3.Final.jar!/:2.3.3.Final]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_162]

Does anyone know, what I am doing wrong or is my query not even possible? 

Thank you for your help!

4 Replies 4

Hello @r.somma is this issue on the always-on sd-wan sandbox or the reservable sd-wan sandbox, please?

 

 

Please mark this as helpful or solution accepted to help others
Connect with me https://bigevilbeard.github.io

Thank you for the reply @bigevilbeard 

I am using the reservable sd-wan sandbox.

@r.somma Seems like the “query” clause is missing… try something like this


{
    "query": {
        "condition": "AND",
        "rules": [
            {
                "field": "type",
                "operator": "not_in",
                "type": "string",
                "value": [
                    "sla-change",
                    "security-root-cert-chain-installed",
                    "tloc_down"
                ]
            }

Hope this helps

Please mark this as helpful or solution accepted to help others
Connect with me https://bigevilbeard.github.io

unfortunately it is not working. i still get the same error.

i had the "query" clause included before, but not copied it. sorry for that.

as soon as i change the operator from "not_in" to "in" it works perfectly.

i tried the following

{
    "query": 
    {
        "condition": "AND",
        "rules": 
        [
            {
                "field": "type",
                "operator": "not_in",
                "type": "string",
                "value": [
                    "sla-change",
                    "security-root-cert-chain-installed",
                    "tloc_down"
                ]
            }
        ]
    }
}