Aled Sage created BROOKLYN-116:
----------------------------------

             Summary: vcloud-director NAT service gave 403 "Access is forbidden"
                 Key: BROOKLYN-116
                 URL: https://issues.apache.org/jira/browse/BROOKLYN-116
             Project: Brooklyn
          Issue Type: Bug
    Affects Versions: 0.7.0-SNAPSHOT
            Reporter: Aled Sage


When attempting to open a port over NAT in vcloud-director (in vcloud air), it 
gave a 403 "Access is forbidden". The previous commands in the same brooklyn 
instance from 2 hours 12 mins previously had all succeeded.

This uses the VMware Java SDK - see 
https://github.com/brooklyncentral/advanced-networking/blob/master/vcloud-director/src/main/java/brooklyn/networking/vclouddirector/NatService.java

Had our session timed out, or does vcloud-director just sometimes give back a 
403 (meaning we have to backoff and retry)?

We hadn't submitted any other vcloud-director requests in that 2 hour window, 
so it is presumably not rate-limiting (though other users do share this same 
network).

{noformat}
2015-01-09 20:34:16,577 DEBUG b.l.a.PortForwardManagerImpl 
[brooklyn-execmanager-e645V5OG-27]: PortForwardManagerImpl{id=vntgvw2b, 
name=localhost, scope=global, mappingsSize=176} allocating public port 12010 on 
23.92.230.21 (no association info yet)
2015-01-09 20:34:16,577 DEBUG b.n.vclouddirector.NatService 
[brooklyn-execmanager-e645V5OG-27]: Opening port forwarding at 
https://p5v1-vcd.vchs.vmware.com: PortForwardingConfig{protocol=tcp, 
target=192.168.109.10:9990, networkId=null, publicIp=23.92.230.21, 
publicPort=12010}
2015-01-09 20:34:16,577 INFO  com.vmware.vcloud.sdk 
[brooklyn-execmanager-e645V5OG-27]: GET URL - 
https://p5v1-vcd.vchs.vmware.com/api/admin/extension
2015-01-09 20:34:16,578 INFO  com.vmware.vcloud.sdk 
[brooklyn-execmanager-e645V5OG-27]: GET URL - 
https://p5v1-vcd.vchs.vmware.com/api/admin/extension
2015-01-09 20:34:16,578 INFO  com.vmware.vcloud.sdk 
[brooklyn-execmanager-e645V5OG-27]: GET URL - 
https://p5v1-vcd.vchs.vmware.com/api/admin/extension
2015-01-09 20:34:17,364 INFO  com.vmware.vcloud.sdk 
[brooklyn-execmanager-e645V5OG-27]: Status Code - 403
2015-01-09 20:34:17,364 INFO  com.vmware.vcloud.sdk 
[brooklyn-execmanager-e645V5OG-27]: Status - Forbidden
2015-01-09 20:34:17,364 INFO  com.vmware.vcloud.sdk 
[brooklyn-execmanager-e645V5OG-27]: Response - <?xml version="1.0" 
encoding="UTF-8"?>
<Error xmlns="http://www.vmware.com/vcloud/v1.5"; majorErrorCode="403" 
message="Access is forbidden" minorErrorCode="ACCESS_TO_RESOURCE_IS_FORBIDDEN" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5 
http://10.10.30.3/api/v1.5/schema/master.xsd";></Error>

2015-01-09 20:34:17,365 INFO  com.vmware.vcloud.sdk 
[brooklyn-execmanager-e645V5OG-27]: Expected Status Code - 200
2015-01-09 20:34:17,365 INFO  com.vmware.vcloud.sdk 
[brooklyn-execmanager-e645V5OG-27]: Actual Status Code - 403
2015-01-09 20:34:17,368 ERROR b.n.v.PortForwarderVcloudDirector 
[brooklyn-execmanager-e645V5OG-27]: Failed creating port forwarding rule on 
brooklyn.networking.vclouddirector.PortForwarderVcloudDirector@725ff90a to 
192.168.109.10:9990
com.vmware.vcloud.sdk.VCloudException: Access is forbidden
        at 
com.vmware.vcloud.sdk.Response.handleUnExpectedResponse(Response.java:132) 
~[vcloud-java-sdk-5.5.0.jar:na]
        at com.vmware.vcloud.sdk.SdkUtil.validateResponse(SdkUtil.java:189) 
~[vcloud-java-sdk-5.5.0.jar:na]
        at com.vmware.vcloud.sdk.SdkUtil.get(SdkUtil.java:99) 
~[vcloud-java-sdk-5.5.0.jar:na]
        at 
com.vmware.vcloud.sdk.admin.extensions.VcloudAdminExtension.<init>(VcloudAdminExtension.java:97)
 ~[vcloud-java-sdk-5.5.0.jar:na]
        at 
