Package io.fathom.cloud.compute.actions

Examples of io.fathom.cloud.compute.actions.StartInstancesAction


        // MaxCount=1
        // DisableApiTermination=false
        // Monitoring.Enabled=false
        // EbsOptimized=false

        StartInstancesAction action = new StartInstancesAction();

        long imageId = decodeEc2Id(get("ImageId"));

        {
            ReservationData.Builder reservation = ReservationData.newBuilder();

            ImageService.Image image = imageService.findImage(project, imageId);
            if (image == null) {
                throw new IllegalArgumentException();
            }

            reservation.setImageId(image.getId());

            action.reservationTemplate = reservation.build();
        }

        List<SecurityGroupData> securityGroups = getSecurityGroups();

        {
            InstanceData.Builder instance = InstanceData.newBuilder();

            for (SecurityGroupData securityGroup : securityGroups) {
                instance.addSecurityGroupId(securityGroup.getId());
            }
            action.instanceTemplate = instance.build();
        }

        action.maxCount = get("MaxCount", 1);
        action.minCount = get("MinCount", 1);

        // action.user = getUser();
        action.project = project;

        StartInstancesAction.Result result = action.go();

        RunInstancesResponse response = new RunInstancesResponse();
        response.requestId = getRequestId();

        response.reservationId = toEc2ReservationId(result.reservation.getId());
View Full Code Here


    }

    @POST
    @Produces({ JSON })
    public Response launchServer(WrappedServer request) throws CloudException {
        StartInstancesAction action = startInstancesActionProvider.get();

        // action.user = getUser();
        action.project = getProject();
        action.auth = getAuth();

        FlavorData flavor;
        {
            long flavorId = OpenstackIds.toFlavorId(request.server.flavorRef);
            flavor = flavors.find(flavorId);
            if (flavor == null) {
                throw new IllegalArgumentException();
            }
        }

        action.minCount = request.server.minCount;
        if (action.minCount == 0) {
            action.minCount = 1;
        }
        action.maxCount = request.server.maxCount;
        if (action.maxCount == 0) {
            action.maxCount = 1;
        }

        if (action.maxCount != 1) {
            // Not clear what the response should be in this case...
            throw new UnsupportedOperationException();
        }

        ImageService.Image image;
        {

            long imageId = OpenstackIds.toImageId(request.server.imageRef);
            image = imageService.findImage(getProject(), imageId);
            if (image == null) {
                throw new IllegalArgumentException();
            }
        }

        {
            ReservationData.Builder reservation = ReservationData.newBuilder();
            // TODO: Copy image?
            reservation.setImageId(image.getId());

            action.reservationTemplate = reservation.build();
        }

        {
            InstanceData.Builder instance = InstanceData.newBuilder();
            instance.setName(request.server.name);

            if (request.server.keyName != null) {
                KeyPairData keypair = keypairs.findKeyPair(getProject(), request.server.keyName);
                if (keypair == null) {
                    throw new IllegalArgumentException();
                }
                instance.setKeyPair(keypair);
            }

            instance.setImageId(image.getId());

            instance.setFlavor(flavor);

            if (request.server.securityGroups != null && !request.server.securityGroups.isEmpty()) {
                SecurityGroupDictionary dictionary = new SecurityGroupDictionary(securityGroups.list(getProject()));

                for (SecurityGroup securityGroup : request.server.securityGroups) {
                    String name = securityGroup.name;

                    SecurityGroupData data = dictionary.getByName(name);
                    if (data == null) {
                        throw new IllegalArgumentException("Security group not found: " + name);
                    }

                    instance.addSecurityGroupId(data.getId());
                }
            }

            action.instanceTemplate = instance.build();
        }

        StartInstancesAction.Result result = action.go();

        WrappedServer response = new WrappedServer();

        if (result.instances.size() != 1) {
            throw new IllegalStateException();
View Full Code Here

        return image;
    }

    private InstanceData startInstance(Image image, List<Long> securityGroupIds, KeyPairData keyPair)
            throws CloudException {
        StartInstancesAction action = startInstancesActionProvider.get();

        action.project = project;
        action.auth = auth;

        action.minCount = 1;
        action.maxCount = 1;

        {
            ReservationData.Builder reservation = ReservationData.newBuilder();

            reservation.setImageId(image.getId());

            action.reservationTemplate = reservation.build();
        }

        {
            InstanceData.Builder instance = InstanceData.newBuilder();
            instance.setName(name);

            if (keyPair != null) {
                instance.setKeyPair(keyPair);
            }

            {
                MetadataData.Builder metadataBuilder = instance.getMetadataBuilder();

                if (host != null) {
                    MetadataEntryData.Builder entryBuilder = metadataBuilder.addEntryBuilder();
                    entryBuilder.setKey(DerivedMetadata.KEY_DNS_HOST);
                    entryBuilder.setValue(host);
                }
            }

            instance.setImageId(image.getId());

            for (Long securityGroupId : securityGroupIds) {
                instance.addSecurityGroupId(securityGroupId);
            }

            action.instanceTemplate = instance.build();
        }

        // action.ip = this.ip;

        log.info("Starting instance");

        StartInstancesAction.Result result = action.go();

        if (result.instances.size() != 1) {
            throw new IllegalStateException();
        }
View Full Code Here

TOP

Related Classes of io.fathom.cloud.compute.actions.StartInstancesAction

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.