Search in sources :

Example 1 with LInterface

use of org.onap.aai.domain.yang.LInterface in project so by onap.

the class AAIDataRetrieval method getLinterfacesOfVnf.

public List<LInterface> getLinterfacesOfVnf(String vnfId) {
    DSLStartNode startNode = new DSLStartNode(Types.GENERIC_VNF, __.key("vnf-id", vnfId));
    DSLQueryBuilder<Start, Node> builder = TraversalBuilder.fragment(startNode).to(__.node(Types.VSERVER).to(__.node(Types.L_INTERFACE).output()));
    List<LInterface> linterfaces = getAAIDSLQueryClient().querySingleResource(new DSLQuery(builder.build()), LInterface.class);
    return linterfaces;
}
Also used : Start(org.onap.aaiclient.client.graphinventory.entities.Start) Node(org.onap.aaiclient.client.graphinventory.entities.Node) DSLStartNode(org.onap.aaiclient.client.graphinventory.entities.DSLStartNode) LInterface(org.onap.aai.domain.yang.LInterface) DSLQuery(org.onap.aaiclient.client.graphinventory.entities.DSLQuery) DSLStartNode(org.onap.aaiclient.client.graphinventory.entities.DSLStartNode)

Example 2 with LInterface

use of org.onap.aai.domain.yang.LInterface in project so by onap.

the class HeatBridgeImplTest method testUpdateLInterfaceVlan.

