When I add direct Luns this way the size shows as <1 on the GUI and 0 when called from the rest api. All the other items mentioned are not present.
Thanks > On 8 May 2014, at 18:05, Juan Hernandez <jhern...@redhat.com> wrote: > >> On 05/08/2014 05:04 PM, Gary Lloyd wrote: >> >> We are working on a script so that we can create an ISCSI LUN on our SAN >> and then directly assign it to a vm. >> >> We have been able to get it to work but with one small annoyance. I >> can't figure out how to populate size,serial,vendor_id and product_id >> via the api. Would anyone be able to point me in the right direction ? >> code (see def add_disk): >> >> def get_clusterid(cluster_name): >> cluster = ovirt_api.clusters.get(cluster_name) >> try: >> return cluster.id <http://cluster.id> >> except: >> logging.error('the cluster: %s does not appear to exist' % >> cluster_name ) >> sys.exit(1) >> >> def nominate_host(cluster_id): >> for host in ovirt_api.hosts.list(): >> if host.cluster.id <http://host.cluster.id> == cluster_id and >> host.status.state == 'up': >> host.iscsidiscover >> return host >> logging.error('could not find a suitable host to nominate in cluster:') >> sys.exit(1) >> >> >> def iscsi_discover_and_login(cluster,target,portal,chap_user,chap_pass): >> clusterid=get_clusterid(cluster) >> host=nominate_host(clusterid) >> >> iscsidet = params.IscsiDetails() >> iscsidet.address=portal >> iscsidet.username=chap_user >> iscsidet.password=chap_pass >> iscsidet.target=target >> >> host.iscsidiscover(params.Action(iscsi=iscsidet)) >> result = host.iscsilogin(params.Action(iscsi=iscsidet)) >> >> if result.status.state == 'complete': >> >> storecon = params.StorageConnection() >> storecon.address=portal >> storecon.type_='iscsi' >> storecon.port=3260 >> storecon.target=target >> storecon.username=chap_user >> storecon.password=chap_pass >> >> ovirt_api.storageconnections.add(storecon) >> >> return result >> # error checking code needs to be added to this function >> >> def add_disk(vm_name,wwid,target,size,portal): >> >> logunit = params.LogicalUnit() >> logunit.id <http://logunit.id>=wwid >> logunit.vendor_id='EQLOGIC' >> logunit.product_id='100E-00' >> logunit.port=3260 >> logunit.lun_mapping=0 >> logunit.address=portal >> logunit.target=target >> logunit.size=size * 1073741824 >> >> stor = params.Storage(logical_unit=[logunit]) >> stor.type_='iscsi' >> >> >> disk = params.Disk() >> disk.alias = 'vm-' + vm_name >> disk.name <http://disk.name> = disk.alias >> disk.interface = 'virtio' >> disk.bootable = True >> disk.type_ = 'iscsi' >> disk.format='raw' >> disk.set_size(size * 1073741824) >> #disk.size=size * 1073741824 >> #disk.active=True >> >> disk.lun_storage=stor >> >> try: >> result = ovirt_api.disks.add(disk) >> except: >> logging.error('Could not add disk') >> sys.exit(1) >> >> attachdisk=ovirt_api.disks.get(disk.alias) >> attachdisk.active = True >> >> try: >> ovirt_api.vms.get(vm_name).disks.add(attachdisk) >> except: >> logging.error('Could attach disk to vm') >> sys.exit(1) >> >> return result >> >> >> >> If we could just get the size to show correctly that would be enough, >> the others don't really matter to me. >> >> >> Thanks >> >> /Gary Lloyd/ > > For a direct LUN disk all these values are ready only. Why do you need > to change them? > > -- > Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta > 3ºD, 28016 Madrid, Spain > Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L. _______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users