def _Create(self): """Creates the internet gateway.""" create_cmd = util.AWS_PREFIX + [ 'ec2', 'create-internet-gateway', '--region=%s' % self.region ] stdout, _, _ = vm_util.IssueCommand(create_cmd) response = json.loads(stdout) self.id = response['InternetGateway']['InternetGatewayId'] util.AddDefaultTags(self.id, self.region)
def _Create(self): """Creates the VPC.""" create_cmd = util.AWS_PREFIX + [ 'ec2', 'create-vpc', '--region=%s' % self.region, '--cidr-block=10.0.0.0/16' ] stdout, _, _ = vm_util.IssueCommand(create_cmd) response = json.loads(stdout) self.id = response['Vpc']['VpcId'] self._EnableDnsHostnames() util.AddDefaultTags(self.id, self.region)
def _Create(self): """Creates the subnet.""" create_cmd = util.AWS_PREFIX + [ 'ec2', 'create-subnet', '--region=%s' % self.region, '--vpc-id=%s' % self.vpc_id, '--cidr-block=10.0.0.0/24', '--availability-zone=%s' % self.zone ] stdout, _, _ = vm_util.IssueCommand(create_cmd) response = json.loads(stdout) self.id = response['Subnet']['SubnetId'] util.AddDefaultTags(self.id, self.region)
def _Create(self): """Creates the disk.""" create_cmd = util.AWS_PREFIX + [ 'ec2', 'create-volume', '--region=%s' % self.region, '--size=%s' % self.disk_size, '--availability-zone=%s' % self.zone, '--volume-type=%s' % self.disk_type ] stdout, _ = vm_util.IssueRetryableCommand(create_cmd) response = json.loads(stdout) self.id = response['VolumeId'] util.AddDefaultTags(self.id, self.region)
def _PostCreate(self): """Get the instance's data and tag it.""" describe_cmd = util.AWS_PREFIX + [ 'ec2', 'describe-instances', '--region=%s' % self.region, '--instance-ids=%s' % self.id ] stdout, _ = vm_util.IssueRetryableCommand(describe_cmd) response = json.loads(stdout) instance = response['Reservations'][0]['Instances'][0] self.ip_address = instance['PublicIpAddress'] self.internal_ip = instance['PrivateIpAddress'] self.group_id = instance['SecurityGroups'][0]['GroupId'] util.AddDefaultTags(self.id, self.region)
def _Create(self): """Creates the disk.""" create_cmd = util.AWS_PREFIX + [ 'ec2', 'create-volume', '--region=%s' % self.region, '--size=%s' % self.disk_size, '--availability-zone=%s' % self.zone, '--volume-type=%s' % DISK_TYPE[self.disk_type]] if self.disk_type == 'io1': create_cmd.append('--iops=%s' % self.iops) stdout, _, _ = vm_util.IssueCommand(create_cmd) response = json.loads(stdout) self.id = response['VolumeId'] util.AddDefaultTags(self.id, self.region)
def CreateScratchDisk(self, disk_spec): """Create a VM's scratch disk. Args: disk_spec: virtual_machine.BaseDiskSpec object of the disk. """ disk = aws_disk.AwsDisk(disk_spec, self.zone) self.scratch_disks.append(disk) disk.Create() util.AddDefaultTags(disk.id, self.region) disk.Attach(self) self.FormatDisk(disk.GetDevicePath()) self.MountDisk(disk.GetDevicePath(), disk_spec.mount_point)
def _PostCreate(self): """Get the instance's data and tag it.""" describe_cmd = util.AWS_PREFIX + [ 'ec2', 'describe-instances', '--region=%s' % self.region, '--instance-ids=%s' % self.id ] logging.info( 'Getting instance %s public IP. This will fail until ' 'a public IP is available, but will be retried.', self.id) stdout, _ = vm_util.IssueRetryableCommand(describe_cmd) response = json.loads(stdout) instance = response['Reservations'][0]['Instances'][0] self.ip_address = instance['PublicIpAddress'] self.internal_ip = instance['PrivateIpAddress'] self.group_id = instance['SecurityGroups'][0]['GroupId'] util.AddDefaultTags(self.id, self.region)