@Test
public void testUpdateLInterfaceVlan() throws HeatBridgeException {
    // Arrange
    List<Resource> stackResources = (List<Resource>) extractTestStackResources();
    Port port = mock(Port.class);
    when(port.getId()).thenReturn("test-port-id");
    when(port.getName()).thenReturn("test-port-name");
    when(port.getvNicType()).thenReturn(HeatBridgeConstants.OS_SRIOV_PORT_TYPE);
    when(port.getMacAddress()).thenReturn("78:4f:43:68:e2:78");
    when(port.getNetworkId()).thenReturn("890a203a-23gg-56jh-df67-731656a8f13a");
    when(port.getDeviceId()).thenReturn("test-device-id");
    LInterface lIf = new LInterface();
    lIf.setInterfaceId("test-port-id");
    lIf.setInterfaceType("SRIOV");
    lIf.setInterfaceName("name");
    String pfPciId = "0000:08:00.0";
    when(port.getProfile()).thenReturn(ImmutableMap.of(HeatBridgeConstants.OS_PCI_SLOT_KEY, pfPciId, HeatBridgeConstants.OS_PHYSICAL_NETWORK_KEY, "physical_network_id"));
    IP ip = mock(IP.class);
    Set<IP> ipSet = new HashSet<>();
    ipSet.add(ip);
    when(ip.getIpAddress()).thenReturn("2606:ae00:2e60:100::226");
    when(ip.getSubnetId()).thenReturn("testSubnetId");
    when(port.getFixedIps()).thenAnswer(x -> ipSet);
    Subnet subnet = mock(Subnet.class);
    when(subnet.getCidr()).thenReturn("169.254.100.0/24");
    when(osClient.getSubnetById("testSubnetId")).thenReturn(subnet);
    Network network = mock(Network.class);
    when(network.getId()).thenReturn("test-network-id");
    when(network.getNetworkType()).thenReturn(NetworkType.VLAN);
    when(network.getProviderSegID()).thenReturn("2345");
    when(network.getProviderPhyNet()).thenReturn("ovsnet");
    doNothing().when(heatbridge).processOVS(any(), any(), any());
    when(osClient.getNetworkById(anyString())).thenReturn(network);
    SriovPf sriovPf = new SriovPf();
    sriovPf.setPfPciId(pfPciId);
    PInterface pIf = mock(PInterface.class);
    when(pIf.getInterfaceName()).thenReturn("test-port-id");
    when(resourcesClient.get(eq(PInterface.class), any(AAIResourceUri.class))).thenReturn(Optional.of(pIf));
    // Act
    heatbridge.createVlanAndSriovVF(port, lIf, "hostname");
    // Assert
    verify(transaction, times(2)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
    verify(osClient, times(1)).getNetworkById(anyString());
    verify(heatbridge, times(0)).processOVS(any(), any(), any());
}
Also used : Optional(java.util.Optional) Port(org.openstack4j.model.network.Port) IP(org.openstack4j.model.network.IP) Resource(org.openstack4j.model.heat.Resource) HeatResource(org.openstack4j.openstack.heat.domain.HeatResource) AAIResourceUri(org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) SriovPf(org.onap.aai.domain.yang.SriovPf) PInterface(org.onap.aai.domain.yang.PInterface) Network(org.openstack4j.model.network.Network) LInterface(org.onap.aai.domain.yang.LInterface) List(java.util.List) L3InterfaceIpv6AddressList(org.onap.aai.domain.yang.L3InterfaceIpv6AddressList) ArrayList(java.util.ArrayList) RelationshipList(org.onap.aai.domain.yang.RelationshipList) Subnet(org.openstack4j.model.network.Subnet) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 3 with LInterface

use of org.onap.aai.domain.yang.LInterface in project so by onap.

the class HeatBridgeImpl method buildAddVserverLInterfacesToAaiAction.

@Override
public void buildAddVserverLInterfacesToAaiAction(final List<Resource> stackResources, final List<String> oobMgtNetIds, String cloudOwner) throws HeatBridgeException {
    Objects.requireNonNull(osClient, ERR_MSG_NULL_OS_CLIENT);
    List<String> portIds = extractStackResourceIdsByResourceType(stackResources, HeatBridgeConstants.OS_PORT_RESOURCE_TYPE);
    if (portIds == null)
        return;
    for (String portId : portIds) {
        boolean isL2Multicast = false;
        Port port = osClient.getPortById(portId);
        Network network = osClient.getNetworkById(port.getNetworkId());
        if (!StringUtils.isEmpty(port.getDeviceId())) {
            LInterface lIf = new LInterface();
            lIf.setInterfaceId(port.getId());
            lIf.setInterfaceName(port.getName());
            lIf.setMacaddr(port.getMacAddress());
            lIf.setNetworkName(network.getName());
            lIf.setIsPortMirrored(false);
            lIf.setIsIpUnnumbered(false);
            lIf.setInMaint(false);
            if (port.getProfile() != null && port.getProfile().get("trusted") != null) {
                String trusted = port.getProfile().get("trusted").toString();
                if (Boolean.parseBoolean(trusted)) {
                    isL2Multicast = true;
                }
            }
            lIf.setL2Multicasting(isL2Multicast);
            lIf.setInterfaceType(getInterfaceType(nodeType, port.getvNicType()));
            lIf.setRelationshipList(new RelationshipList());
            if (oobMgtNetIds != null && oobMgtNetIds.contains(port.getNetworkId())) {
                lIf.setInterfaceRole(OOB_MGT_NETWORK_IDENTIFIER);
            } else {
                lIf.setInterfaceRole(port.getvNicType());
            }
            // Update l-interface to the vserver
            transaction.createIfNotExists(AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure().cloudRegion(cloudOwner, cloudRegionId).tenant(tenantId).vserver(port.getDeviceId()).lInterface(lIf.getInterfaceName())), Optional.of(lIf));
            updateLInterfaceIps(port, lIf);
            if (cloudOwner.equals(env.getProperty("mso.cloudOwner.included", ""))) {
                Server server = getOpenstackServerById(port.getDeviceId());
                createVlanAndSriovVF(port, lIf, server.getHypervisorHostname());
                updateSriovPfToSriovVF(port, lIf);
            }
        }
    }
}
Also used : RelationshipList(org.onap.aai.domain.yang.RelationshipList) Server(org.openstack4j.model.compute.Server) Port(org.openstack4j.model.network.Port) L3Network(org.onap.aai.domain.yang.L3Network) Network(org.openstack4j.model.network.Network) LInterface(org.onap.aai.domain.yang.LInterface) IPAddressString(inet.ipaddr.IPAddressString)

Example 4 with LInterface

