def create_snapshot(ctx: Context, disk: DODiskIdentifier, snapshot_name: str, snapshot_description: str) -> NewSnapshotIdentifier: volume = digitalocean.Volume(id=disk.volume_id) snapshot = volume.snapshot(snapshot_name) return snapshot['snapshot']['id']
def build_context(args): context = args if 'token' not in context: context['token'] = os.environ.get('DO_TOKEN') manager = digitalocean.Manager(token=context['token']) my_droplets = manager.get_all_droplets() mydrop = [_ for _ in my_droplets if _.ip_address == get_ip_address()][0] context['droplet_id'] = mydrop.id context['droplet'] = mydrop context['volume_name'] = mydrop.name + '-volume' context['volume_directory'] = '/mnt/' + context['volume_name'] context['volume'] = digitalocean.Volume( token= context['token'], name= context['volume_name'], region= context['droplet_region'], size_gigabytes= context['volume_size_gbs'] ) context['user'] = os.environ.get('USER') if 'sudo_password' not in context: context['sudo_password'] = os.environ.get('SUDO') return context
def test_create_with_tags(self): data = self.load_from_file('volumes/single_with_tags.json') url = self.base_url + "volumes/" responses.add(responses.POST, url, body=data, status=201, content_type='application/json') volume = digitalocean.Volume(droplet_id=12345, region='nyc1', size_gigabytes=100, filesystem_type='ext4', filesystem_label='label', tags=['tag1', 'tag2'], token=self.token).create() self.assertEqual(volume.tags, ['tag1', 'tag2']) self.assertEqual(responses.calls[0].request.url, self.base_url + "volumes/") self.assertEqual(volume.id, "506f78a4-e098-11e5-ad9f-000f53306ae1") self.assertEqual(volume.size_gigabytes, 100) self.assertEqual(volume.filesystem_type, "ext4")
def test_create(self): data = self.load_from_file('volumes/single.json') responses.add(responses.POST, self.base_url + "volumes/", body=data, status=201, content_type='application/json') volume = digitalocean.Volume(droplet_id=12345, region='nyc1', size_gigabytes=100, token=self.token).create() self.assertEqual(responses.calls[0].request.url, self.base_url + "volumes/") self.assertEqual(volume.id, "506f78a4-e098-11e5-ad9f-000f53306ae1") self.assertEqual(volume.size_gigabytes, 100)
def create_data_volumes(self, hostname): if self.get_data_volumes(hostname): raise RuntimeError("Volumes already provisioned for host %s" % \ hostname) name = self.volume_name(hostname) size = self.hosts[hostname]['volume_size'] region = self.hosts[hostname]['region'] print "Creating %sGB data volume %s for host %s (region %s)" % \ (size, name, hostname, region) v = digitalocean.Volume( token = self.token, size_gigabytes = size, name = name, region = region, ) v.create() time.sleep(5) return v
def writeVolume(self, volumeSize, volumeDescription=None): self.volumeSize = volumeSize if volumeDescription == None: self.volumeDescription = "No description specified" volumeName = str(datetime.datetime.now()) else: self.volumeDescription = str(volumeDescription) volumeName = volumeDescription + "_volume" self.logger.debug("Creating volume of size " + str(self.volumeSize)) self.logger.debug("Creating volume of description " + self.volumeDescription) self.volume = digitalocean.Volume( token=self.token, size_gigabytes=int(self.volumeSize), name=volumeName, description=self.volumeDescription, region='nyc3' # static for now, though it should be a parameter. ) self.volume.create()
def setUp(self): super(TestVolume, self).setUp() self.volume = digitalocean.Volume( id='506f78a4-e098-11e5-ad9f-000f53306ae1', token=self.token)