use of com.google.spanner.admin.instance.v1.Instance in project google-cloud-java by GoogleCloudPlatform.
the class GrpcSpannerRpc method listInstances.
@Override
public Paginated<Instance> listInstances(int pageSize, @Nullable String pageToken, @Nullable String filter) throws SpannerException {
ListInstancesRequest.Builder request = ListInstancesRequest.newBuilder().setParent(projectName()).setPageSize(pageSize);
if (pageToken != null) {
request.setPageToken(pageToken);
}
if (filter != null) {
request.setFilter(filter);
}
ListInstancesResponse response = get(doUnaryCall(InstanceAdminGrpc.METHOD_LIST_INSTANCES, request.build(), projectName(), null));
return new Paginated<>(response.getInstancesList(), response.getNextPageToken());
}
use of com.google.spanner.admin.instance.v1.Instance in project google-cloud-java by GoogleCloudPlatform.
the class ITInstanceAdminTest method updateInstance.
@Test
public void updateInstance() throws Exception {
Instance instance = instanceClient.getInstance(env.getTestHelper().getInstanceId().getInstance());
String rand = new Random().nextInt() + "";
String newDisplayName = "instance test" + rand;
InstanceInfo toUpdate = InstanceInfo.newBuilder(env.getTestHelper().getInstanceId()).setDisplayName(newDisplayName).setNodeCount(instance.getNodeCount() + 1).build();
// Only update display name
Operation<Instance, UpdateInstanceMetadata> op = instanceClient.updateInstance(toUpdate, InstanceInfo.InstanceField.DISPLAY_NAME);
Instance newInstance = op.waitFor().getResult();
assertThat(newInstance.getNodeCount()).isEqualTo(instance.getNodeCount());
assertThat(newInstance.getDisplayName()).isEqualTo(newDisplayName);
Instance newInstanceFromGet = instanceClient.getInstance(env.getTestHelper().getInstanceId().getInstance());
assertThat(newInstanceFromGet).isEqualTo(newInstance);
toUpdate = InstanceInfo.newBuilder(instance.getId()).setDisplayName(instance.getDisplayName()).build();
instanceClient.updateInstance(toUpdate, InstanceInfo.InstanceField.DISPLAY_NAME).waitFor();
}
use of com.google.spanner.admin.instance.v1.Instance in project google-cloud-java by GoogleCloudPlatform.
the class ITInstanceAdminTest method updateInstanceViaEntity.
@Test
public void updateInstanceViaEntity() throws Exception {
Instance instance = instanceClient.getInstance(env.getTestHelper().getInstanceId().getInstance());
String rand = new Random().nextInt() + "";
String newDisplayName = "instance test" + rand;
Instance toUpdate = instance.toBuilder().setDisplayName(newDisplayName).setNodeCount(instance.getNodeCount() + 1).build();
// Only update display name
Operation<Instance, UpdateInstanceMetadata> op = toUpdate.update(InstanceInfo.InstanceField.DISPLAY_NAME);
Instance newInstance = op.waitFor().getResult();
assertThat(newInstance.getNodeCount()).isEqualTo(instance.getNodeCount());
assertThat(newInstance.getDisplayName()).isEqualTo(newDisplayName);
Instance newInstanceFromGet = instance.reload();
assertThat(newInstanceFromGet).isEqualTo(newInstance);
toUpdate = newInstance.toBuilder().setDisplayName(instance.getDisplayName()).build();
toUpdate.update(InstanceInfo.InstanceField.DISPLAY_NAME).waitFor();
}
use of com.google.spanner.admin.instance.v1.Instance in project TOSCAna by StuPro-TOSCAna.
the class CapabilityMapper method mapDiskSize.
/**
* Maps the disk_size property of a {@link ComputeCapability} to an EC2 Instance.
*
* @param computeCapability {@link ComputeCapability} containing the disk_size property
* @param cfnModule {@link CloudFormationModule} containing the Instance
* @param nodeName name of the Instance
*/
public void mapDiskSize(ComputeCapability computeCapability, CloudFormationModule cfnModule, String nodeName) {
// If disk_size is not set, default to 8000 Mb
Integer diskSizeInMb = computeCapability.getDiskSizeInMb().orElse(8000);
// Convert disk_size to Gb
Integer diskSizeInGb = diskSizeInMb / 1000;
logger.debug("Check diskSize: '{}' Gb", diskSizeInGb);
if (diskSizeInGb < 8) {
logger.warn("Disk size of '{}' smaller than the minimum value required by EC2 Instances. Setting the disk size of '{}' to the minimum allowed value of 8 Gb.", nodeName, nodeName);
diskSizeInGb = 8;
}
// Add BlockDeviceMapping if needed
if (diskSizeInGb > 8) {
logger.debug("Disk size of '{}' bigger than the default value of EC2 Instances. Adding a BlockDeviceMapping to '{}'.", nodeName, nodeName);
Instance computeAsInstance = (Instance) cfnModule.getResource(nodeName);
computeAsInstance.blockDeviceMappings(new EC2BlockDeviceMapping().deviceName("/dev/sda1").ebs(new EC2EBSBlockDevice().volumeSize(diskSizeInGb.toString())));
}
}
use of com.google.spanner.admin.instance.v1.Instance in project TOSCAna by StuPro-TOSCAna.
the class TransformModelNodeVisitor method visit.
/**
* Transforms the {@link Compute} node into a EC2 Instance.
*
* @param node the {@link Compute} node to visit
*/
@Override
public void visit(Compute node) {
try {
if (cfnModule.checkComputeToEc2(node)) {
logger.debug("Compute '{}' will be transformed to EC2", node.getEntityName());
String nodeName = toAlphanumerical(node.getEntityName());
// default security group the EC2 Instance
SecurityGroup webServerSecurityGroup = cfnModule.resource(SecurityGroup.class, nodeName + SECURITY_GROUP).groupDescription("Enables ports for " + nodeName + ".");
// open endpoint port
node.getEndpoint().getPort().ifPresent(port -> webServerSecurityGroup.ingress(ingress -> ingress.cidrIp(IP_OPEN), PROTOCOL_TCP, port.port));
// check what image id should be taken
CapabilityMapper capabilityMapper = createCapabilityMapper();
OsCapability computeOs = node.getOs();
String imageId = capabilityMapper.mapOsCapabilityToImageId(computeOs);
ComputeCapability computeCompute = node.getHost();
String instanceType = capabilityMapper.mapComputeCapabilityToInstanceType(computeCompute, CapabilityMapper.EC2_DISTINCTION);
// create CFN init and store it
CFNInit init = new CFNInit(CONFIG_SETS);
cfnModule.putCFNInit(nodeName, init);
cfnModule.resource(Instance.class, nodeName).securityGroupIds(webServerSecurityGroup).imageId(imageId).instanceType(instanceType);
capabilityMapper.mapDiskSize(computeCompute, cfnModule, nodeName);
// Add Reference to keyName if KeyPair needed and open Port 22 (Allows SSH access)
if (cfnModule.hasKeyPair()) {
Instance instance = (Instance) cfnModule.getResource(nodeName);
instance.keyName(cfnModule.getKeyNameVar());
webServerSecurityGroup.ingress(ingress -> ingress.cidrIp(IP_OPEN), PROTOCOL_TCP, 22);
}
} else {
logger.debug("Compute '{}' will not be transformed to EC2", node.getEntityName());
}
} catch (SdkClientException se) {
logger.error("SDKClient failed, no valid credentials or no internet connection");
throw new TransformationFailureException("Failed", se);
} catch (Exception e) {
logger.error("Error while creating EC2Instance resource.");
throw new TransformationFailureException("Failed at Compute node " + node.getEntityName(), e);
}
}
Aggregations