diff --git a/server/src/com/cloud/api/commands/StartRouter2Cmd.java b/server/src/com/cloud/api/commands/StartRouter2Cmd.java new file mode 100644 index 00000000000..988dfdb0d53 --- /dev/null +++ b/server/src/com/cloud/api/commands/StartRouter2Cmd.java @@ -0,0 +1,98 @@ +/** + * Copyright (C) 2010 Cloud.com, Inc. All rights reserved. + * + * This software is licensed under the GNU General Public License v3 or later. + * + * It is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +package com.cloud.api.commands; + +import org.apache.log4j.Logger; + +import com.cloud.api.ApiConstants; +import com.cloud.api.ApiDBUtils; +import com.cloud.api.ApiResponseHelper; +import com.cloud.api.BaseAsyncCmd; +import com.cloud.api.Implementation; +import com.cloud.api.Parameter; +import com.cloud.api.response.DomainRouterResponse; +import com.cloud.event.EventTypes; +import com.cloud.network.DomainRouterService; +import com.cloud.user.Account; +import com.cloud.uservm.UserVm; +import com.cloud.vm.DomainRouter; + + +@Implementation(method="startRouter", manager=DomainRouterService.class, description="Starts a router.") +public class StartRouter2Cmd extends BaseAsyncCmd { + public static final Logger s_logger = Logger.getLogger(StartRouter2Cmd.class.getName()); + private static final String s_name = "startrouterresponse"; + + + ///////////////////////////////////////////////////// + //////////////// API parameters ///////////////////// + ///////////////////////////////////////////////////// + + @Parameter(name=ApiConstants.ID, type=CommandType.LONG, required=true, description="the ID of the router") + private Long id; + + ///////////////////////////////////////////////////// + /////////////////// Accessors /////////////////////// + ///////////////////////////////////////////////////// + + public Long getId() { + return id; + } + + ///////////////////////////////////////////////////// + /////////////// API Implementation/////////////////// + ///////////////////////////////////////////////////// + + @Override + public String getName() { + return s_name; + } + + public static String getResultObjectName() { + return "router"; + } + + @Override + public long getAccountId() { + UserVm vm = ApiDBUtils.findUserVmById(getId()); + if (vm != null) { + return vm.getAccountId(); + } + + return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked + } + + @Override + public String getEventType() { + return EventTypes.EVENT_ROUTER_START; + } + + @Override + public String getEventDescription() { + return "starting router: " + getId(); + } + + @Override @SuppressWarnings("unchecked") + public DomainRouterResponse getResponse() { + DomainRouter router = (DomainRouter)getResponseObject(); + DomainRouterResponse routerResponse = ApiResponseHelper.createDomainRouterResponse(router); + routerResponse.setResponseName(getName()); + return routerResponse; + } +} diff --git a/server/src/com/cloud/api/commands/StopRouter2Cmd.java b/server/src/com/cloud/api/commands/StopRouter2Cmd.java new file mode 100644 index 00000000000..450b28c7023 --- /dev/null +++ b/server/src/com/cloud/api/commands/StopRouter2Cmd.java @@ -0,0 +1,93 @@ +/** + * Copyright (C) 2010 Cloud.com, Inc. All rights reserved. + * + * This software is licensed under the GNU General Public License v3 or later. + * + * It is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +package com.cloud.api.commands; + +import org.apache.log4j.Logger; + +import com.cloud.api.ApiConstants; +import com.cloud.api.ApiDBUtils; +import com.cloud.api.ApiResponseHelper; +import com.cloud.api.BaseAsyncCmd; +import com.cloud.api.Implementation; +import com.cloud.api.Parameter; +import com.cloud.api.response.DomainRouterResponse; +import com.cloud.event.EventTypes; +import com.cloud.network.DomainRouterService; +import com.cloud.user.Account; +import com.cloud.uservm.UserVm; +import com.cloud.vm.DomainRouter; + + +@Implementation(method="stopRouter", manager=DomainRouterService.class, description="Stops a router.") +public class StopRouter2Cmd extends BaseAsyncCmd { + public static final Logger s_logger = Logger.getLogger(StopRouter2Cmd.class.getName()); + private static final String s_name = "stoprouterresponse"; + + ///////////////////////////////////////////////////// + //////////////// API parameters ///////////////////// + ///////////////////////////////////////////////////// + + @Parameter(name=ApiConstants.ID, type=CommandType.LONG, required=true, description="the ID of the router") + private Long id; + + ///////////////////////////////////////////////////// + /////////////////// Accessors /////////////////////// + ///////////////////////////////////////////////////// + + public Long getId() { + return id; + } + + ///////////////////////////////////////////////////// + /////////////// API Implementation/////////////////// + ///////////////////////////////////////////////////// + + @Override + public String getName() { + return s_name; + } + + @Override + public long getAccountId() { + UserVm vm = ApiDBUtils.findUserVmById(getId()); + if (vm != null) { + return vm.getAccountId(); + } + + return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked + } + + @Override + public String getEventType() { + return EventTypes.EVENT_ROUTER_STOP; + } + + @Override + public String getEventDescription() { + return "stopping router: " + getId(); + } + + @Override @SuppressWarnings("unchecked") + public DomainRouterResponse getResponse() { + DomainRouter router = (DomainRouter)getResponseObject(); + DomainRouterResponse response =ApiResponseHelper.createDomainRouterResponse(router); + response.setResponseName(getName()); + return response; + } +}