"Begin a transaction for the user";\r
\r
input {\r
- uses nemo-user:user-instance;\r
+ leaf user-id {\r
+ type nemo-common:user-id;\r
+ mandatory true;\r
+ }\r
}\r
\r
output {\r
"Commit the user's current transaction";\r
\r
input {\r
- uses nemo-user:user-instance;\r
+ leaf user-id {\r
+ type nemo-common:user-id;\r
+ mandatory true;\r
+ }\r
}\r
\r
output {\r
"Create, update or delete an intent of a user through an NEMO statement";\r
\r
input {\r
- uses nemo-user:user-instance;\r
+ leaf user-id {\r
+ type nemo-common:user-id;\r
+ mandatory true;\r
+ }\r
\r
leaf nemo-statement {\r
type string;\r
which are described as json or xml format.";\r
\r
input {\r
- uses nemo-user:user-instance;\r
+ leaf user-id {\r
+ type nemo-common:user-id;\r
+ mandatory true;\r
+ }\r
+\r
uses user-intent;\r
}\r
\r
"Delete some intents of a user from the user repository";\r
\r
input {\r
- uses nemo-user:user-instance;\r
+ leaf user-id {\r
+ type nemo-common:user-id;\r
+ mandatory true;\r
+ }\r
\r
container objects {\r
leaf-list node {\r
according to several advanced query conditions.";\r
\r
input {\r
- uses nemo-user:user-instance;\r
+ leaf user-id {\r
+ type nemo-common:user-id;\r
+ mandatory true;\r
+ }\r
\r
list query-condition {\r
key "query-condition-id";\r
String errorInfo = null;\r
List<QueryCondition> queryConditionList = null;\r
\r
- errorInfo = aaa.checkUser(input);\r
+ errorInfo = aaa.checkUser(input.getUserId());\r
\r
if (errorInfo != null)\r
{\r
*/\r
package org.opendaylight.nemo.user.tenantmanager;\r
\r
-import java.util.Map;\r
-\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserName;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserPassword;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserRoleName;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.user.rev151010.UserInstance;\r
+\r
+import java.util.Map;\r
\r
/**\r
* Created by z00293636 on 2015/8/29.\r
this.tenantManage = tenantManage;\r
}\r
\r
- public String checkUser(UserInstance user) {\r
- return checkUser(user.getUserId(), user.getUserName(), user.getUserPassword(), user.getUserRole());\r
- }\r
-\r
- private String checkUser(UserId userId, UserName userName, UserPassword userPassword, UserRoleName userRoleName)\r
+ public String checkUser(UserId userId)\r
{\r
- tenantManage.fetchUsers();\r
final Map<UserId, User> users = tenantManage.getUsers();\r
String errorInfo = null;\r
- final User user = users.get(userId);\r
-\r
- if (users.containsKey(userId) && user != null) {\r
- if (!user.getUserName().equals(userName)) {\r
- errorInfo = "The user name is not right.";\r
- } else if (!user.getUserPassword().equals(userPassword)) {\r
- errorInfo = "The password is not right.";\r
- } else if (!user.getUserRole().equals(userRoleName)) {\r
- errorInfo = "The role is not right.";\r
- }\r
- } else {\r
+ final User user = (users != null) ? users.get(userId) : null;\r
+\r
+ if (user == null) {\r
errorInfo = "The user is not exist.";\r
}\r
+\r
return errorInfo;\r
}\r
}\r
{\r
String errorInfo = null;\r
\r
- tenantManage.fetchUserRoles();\r
Map<UserRoleName, UserRole> userRoles = tenantManage.getUserRoles();\r
- tenantManage.fetchUsers();\r
Map<UserId, User> users = tenantManage.getUsers();\r
\r
- if (userRoles.isEmpty())\r
+ if (userRoles == null || userRoles.isEmpty())\r
{\r
errorInfo = "There are no roles be defined.";\r
}\r
{\r
if (userRoles.containsKey(input.getUserRole()))\r
{\r
- if (users.containsKey(input.getUserId()))\r
+ if (users != null && users.containsKey(input.getUserId()))\r
{\r
errorInfo = "The user has been registered.";\r
}\r
errorInfo = "The role is not defined in the data store.";\r
}\r
}\r
+\r
return errorInfo;\r
}\r
-\r
}\r
package org.opendaylight.nemo.user.tenantmanager;\r
\r
import java.util.HashMap;\r
-import java.util.List;\r
import java.util.Map;\r
import java.util.concurrent.ExecutionException;\r
-import java.util.concurrent.TimeUnit;\r
-import java.util.concurrent.TimeoutException;\r
\r
import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
import org.slf4j.Logger;\r
import org.slf4j.LoggerFactory;\r
\r
+import com.google.common.base.Function;\r
import com.google.common.base.Optional;\r
+import com.google.common.collect.Maps;\r
import com.google.common.util.concurrent.CheckedFuture;\r
import com.google.common.util.concurrent.FutureCallback;\r
import com.google.common.util.concurrent.Futures;\r
import com.google.common.util.concurrent.ListenableFuture;\r
-import com.google.common.util.concurrent.SettableFuture;\r
\r
/**\r
* Created by z00293636 on 2015/8/29.\r
public class TenantManage {\r
private static final Logger LOG = LoggerFactory.getLogger(TenantManage.class);\r
private DataBroker dataBroker;\r
- private final SettableFuture<List<UserRole>> userRoleListFuture = SettableFuture.create();\r
- private final SettableFuture<List<User>> usersListFuture = SettableFuture.create();\r
private User user;\r
\r
public TenantManage(DataBroker dataBroker)\r
this.dataBroker = dataBroker;\r
}\r
\r
- private void setUserRoleList(List<UserRole> userRoleList)\r
- {\r
- this.userRoleListFuture.set(userRoleList);\r
- }\r
-\r
- private void setUserList(List<User> userList)\r
- {\r
- this.usersListFuture.set(userList);\r
- }\r
-\r
private void setUser(User user)\r
{\r
this.user = user;\r
}\r
\r
- public List<UserRole> getUserRoleList() {\r
- try {\r
- return userRoleListFuture.get(1, TimeUnit.SECONDS);\r
- } catch (InterruptedException | ExecutionException | TimeoutException e) {\r
- LOG.error("Cannot read role information.", e);\r
- return null;\r
- }\r
+ public User getUser()\r
+ {\r
+ return user;\r
}\r
\r
/**\r
*\r
- * @return Map from UserRoleName to UserRole. If no roles exist, an empty (not-null) map is returned.\r
+ * @return null if an error was encountered, or an empty map if there was no\r
+ * error but no data was retrieved.\r
*/\r
public Map<UserRoleName, UserRole> getUserRoles() {\r
- final Map<UserRoleName, UserRole> map = new HashMap<>();\r
- final List<UserRole> userRoleList = getUserRoleList();\r
- if (userRoleList != null) {\r
- for (UserRole role : userRoleList) {\r
- map.put(role.getRoleName(), role);\r
- }\r
- }\r
- return map;\r
- }\r
\r
- public List<User> getUsersList() {\r
+ InstanceIdentifier<UserRoles> userRolesInsId = InstanceIdentifier.builder(UserRoles.class).build();\r
+ ListenableFuture<Optional<UserRoles>> userRolesFuture = this.dataBroker.newReadOnlyTransaction().read(\r
+ LogicalDatastoreType.CONFIGURATION, userRolesInsId);\r
+\r
+ final Optional<UserRoles> userRolesOpt;\r
try {\r
- return usersListFuture.get(1, TimeUnit.SECONDS);\r
- } catch (InterruptedException | ExecutionException | TimeoutException e) {\r
- LOG.error("Cannot read user information.", e);\r
+ // TODO: consider time out here?\r
+ userRolesOpt = userRolesFuture.get();\r
+ } catch (InterruptedException | ExecutionException e) {\r
+ LOG.error("Cannot read role information.", e);\r
return null;\r
}\r
- }\r
-\r
- /**\r
- *\r
- * @return Map from UserId to User. If no users exist, an empty (not-null) map is returned.\r
- */\r
- public Map<UserId, User> getUsers()\r
- {\r
- final Map<UserId, User> map = new HashMap<>();\r
- final List<User> userList = getUsersList();\r
- if (userList != null) {\r
- for (User user : userList) {\r
- map.put(user.getUserId(), user);\r
- }\r
- }\r
- return map;\r
- }\r
-\r
- public User getUser()\r
- {\r
- return user;\r
- }\r
-\r
- public void fetchUserRoles(){\r
-\r
- InstanceIdentifier<UserRoles> userRolesInsId = InstanceIdentifier.builder(UserRoles.class).build();\r
- ListenableFuture<Optional<UserRoles>> userRolesFuture = this.dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, userRolesInsId);\r
- Futures.addCallback(userRolesFuture, new FutureCallback<Optional<UserRoles>>() {\r
- @Override\r
- public void onSuccess(Optional<UserRoles> result)\r
- {\r
- setUserRoleList(result.get().getUserRole());\r
- }\r
\r
+ // TODO: change to Java 8 lambda expressions\r
+ return userRolesOpt.transform(new Function<UserRoles, Map<UserRoleName, UserRole>>() {\r
@Override\r
- public void onFailure(Throwable t)\r
- {\r
- LOG.error("Can not read role information.", t);\r
+ public Map<UserRoleName, UserRole> apply(UserRoles input) {\r
+ return Maps.uniqueIndex(input.getUserRole(), new Function<UserRole, UserRoleName>() {\r
+ @Override\r
+ public UserRoleName apply(UserRole role) {\r
+ return role.getRoleName();\r
+ }\r
+ });\r
}\r
- });\r
+ }).or(new HashMap<UserRoleName, UserRole>());\r
}\r
\r
- public void fetchUsers(){\r
+ /**\r
+ *\r
+ * @return null if an error was encountered, or an empty map if there was no\r
+ * error but no data was retrieved.\r
+ */\r
+ public Map<UserId, User> getUsers() {\r
InstanceIdentifier<Users> usersInsId = InstanceIdentifier.builder(Users.class).build();\r
- ListenableFuture<Optional<Users>> usersFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, usersInsId);\r
- Futures.addCallback(usersFuture, new FutureCallback<Optional<Users>>() {\r
- @Override\r
- public void onSuccess(Optional<Users> result)\r
- {\r
- setUserList(result.get().getUser());\r
- }\r
+ ListenableFuture<Optional<Users>> usersFuture = dataBroker.newReadOnlyTransaction().read(\r
+ LogicalDatastoreType.CONFIGURATION, usersInsId);\r
+\r
+ final Optional<Users> usersOpt;\r
+ try {\r
+ // TODO: consider time out here?\r
+ usersOpt = usersFuture.get();\r
+ } catch (InterruptedException | ExecutionException e) {\r
+ LOG.error("Cannot read user information.", e);\r
+ return null;\r
+ }\r
\r
+ // TODO: change to Java 8 lambda expressions\r
+ return usersOpt.transform(new Function<Users, Map<UserId, User>>() {\r
@Override\r
- public void onFailure(Throwable t)\r
- {\r
- LOG.error("Can not read users information.", t);\r
+ public Map<UserId, User> apply(Users input) {\r
+ return Maps.uniqueIndex(input.getUser(), new Function<User, UserId>() {\r
+ @Override\r
+ public UserId apply(User user) {\r
+ return user.getUserId();\r
+ }\r
+ });\r
}\r
- });\r
+ }).or(new HashMap<UserId, User>());\r
}\r
\r
public void fetchVNSpace(UserId userId)\r
{\r
- fetchUsers();\r
final Map<UserId, User> users = getUsers();\r
-\r
- User user = users.get(userId);\r
- if (users.containsKey(userId) && user != null) {\r
- setUser(user);\r
- }\r
+ setUser((users != null) ? users.get(userId) : null);\r
}\r
\r
public void addUser(RegisterUserInput registerUserInput){\r
if (registerUserInput.getUserId() != null)\r
{\r
User user = new UserBuilder(registerUserInput).build();\r
-// UserBuilder userBuilder = new UserBuilder();\r
-// userBuilder.setUserId(registerUserInput.getUserId());\r
-// userBuilder.setUserName(registerUserInput.getUserName());\r
-// userBuilder.setUserPassword(registerUserInput.getUserPassword());\r
-// userBuilder.setUserRole(registerUserInput.getUserRole());\r
-//\r
-// User user = userBuilder.build();\r
UserKey userKey = new UserKey(registerUserInput.getUserId());\r
\r
InstanceIdentifier<User> userid = InstanceIdentifier.builder(Users.class).child(User.class, userKey).build();\r
*/\r
public class TransactionBegin {\r
public String transactionbegin(AAA aaa,BeginTransactionInput input){\r
- return aaa.checkUser(input);\r
+ return aaa.checkUser(input.getUserId());\r
}\r
}\r
*/\r
public class TransactionEnd {\r
public String transactionend(AAA aaa,EndTransactionInput input){\r
- return aaa.checkUser(input);\r
+ return aaa.checkUser(input.getUserId());\r
}\r
}\r
\r
String errorInfo = null;\r
\r
- errorInfo = aaa.checkUser(languageStyleNemoRequestInput);\r
+ errorInfo = aaa.checkUser(languageStyleNemoRequestInput.getUserId());\r
if (errorInfo !=null)\r
{\r
return errorInfo;\r
public String styleNemoDeleteOutput(AAA aaa,StructureStyleNemoDeleteInput styleNemoDeleteInput){\r
String errorInfo = null;\r
\r
- errorInfo = aaa.checkUser(styleNemoDeleteInput);\r
+ errorInfo = aaa.checkUser(styleNemoDeleteInput.getUserId());\r
if (errorInfo != null){\r
return errorInfo;\r
}\r
--- /dev/null
+/*\r
+ * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent;\r
+\r
+import com.google.common.base.Optional;\r
+import com.google.common.util.concurrent.FutureCallback;\r
+import com.google.common.util.concurrent.Futures;\r
+import com.google.common.util.concurrent.ListenableFuture;\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.*;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.ConnectionDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.MatchItemDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.NodeDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.definitions.ConnectionDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.definitions.MatchItemDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.definitions.NodeDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.ActionDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.ConditionParameterDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.definitions.ActionDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.parameter.definitions.ConditionParameterDefinition;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Map;\r
+\r
+/**\r
+ * Created by z00293636 on 2015/12/3.\r
+ */\r
+public class GetDefinitions {\r
+ private DataBroker dataBroker;\r
+ private List<NodeDefinition> nodeDefinitionList = null;\r
+ private List<ConnectionDefinition> connectionDefinitionsList = null;\r
+ private List<MatchItemDefinition> matchItemDefinitionList = null;\r
+ private List<ConditionParameterDefinition> conditionParameterDefinitionList = null;\r
+ private List<ActionDefinition> actionDefinitionList = null;\r
+ private static final Logger LOG = LoggerFactory.getLogger(GetDefinitions.class);\r
+\r
+ public GetDefinitions(DataBroker dataBroker){\r
+ this.dataBroker = dataBroker;\r
+ }\r
+\r
+ public Map<NodeType, NodeDefinition> getNodeDefinition(){\r
+ fetchNodeDefinitions();\r
+ Map<NodeType, NodeDefinition> map = new HashMap<NodeType, NodeDefinition>();\r
+ if (nodeDefinitionList!=null){\r
+ for (NodeDefinition nodeDefinition : nodeDefinitionList){\r
+ map.put(nodeDefinition.getNodeType(),nodeDefinition);\r
+ }\r
+ }\r
+ return map;\r
+ }\r
+\r
+ public Map<MatchItemName, MatchItemDefinition> getMatchItemDefinition(){\r
+ fetchMatchItemDefinitions();\r
+ Map<MatchItemName, MatchItemDefinition> map = new HashMap<MatchItemName, MatchItemDefinition>();\r
+ if (matchItemDefinitionList != null){\r
+ for (MatchItemDefinition matchItemDefinition : matchItemDefinitionList){\r
+ map.put(matchItemDefinition.getMatchItemName(),matchItemDefinition);\r
+ }\r
+ }\r
+ return map;\r
+ }\r
+\r
+ public Map<ConnectionType, ConnectionDefinition> getConnectionDefinition(){\r
+ fetchConnectionDefinitionList();\r
+ Map<ConnectionType, ConnectionDefinition> map = new HashMap<ConnectionType, ConnectionDefinition>();\r
+ if (connectionDefinitionsList != null){\r
+ for (ConnectionDefinition connectionDefinition : connectionDefinitionsList){\r
+ map.put(connectionDefinition.getConnectionType(),connectionDefinition);\r
+ }\r
+ }\r
+ return map;\r
+ }\r
+\r
+ public Map<ActionName, ActionDefinition> getActionDefinition(){\r
+ fetchActionDefinitions();\r
+ Map<ActionName,ActionDefinition> map = new HashMap<ActionName, ActionDefinition>();\r
+ if (actionDefinitionList!=null){\r
+ for (ActionDefinition actionDefinition : actionDefinitionList){\r
+ map.put(actionDefinition.getActionName(),actionDefinition);\r
+ }\r
+ }\r
+ return map;\r
+ }\r
+\r
+ public Map<ParameterName, ConditionParameterDefinition> getConditionParameterDefinition(){\r
+ fetchConditionParaDefinitions();\r
+ Map<ParameterName, ConditionParameterDefinition> map = new HashMap<ParameterName, ConditionParameterDefinition>();\r
+ if (conditionParameterDefinitionList!=null){\r
+ for (ConditionParameterDefinition conditionParameterDefinition : conditionParameterDefinitionList){\r
+ map.put(conditionParameterDefinition.getParameterName(),conditionParameterDefinition);\r
+ }\r
+ }\r
+ return map;\r
+ }\r
+\r
+ private void setNodeDefinitionsList(List<NodeDefinition> nodeDefinitiones){\r
+ this.nodeDefinitionList = nodeDefinitiones;\r
+ }\r
+\r
+ private void setMatchItemDefintionList(List<MatchItemDefinition> matchItemDefinitions){\r
+ this.matchItemDefinitionList = matchItemDefinitions;\r
+ }\r
+\r
+ private void setConnectionDefinitionsList(List<ConnectionDefinition> connectionDefinitions){\r
+ this.connectionDefinitionsList = connectionDefinitions;\r
+ }\r
+\r
+ private void setConditionParameterDefinitionList(List<ConditionParameterDefinition> conditionParameterDefinitions){\r
+ this.conditionParameterDefinitionList = conditionParameterDefinitions;\r
+ }\r
+\r
+ private void setActionDefinitionList(List<ActionDefinition> actionDefinitions){\r
+ this.actionDefinitionList = actionDefinitions;\r
+ }\r
+\r
+ private void fetchNodeDefinitions(){\r
+ InstanceIdentifier<NodeDefinitions> nodedefinitionId = InstanceIdentifier.builder(NodeDefinitions.class).build();\r
+ ListenableFuture<Optional<NodeDefinitions>> nodedefinitionFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, nodedefinitionId);\r
+ Futures.addCallback(nodedefinitionFuture, new FutureCallback<Optional<NodeDefinitions>>() {\r
+ @Override\r
+ public void onSuccess(Optional<NodeDefinitions> result){\r
+ setNodeDefinitionsList(result.get().getNodeDefinition());\r
+ }\r
+ @Override\r
+ public void onFailure(Throwable t){\r
+ LOG.error("Can not read node definitions information.", t);\r
+ }\r
+ });\r
+ return ;\r
+ }\r
+\r
+ private void fetchConnectionDefinitionList(){\r
+ InstanceIdentifier<ConnectionDefinitions> connectiondefinitionId = InstanceIdentifier.builder(ConnectionDefinitions.class).build();\r
+ ListenableFuture<Optional<ConnectionDefinitions>> connectiondefinitionFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, connectiondefinitionId);\r
+ Futures.addCallback(connectiondefinitionFuture, new FutureCallback<Optional<ConnectionDefinitions>>() {\r
+ @Override\r
+ public void onSuccess(Optional<ConnectionDefinitions> result) {\r
+ setConnectionDefinitionsList(result.get().getConnectionDefinition());\r
+ }\r
+\r
+ @Override\r
+ public void onFailure(Throwable t) {\r
+ LOG.error("Can not read connection definition information.", t);\r
+ }\r
+ });\r
+ return;\r
+ }\r
+\r
+ private void fetchMatchItemDefinitions(){\r
+ InstanceIdentifier<MatchItemDefinitions> matchitemdefinitionId = InstanceIdentifier.builder(MatchItemDefinitions.class).build();\r
+ ListenableFuture<Optional<MatchItemDefinitions>> matchitemdefinitionFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, matchitemdefinitionId);\r
+ Futures.addCallback(matchitemdefinitionFuture, new FutureCallback<Optional<MatchItemDefinitions>>() {\r
+ @Override\r
+ public void onSuccess(Optional<MatchItemDefinitions> result) {\r
+ setMatchItemDefintionList(result.get().getMatchItemDefinition());\r
+ }\r
+ @Override\r
+ public void onFailure(Throwable t) {\r
+ LOG.error("Can not read match item definition information.", t);\r
+ }\r
+ });\r
+ return ;\r
+ }\r
+\r
+ private void fetchActionDefinitions(){\r
+ InstanceIdentifier<ActionDefinitions> actiondefinitionId = InstanceIdentifier.builder(ActionDefinitions.class).build();\r
+ ListenableFuture<Optional<ActionDefinitions>> actiondefinitionFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, actiondefinitionId);\r
+ Futures.addCallback(actiondefinitionFuture, new FutureCallback<Optional<ActionDefinitions>>() {\r
+ @Override\r
+ public void onSuccess(Optional<ActionDefinitions> result) {\r
+ setActionDefinitionList(result.get().getActionDefinition());\r
+ }\r
+\r
+ @Override\r
+ public void onFailure(Throwable t) {\r
+ LOG.error("Can not read action definition information.", t);\r
+ }\r
+ });\r
+ return ;\r
+ }\r
+\r
+ private void fetchConditionParaDefinitions(){\r
+ InstanceIdentifier<ConditionParameterDefinitions> conditionparadefinitionId = InstanceIdentifier.builder(ConditionParameterDefinitions.class).build();\r
+ ListenableFuture<Optional<ConditionParameterDefinitions>> conditionparadefinitionFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, conditionparadefinitionId);\r
+ Futures.addCallback(conditionparadefinitionFuture, new FutureCallback<Optional<ConditionParameterDefinitions>>() {\r
+ @Override\r
+ public void onSuccess(Optional<ConditionParameterDefinitions> result) {\r
+ setConditionParameterDefinitionList(result.get().getConditionParameterDefinition());\r
+ }\r
+\r
+ @Override\r
+ public void onFailure(Throwable t) {\r
+ LOG.error("Can not read condition parameter definition information.", t);\r
+ }\r
+ });\r
+ return ;\r
+ }\r
+}\r
\r
private DataBroker dataBroker;\r
private TenantManage tenantManage;\r
- private final SettableFuture<List<ConnectionDefinition>> connectionDefinitionListFuture = SettableFuture.create();\r
+ private GetDefinitions getDefinitions;\r
private static final Logger LOG = LoggerFactory.getLogger(UpdateConnection.class);\r
\r
public UpdateConnection(DataBroker dataBroker, TenantManage tenantManage){\r
this.dataBroker = dataBroker;\r
this.tenantManage = tenantManage;\r
+ getDefinitions = new GetDefinitions(dataBroker);\r
}\r
\r
public String ConnectionHandling(UserId userId, Connection connection){\r
\r
private String checkDefinition(Connection connection){\r
String errorInfo = null;\r
- fetchConnectionDefinitionList();\r
- Map<ConnectionType, ConnectionDefinition> connectionDefinitionMap = getConnectionDefinition();\r
+ Map<ConnectionType, ConnectionDefinition> connectionDefinitionMap = getDefinitions.getConnectionDefinition();\r
if (connectionDefinitionMap.isEmpty()){\r
return "This type of connection has not been defined.";\r
}\r
}\r
return errorInfo;\r
}\r
-\r
- private void fetchConnectionDefinitionList(){\r
- InstanceIdentifier<ConnectionDefinitions> connectiondefinitionId = InstanceIdentifier.builder(ConnectionDefinitions.class).build();\r
- ListenableFuture<Optional<ConnectionDefinitions>> connectiondefinitionFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, connectiondefinitionId);\r
- Futures.addCallback(connectiondefinitionFuture, new FutureCallback<Optional<ConnectionDefinitions>>() {\r
- @Override\r
- public void onSuccess(Optional<ConnectionDefinitions> result) {\r
- setConnectionDefinitionListFuture(result.get().getConnectionDefinition());\r
-\r
- }\r
-\r
- @Override\r
- public void onFailure(Throwable t) {\r
- LOG.error("Can not read connection definition information.", t);\r
- }\r
- });\r
- return;\r
- }\r
-\r
- private void setConnectionDefinitionListFuture(List<ConnectionDefinition> connectionDefinitionList){\r
- this.connectionDefinitionListFuture.set(connectionDefinitionList);\r
- }\r
-\r
- private List<ConnectionDefinition> getConnectionDefinitionList(){\r
- try{\r
- return connectionDefinitionListFuture.get(1, TimeUnit.SECONDS);\r
- }catch (InterruptedException | ExecutionException | TimeoutException e) {\r
- LOG.error("Cannot read role information.", e);\r
- return null;\r
- }\r
- }\r
-\r
- private Map<ConnectionType, ConnectionDefinition> getConnectionDefinition(){\r
- List<ConnectionDefinition> connectionDefinitionList = getConnectionDefinitionList();\r
- Map<ConnectionType, ConnectionDefinition> connectionDefinitionMap = new HashMap<ConnectionType, ConnectionDefinition>();\r
- if (connectionDefinitionList!=null){\r
- for (ConnectionDefinition connectionDefinition : connectionDefinitionList){\r
- connectionDefinitionMap.put(connectionDefinition.getConnectionType(),connectionDefinition);\r
- }\r
- }\r
- return connectionDefinitionMap;\r
- }\r
}\r
\r
private DataBroker dataBroker;\r
private TenantManage tenantManage;\r
+ private GetDefinitions getDefinitions;\r
private ValueCheck valueCheck;\r
- private final SettableFuture<List<MatchItemDefinition>> matchItemDefinitionListFuture = SettableFuture.create();\r
private static final Logger LOG = LoggerFactory.getLogger(UpdateFlow.class);\r
\r
public UpdateFlow(DataBroker dataBroker, TenantManage tenantManage)\r
{\r
this.dataBroker = dataBroker;\r
this.tenantManage = tenantManage;\r
+ getDefinitions = new GetDefinitions(dataBroker);\r
valueCheck = new ValueCheck();\r
}\r
\r
\r
private String checkDefinition(Flow flow){\r
String errorInfo = null;\r
- fetchMatchItemDefinitions();\r
- Map<MatchItemName, MatchItemDefinition> matchItemDefinitionMap =getMatchItemDefinition();\r
+ Map<MatchItemName, MatchItemDefinition> matchItemDefinitionMap =getDefinitions.getMatchItemDefinition();\r
\r
if (flow.getMatchItem() != null)\r
{\r
}\r
return errorInfo;\r
}\r
-\r
- private void fetchMatchItemDefinitions(){\r
- InstanceIdentifier<MatchItemDefinitions> matchitemdefinitionId = InstanceIdentifier.builder(MatchItemDefinitions.class).build();\r
- ListenableFuture<Optional<MatchItemDefinitions>> matchitemdefinitionFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, matchitemdefinitionId);\r
- Futures.addCallback(matchitemdefinitionFuture, new FutureCallback<Optional<MatchItemDefinitions>>() {\r
- @Override\r
- public void onSuccess(Optional<MatchItemDefinitions> result) {\r
- setMatchItemDefinitionListFuture(result.get().getMatchItemDefinition());\r
- return;\r
- }\r
-\r
- @Override\r
- public void onFailure(Throwable t) {\r
- LOG.error("Can not read match item definition information.", t);\r
-\r
- return;\r
- }\r
- });\r
- return ;\r
- }\r
-\r
- private void setMatchItemDefinitionListFuture(List<MatchItemDefinition> matchItemDefinitionList){\r
- this.matchItemDefinitionListFuture.set(matchItemDefinitionList);\r
- }\r
-\r
- private List<MatchItemDefinition> getMatchItemDefinitionList(){\r
- try{\r
- return matchItemDefinitionListFuture.get(1, TimeUnit.SECONDS);\r
- }catch (InterruptedException | ExecutionException | TimeoutException e) {\r
- LOG.error("Cannot read role information.", e);\r
- return null;\r
- }\r
- }\r
-\r
- private Map<MatchItemName, MatchItemDefinition> getMatchItemDefinition(){\r
- List<MatchItemDefinition> matchItemDefinitions = getMatchItemDefinitionList();\r
- Map<MatchItemName, MatchItemDefinition> matchItemDefinitionMap = new HashMap<MatchItemName, MatchItemDefinition>();\r
- if (matchItemDefinitions!=null){\r
- for (MatchItemDefinition matchItemDefinition : matchItemDefinitions){\r
- matchItemDefinitionMap.put(matchItemDefinition.getMatchItemName(),matchItemDefinition);\r
- }\r
- }\r
- return matchItemDefinitionMap;\r
- }\r
}\r
public String updateIntent(AAA aaa,StructureStyleNemoUpdateInput structureStyleNemoUpdateInput){\r
String erroInfo = null;\r
\r
- erroInfo = aaa.checkUser(structureStyleNemoUpdateInput);\r
+ erroInfo = aaa.checkUser(structureStyleNemoUpdateInput.getUserId());\r
\r
if (erroInfo != null){\r
return erroInfo;\r
\r
private DataBroker dataBroker;\r
private TenantManage tenantManage;\r
- private final SettableFuture<List<NodeDefinition>> nodeDefinitionListFuture = SettableFuture.create();\r
+ private GetDefinitions getDefinitions;\r
private ValueCheck valueCheck;\r
private static final Logger LOG = LoggerFactory.getLogger(UpdateNode.class);\r
\r
public UpdateNode(DataBroker dataBroker,TenantManage tenantManage){\r
this.dataBroker = dataBroker;\r
this.tenantManage = tenantManage;\r
+ getDefinitions = new GetDefinitions(dataBroker);\r
valueCheck = new ValueCheck();\r
}\r
\r
\r
private String checkDefinition(Node node){\r
String errorInfo = null;\r
- fetchNodeDefinitions();\r
- final Map<NodeType, NodeDefinition> map = getNodeDefinitions();\r
+ final Map<NodeType, NodeDefinition> map = getDefinitions.getNodeDefinition();\r
if (map.isEmpty()){\r
return "This type of Node has not been defined.";\r
}\r
}\r
return errorInfo;\r
}\r
-\r
- private void fetchNodeDefinitions(){\r
- InstanceIdentifier<NodeDefinitions> nodedefinitionId = InstanceIdentifier.builder(NodeDefinitions.class).build();\r
- ListenableFuture<Optional<NodeDefinitions>> nodedefinitionFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, nodedefinitionId);\r
- Futures.addCallback(nodedefinitionFuture, new FutureCallback<Optional<NodeDefinitions>>() {\r
- @Override\r
- public void onSuccess(Optional<NodeDefinitions> result){\r
- setNodeDefinitionListFuture(result.get().getNodeDefinition());\r
- }\r
-\r
- @Override\r
- public void onFailure(Throwable t){\r
- LOG.error("Can not read node definitions information.", t);\r
- }\r
- });\r
- return ;\r
- }\r
-\r
- private void setNodeDefinitionListFuture(List<NodeDefinition> nodeDefinitionList) {\r
- this.nodeDefinitionListFuture.set(nodeDefinitionList);\r
- }\r
-\r
- private List<NodeDefinition> getNodeDefinitionList(){\r
- try{\r
- return nodeDefinitionListFuture.get(1, TimeUnit.SECONDS);\r
- }catch (InterruptedException | ExecutionException | TimeoutException e) {\r
- LOG.error("Cannot read role information.", e);\r
- return null;\r
- }\r
- }\r
-\r
- private Map<NodeType, NodeDefinition> getNodeDefinitions(){\r
- final Map<NodeType, NodeDefinition> nodeDefinitionMap = new HashMap<NodeType, NodeDefinition>();\r
- final List<NodeDefinition> nodeDefinitionList = getNodeDefinitionList();\r
- if (nodeDefinitionList!=null){\r
- for (NodeDefinition nodeDefinition : nodeDefinitionList){\r
- nodeDefinitionMap.put(nodeDefinition.getNodeType(),nodeDefinition);\r
- }\r
- }\r
- return nodeDefinitionMap;\r
- }\r
-\r
}\r
-\r
\r
private DataBroker dataBroker;\r
private TenantManage tenantManage;\r
- private final SettableFuture<List<ActionDefinition>> actionDefinitionListFuture = SettableFuture.create();\r
- private final SettableFuture<List<ConditionParameterDefinition>> conditionParameterDefinitionListFuture = SettableFuture.create();\r
+ private GetDefinitions getDefinitions;\r
private ValueCheck valueCheck;\r
private static final Logger LOG = LoggerFactory.getLogger(UpdateOperation.class);\r
\r
public UpdateOperation(DataBroker dataBroker, TenantManage tenantManage){\r
this.dataBroker = dataBroker;\r
this.tenantManage = tenantManage;\r
+ getDefinitions = new GetDefinitions(dataBroker);\r
valueCheck = new ValueCheck();\r
}\r
\r
}\r
\r
private String checkDefinition(Operation operation){\r
- fetchActionDefinitions();\r
- fetchConditionParaDefinitions();\r
String errorInfo = null;\r
\r
if (operation.getAction() != null )\r
\r
private String checkAction(Operation operation){\r
String errorInfo = null;\r
-\r
- fetchActionDefinitions();\r
- Map<ActionName, ActionDefinition> actionDefinitionMap = getActionDefinition();\r
+ Map<ActionName, ActionDefinition> actionDefinitionMap = getDefinitions.getActionDefinition();\r
if (operation.getAction()!=null){\r
if (actionDefinitionMap.isEmpty()){\r
return "The action type has not been defined.";\r
\r
private String checkCondition(Operation operation){\r
String errorInfo = null;\r
- fetchConditionParaDefinitions();\r
- Map<ParameterName, ConditionParameterDefinition> conditionParameterDefinitionMap = getParameterMatchPattern();\r
+ Map<ParameterName, ConditionParameterDefinition> conditionParameterDefinitionMap = getDefinitions.getConditionParameterDefinition();\r
if (operation.getConditionSegment()!=null){\r
if (conditionParameterDefinitionMap.isEmpty()){\r
return "This condition has not been defined in data store.";\r
}\r
return errorInfo;\r
}\r
-\r
- private void fetchActionDefinitions(){\r
- InstanceIdentifier<ActionDefinitions> actiondefinitionId = InstanceIdentifier.builder(ActionDefinitions.class).build();\r
- ListenableFuture<Optional<ActionDefinitions>> actiondefinitionFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, actiondefinitionId);\r
- Futures.addCallback(actiondefinitionFuture, new FutureCallback<Optional<ActionDefinitions>>() {\r
- @Override\r
- public void onSuccess(Optional<ActionDefinitions> result) {\r
- setActionDefinitionListFuture( result.get().getActionDefinition());\r
- }\r
-\r
- @Override\r
- public void onFailure(Throwable t) {\r
- LOG.error("Can not read action definition information.", t);\r
- }\r
- });\r
- return ;\r
- }\r
-\r
- private void fetchConditionParaDefinitions(){\r
- InstanceIdentifier<ConditionParameterDefinitions> conditionparadefinitionId = InstanceIdentifier.builder(ConditionParameterDefinitions.class).build();\r
- ListenableFuture<Optional<ConditionParameterDefinitions>> conditionparadefinitionFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, conditionparadefinitionId);\r
- Futures.addCallback(conditionparadefinitionFuture, new FutureCallback<Optional<ConditionParameterDefinitions>>() {\r
- @Override\r
- public void onSuccess(Optional<ConditionParameterDefinitions> result) {\r
- setConditionParameterDefinitionListFuture(result.get().getConditionParameterDefinition());\r
- }\r
-\r
- @Override\r
- public void onFailure(Throwable t) {\r
- LOG.error("Can not read condition parameter definition information.", t);\r
- }\r
- });\r
- return ;\r
- }\r
-\r
- private void setConditionParameterDefinitionListFuture(List<ConditionParameterDefinition> conditionParameterDefinitions){\r
- this.conditionParameterDefinitionListFuture.set(conditionParameterDefinitions);\r
- }\r
-\r
- private void setActionDefinitionListFuture(List<ActionDefinition> actionDefinitions){\r
- this.actionDefinitionListFuture.set(actionDefinitions);\r
- }\r
-\r
- private List<ConditionParameterDefinition> getConditionParameterDefinitionList(){\r
- try{\r
- return conditionParameterDefinitionListFuture.get(1, TimeUnit.SECONDS);\r
- }catch (InterruptedException | ExecutionException | TimeoutException e) {\r
- LOG.error("Cannot read role information.", e);\r
- return null;\r
- }\r
- }\r
-\r
- private List<ActionDefinition> getActionDefinitionList(){\r
- try{\r
- return actionDefinitionListFuture.get(1, TimeUnit.SECONDS);\r
- }catch (InterruptedException | ExecutionException | TimeoutException e) {\r
- LOG.error("Cannot read role information.", e);\r
- return null;\r
- }\r
- }\r
-\r
- private Map<ParameterName, ConditionParameterDefinition> getParameterMatchPattern(){\r
- List<ConditionParameterDefinition> conditionParameterDefinitions = getConditionParameterDefinitionList();\r
- Map<ParameterName, ConditionParameterDefinition> conditionParameterDefinitionMap = new HashMap<ParameterName, ConditionParameterDefinition>();\r
- if (conditionParameterDefinitions!=null){\r
- for (ConditionParameterDefinition conditionParameterDefinition : conditionParameterDefinitions){\r
- conditionParameterDefinitionMap.put(conditionParameterDefinition.getParameterName(),conditionParameterDefinition);\r
- }\r
- }\r
- return conditionParameterDefinitionMap;\r
- }\r
-\r
- private Map<ActionName, ActionDefinition> getActionDefinition(){\r
- List<ActionDefinition> actionDefinitions = getActionDefinitionList();\r
- Map<ActionName,ActionDefinition> actionDefinitionMap = new HashMap<ActionName, ActionDefinition>();\r
- if (actionDefinitionMap!=null){\r
- for (ActionDefinition actionDefinition : actionDefinitions){\r
- actionDefinitionMap.put(actionDefinition.getActionName(),actionDefinition);\r
- }\r
- }\r
- return actionDefinitionMap;\r
- }\r
}\r