本文整理汇总了Python中ralph.discovery.models.ComponentModel类的典型用法代码示例。如果您正苦于以下问题:Python ComponentModel类的具体用法?Python ComponentModel怎么用?Python ComponentModel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ComponentModel类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: make_components
def make_components(ilo, dev):
for i, (label, size, speed) in enumerate(ilo.memories):
mem, created = Memory.concurrent_get_or_create(device=dev, index=i + 1)
mem.size = size
mem.speed = speed
mem.label = label
mem.model, c = ComponentModel.create(
ComponentType.memory,
size=mem.size,
speed=mem.speed,
priority=SAVE_PRIORITY,
)
mem.save(priority=SAVE_PRIORITY)
for i, (label, speed, cores, extra, family) in enumerate(ilo.cpus):
cpu, created = Processor.concurrent_get_or_create(device=dev,
index=i + 1)
cpu.label = label
cpu.model, c = ComponentModel.create(
ComponentType.processor,
speed=speed,
cores=cores,
family=family,
name='CPU %s %dMHz, %s-core' % (family, speed, cores),
priority=SAVE_PRIORITY,
)
cpu.save(priority=SAVE_PRIORITY)
示例2: setUp
def setUp(self):
device = Device.create(
ethernets=[('', 'deadbeefcafe', 0)],
model_name='HAL 9000',
model_type=DeviceType.unknown,
remarks="I'm sorry, Dave.",
)
self.deployment = Deployment(
hostname='discovery.one',
ip='127.0.0.1',
mac='deadbeefcafe',
device=device,
preboot=None,
venture=None,
venture_role=None,
)
self.deployment.save()
self.ip = IPAddress(address='127.0.0.1', device=device)
self.ip.save()
IPAddress(address='127.0.0.2', device=device).save()
share_model = ComponentModel(type=ComponentType.share, name="share")
share_model.save()
share = DiskShare(wwn='x'*33, device=device, model=share_model)
share.save()
DiskShareMount(share=share, device=device).save()
OperatingSystem.create(os_name='GladOS', dev=device, family='',
priority=0)
Software.create(dev=device, model_name='soft', path='/', family='',
priority=0)
示例3: make_components
def make_components(ilo, dev):
for i, (label, size, speed) in enumerate(ilo.memories):
mem, created = Memory.concurrent_get_or_create(device=dev, index=i + 1)
mem.size = size
mem.speed = speed
mem.label = label
mem.model, c = ComponentModel.concurrent_get_or_create(
size=mem.size, speed=mem.speed, type=ComponentType.memory.id,
family='', extra_hash='')
if c:
mem.model.name = 'RAM %dMiB, %dMHz' % (mem.size, mem.speed)
mem.model.save()
mem.save()
for i, (label, speed, cores, extra, family) in enumerate(ilo.cpus):
cpu, created = Processor.concurrent_get_or_create(device=dev,
index=i + 1)
family = family or ''
cpu.label = label
cpu.model, c = ComponentModel.concurrent_get_or_create(
speed=speed, type=ComponentType.processor.id, extra=extra,
extra_hash=hashlib.md5(extra).hexdigest(), cores=cores,
family=family)
if c:
cpu.model.name = 'CPU %s %dMHz, %s-core' % (family, speed, cores)
cpu.model.save()
cpu.save()
示例4: test_disk_shares_and_exports
def test_disk_shares_and_exports(self):
model = ComponentModel(
type=ComponentType.share,
name="3par share",
)
model.save()
share = DiskShare(
device=self.device,
model=model,
label="pr0n",
size="2048",
wwn="deadbeefcafe1234",
)
share.save()
address = IPAddress(address='127.0.0.1')
address.save()
DiskShareMount(
device=self.device,
share=share,
address=address,
).save()
data = get_device_data(Device.objects.get(sn='123456789'))
exports = data['disk_exports']
mounts = data['disk_shares']
self.assertEqual(len(exports), 1)
self.assertEqual(len(mounts), 1)
self.assertEqual(mounts[0]['serial_number'], "deadbeefcafe1234")
示例5: run_http_ibm_system_x
def run_http_ibm_system_x(ip):
session_id = get_session_id(ip)
management_url = "http://%s/wsman" % ip
model_name = get_model_name(management_url, session_id)
sn = get_sn(management_url, session_id)
macs = get_mac_addresses(management_url, session_id)
ethernets = [Eth(label=label, mac=mac, speed=0)
for (label, mac) in macs]
ipaddr, ip_created = IPAddress.concurrent_get_or_create(address=ip)
ipaddr.is_management = True
ipaddr.save()
dev = Device.create(
ethernets=ethernets,
model_name=model_name,
sn=sn,
model_type=DeviceType.rack_server,
)
dev.management = ipaddr
dev.save(priority=SAVE_PRIORITY)
ipaddr.device = dev
ipaddr.save()
detected_memory = get_memory(management_url, session_id)
detected_memory_indexes = [x.get('index') for x in detected_memory]
for m in dev.memory_set.exclude(index__in=detected_memory_indexes):
m.delete()
for m in detected_memory:
index = m['index']
mem, _ = Memory.concurrent_get_or_create(index=index, device=dev)
mem.label = m['label']
mem.size = m['size']
mem.model, c = ComponentModel.create(
ComponentType.memory,
size=mem.size,
priority=SAVE_PRIORITY,
)
mem.save(priority=SAVE_PRIORITY)
detected_processors = get_processors(management_url, session_id)
detected_processors_keys = [x.get('index') for x in detected_processors]
for cpu in dev.processor_set.exclude(index__in=detected_processors_keys):
cpu.delete()
# add new
for p in detected_processors:
processor_model, _ = ComponentModel.create(
ComponentType.processor,
speed=p.get('speed'),
family=p.get('family'),
cores=p.get('cores'),
name=p.get('label'),
priority=SAVE_PRIORITY,
)
processor, _ = Processor.concurrent_get_or_create(
device=dev,
index=p.get('index'),
)
processor.label = p.get('label')
processor.model = processor_model
processor.speed = p.get('speed')
processor.save(priority=SAVE_PRIORITY)
return model_name
示例6: test_fc
def test_fc(self):
model = ComponentModel(type=ComponentType.fibre, name="FC-336")
model.save()
FibreChannel(physical_id="deadbeefcafe", label="ziew", device=self.device, model=model).save()
data = get_device_data(Device.objects.get(sn="123456789"))
fc = data["fibrechannel_cards"]
self.assertEqual(len(fc), 1)
self.assertEqual(fc[0]["physical_id"], "deadbeefcafe")
self.assertEqual(fc[0]["model_name"], "FC-336")
示例7: test_parts
def test_parts(self):
model = ComponentModel(type=ComponentType.management, name="weapons of mass destruction")
model.save()
GenericComponent(label="ziew", device=self.device, model=model).save()
data = get_device_data(Device.objects.get(sn="123456789"))
parts = data["parts"]
self.assertEqual(parts[0]["type"], "management")
self.assertEqual(parts[0]["model_name"], "weapons of mass destruction")
self.assertEqual(len(parts), 1)
示例8: _add_ipmi_components
def _add_ipmi_components(device, data):
# CPUs
cpu_index = 0
total_mem_index = 0
while True:
cpu = data['MB/P{}'.format(cpu_index)]
if not cpu:
break
if not cpu['Product Name']:
cpu_index += 1
continue
proc, _ = Processor.concurrent_get_or_create(index=cpu_index+1,
device=device)
proc.label = re.sub(' +', ' ', cpu['Product Name']).title()
speed_match = re.search(r'(\d+\.\d+)GHZ', cpu['Product Name'])
if speed_match:
speed = int(float(speed_match.group(1)) * 1000)
else:
speed = 0
cores = 0
proc.model, c = ComponentModel.concurrent_get_or_create(
family=proc.label, speed=speed, type=ComponentType.processor.id,
cores=cores, extra_hash='', size=0)
if c:
proc.model.name = ('CPU %s %dMHz %d-core' %
(proc.label, speed, cores))[:50]
proc.model.save()
proc.save()
# Memory
mem_index = 0
while True:
memory = data['MB/P{}/D{}'.format(cpu_index, mem_index)]
if not memory:
break
if not memory['Product Name']:
mem_index += 1
total_mem_index += 1
continue
size_match = re.search(r'(\d+)GB', memory['Product Name'])
if not size_match:
mem_index += 1
total_mem_index += 1
continue
mem, _ = Memory.concurrent_get_or_create(index=total_mem_index+1,
device=device)
mem.label = memory['Product Name']
size = int(size_match.group(1)) * 1024
speed = 0
mem.model, c = ComponentModel.concurrent_get_or_create(
name='RAM %s %dMiB' % (mem.label, size), size=size, speed=speed,
type=ComponentType.memory.id, extra='', extra_hash='',
family=mem.label, cores=0)
mem.save()
mem_index += 1
total_mem_index += 1
cpu_index += 1
示例9: test_disks
def test_disks(self):
model = ComponentModel(type=ComponentType.disk, name="HP DG0300BALVP SAS 307200MiB, 10000RPM")
model.save()
Storage(sn="abc3", device=self.device, label="ziew", mount_point="/dev/hda", model=model, size=307200).save()
data = get_device_data(Device.objects.get(sn="123456789"))
disks = data["disks"]
self.assertEqual(len(disks), 1)
self.assertEqual(disks[0]["size"], 307200)
self.assertEqual(disks[0]["serial_number"], "abc3")
self.assertEqual(disks[0]["mount_point"], "/dev/hda")
示例10: test_software
def test_software(self):
model = ComponentModel(type=ComponentType.software, name="cobol")
model.save()
Software(
label="cobol", device=self.device, model=model, version="1.0.0", path="/usr/bin/cobol", sn="0000001"
).save()
data = get_device_data(Device.objects.get(sn="123456789"))
soft = data["installed_software"]
self.assertEqual(soft[0]["version"], "1.0.0")
self.assertEqual(soft[0]["model_name"], "cobol")
self.assertEqual(len(soft), 1)
示例11: handle_dmidecode
def handle_dmidecode(info, ethernets=(), save_priority=0):
"""Take the data collected by parse_dmidecode and apply it to a device."""
# It's either a rack or a blade server, who knows?
# We will let other plugins determine that.
dev = Device.create(
ethernets=ethernets, sn=info['sn'], uuid=info['uuid'],
model_name='DMI '+info['model'], model_type=DeviceType.unknown,
priority=save_priority
)
for i, cpu_info in enumerate(info['cpu']):
extra = ',\n'.join(cpu_info['flags'])
extra = ('threads: %d\n' % cpu_info['threads']
if cpu_info['threads'] else '') + extra
if cpu_info['64bit']:
extra = '64bit\n' + extra
model, created = ComponentModel.concurrent_get_or_create(
speed=cpu_info['speed'] or 0,
cores=cpu_info['cores'] or 0,
family=cpu_info['family'],
extra_hash=hashlib.md5(extra).hexdigest(),
type=ComponentType.processor.id,
)
if created:
model.name = cpu_info['model']
model.extra = extra
model.save()
cpu, created = Processor.concurrent_get_or_create(device=dev,
index=i + 1)
if created:
cpu.label = cpu_info['label']
cpu.model = model
cpu.save()
for cpu in dev.processor_set.filter(index__gt=i + 1):
cpu.delete()
for i, mem_info in enumerate(info['mem']):
model, created = ComponentModel.concurrent_get_or_create(
speed=mem_info['speed'] or 0,
size=mem_info['size'] or 0,
type=ComponentType.memory.id,
)
if created:
model.name = 'RAM %s %dMiB' % (mem_info['type'], mem_info['size'])
model.save()
mem, created = Memory.concurrent_get_or_create(device=dev, index=i + 1)
if created:
mem.label = mem_info['label']
mem.model = model
mem.save()
for mem in dev.memory_set.filter(index__gt=i + 1):
mem.delete()
return dev
示例12: test_processors
def test_processors(self):
model = ComponentModel(type=ComponentType.processor, name="CPU Xeon 2533MHz, 4-core")
model.save()
for i in xrange(4):
p = Processor(label="ziew", model=model, device=self.device, index=i)
p.save()
data = get_device_data(Device.objects.get(sn="123456789"))
processors = data["processors"]
self.assertEqual(len(processors), 4)
self.assertEqual(processors[0]["label"], "ziew")
self.assertEqual(processors[0]["model_name"], "CPU Xeon 2533MHz, 4-core")
self.assertEqual(processors[0]["cores"], 4)
self.assertEqual(processors[3]["index"], 3)
示例13: save_memory
def save_memory(memory, dev):
indexes = []
index = 0
for row in memory:
index += 1
indexes.append(index)
try:
size = int(row.get('size'))
speed = int(row.get('speed')) if row.get('speed') else 0
except ValueError:
pass
label = row.get('label')
mem, created = Memory.concurrent_get_or_create(device=dev, index=index)
mem.size = size
mem.label = 'RAM %dMiB' % size
mem.speed = speed
family = 'Virtual Windows' if 'Virtual' in label else 'Windows'
mem.model, c = ComponentModel.create(
ComponentType.memory,
family=family,
size=size,
speed=speed,
priority=SAVE_PRIORITY,
)
mem.save(priority=SAVE_PRIORITY)
dev.memory_set.exclude(index__in=indexes).delete()
示例14: handle_lshw_processors
def handle_lshw_processors(dev, processors, is_virtual=False, priority=0):
if isinstance(processors, dict):
processors = [processors]
detected_cpus = {}
family = None
for processor in processors:
family = processor["version"] or ("Virtual CPU" if is_virtual else processor["product"])
if family:
break
if not family:
return # skip CPU changes if we cannot determine family
for i, processor in enumerate(processors):
if processor["disabled"] == "true" or not processor["size"]:
continue
label = "CPU {}".format(i + 1)
speed = int(processor["size"]["value"] or 0) # 'size', sic!
speed /= units.speed_divisor[processor["size"]["units"]]
speed = int(speed)
model, c = ComponentModel.create(
ComponentType.processor,
speed=speed,
family=family,
name=processor["product"] or "CPU {} {}MHz".format(family, speed),
priority=priority,
)
detected_cpus[i + 1] = label, model
for cpu in dev.processor_set.all():
label, model = detected_cpus.get(cpu.index, (None, None))
if cpu.label != label or cpu.model != model:
cpu.delete()
for index, (label, model) in detected_cpus.iteritems():
cpu, created = Processor.concurrent_get_or_create(device=dev, index=index)
cpu.label = label
cpu.model = model
cpu.save(priority=priority)
示例15: save_processors
def save_processors(processors, dev, is_virtual=False):
indexes = []
for p in processors:
cpuname = p.get("label")
if is_virtual and not cpuname.lower().startswith("virtual"):
cpuname = "Virtual %s" % cpuname
try:
index = int(p.get("index")[3:]) + 1 # CPU0
speed = int(p.get("speed"))
cores = int(p.get("cores"))
except ValueError:
continue
indexes.append(index)
cpu, created = Processor.concurrent_get_or_create(
device=dev, index=index, defaults={"label": cpuname, "speed": speed, "cores": cores}
)
if not created:
cpu.label = cpuname
cpu.speed = speed
cpu.cores = cores
is64bit = p.get("is64bit") == "true"
name = "CPU %s%s %s%s" % (
"64bit " if is64bit else "",
cpuname,
"%dMhz" % speed if speed else "",
" multicore" if cores > 1 else "",
)
cpu.model, c = ComponentModel.create(
ComponentType.processor, cores=cores, family=cpuname, speed=speed, name=name, priority=SAVE_PRIORITY
)
cpu.save(priority=SAVE_PRIORITY)
for cpu in dev.processor_set.exclude(index__in=indexes):
cpu.delete()