Skip to content

Commit e523f63

Browse files
committed
Merge pull request #200 from n-r-anderson/master
Fix update() for Port (AllowedAddressPair) and Router (HostRoutes) to se...
2 parents 02d4ead + 1ac8507 commit e523f63

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

core/src/main/java/org/openstack4j/openstack/networking/internal/PortServiceImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ public Port create(Port port) {
5959
public Port update(Port port) {
6060
checkNotNull(port);
6161
checkNotNull(port.getId());
62-
return put(NeutronPort.class, uri("/ports/%s", getAndClearIdentifier(port))).entity(port).execute();
62+
Port p = port.toBuilder().networkId(null).state(null).tenantId(null).macAddress(null).build();
63+
return put(NeutronPort.class, uri("/ports/%s", getAndClearIdentifier(p))).entity(p).execute();
6364
}
6465

6566
private String getAndClearIdentifier(Port port) {

core/src/main/java/org/openstack4j/openstack/networking/internal/RouterServiceImpl.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
import org.openstack4j.model.network.AttachInterfaceType;
1111
import org.openstack4j.model.network.Router;
1212
import org.openstack4j.model.network.RouterInterface;
13+
import org.openstack4j.model.network.builder.RouterBuilder;
1314
import org.openstack4j.openstack.networking.domain.AddRouterInterfaceAction;
15+
import org.openstack4j.openstack.networking.domain.NeutronHostRoute;
1416
import org.openstack4j.openstack.networking.domain.NeutronRouter;
1517
import org.openstack4j.openstack.networking.domain.NeutronRouter.Routers;
1618
import org.openstack4j.openstack.networking.domain.NeutronRouterInterface;
@@ -73,8 +75,18 @@ public Router create(Router router) {
7375
public Router update(Router router) {
7476
checkNotNull(router);
7577
checkNotNull(router.getId());
78+
79+
RouterBuilder rb = NeutronRouter.builder().name(router.getName()).adminStateUp(router.isAdminStateUp()).externalGateway(router.getExternalGatewayInfo());
80+
List<NeutronHostRoute> routes = (List<NeutronHostRoute>) router.getRoutes();
81+
82+
if (routes != null) {
83+
for (NeutronHostRoute route : routes) {
84+
rb.route(route.getDestination(), route.getNexthop());
85+
}
86+
}
87+
7688
return put(NeutronRouter.class, uri("/routers/%s", router.getId()))
77-
.entity(NeutronRouter.builder().name(router.getName()).adminStateUp(router.isAdminStateUp()).externalGateway(router.getExternalGatewayInfo()).build())
89+
.entity(rb.build())
7890
.execute();
7991
}
8092

0 commit comments

Comments
 (0)