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 registerSwitchBackend(BaremetalSwitchBackend backend);
|
||||
|
||||
BaremetalRctResponse listRct();
|
||||
}
|
||||
|
||||
@ -40,6 +40,7 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.google.gson.Gson;
|
||||
import org.apache.cloudstack.api.AddBaremetalRctCmd;
|
||||
import org.apache.cloudstack.api.ListBaremetalRctCmd;
|
||||
import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
@ -169,6 +170,19 @@ public class BaremetalVlanManagerImpl extends ManagerBase implements BaremetalVl
|
||||
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) {
|
||||
BaremetalSwitchBackend backend = backends.get(type);
|
||||
if (backend == null) {
|
||||
@ -201,6 +215,7 @@ public class BaremetalVlanManagerImpl extends ManagerBase implements BaremetalVl
|
||||
public List<Class<?>> getCommands() {
|
||||
List<Class<?>> cmds = new ArrayList<Class<?>>();
|
||||
cmds.add(AddBaremetalRctCmd.class);
|
||||
cmds.add(ListBaremetalRctCmd.class);
|
||||
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