use of org.onap.aai.domain.yang.LInterface in project so by onap.

the class HeatBridgeImpl method createVlanAndSriovVF.

protected void createVlanAndSriovVF(final Port port, final LInterface lIf, final String hostName) throws HeatBridgeException {
    // add back all vlan logic
    Vlan vlan = new Vlan();
    Network network = osClient.getNetworkById(port.getNetworkId());
    if (network.getNetworkType() != null && network.getNetworkType().equals(NetworkType.VLAN)) {
        vlan.setVlanInterface(port.getName() + network.getProviderSegID());
        vlan.setVlanIdOuter(Long.parseLong(network.getProviderSegID()));
        vlan.setVlanIdInner(0L);
        vlan.setInMaint(false);
        vlan.setIsIpUnnumbered(false);
        vlan.setIsPrivate(false);
        transaction.createIfNotExists(AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure().cloudRegion(cloudOwner, cloudRegionId).tenant(tenantId).vserver(port.getDeviceId()).lInterface(lIf.getInterfaceName()).vlan(vlan.getVlanInterface())), Optional.of(vlan));
    }
    if (!lIf.getInterfaceType().equals(SRIOV)) {
        if (nodeType == NodeType.GREENFIELD) {
            validatePhysicalNetwork(port, network);
            processOVS(lIf, hostName, NodeType.GREENFIELD.getInterfaceName());
        } else {
            processOVS(lIf, hostName, NodeType.BROWNFIELD.getInterfaceName());
        }
    }
    List<String> privateVlans = (ArrayList<String>) port.getProfile().get(PRIVATE_VLANS);
    List<String> publicVlans = (ArrayList<String>) port.getProfile().get(PUBLIC_VLANS);
    List<String> vlans = null;
    if (publicVlans != null && !publicVlans.isEmpty()) {
        vlans = publicVlans.stream().filter(publicVlan -> !Strings.isNullOrEmpty(publicVlan)).collect(Collectors.toList());
    } else {
        vlans = new ArrayList<>();
    }
    if (privateVlans != null && !privateVlans.isEmpty()) {
        List<String> temp = privateVlans.stream().filter(privateVlan -> !Strings.isNullOrEmpty(privateVlan)).collect(Collectors.toList());
        vlans.addAll(temp);
    }
    vlans.stream().forEach(vlanLocal -> logger.debug("Vlan Id: {}", vlanLocal));
    processVlanTag(lIf, vlans);
    if (port.getvNicType() != null && port.getvNicType().equalsIgnoreCase(HeatBridgeConstants.OS_SRIOV_PORT_TYPE)) {
        SriovVf sriovVf = new SriovVf();
        sriovVf.setPciId(port.getProfile().get(HeatBridgeConstants.OS_PCI_SLOT_KEY).toString());
        sriovVf.setNeutronNetworkId(port.getNetworkId());
        sriovVf.setVfVlanFilter("0");
        sriovVf.setVfVlanAntiSpoofCheck(false);
        sriovVf.setVfMacAntiSpoofCheck(false);
        transaction.createIfNotExists(AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure().cloudRegion(cloudOwner, cloudRegionId).tenant(tenantId).vserver(port.getDeviceId()).lInterface(lIf.getInterfaceName()).sriovVf(sriovVf.getPciId())), Optional.of(sriovVf));
    }
}
Also used : Depth(org.onap.aaiclient.client.graphinventory.entities.uri.Depth) AaiHelper(org.onap.so.heatbridge.helpers.AaiHelper) AAIUriFactory(org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory) Node(org.onap.aaiclient.client.graphinventory.entities.Node) Server(org.openstack4j.model.compute.Server) LoggerFactory(org.slf4j.LoggerFactory) HeatBridgeUtils(org.onap.so.heatbridge.utils.HeatBridgeUtils) StringUtils(org.apache.commons.lang3.StringUtils) DSLQueryBuilder(org.onap.aaiclient.client.graphinventory.entities.DSLQueryBuilder) Map(java.util.Map) Resource(org.openstack4j.model.heat.Resource) AAIDSLQueryClient(org.onap.aaiclient.client.aai.AAIDSLQueryClient) Vlan(org.onap.aai.domain.yang.Vlan) UriBuilder(javax.ws.rs.core.UriBuilder) Pserver(org.onap.aai.domain.yang.Pserver) TypeReference(com.fasterxml.jackson.core.type.TypeReference) L3Network(org.onap.aai.domain.yang.L3Network) DSLQuery(org.onap.aaiclient.client.graphinventory.entities.DSLQuery) AAISingleTransactionClient(org.onap.aaiclient.client.aai.AAISingleTransactionClient) ImmutableMap(com.google.common.collect.ImmutableMap) Predicate(java.util.function.Predicate) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) L3InterfaceIpv4AddressList(org.onap.aai.domain.yang.L3InterfaceIpv4AddressList) Collectors(java.util.stream.Collectors) MsoCloudClientFactoryImpl(org.onap.so.heatbridge.factory.MsoCloudClientFactoryImpl) NotFoundException(javax.ws.rs.NotFoundException) IPAddressString(inet.ipaddr.IPAddressString) Objects(java.util.Objects) NetworkType(org.openstack4j.model.network.NetworkType) VolumeAttachment(org.openstack4j.model.storage.block.VolumeAttachment) List(java.util.List) Environment(org.springframework.core.env.Environment) InetAddressValidator(org.apache.commons.validator.routines.InetAddressValidator) SriovPf(org.onap.aai.domain.yang.SriovPf) Optional(java.util.Optional) WebApplicationException(javax.ws.rs.WebApplicationException) Flavor(org.onap.aai.domain.yang.Flavor) Results(org.onap.aaiclient.client.aai.entities.Results) Volume(org.onap.aai.domain.yang.Volume) Relationships(org.onap.aaiclient.client.aai.entities.Relationships) Image(org.onap.aai.domain.yang.Image) CloudIdentity(org.onap.so.db.catalog.beans.CloudIdentity) L3InterfaceIpv6AddressList(org.onap.aai.domain.yang.L3InterfaceIpv6AddressList) Network(org.openstack4j.model.network.Network) Relationship(org.onap.aai.domain.yang.Relationship) Types(org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types) BulkProcessFailed(org.onap.aaiclient.client.graphinventory.exceptions.BulkProcessFailed) HashMap(java.util.HashMap) Function(java.util.function.Function) ArrayList(java.util.ArrayList) Strings(com.google.common.base.Strings) RelationshipList(org.onap.aai.domain.yang.RelationshipList) CollectionUtils(org.apache.commons.collections.CollectionUtils) ServerType(org.onap.so.db.catalog.beans.ServerType) DSLStartNode(org.onap.aaiclient.client.graphinventory.entities.DSLStartNode) OpenstackClientFactoryImpl(org.onap.so.heatbridge.openstack.factory.OpenstackClientFactoryImpl) IP(org.openstack4j.model.network.IP) Start(org.onap.aaiclient.client.graphinventory.entities.Start) HeatBridgeConstants(org.onap.so.heatbridge.constants.HeatBridgeConstants) SpringContextHelper(org.onap.so.spring.SpringContextHelper) LInterface(org.onap.aai.domain.yang.LInterface) Nonnull(javax.annotation.Nonnull) AAIResultWrapper(org.onap.aaiclient.client.aai.entities.AAIResultWrapper) org.onap.aaiclient.client.graphinventory.entities.__(org.onap.aaiclient.client.graphinventory.entities.__) Port(org.openstack4j.model.network.Port) Subnets(org.onap.aai.domain.yang.Subnets) AAIResourcesClient(org.onap.aaiclient.client.aai.AAIResourcesClient) Format(org.onap.aaiclient.client.graphinventory.Format) Logger(org.slf4j.Logger) AAIFluentTypeBuilder(org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder) AAIResourceUri(org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) IOException(java.io.IOException) Subnet(org.openstack4j.model.network.Subnet) Pathed(org.onap.aaiclient.client.graphinventory.entities.Pathed) TraversalBuilder(org.onap.aaiclient.client.graphinventory.entities.TraversalBuilder) Vserver(org.onap.aai.domain.yang.Vserver) PInterface(org.onap.aai.domain.yang.PInterface) Preconditions(com.google.common.base.Preconditions) SriovVf(org.onap.aai.domain.yang.SriovVf) NodeType(org.onap.so.cloud.resource.beans.NodeType) OpenstackClient(org.onap.so.heatbridge.openstack.api.OpenstackClient) L3Network(org.onap.aai.domain.yang.L3Network) Network(org.openstack4j.model.network.Network) ArrayList(java.util.ArrayList) SriovVf(org.onap.aai.domain.yang.SriovVf) Vlan(org.onap.aai.domain.yang.Vlan) IPAddressString(inet.ipaddr.IPAddressString)

