Urgent patch to support OpenStack keystone API 3.0
- Now os4j library uses keystone V3.0, and does not work with v2.0
- v2.0 has been deprecated from OpenStack Ocata version
- It was tested with OpenStack Ocata version
- The correct endpoint URL is http://IP_ADDRESS/identity/v3
Change-Id: I95500612b6c102f664061707aaa41ca941d06ba2
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/OpenstackSyncStateCommand.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/OpenstackSyncStateCommand.java
index 978b4b2..b9b96de 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/OpenstackSyncStateCommand.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/OpenstackSyncStateCommand.java
@@ -25,7 +25,7 @@
import org.onosproject.openstacknetworking.api.OpenstackSecurityGroupAdminService;
import org.openstack4j.api.OSClient;
import org.openstack4j.api.exceptions.AuthenticationException;
-import org.openstack4j.model.identity.v2.Access;
+import org.openstack4j.model.common.Identifier;
import org.openstack4j.model.network.IP;
import org.openstack4j.model.network.NetFloatingIP;
import org.openstack4j.model.network.Network;
@@ -66,6 +66,8 @@
required = true, multiValued = false)
private String password = null;
+ private static final String DOMAIN_DEFUALT = "default";
+
private static final String SECURITY_GROUP_FORMAT = "%-40s%-20s";
private static final String NETWORK_FORMAT = "%-40s%-20s%-20s%-8s";
private static final String SUBNET_FORMAT = "%-40s%-20s%-20s";
@@ -82,14 +84,14 @@
OpenstackNetworkAdminService osNetAdminService = get(OpenstackNetworkAdminService.class);
OpenstackRouterAdminService osRouterAdminService = get(OpenstackRouterAdminService.class);
- Access osAccess;
+ OSClient.OSClientV3 osClient;
try {
- osAccess = OSFactory.builderV2()
+ osClient = OSFactory.builderV3()
.endpoint(this.endpoint)
- .tenantName(this.tenant)
- .credentials(this.user, this.password)
- .authenticate()
- .getAccess();
+ .credentials(this.user, this.password, Identifier.byName(DOMAIN_DEFUALT))
+ .scopeToProject(Identifier.byName(this.tenant), Identifier.byName(DOMAIN_DEFUALT))
+ .authenticate();
+
} catch (AuthenticationException e) {
print("Authentication failed");
return;
@@ -98,8 +100,6 @@
return;
}
- OSClient osClient = OSFactory.clientFromAccess(osAccess);
-
print("Synchronizing OpenStack security groups");
print(SECURITY_GROUP_FORMAT, "ID", "Name");
osClient.networking().securitygroup().list().forEach(osSg -> {