[ https://issues.apache.org/jira/browse/CLOUDSTACK-4630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13762277#comment-13762277 ]
Dave Garbus commented on CLOUDSTACK-4630: ----------------------------------------- Upon further investigation, updates appear to go through even though the API does not report success. > Cannot apply userdata unless all NICs support userdata > ------------------------------------------------------ > > Key: CLOUDSTACK-4630 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-4630 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Components: API > Affects Versions: 4.1.1 > Environment: CentOS 6.4 x86_64 > Reporter: Dave Garbus > > To reproduce this issue, follow the steps below: > 1. Create two network offerings, one with UserData service (virtual router) > and one without. > 2. Add two NICs to the virtual machine with networks corresponding to each > network offering above. > 3. Call updateVirtualMachine on the VM, specifying userdata. > The update will fail with the following error: > : Service UserData is not supported in the network id=217 > If the NIC without UserData support is removed, the update will go through > without issue. In my opinion, this should not cause the whole update to fail, > but only update UserData for the relevant NICs. > Full trace below: > 2013-09-09 14:40:21,316 ERROR [cloud.api.ApiServer] (http-6443-exec-3:null) > unhandled exception executing api command: updateVirtualMachine > com.cloud.exception.UnsupportedServiceException: Service UserData is not > supported in the network id=217 > at > com.cloud.network.dao.NetworkServiceMapDaoImpl.getProviderForServiceInNetwork(NetworkServiceMapDaoImpl.java:126) > at > com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125) > at > com.cloud.network.NetworkModelImpl.getUserDataUpdateProvider(NetworkModelImpl.java:824) > at > com.cloud.vm.UserVmManagerImpl.updateUserDataInternal(UserVmManagerImpl.java:2561) > at > com.cloud.vm.UserVmManagerImpl.updateVirtualMachine(UserVmManagerImpl.java:2532) > at > com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125) > at > org.apache.cloudstack.api.command.user.vm.UpdateVMCmd.execute(UpdateVMCmd.java:123) > at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:162) > at com.cloud.api.ApiServer.queueCommand(ApiServer.java:505) > at com.cloud.api.ApiServer.handleRequest(ApiServer.java:355) > at com.cloud.api.ApiServlet.processRequest(ApiServlet.java:302) > at com.cloud.api.ApiServlet.doGet(ApiServlet.java:66) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) > at > org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:889) > at > org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:721) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2274) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:679) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira