Search in sources :

Example 1 with Server

use of org.openstack4j.model.compute.Server in project camel by apache.

the class ServerProducer method doGet.

private void doGet(Exchange exchange) {
    final Message msg = exchange.getIn();
    final String serverId = msg.getHeader(OpenstackConstants.ID, String.class);
    ObjectHelper.notEmpty(serverId, "Server ID");
    final Server result = os.compute().servers().get(serverId);
    msg.setBody(result);
}
Also used : Message(org.apache.camel.Message) Server(org.openstack4j.model.compute.Server)

Example 2 with Server

use of org.openstack4j.model.compute.Server in project airavata by apache.

the class OpenstackIntfImpl method createServer.

@Override
public Server createServer(String serverName, String imageId, String flavorId, String keyPairName) {
    try {
        Server newServer = null;
        String networkId = null;
        // Adhering to openstack format of subnet names 'subnet-<name>'.
        String networkName = "subnet-" + properties.getProperty(Constants.OS_NETWORK_NAME);
        for (Subnet net : os.networking().subnet().list()) {
            if (net.getName().equals(networkName)) {
                networkId = net.getNetworkId();
                logger.info("Using network " + networkName + " with ID: " + networkId);
                break;
            }
        }
        if (networkId != null) {
            List<String> srvNet = new LinkedList<String>();
            srvNet.add(networkId);
            ServerCreate sc = Builders.server().name(serverName).flavor(flavorId).image(imageId).networks(srvNet).keypairName(keyPairName).build();
            // Boot the Server
            newServer = os.compute().servers().boot(sc);
            logger.info("New server created with ID: " + newServer.getId());
        } else {
            logger.error("Network with name " + networkName + " not found.");
        }
        return newServer;
    } catch (Exception ex) {
        ex.printStackTrace();
        // TODO: Check with the team on how to handle exceptions.
        logger.error("Failed to create server.");
        return null;
    }
}
Also used : Server(org.openstack4j.model.compute.Server) ServerCreate(org.openstack4j.model.compute.ServerCreate) Subnet(org.openstack4j.model.network.Subnet) LinkedList(java.util.LinkedList) FileNotFoundException(java.io.FileNotFoundException)

Example 3 with Server

use of org.openstack4j.model.compute.Server in project airavata by apache.

the class OpenstackIntfImpl method getServer.

@Override
public Server getServer(String serverId) {
    try {
        Server server = os.compute().servers().get(serverId);
        logger.info("Server retrieved successfully for ID: " + serverId);
        return server;
    } catch (Exception ex) {
        ex.printStackTrace();
        // TODO: Check with the team on how to handle exceptions.
        logger.error("Failed to retrieve server for ID: " + serverId);
        return null;
    }
}
Also used : Server(org.openstack4j.model.compute.Server) FileNotFoundException(java.io.FileNotFoundException)

Example 4 with Server

use of org.openstack4j.model.compute.Server in project cloudbreak by hortonworks.

the class OpenStackFloatingIPBuilder method build.

@Override
public List<CloudResource> build(OpenStackContext context, long privateId, AuthenticatedContext auth, Group group, Image image, List<CloudResource> buildableResource, Map<String, String> tags) {
    CloudResource resource = buildableResource.get(0);
    try {
        String publicNetId = context.getStringParameter(OpenStackConstants.PUBLIC_NET_ID);
        if (publicNetId != null) {
            OSClient<?> osClient = createOSClient(auth);
            List<CloudResource> computeResources = context.getComputeResources(privateId);
            CloudResource instance = getInstance(computeResources);
            FloatingIP unusedIp = osClient.compute().floatingIps().allocateIP(publicNetId);
            ActionResponse response = osClient.compute().floatingIps().addFloatingIP(instance.getParameter(OpenStackConstants.SERVER, Server.class), unusedIp.getFloatingIpAddress());
            if (!response.isSuccess()) {
                throw new OpenStackResourceException("Add floating-ip to server failed", resourceType(), resource.getName(), auth.getCloudContext().getId(), response.getFault());
            }
            return Collections.singletonList(createPersistedResource(resource, group.getName(), unusedIp.getId()));
        }
        return Collections.emptyList();
    } catch (OS4JException ex) {
        throw new OpenStackResourceException("Add floating-ip to server failed", resourceType(), resource.getName(), ex);
    }
}
Also used : Server(org.openstack4j.model.compute.Server) OpenStackResourceException(com.sequenceiq.cloudbreak.cloud.openstack.nativ.OpenStackResourceException) CloudResource(com.sequenceiq.cloudbreak.cloud.model.CloudResource) FloatingIP(org.openstack4j.model.compute.FloatingIP) OS4JException(org.openstack4j.api.exceptions.OS4JException) ActionResponse(org.openstack4j.model.common.ActionResponse)

Example 5 with Server

use of org.openstack4j.model.compute.Server in project cloudbreak by hortonworks.

the class OpenStackInstanceBuilder method build.

@Override
public List<CloudResource> build(OpenStackContext context, long privateId, AuthenticatedContext auth, Group group, Image image, List<CloudResource> buildableResource, Map<String, String> tags) {
    CloudResource resource = buildableResource.get(0);
    try {
        OSClient<?> osClient = createOSClient(auth);
        InstanceTemplate template = getInstanceTemplate(group, privateId);
        CloudResource port = getPort(context.getComputeResources(privateId));
        KeystoneCredentialView osCredential = new KeystoneCredentialView(auth);
        NovaInstanceView novaInstanceView = new NovaInstanceView(context.getName(), template, group.getType(), group.getLoginUserName());
        String imageId = osClient.imagesV2().list(Collections.singletonMap("name", image.getImageName())).get(0).getId();
        LOGGER.info("Selected image id: {}", imageId);
        Map<String, String> metadata = mergeMetadata(novaInstanceView.getMetadataMap(), tags);
        ServerCreateBuilder serverCreateBuilder = Builders.server().name(resource.getName()).image(imageId).flavor(getFlavorId(osClient, novaInstanceView.getFlavor())).keypairName(osCredential.getKeyPairName()).addMetadata(metadata).addNetworkPort(port.getStringParameter(OpenStackConstants.PORT_ID)).userData(new String(Base64.encodeBase64(image.getUserDataByType(group.getType()).getBytes())));
        BlockDeviceMappingBuilder blockDeviceMappingBuilder = Builders.blockDeviceMapping().uuid(imageId).sourceType(BDMSourceType.IMAGE).deviceName("/dev/vda").bootIndex(0).deleteOnTermination(true).destinationType(BDMDestType.LOCAL);
        serverCreateBuilder = serverCreateBuilder.blockDevice(blockDeviceMappingBuilder.build());
        for (CloudResource computeResource : context.getComputeResources(privateId)) {
            if (computeResource.getType() == ResourceType.OPENSTACK_ATTACHED_DISK) {
                BlockDeviceMappingCreate blockDeviceMappingCreate = Builders.blockDeviceMapping().uuid(computeResource.getReference()).deviceName(computeResource.getStringParameter(OpenStackConstants.VOLUME_MOUNT_POINT)).sourceType(BDMSourceType.VOLUME).destinationType(BDMDestType.VOLUME).build();
                serverCreateBuilder.blockDevice(blockDeviceMappingCreate);
            }
        }
        ServerCreate serverCreate = serverCreateBuilder.build();
        Server server = osClient.compute().servers().boot(serverCreate);
        return Collections.singletonList(createPersistedResource(resource, group.getName(), server.getId(), Collections.singletonMap(OpenStackConstants.SERVER, server)));
    } catch (OS4JException ex) {
        LOGGER.error("Failed to create OpenStack instance with privateId: {}", privateId, ex);
        throw new OpenStackResourceException("Instance creation failed", resourceType(), resource.getName(), ex);
    }
}
Also used : Server(org.openstack4j.model.compute.Server) ServerCreate(org.openstack4j.model.compute.ServerCreate) BlockDeviceMappingCreate(org.openstack4j.model.compute.BlockDeviceMappingCreate) BlockDeviceMappingBuilder(org.openstack4j.model.compute.builder.BlockDeviceMappingBuilder) OS4JException(org.openstack4j.api.exceptions.OS4JException) NovaInstanceView(com.sequenceiq.cloudbreak.cloud.openstack.view.NovaInstanceView) ServerCreateBuilder(org.openstack4j.model.compute.builder.ServerCreateBuilder) OpenStackResourceException(com.sequenceiq.cloudbreak.cloud.openstack.nativ.OpenStackResourceException) KeystoneCredentialView(com.sequenceiq.cloudbreak.cloud.openstack.view.KeystoneCredentialView) CloudResource(com.sequenceiq.cloudbreak.cloud.model.CloudResource) InstanceTemplate(com.sequenceiq.cloudbreak.cloud.model.InstanceTemplate)

Aggregations

Server (org.openstack4j.model.compute.Server)20 CloudVmInstanceStatus (com.sequenceiq.cloudbreak.cloud.model.CloudVmInstanceStatus)6 CloudInstance (com.sequenceiq.cloudbreak.cloud.model.CloudInstance)5 FileNotFoundException (java.io.FileNotFoundException)5 CloudResource (com.sequenceiq.cloudbreak.cloud.model.CloudResource)4 ArrayList (java.util.ArrayList)4 InstanceTemplate (com.sequenceiq.cloudbreak.cloud.model.InstanceTemplate)3 Test (org.junit.Test)3 FloatingIP (org.openstack4j.model.compute.FloatingIP)3 ServerCreate (org.openstack4j.model.compute.ServerCreate)3 CloudInstanceMetaData (com.sequenceiq.cloudbreak.cloud.model.CloudInstanceMetaData)2 CloudVmMetaDataStatus (com.sequenceiq.cloudbreak.cloud.model.CloudVmMetaDataStatus)2 OpenStackResourceException (com.sequenceiq.cloudbreak.cloud.openstack.nativ.OpenStackResourceException)2 Matchers.anyString (org.mockito.Matchers.anyString)2 AbstractTest (org.openstack4j.api.AbstractTest)2 OS4JException (org.openstack4j.api.exceptions.OS4JException)2 Test (org.testng.annotations.Test)2 InstanceStatus (com.sequenceiq.cloudbreak.cloud.model.InstanceStatus)1 NovaInstanceStatus (com.sequenceiq.cloudbreak.cloud.openstack.status.NovaInstanceStatus)1 KeystoneCredentialView (com.sequenceiq.cloudbreak.cloud.openstack.view.KeystoneCredentialView)1