Revision 638c6349 lib/cmdlib.py
b/lib/cmdlib.py | ||
---|---|---|
3360 | 3360 |
_FIELDS_STATIC = utils.FieldSet(*["name", "os", "pnode", "snodes", |
3361 | 3361 |
"admin_state", |
3362 | 3362 |
"disk_template", "ip", "mac", "bridge", |
3363 |
"nic_mode", "nic_link", |
|
3363 | 3364 |
"sda_size", "sdb_size", "vcpus", "tags", |
3364 | 3365 |
"network_port", "beparams", |
3365 | 3366 |
r"(disk)\.(size)/([0-9]+)", |
3366 | 3367 |
r"(disk)\.(sizes)", "disk_usage", |
3367 |
r"(nic)\.(mac|ip|bridge)/([0-9]+)", |
|
3368 |
r"(nic)\.(macs|ips|bridges)", |
|
3368 |
r"(nic)\.(mac|ip|mode|link)/([0-9]+)", |
|
3369 |
r"(nic)\.(bridge)/([0-9]+)", |
|
3370 |
r"(nic)\.(macs|ips|modes|links|bridges)", |
|
3369 | 3371 |
r"(disk|nic)\.(count)", |
3370 | 3372 |
"serial_no", "hypervisor", "hvparams",] + |
3371 | 3373 |
["hv/%s" % name |
... | ... | |
3461 | 3463 |
HVPREFIX = "hv/" |
3462 | 3464 |
BEPREFIX = "be/" |
3463 | 3465 |
output = [] |
3466 |
cluster = self.cfg.GetClusterInfo() |
|
3464 | 3467 |
for instance in instance_list: |
3465 | 3468 |
iout = [] |
3466 |
i_hv = self.cfg.GetClusterInfo().FillHV(instance) |
|
3467 |
i_be = self.cfg.GetClusterInfo().FillBE(instance) |
|
3469 |
i_hv = cluster.FillHV(instance) |
|
3470 |
i_be = cluster.FillBE(instance) |
|
3471 |
i_nicp = [objects.FillDict(cluster.nicparams[constants.PP_DEFAULT], |
|
3472 |
nic.nicparams) for nic in instance.nics] |
|
3468 | 3473 |
for field in self.op.output_fields: |
3469 | 3474 |
st_match = self._FIELDS_STATIC.Matches(field) |
3470 | 3475 |
if field == "name": |
... | ... | |
3513 | 3518 |
val = instance.nics[0].ip |
3514 | 3519 |
else: |
3515 | 3520 |
val = None |
3516 |
elif field == "bridge": |
|
3521 |
elif field == "nic_mode": |
|
3522 |
if instance.nics: |
|
3523 |
val = i_nicp[0][constants.NIC_MODE] |
|
3524 |
else: |
|
3525 |
val = None |
|
3526 |
elif field == "nic_link": |
|
3517 | 3527 |
if instance.nics: |
3518 |
val = instance.nics[0].bridge |
|
3528 |
val = i_nicp[0][constants.NIC_LINK] |
|
3529 |
else: |
|
3530 |
val = None |
|
3531 |
elif field == "bridge": |
|
3532 |
if (instance.nics and |
|
3533 |
i_nicp[0][constants.NIC_MODE] == constants.NIC_MODE_BRIDGED): |
|
3534 |
val = i_nicp[0][constants.NIC_LINK] |
|
3519 | 3535 |
else: |
3520 | 3536 |
val = None |
3521 | 3537 |
elif field == "mac": |
... | ... | |
3572 | 3588 |
val = [nic.mac for nic in instance.nics] |
3573 | 3589 |
elif st_groups[1] == "ips": |
3574 | 3590 |
val = [nic.ip for nic in instance.nics] |
3591 |
elif st_groups[1] == "modes": |
|
3592 |
val = [nicp[constants.NIC_MODE] for nicp in i_nicp] |
|
3593 |
elif st_groups[1] == "links": |
|
3594 |
val = [nicp[constants.NIC_LINK] for nicp in i_nicp] |
|
3575 | 3595 |
elif st_groups[1] == "bridges": |
3576 |
val = [nic.bridge for nic in instance.nics] |
|
3596 |
val = [] |
|
3597 |
for nicp in i_nicp: |
|
3598 |
if nicp[constants.NIC_MODE] == constants.NIC_MODE_BRIDGED: |
|
3599 |
val.append(nicp[constants.NIC_LINK]) |
|
3600 |
else: |
|
3601 |
val.append(None) |
|
3577 | 3602 |
else: |
3578 | 3603 |
# index-based item |
3579 | 3604 |
nic_idx = int(st_groups[2]) |
... | ... | |
3584 | 3609 |
val = instance.nics[nic_idx].mac |
3585 | 3610 |
elif st_groups[1] == "ip": |
3586 | 3611 |
val = instance.nics[nic_idx].ip |
3612 |
elif st_groups[1] == "mode": |
|
3613 |
val = i_nicp[nic_idx][constants.NIC_MODE] |
|
3614 |
elif st_groups[1] == "link": |
|
3615 |
val = i_nicp[nic_idx][constants.NIC_LINK] |
|
3587 | 3616 |
elif st_groups[1] == "bridge": |
3588 |
val = instance.nics[nic_idx].bridge |
|
3617 |
nic_mode = i_nicp[nic_idx][constants.NIC_MODE] |
|
3618 |
if nic_mode == constants.NIC_MODE_BRIDGED: |
|
3619 |
val = i_nicp[nic_idx][constants.NIC_LINK] |
|
3620 |
else: |
|
3621 |
val = None |
|
3589 | 3622 |
else: |
3590 | 3623 |
assert False, "Unhandled NIC parameter" |
3591 | 3624 |
else: |
Also available in: Unified diff