mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-6278
Baremetal Advanced Networking support
This commit is contained in:
parent
6655d8f5b0
commit
b8795d8879
@ -39,4 +39,6 @@ public interface BaremetalVlanManager extends Manager, PluggableService {
|
|||||||
void releaseVlan(Network nw, VirtualMachineProfile vm);
|
void releaseVlan(Network nw, VirtualMachineProfile vm);
|
||||||
|
|
||||||
void registerSwitchBackend(BaremetalSwitchBackend backend);
|
void registerSwitchBackend(BaremetalSwitchBackend backend);
|
||||||
|
|
||||||
|
BaremetalRctResponse listRct();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,6 +40,7 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
|||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import org.apache.cloudstack.api.AddBaremetalRctCmd;
|
import org.apache.cloudstack.api.AddBaremetalRctCmd;
|
||||||
|
import org.apache.cloudstack.api.ListBaremetalRctCmd;
|
||||||
import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
|
import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
@ -169,6 +170,19 @@ public class BaremetalVlanManagerImpl extends ManagerBase implements BaremetalVl
|
|||||||
backends.put(backend.getSwitchBackendType(), backend);
|
backends.put(backend.getSwitchBackendType(), backend);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaremetalRctResponse listRct() {
|
||||||
|
List<BaremetalRctVO> vos = rctDao.listAll();
|
||||||
|
if (!vos.isEmpty()) {
|
||||||
|
BaremetalRctVO vo = vos.get(0);
|
||||||
|
BaremetalRctResponse rsp = new BaremetalRctResponse();
|
||||||
|
rsp.setId(vo.getUuid());
|
||||||
|
rsp.setUrl(vo.getUrl());
|
||||||
|
return rsp;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private BaremetalSwitchBackend getSwitchBackend(String type) {
|
private BaremetalSwitchBackend getSwitchBackend(String type) {
|
||||||
BaremetalSwitchBackend backend = backends.get(type);
|
BaremetalSwitchBackend backend = backends.get(type);
|
||||||
if (backend == null) {
|
if (backend == null) {
|
||||||
@ -201,6 +215,7 @@ public class BaremetalVlanManagerImpl extends ManagerBase implements BaremetalVl
|
|||||||
public List<Class<?>> getCommands() {
|
public List<Class<?>> getCommands() {
|
||||||
List<Class<?>> cmds = new ArrayList<Class<?>>();
|
List<Class<?>> cmds = new ArrayList<Class<?>>();
|
||||||
cmds.add(AddBaremetalRctCmd.class);
|
cmds.add(AddBaremetalRctCmd.class);
|
||||||
|
cmds.add(ListBaremetalRctCmd.class);
|
||||||
return cmds;
|
return cmds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,69 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
//
|
||||||
|
// Automatically generated by addcopyright.py at 01/29/2013
|
||||||
|
package org.apache.cloudstack.api;
|
||||||
|
|
||||||
|
import com.cloud.baremetal.manager.BaremetalVlanManager;
|
||||||
|
import com.cloud.baremetal.networkservice.BaremetalRctResponse;
|
||||||
|
import com.cloud.exception.ConcurrentOperationException;
|
||||||
|
import com.cloud.exception.InsufficientCapacityException;
|
||||||
|
import com.cloud.exception.NetworkRuleConflictException;
|
||||||
|
import com.cloud.exception.ResourceAllocationException;
|
||||||
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
|
import org.apache.cloudstack.acl.RoleType;
|
||||||
|
import org.apache.cloudstack.api.response.ListResponse;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@APICommand(name = "listBaremetalRct", description = "list baremetal rack configuration", responseObject = BaremetalRctResponse.class,
|
||||||
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, authorized = {RoleType.Admin})
|
||||||
|
public class ListBaremetalRctCmd extends BaseListCmd {
|
||||||
|
private static final Logger s_logger = Logger.getLogger(ListBaremetalRctCmd.class);
|
||||||
|
private static final String s_name = "listbaremetalrctresponse";
|
||||||
|
@Inject
|
||||||
|
BaremetalVlanManager vlanMgr;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException,
|
||||||
|
ResourceAllocationException, NetworkRuleConflictException {
|
||||||
|
try {
|
||||||
|
ListResponse<BaremetalRctResponse> response = new ListResponse<>();
|
||||||
|
List<BaremetalRctResponse> rctResponses = new ArrayList<>();
|
||||||
|
BaremetalRctResponse rsp = vlanMgr.listRct();
|
||||||
|
if (rsp != null) {
|
||||||
|
rctResponses.add(rsp);
|
||||||
|
}
|
||||||
|
response.setResponses(rctResponses);
|
||||||
|
response.setResponseName(getCommandName());
|
||||||
|
response.setObjectName("baremetalrcts");
|
||||||
|
this.setResponseObject(response);
|
||||||
|
} catch (Exception e) {
|
||||||
|
s_logger.debug("Exception happened while executing ListBaremetalRctCmd", e);
|
||||||
|
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCommandName() {
|
||||||
|
return s_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user