예제 #1
0
    def test_get_mappings_string_for_role(self):

        input = StringIO(json.dumps(spec))

        volume_spec_manager = JsonVolumeSpecManager(input)

        master_mappings = volume_spec_manager.get_mappings_string_for_role("master")
        self.assertEqual("/,/dev/sdj", master_mappings)

        slave_mappings = volume_spec_manager.get_mappings_string_for_role("slave")
        self.assertEqual("/,/dev/sdj;/data1,/dev/sdk", slave_mappings)

        self.assertRaises(KeyError, volume_spec_manager.get_mappings_string_for_role, "no-such-role")
예제 #2
0
 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)
예제 #3
0
    def test_get_mappings_string_for_role(self):

        input = StringIO(json.dumps(spec))

        volume_spec_manager = JsonVolumeSpecManager(input)

        master_mappings = volume_spec_manager.get_mappings_string_for_role(
            "master")
        self.assertEqual("/,/dev/sdj", master_mappings)

        slave_mappings = volume_spec_manager.get_mappings_string_for_role(
            "slave")
        self.assertEqual("/,/dev/sdj;/data1,/dev/sdk", slave_mappings)

        self.assertRaises(KeyError,
                          volume_spec_manager.get_mappings_string_for_role,
                          "no-such-role")
예제 #4
0
 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)
예제 #5
0
    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")
예제 #6
0
    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")