Example 5 with LInterface

use of org.onap.aai.domain.yang.LInterface in project so by onap.

the class ExceptionBuilder method processAuditException.

public void processAuditException(DelegateExecutionImpl execution, boolean flowShouldContinue) {
    logger.debug("Processing Audit Results");
    String auditListString = execution.getVariable("auditInventoryResult");
    String processKey = getProcessKey(execution.getDelegateExecution());
    if (auditListString != null) {
        StringBuilder errorMessage = new StringBuilder();
        try {
            ExtractPojosForBB extractPojosForBB = getExtractPojosForBB();
            VfModule module = extractPojosForBB.extractByKey(execution, ResourceKey.VF_MODULE_ID);
            String cloudRegionId = execution.getGeneralBuildingBlock().getCloudRegion().getLcpCloudRegionId();
            GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
            AAIObjectAuditList auditList = objectMapper.getMapper().readValue(auditListString, AAIObjectAuditList.class);
            errorMessage = errorMessage.append(auditList.getAuditType() + " VF-Module " + module.getVfModuleId() + " failed due to incomplete AAI vserver inventory population after stack " + auditList.getHeatStackName() + " was successfully " + auditList.getAuditType() + "d in cloud region " + cloudRegionId + ". MSO Audit indicates that the following was not " + auditList.getAuditType() + "d in AAI: ");
            Stream<AAIObjectAudit> vServerLInterfaceAuditStream = auditList.getAuditList().stream().filter(auditObject -> auditObject.getAaiObjectType().equals(Types.VSERVER.typeName()) || auditObject.getAaiObjectType().equals(Types.L_INTERFACE.typeName()));
            List<AAIObjectAudit> filteredAuditStream = vServerLInterfaceAuditStream.filter(a -> !a.isDoesObjectExist()).collect(Collectors.toList());
            for (AAIObjectAudit object : filteredAuditStream) {
                if (object.getAaiObjectType().equals(Types.L_INTERFACE.typeName())) {
                    LInterface li = objectMapper.getMapper().convertValue(object.getAaiObject(), LInterface.class);
                    errorMessage = errorMessage.append(Types.L_INTERFACE.typeName() + " " + li.getInterfaceId() + ", ");
                } else {
                    Vserver vs = objectMapper.getMapper().convertValue(object.getAaiObject(), Vserver.class);
                    errorMessage = errorMessage.append(Types.VSERVER.typeName() + " " + vs.getVserverId() + ", ");
                }
            }
            if (errorMessage.length() > 0) {
                errorMessage.setLength(errorMessage.length() - 2);
                errorMessage = errorMessage.append(".");
            }
        } catch (IOException | BBObjectNotFoundException e) {
            errorMessage = errorMessage.append("process objects in AAI. ");
            logger.error("Exception occurred in processAuditException", e);
        }
        if (flowShouldContinue) {
            execution.setVariable("StatusMessage", errorMessage.toString());
        } else {
            WorkflowException exception = new WorkflowException(processKey, 400, errorMessage.toString(), ONAPComponents.SO);
            execution.setVariable("WorkflowException", exception);
            execution.setVariable("WorkflowExceptionErrorMessage", errorMessage.toString());
            logger.info("Outgoing WorkflowException is {}", exception);
            logger.info("Throwing AAIInventoryFailure");
            throw new BpmnError("AAIInventoryFailure");
        }
    } else {
        String errorMessage = "Unable to process audit results due to auditInventoryResult being null";
        WorkflowException exception = new WorkflowException(processKey, 400, errorMessage, ONAPComponents.SO);
        execution.setVariable("WorkflowException", exception);
        execution.setVariable("WorkflowExceptionErrorMessage", errorMessage);
        logger.info("Outgoing WorkflowException is {}", exception);
        logger.info("Throwing AAIInventoryFailure");
        throw new BpmnError("AAIInventoryFailure");
    }
}
Also used : ONAPComponents(org.onap.logging.filter.base.ONAPComponents) Types(org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types) LoggerFactory(org.slf4j.LoggerFactory) WorkflowException(org.onap.so.bpmn.core.WorkflowException) BpmnError(org.camunda.bpm.engine.delegate.BpmnError) MessageEnum(org.onap.so.logger.MessageEnum) DelegateExecutionImpl(org.onap.so.bpmn.common.DelegateExecutionImpl) ResourceKey(org.onap.so.bpmn.servicedecomposition.entities.ResourceKey) LInterface(org.onap.aai.domain.yang.LInterface) ExtractPojosForBB(org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB) ErrorCode(org.onap.logging.filter.base.ErrorCode) Logger(org.slf4j.Logger) VfModule(org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule) DelegateExecution(org.camunda.bpm.engine.delegate.DelegateExecution) IOException(java.io.IOException) Collectors(java.util.stream.Collectors) ONAPComponentsList(org.onap.logging.filter.base.ONAPComponentsList) AAIObjectAudit(org.onap.so.objects.audit.AAIObjectAudit) List(java.util.List) Component(org.springframework.stereotype.Component) Stream(java.util.stream.Stream) Vserver(org.onap.aai.domain.yang.Vserver) GraphInventoryCommonObjectMapperProvider(org.onap.aaiclient.client.graphinventory.GraphInventoryCommonObjectMapperProvider) BuildingBlockExecution(org.onap.so.bpmn.common.BuildingBlockExecution) LoggingAnchor(org.onap.so.logger.LoggingAnchor) AAIObjectAuditList(org.onap.so.objects.audit.AAIObjectAuditList) Components(org.onap.so.utils.Components) Vserver(org.onap.aai.domain.yang.Vserver) WorkflowException(org.onap.so.bpmn.core.WorkflowException) IOException(java.io.IOException) AAIObjectAudit(org.onap.so.objects.audit.AAIObjectAudit) VfModule(org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule) AAIObjectAuditList(org.onap.so.objects.audit.AAIObjectAuditList) ExtractPojosForBB(org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB) LInterface(org.onap.aai.domain.yang.LInterface) GraphInventoryCommonObjectMapperProvider(org.onap.aaiclient.client.graphinventory.GraphInventoryCommonObjectMapperProvider) BpmnError(org.camunda.bpm.engine.delegate.BpmnError)

Aggregations

LInterface (org.onap.aai.domain.yang.LInterface)6 Port (org.openstack4j.model.network.Port)4 List (java.util.List)3 Optional (java.util.Optional)3 L3InterfaceIpv6AddressList (org.onap.aai.domain.yang.L3InterfaceIpv6AddressList)3 RelationshipList (org.onap.aai.domain.yang.RelationshipList)3 IP (org.openstack4j.model.network.IP)3 Network (org.openstack4j.model.network.Network)3 Subnet (org.openstack4j.model.network.Subnet)3 IPAddressString (inet.ipaddr.IPAddressString)2 IOException (java.io.IOException)2 ArrayList (java.util.ArrayList)2 HashSet (java.util.HashSet)2 Collectors (java.util.stream.Collectors)2 L3Network (org.onap.aai.domain.yang.L3Network)2 Vserver (org.onap.aai.domain.yang.Vserver)2 Types (org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types)2 Server (org.openstack4j.model.compute.Server)2 Logger (org.slf4j.Logger)2 LoggerFactory (org.slf4j.LoggerFactory)2