示例#1
0
def main():
    config.parse_args(sys.argv)

    xenapi = xenapi_driver.XenAPIDriver(virtapi.VirtAPI())
    session = xenapi._session

    vdi_refs = session.call_xenapi('VDI.get_all')
    for vdi_ref in vdi_refs:
        vdi_rec = session.call_xenapi('VDI.get_record', vdi_ref)

        other_config = vdi_rec['other_config']

        # Already set...
        if 'nova_instance_uuid' in other_config:
            continue

        name_label = vdi_rec['name_label']

        # We only want name-labels of form instance-<UUID>-[optional-suffix]
        if not name_label.startswith('instance-'):
            continue

        # Parse out UUID
        instance_uuid = name_label.replace('instance-', '')[:36]
        if not uuidutils.is_uuid_like(instance_uuid):
            print "error: name label '%s' wasn't UUID-like" % name_label
            continue

        vdi_type = vdi_rec['name_description']

        # We don't need a full instance record, just the UUID
        instance = {'uuid': instance_uuid}

        if not CONF.dry_run:
            vm_utils._set_vdi_info(session, vdi_ref, vdi_type, name_label,
                                   vdi_type, instance)

        if CONF.verbose:
            print "Setting other_config for instance_uuid=%s vdi_uuid=%s" % (
                instance_uuid, vdi_rec['uuid'])

        if CONF.dry_run:
            print "Dry run completed"
示例#2
0
def main():
    config.parse_args(sys.argv)

    xenapi = xenapi_driver.XenAPIDriver(virtapi.VirtAPI())
    session = xenapi._session

    vdi_refs = session.call_xenapi('VDI.get_all')
    for vdi_ref in vdi_refs:
        vdi_rec = session.call_xenapi('VDI.get_record', vdi_ref)

        other_config = vdi_rec['other_config']

        # Already set...
        if 'nova_instance_uuid' in other_config:
            continue

        name_label = vdi_rec['name_label']

        # We only want name-labels of form instance-<UUID>-[optional-suffix]
        if not name_label.startswith('instance-'):
            continue

        # Parse out UUID
        instance_uuid = name_label.replace('instance-', '')[:36]
        if not uuidutils.is_uuid_like(instance_uuid):
            print "error: name label '%s' wasn't UUID-like" % name_label
            continue

        vdi_type = vdi_rec['name_description']

        # We don't need a full instance record, just the UUID
        instance = {'uuid': instance_uuid}

        if not CONF.dry_run:
            vm_utils._set_vdi_info(session, vdi_ref, vdi_type, name_label,
                                   vdi_type, instance)

        if CONF.verbose:
            print "Setting other_config for instance_uuid=%s vdi_uuid=%s" % (
                    instance_uuid, vdi_rec['uuid'])

        if CONF.dry_run:
            print "Dry run completed"