diff --git a/api/src/main/java/com/cloud/server/ManagementService.java b/api/src/main/java/com/cloud/server/ManagementService.java index 377fbfb5f07..2de6e4b9ffb 100644 --- a/api/src/main/java/com/cloud/server/ManagementService.java +++ b/api/src/main/java/com/cloud/server/ManagementService.java @@ -59,9 +59,10 @@ import org.apache.cloudstack.api.command.user.ssh.CreateSSHKeyPairCmd; import org.apache.cloudstack.api.command.user.ssh.DeleteSSHKeyPairCmd; import org.apache.cloudstack.api.command.user.ssh.ListSSHKeyPairsCmd; import org.apache.cloudstack.api.command.user.ssh.RegisterSSHKeyPairCmd; -import org.apache.cloudstack.api.command.user.userdata.BaseRegisterUserDataCmd; import org.apache.cloudstack.api.command.user.userdata.DeleteUserDataCmd; import org.apache.cloudstack.api.command.user.userdata.ListUserDataCmd; +import org.apache.cloudstack.api.command.user.userdata.RegisterCniConfigurationCmd; +import org.apache.cloudstack.api.command.user.userdata.RegisterUserDataCmd; import org.apache.cloudstack.api.command.user.vm.GetVMPasswordCmd; import org.apache.cloudstack.api.command.user.vmgroup.UpdateVMGroupCmd; import org.apache.cloudstack.config.Configuration; @@ -362,14 +363,21 @@ public interface ManagementService { */ Pair, Integer> listUserDatas(ListUserDataCmd cmd, boolean forCks); + /** + * Registers a cni configuration. + * + * @param cmd The api command class. + * @return A VO with the registered userdata. + */ + UserData registerCniConfigration(RegisterCniConfigurationCmd cmd); + /** * Registers a userdata. * * @param cmd The api command class. - * @param forCks * @return A VO with the registered userdata. */ - UserData registerUserData(BaseRegisterUserDataCmd cmd); + UserData registerUserData(RegisterUserDataCmd cmd); /** * Deletes a userdata. * diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/RegisterCniConfigurationCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/RegisterCniConfigurationCmd.java index 0a5f687f392..5e07356a4ad 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/RegisterCniConfigurationCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/RegisterCniConfigurationCmd.java @@ -57,7 +57,7 @@ public class RegisterCniConfigurationCmd extends BaseRegisterUserDataCmd { @Override public void execute() { - UserData result = _mgr.registerUserData(this); + UserData result = _mgr.registerCniConfigration(this); UserDataResponse response = _responseGenerator.createUserDataResponse(result); response.setResponseName(getCommandName()); response.setObjectName(ApiConstants.CNI_CONFIG); diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java b/server/src/main/java/com/cloud/server/ManagementServerImpl.java index 9fa231f6cc5..2c612165079 100644 --- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java +++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java @@ -4878,26 +4878,34 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe } @Override - @ActionEvent(eventType = EventTypes.EVENT_REGISTER_USER_DATA, eventDescription = "registering userdata", async = true) - public UserData registerUserData(final BaseRegisterUserDataCmd cmd) { + @ActionEvent(eventType = EventTypes.EVENT_REGISTER_CNI_CONFIG, eventDescription = "registering CNI configration", async = true) + public UserData registerCniConfigration(RegisterCniConfigurationCmd cmd) { final Account owner = getOwner(cmd); checkForUserDataByName(cmd, owner); final String name = cmd.getName(); - boolean forCks = false; - String userdata = null; - if (cmd instanceof RegisterUserDataCmd) { - userdata = ((RegisterUserDataCmd) cmd).getUserData(); - checkForUserData(((RegisterUserDataCmd) cmd), owner); - } else { - userdata = ((RegisterCniConfigurationCmd) cmd).getCniConfig(); - forCks = true; - } + String userdata = cmd.getCniConfig(); final String params = cmd.getParams(); userdata = userDataManager.validateUserData(userdata, cmd.getHttpMethod()); - return createAndSaveUserData(name, userdata, params, owner, forCks); + return createAndSaveUserData(name, userdata, params, owner, true); + } + + @Override + @ActionEvent(eventType = EventTypes.EVENT_REGISTER_USER_DATA, eventDescription = "registering userdata", async = true) + public UserData registerUserData(final RegisterUserDataCmd cmd) { + final Account owner = getOwner(cmd); + checkForUserDataByName(cmd, owner); + final String name = cmd.getName(); + + String userdata = cmd.getUserData(); + checkForUserData(cmd, owner); + final String params = cmd.getParams(); + + userdata = userDataManager.validateUserData(userdata, cmd.getHttpMethod()); + + return createAndSaveUserData(name, userdata, params, owner, false); } /**