Package org.platformlayer.service.cloud.google.ops.compute

Examples of org.platformlayer.service.cloud.google.ops.compute.GoogleComputeMachine


    if (assignedInstanceIds.isEmpty() && !OpsContext.isDelete()) {
      throw new OpsException("Instance not yet assigned");
    }

    GoogleComputeMachine machine = null;
    OpsTarget target = null;

    if (!assignedInstanceIds.isEmpty()) {
      if (assignedInstanceIds.size() != 1) {
        log.warn("Multiple instance ids found: " + assignedInstanceIds);
      }

      // We just take the first instance id
      String assignedInstanceId = Iterables.getFirst(assignedInstanceIds, null);

      Instance server = computeClient.findInstanceByName(assignedInstanceId);

      if (server == null) {
        if (OpsContext.isConfigure()) {
          throw new OpsException("Unable to find assigned server: " + assignedInstanceId);
        }
      } else {
        server = computeClient.ensureHasPublicIp(server);

        machine = new GoogleComputeMachine(computeClient, cloud, server);

        SshKey sshKey = service.getSshKey();
        target = machine.getTarget(GoogleComputeClient.USER_NAME, sshKey.getKeyPair());

        // We need to use sudo while we set up root access
        ((SshOpsTarget) target).setEnsureRunningAsRoot(true);
      }
    }

    if (!assignedInstanceIds.isEmpty() && OpsContext.isDelete()) {
      // CloudBehaviours cloudBehaviours = new CloudBehaviours(cloud);
      // boolean supportsSecurityGroups = cloudBehaviours.supportsSecurityGroups();

      for (String instanceId : assignedInstanceIds) {
        Instance server = computeClient.findInstanceByName(instanceId);
        if (server == null) {
          log.warn("Could not find assigned server: " + instanceId + ", ignoring");
          continue;
        }

        // TODO: Remove associated firewall rules
        log.warn("Deleting firewall rules not yet implemented");

        // SecurityGroup securityGroup = null;
        // if (supportsSecurityGroups) {
        // securityGroup = openstackHelpers.getMachineSecurityGroup(computeClient, server);
        // }

        Operation terminateOperation = computeClient.terminateInstance(instanceId);
        try {
          computeClient.waitComplete(terminateOperation, 5, TimeUnit.MINUTES);
        } catch (TimeoutException e) {
          throw new OpsException("Timeout while waiting for instance termination", e);
        }

        // if (securityGroup != null) {
        // // We need to terminate the instance before we delete the security group it uses
        // if (terminateOperation != null) {
        // waitOperation(terminateOperation);
        // }
        //
        // try {
        // log.info("Deleting security group: " + securityGroup.getId());
        // computeClient.root().securityGroups().securityGroup(securityGroup.getId()).delete();
        // } catch (OpenstackNotFoundException e) {
        // log.info("Ignoring not-found error while deleting security group: " + securityGroup.getId());
        // }
        // }
      }

      if (machine != null) {
        machine.refreshState();
      }
    }

    RecursionState recursion = getRecursionState();
View Full Code Here


    {
      OpsProvider<TagChanges> tagChanges = new OpsProvider<TagChanges>() {
        @Override
        public TagChanges get() {
          GoogleComputeMachine machine = OpsContext.get().getInstance(GoogleComputeMachine.class);

          TagChanges tagChanges = new TagChanges();
          tagChanges.addTags.add(Tag.INSTANCE_KEY.build(model.getKey()));
          tagChanges.addTags.addAll(machine.buildAddressTags());

          return tagChanges;
        }
      };
View Full Code Here

TOP

Related Classes of org.platformlayer.service.cloud.google.ops.compute.GoogleComputeMachine

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.