Beispiel #1
0
 def test_constructor(self):
     file_volume_list = Volume(file_volume_output_short,
                               header_list_indexes, FILE)
     self.assertEqual('21873481', file_volume_list.id,
                      "Pass test if ID column value is equal to 21873481")
     self.assertEqual(
         'IBM02SEV299783_1', file_volume_list.name,
         "Pass test if username column value is equal to IBM02SEV299783_1")
     self.assertEqual(
         'sjc03', file_volume_list.datacenter,
         "Pass test if datacenter column value is equal to sjc03")
     self.assertEqual(
         'endurance_file_storage', file_volume_list.storage_type,
         "Pass test if storage_type column value is equal to endurance_file_storage"
     )
     self.assertEqual(
         '100', file_volume_list.capacity_gb,
         "Pass test if capacity_gb column value is equal to 100")
     self.assertEqual(
         '16275072000', file_volume_list.bytes_used,
         "Pass test if bytes_used column value is equal to 16275072000")
     self.assertEqual(
         'fsf-sjc0301d-fz.service.softlayer.com', file_volume_list.ip_addr,
         "Pass test if ip_addr column value is equal to fsf-sjc0301d-fz.service.softlayer.com"
     )
     self.assertEqual(
         'fsf-sjc0301d-fz.service.softlayer.com:/IBM02SEV299783_1/data01',
         file_volume_list.mount_addr,
         "Pass test if mount_addr column value is equal \
                     + to fsf-sjc0301d-fz.service.softlayer.com:/IBM02SEV299783_1/data01"
     )
     self.assertEqual(
         'Offering 0 - Nexus - platform', file_volume_list.notes,
         "Pass test if notes column value is equal to Offering 0 - Nexus - platform"
     )
Beispiel #2
0
 def test_file_volume_parse_Volume(self):
     file_volume_list = Volume.parse_volumes(file_volume_output_long, FILE)
     self.assertEqual(5, len(file_volume_list),
                      "Pass if count is equal to 3")
     self.assertEqual(
         'IBM02SEV299783_1', file_volume_list[0].name,
         "Pass if [0].name value is equal to IBM02SEV299783_1")
     self.assertEqual(
         'fsf-sjc0301d-fz.service.softlayer.com',
         file_volume_list[0].ip_addr,
         "Pass if [0].ip_addr value is equal to fsf-sjc0301d-fz.service.softlayer.com"
     )
     self.assertEqual('wdc04', file_volume_list[1].datacenter,
                      "Pass if [1].datacenter value is equal to wdc04")
     self.assertEqual('555536000', file_volume_list[1].bytes_used,
                      "Pass if [1].bytes_used value is equal to 555536000")
     self.assertEqual(
         'Offering 1 - Nexus - Digital Commerce', file_volume_list[2].notes,
         "Pass if [2].notes value is equal to Offering 1 - Nexus - DC customizations"
     )
     self.assertEqual(
         'NEW Nexus Prod Hub repo WDC04 (replica is in DAL10) Snapshot at 46 minutes after the hour, to coordinate with Nexus database export',
         file_volume_list[3].notes,
         "Pass if file_volume_list[3].notes NEW Nexus Prod Hub repo WDC04 (replica is in DAL10) Snapshot at 46.....+"
     )
Beispiel #3
0
def block_volume_list():
    """List all instances of block volumes with given command
    Args: None
    Returns: Returns a list of all block volumes with column headers specified in call
    """
    cmd = '/usr/local/bin/ibmcloud sl block volume-list --column id --column username --column datacenter --column storage_type --column capacity_gb --column bytes_used --column ip_addr --column notes'  # noqa
    (rc, output) = baseutils.retry(baseutils.exe_cmd,
                                   cmd,
                                   interval=10,
                                   retry=5)
    block_volume_model_list = Volume.parse_volumes(output, 'block')
    return block_volume_model_list
Beispiel #4
0
 def test_get_block_index_list(self):
     column_header_string = "id, username, datacenter, storage_type, capacity_gb, bytes_used, ip_addr, notes"
     return_list_expected = {
         'id': 0,
         'username': 4,
         'datacenter': 14,
         'storage_type': 26,
         'capacity_gb': 40,
         'bytes_used': 53,
         'ip_addr': 65,
         'notes': 74
     }
     full_index_list = Volume.get_index_list(column_header_string, BLOCK)
     self.assertEqual(
         full_index_list, return_list_expected,
         "Pass test if return_list_expected is equal to expected column_header_string"
     )
