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)
def test_add_instance_storage_for_role(self): volume_manager = JsonVolumeManager("volumemanagertest.json") self.assertEqual( 0, len(volume_manager.get_instance_storage_for_role("master"))) self.assertEqual(0, len(volume_manager.get_roles())) volume_manager.add_instance_storage_for_role( "master", [MountableVolume("vol_1", "/", "/dev/sdj")]) master_storage = volume_manager.get_instance_storage_for_role("master") self.assertEqual(1, len(master_storage)) master_storage_instance0 = master_storage[0] self.assertEqual(1, len(master_storage_instance0)) master_storage_instance0_vol0 = master_storage_instance0[0] self.assertEqual("vol_1", master_storage_instance0_vol0.volume_id) self.assertEqual("/", master_storage_instance0_vol0.mount_point) self.assertEqual("/dev/sdj", master_storage_instance0_vol0.device) volume_manager.add_instance_storage_for_role( "slave", [MountableVolume("vol_2", "/", "/dev/sdj")]) self.assertEqual( 1, len(volume_manager.get_instance_storage_for_role("master"))) slave_storage = volume_manager.get_instance_storage_for_role("slave") self.assertEqual(1, len(slave_storage)) slave_storage_instance0 = slave_storage[0] self.assertEqual(1, len(slave_storage_instance0)) slave_storage_instance0_vol0 = slave_storage_instance0[0] self.assertEqual("vol_2", slave_storage_instance0_vol0.volume_id) self.assertEqual("/", slave_storage_instance0_vol0.mount_point) self.assertEqual("/dev/sdj", slave_storage_instance0_vol0.device) volume_manager.add_instance_storage_for_role("slave", [ MountableVolume("vol_3", "/", "/dev/sdj"), MountableVolume("vol_4", "/data1", "/dev/sdk") ]) self.assertEqual( 1, len(volume_manager.get_instance_storage_for_role("master"))) slave_storage = volume_manager.get_instance_storage_for_role("slave") self.assertEqual(2, len(slave_storage)) slave_storage_instance0 = slave_storage[0] slave_storage_instance1 = slave_storage[1] self.assertEqual(1, len(slave_storage_instance0)) self.assertEqual(2, len(slave_storage_instance1)) slave_storage_instance1_vol0 = slave_storage_instance1[0] slave_storage_instance1_vol1 = slave_storage_instance1[1] self.assertEqual("vol_3", slave_storage_instance1_vol0.volume_id) self.assertEqual("/", slave_storage_instance1_vol0.mount_point) self.assertEqual("/dev/sdj", slave_storage_instance1_vol0.device) self.assertEqual("vol_4", slave_storage_instance1_vol1.volume_id) self.assertEqual("/data1", slave_storage_instance1_vol1.mount_point) self.assertEqual("/dev/sdk", slave_storage_instance1_vol1.device) roles = volume_manager.get_roles() self.assertEqual(2, len(roles)) self.assertTrue("slave" in roles) self.assertTrue("master" in roles)
def test_add_instance_storage_for_role(self): volume_manager = JsonVolumeManager("volumemanagertest.json") self.assertEqual(0, len(volume_manager.get_instance_storage_for_role("master"))) self.assertEqual(0, len(volume_manager.get_roles())) volume_manager.add_instance_storage_for_role("master", [MountableVolume("vol_1", "/", "/dev/sdj")]) master_storage = volume_manager.get_instance_storage_for_role("master") self.assertEqual(1, len(master_storage)) master_storage_instance0 = master_storage[0] self.assertEqual(1, len(master_storage_instance0)) master_storage_instance0_vol0 = master_storage_instance0[0] self.assertEqual("vol_1", master_storage_instance0_vol0.volume_id) self.assertEqual("/", master_storage_instance0_vol0.mount_point) self.assertEqual("/dev/sdj", master_storage_instance0_vol0.device) volume_manager.add_instance_storage_for_role("slave", [MountableVolume("vol_2", "/", "/dev/sdj")]) self.assertEqual(1, len(volume_manager.get_instance_storage_for_role("master"))) slave_storage = volume_manager.get_instance_storage_for_role("slave") self.assertEqual(1, len(slave_storage)) slave_storage_instance0 = slave_storage[0] self.assertEqual(1, len(slave_storage_instance0)) slave_storage_instance0_vol0 = slave_storage_instance0[0] self.assertEqual("vol_2", slave_storage_instance0_vol0.volume_id) self.assertEqual("/", slave_storage_instance0_vol0.mount_point) self.assertEqual("/dev/sdj", slave_storage_instance0_vol0.device) volume_manager.add_instance_storage_for_role( "slave", [MountableVolume("vol_3", "/", "/dev/sdj"), MountableVolume("vol_4", "/data1", "/dev/sdk")] ) self.assertEqual(1, len(volume_manager.get_instance_storage_for_role("master"))) slave_storage = volume_manager.get_instance_storage_for_role("slave") self.assertEqual(2, len(slave_storage)) slave_storage_instance0 = slave_storage[0] slave_storage_instance1 = slave_storage[1] self.assertEqual(1, len(slave_storage_instance0)) self.assertEqual(2, len(slave_storage_instance1)) slave_storage_instance1_vol0 = slave_storage_instance1[0] slave_storage_instance1_vol1 = slave_storage_instance1[1] self.assertEqual("vol_3", slave_storage_instance1_vol0.volume_id) self.assertEqual("/", slave_storage_instance1_vol0.mount_point) self.assertEqual("/dev/sdj", slave_storage_instance1_vol0.device) self.assertEqual("vol_4", slave_storage_instance1_vol1.volume_id) self.assertEqual("/data1", slave_storage_instance1_vol1.mount_point) self.assertEqual("/dev/sdk", slave_storage_instance1_vol1.device) roles = volume_manager.get_roles() self.assertEqual(2, len(roles)) self.assertTrue("slave" in roles) self.assertTrue("master" in roles)