com.vmware.vcloud.sdk.VcloudClient.getVcloudAdminExtension(VcloudClient.java:741)
 ~[vcloud-java-sdk-5.5.0.jar:na]
        at 
brooklyn.networking.vclouddirector.NatService.queryEdgeGateways(NatService.java:457)
 ~[patch-nat-service.jar:na]
        at 
brooklyn.networking.vclouddirector.NatService.getEdgeGateway(NatService.java:425)
 ~[patch-nat-service.jar:na]
        at 
brooklyn.networking.vclouddirector.NatService.openPortForwardingImpl(NatService.java:206)
 ~[patch-nat-service.jar:na]
        at 
brooklyn.networking.vclouddirector.NatService.openPortForwarding(NatService.java:183)
 ~[patch-nat-service.jar:na]
        at 
brooklyn.networking.vclouddirector.PortForwarderVcloudDirector.openPortForwarding(PortForwarderVcloudDirector.java:184)
 [brooklyn-networking-vcloud-director-0.7.0-SNAPSHOT.jar:na]
        at 
brooklyn.networking.vclouddirector.PortForwarderVcloudDirector.openPortForwarding(PortForwarderVcloudDirector.java:164)
 [brooklyn-networking-vcloud-director-0.7.0-SNAPSHOT.jar:na]
        at 
brooklyn.networking.subnet.PortForwarderClient.openPortForwarding(PortForwarderClient.java:150)
 [brooklyn-networking-common-0.7.0-SNAPSHOT.jar:na]
        at 
brooklyn.networking.portforwarding.subnet.JcloudsPortforwardingSubnetMachineLocation.getSocketEndpointFor(JcloudsPortforwardingSubnetMachineLocation.java:50)
 [brooklyn-networking-portforwarding-0.7.0-SNAPSHOT.jar:na]
        at 
brooklyn.location.access.BrooklynAccessUtils.getBrooklynAccessibleAddress(BrooklynAccessUtils.java:82)
 [brooklyn-core-0.7.0-SNAPSHOT.jar:0.7.0-SNAPSHOT]
        at 
brooklyn.entity.webapp.jboss.JBoss7ServerImpl.connectSensors(JBoss7ServerImpl.java:77)
 [brooklyn-software-webapp-0.7.0-SNAPSHOT.jar:0.7.0-SNAPSHOT]
        at 
brooklyn.entity.basic.SoftwareProcessDriverLifecycleEffectorTasks.postStartCustom(SoftwareProcessDriverLifecycleEffectorTasks.java:158)
 [brooklyn-software-base-0.7.0-SNAPSHOT.jar:0.7.0-SNAPSHOT]
        at 
brooklyn.entity.software.MachineLifecycleEffectorTasks$7.run(MachineLifecycleEffectorTasks.java:428)
 [brooklyn-software-base-0.7.0-SNAPSHOT.jar:0.7.0-SNAPSHOT]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
[na:1.7.0_71]
        at 
brooklyn.util.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:337)
 [brooklyn-core-0.7.0-SNAPSHOT.jar:0.7.0-SNAPSHOT]
        at 
brooklyn.util.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:469)
 [brooklyn-core-0.7.0-SNAPSHOT.jar:0.7.0-SNAPSHOT]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
[na:1.7.0_71]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[na:1.7.0_71]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[na:1.7.0_71]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]
2015-01-09 20:34:17,368 DEBUG b.l.a.PortForwardManagerImpl 
[brooklyn-execmanager-e645V5OG-27]: recording public IP 
urn:vcloud:vm:d41474bd-457b-4c71-aa75-30f32ef203d2 associated with 23.92.230.21
2015-01-09 20:34:17,369 DEBUG b.l.a.PortForwardManagerImpl 
[brooklyn-execmanager-e645V5OG-27]: PortForwardManagerImpl{id=vntgvw2b, 
name=localhost, scope=global, mappingsSize=177} associating public 
23.92.230.21:12010 on urn:vcloud:vm:d41474bd-457b-4c71-aa75-30f32ef203d2 with 
private port 9990 at SshMachineLocation[Canopy 
vCHS:23.92.230.21/23.92.230.21:12001@MGLITmdG] 
(PortMapping{publicIpId=urn:vcloud:vm:d41474bd-457b-4c71-aa75-30f32ef203d2:12010,
 publicEndpoint=23.92.230.21:12010, targetLocation=SshMachineLocation[Canopy 
vCHS:23.92.230.21/23.92.230.21:12001@MGLITmdG], targetPort=9990})
2015-01-09 20:34:17,369 DEBUG b.e.w.jboss.JBoss7ServerImpl 
[brooklyn-execmanager-e645V5OG-27]: JBoss sensors for 
JBoss7ServerImpl{id=aDQ59LM5} reading from 
http://23.92.230.21:12010/management/subsystem/web/connector/http/read-resource
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to