Beispiel #5
0
 def test_block_getter_setter(self):
     file_volume_list = Volume(file_volume_output_short,
                               header_list_indexes, BLOCK)
     self.assertEqual('21873481', file_volume_list.id)
     file_volume_list.id = 1
     self.assertEqual(1, file_volume_list.id)
     file_volume_list.name = 'Foo_1'
     self.assertEqual('Foo_1', file_volume_list.name)
     file_volume_list.datacenter = 'Bar_01'
     self.assertEqual('Bar_01', file_volume_list.datacenter)
     file_volume_list.storage_type = 'test_storage'
     self.assertEqual('test_storage', file_volume_list.storage_type)
     file_volume_list.capacity_gb = 2
     self.assertEqual(2, file_volume_list.capacity_gb)
     file_volume_list.bytes_used = 3
     self.assertEqual(3, file_volume_list.bytes_used)
     file_volume_list.ip_addr = 'test_softlayer.com'
     self.assertEqual('test_softlayer.com', file_volume_list.ip_addr)
     file_volume_list.notes = 'test_offering'
     self.assertEqual('test_offering', file_volume_list.notes)
     self.assertEqual('block', file_volume_list.volume_type)
     file_volume_list.volume_type = 'not-block'
     self.assertEqual('not-block', file_volume_list.volume_type)
Beispiel #6
0
 def test_file_getter_setter(self):
     file_volume_list = Volume(file_volume_output_short,
                               header_list_indexes, FILE)
     self.assertEqual('21873481', file_volume_list.id)
     file_volume_list.id = 1
     self.assertEqual(1, file_volume_list.id)
     file_volume_list.name = 'Foo_1'
     self.assertEqual('Foo_1', file_volume_list.name)
     file_volume_list.datacenter = 'Bar_01'
     self.assertEqual('Bar_01', file_volume_list.datacenter)
     file_volume_list.storage_type = 'test_storage'
     self.assertEqual('test_storage', file_volume_list.storage_type)
     file_volume_list.capacity_gb = 2
     self.assertEqual(2, file_volume_list.capacity_gb)
     file_volume_list.bytes_used = 3
     self.assertEqual(3, file_volume_list.bytes_used)
     file_volume_list.ip_addr = 'test_softlayer.com'
     self.assertEqual('test_softlayer.com', file_volume_list.ip_addr)
     self.assertEqual(
         'fsf-sjc0301d-fz.service.softlayer.com:/IBM02SEV299783_1/data01',
         file_volume_list.mount_addr)
     file_volume_list.mount_addr = 'test_mount_address'
     self.assertEqual('test_mount_address', file_volume_list.mount_addr)
     file_volume_list.notes = 'test_offering'
     self.assertEqual('test_offering', file_volume_list.notes)
     self.assertEqual('file', file_volume_list.volume_type)
     file_volume_list.volume_type = 'not-file'
     self.assertEqual('not-file', file_volume_list.volume_type)
Beispiel #7
0
def sl_volume_detail(volume_id, volume_type):
    """Describe an instance of block volumes with given command
    Args:
        volume_id: The ID of the block volume
    Returns: Returns a description of the block volume
    """
    cmd = '/usr/local/bin/ibmcloud sl {volume_type} volume-detail {volume_id}'.format(
        volume_type=baseutils.shell_escape(volume_type),
        volume_id=baseutils.shell_escape(volume_id))
    (rc, output) = baseutils.retry(baseutils.exe_cmd,
                                   cmd,
                                   interval=10,
                                   retry=5)
    output = output.split('\n')[1:]
    volume_details = {}
    for line in output:
        if line:
            line = re.split(r'\s\s+', line)
            key = line[0].lower()
            if 'active transactions' in key:
                key = 'active_transactions'
            else:
                key = key.replace('(', '').replace(')', '').replace(' ', '_')
            value = line[1]
            volume_details[key] = value

    volume = Volume(volume_type=volume_type)
    volume.id = volume_details.get('id')
    volume.name = volume_details.get('user_name')
    volume.datacenter = volume_details.get('datacenter')
    volume.storage_type = volume_details.get('type')
    volume.capacity_gb = volume_details.get('capacity_gb')
    volume.ip_addr = volume_details.get('target_ip')
    volume.active_transactions = int(volume_details.get('active_transactions'))
    volume.replicant_count = volume_details.get('replicant_count')
    volume.bytes_used = None
    volume.notes = None

    return volume