def test_volume_specs_for_role(self): input = StringIO(json.dumps(spec)) volume_spec_manager = JsonVolumeSpecManager(input) master_specs = volume_spec_manager.volume_specs_for_role("master") self.assertEqual(1, len(master_specs)) self.assertEqual("/", master_specs[0].mount_point) self.assertEqual("8", master_specs[0].size) self.assertEqual("/dev/sdj", master_specs[0].device) self.assertEqual("snap_1", master_specs[0].snapshot_id) slave_specs = volume_spec_manager.volume_specs_for_role("slave") self.assertEqual(2, len(slave_specs)) self.assertEqual("snap_2", slave_specs[0].snapshot_id) self.assertEqual("snap_3", slave_specs[1].snapshot_id) self.assertRaises(KeyError, volume_spec_manager.volume_specs_for_role, "no-such-role")
def create(self, role, number_of_instances, availability_zone, spec_filename): spec_file = open(spec_filename, "r") volume_spec_manager = JsonVolumeSpecManager(spec_file) volume_manager = JsonVolumeManager(self._get_storage_filename()) for dummy in range(number_of_instances): mountable_volumes = [] volume_specs = volume_spec_manager.volume_specs_for_role(role) for spec in volume_specs: logger.info( "Creating volume of size %s in %s from snapshot %s" % (spec.size, availability_zone, spec.snapshot_id) ) volume = self.cluster.ec2Connection.create_volume(spec.size, availability_zone, spec.snapshot_id) mountable_volumes.append(MountableVolume(volume.id, spec.mount_point, spec.device)) volume_manager.add_instance_storage_for_role(role, mountable_volumes)
def create(self, role, number_of_instances, availability_zone, spec_filename): spec_file = open(spec_filename, 'r') volume_spec_manager = JsonVolumeSpecManager(spec_file) volume_manager = JsonVolumeManager(self._get_storage_filename()) for dummy in range(number_of_instances): mountable_volumes = [] volume_specs = volume_spec_manager.volume_specs_for_role(role) for spec in volume_specs: logger.info("Creating volume of size %s in %s from snapshot %s" % \ (spec.size, availability_zone, spec.snapshot_id)) volume = self.cluster.ec2Connection.create_volume( spec.size, availability_zone, spec.snapshot_id) mountable_volumes.append( MountableVolume(volume.id, spec.mount_point, spec.device)) volume_manager.add_instance_storage_for_role( role, mountable_volumes)