本文整理汇总了Python中ralph.discovery.models.IPAddress类的典型用法代码示例。如果您正苦于以下问题:Python IPAddress类的具体用法?Python IPAddress怎么用?Python IPAddress使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了IPAddress类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: 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")
示例2: test_name
def test_name(self):
ip = IPAddress(address='127.0.0.1')
ip.save()
with mock.patch('ralph.discovery.plugins.snmp.snmp_command') as snmp_command:
snmp_command.return_value = [[None, b'Testing name']]
is_up, message = snmp._snmp('127.0.0.1', 'public', (1,3,6,1,2,1,1,1,0))
self.assertEqual(message, 'Testing name')
self.assertEqual(is_up, True)
示例3: test_ip_is_public_or_no
def test_ip_is_public_or_no(self):
ip_list = [
('92.143.123.123', True),
('10.168.123.123', False),
]
for ip, is_public in ip_list:
new_ip_address = IPAddress(address=ip)
new_ip_address.save()
self.assertEquals(new_ip_address.is_public, is_public)
示例4: ApiPricingTest
class ApiPricingTest(TestCase):
def setUp(self):
self.venture, created = Venture.objects.get_or_create(
name="Sample venture",
)
self.venture.save()
self.device, created = Device.objects.get_or_create(
name="Device1",
venture=self.venture,
)
self.device_without_venture, created = Device.objects.get_or_create(
name="Device2",
)
self.ip1 = IPAddress(address='1.1.1.1', device=self.device)
self.ip2 = IPAddress(address='2.2.2.2', venture=self.venture)
self.ip1.save()
self.ip2.save()
self.device.save()
self.device_without_venture.save()
def test_get_device_by_name_with_venture(self):
# device with venture
device1 = api_pricing.get_device_by_name("Device1")
self.assertEqual(device1['device_id'], self.device.id)
self.assertEqual(device1['venture_id'], self.venture.id)
def test_get_device_by_name_without_venture(self):
# device without venture
device2 = api_pricing.get_device_by_name("Device2")
self.assertEqual(device2['device_id'], self.device_without_venture.id)
self.assertIsNone(device2['venture_id'])
def test_get_device_by_name_wrong_name(self):
# device does not exist
device3 = api_pricing.get_device_by_name("Device3")
self.assertEqual(device3, {})
def test_get_ip_info(self):
result = api_pricing.get_ip_info(ipaddress='1.1.1.1')
self.assertEquals(result, {
'device_id': self.device.id,
'venture_id': self.venture.id,
})
def test_get_ip_info_without_device(self):
result = api_pricing.get_ip_info(ipaddress='2.2.2.2')
self.assertEquals(result, {
'venture_id': self.venture.id,
})
def test_get_ip_info_empty(self):
result = api_pricing.get_ip_info(ipaddress='3.3.3.3')
self.assertEquals(result, {})
示例5: setUp
def setUp(self):
self.venture, created = Venture.objects.get_or_create(name="Sample venture")
self.venture.save()
self.device, created = Device.objects.get_or_create(name="Device1", venture=self.venture)
self.device_without_venture, created = Device.objects.get_or_create(name="Device2")
self.ip1 = IPAddress(address="1.1.1.1", device=self.device)
self.ip2 = IPAddress(address="2.2.2.2", venture=self.venture)
self.ip1.save()
self.ip2.save()
self.device.save()
self.device_without_venture.save()
示例6: 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)
示例7: _run_ssh_catalyst
def _run_ssh_catalyst(ip):
ssh = _connect_ssh(ip)
try:
mac = '\n'.join(ssh.cisco_command(
"show version | include Base ethernet MAC Address"
))
raw = '\n'.join(ssh.cisco_command("show inventory"))
finally:
ssh.close()
mac = mac.strip()
if mac.startswith("Base ethernet MAC Address") and ':' in mac:
ethernets = [
Eth(
"Base ethernet MAC Address",
mac.split(':', 1)[1].strip(),
None,
),
]
else:
ethernets = None
inventory = list(cisco_inventory(raw))
serials = [inv['sn'] for inv in inventory]
dev_inv = inventory[0]
try:
dev = Device.objects.get(sn__in=serials)
except MultipleObjectsReturned:
raise Error(
"Stacked devices with serials %r should be merged.",
serials,
)
except Device.DoesNotExist:
sn = dev_inv['sn']
model_name='Cisco %s' % dev_inv['pid']
else:
# This is a stacked device, use the base device for it
sn = dev.sn
model_name = dev.model.name
dev = Device.create(
ethernets=ethernets,
sn=sn,
model_name=model_name,
model_type=DeviceType.switch,
name=dev_inv['descr'][:255],
)
dev.save(update_last_seen=True)
for inv in inventory:
cisco_component(dev, inv)
ip_address, created = IPAddress.concurrent_get_or_create(address=str(ip))
if created:
ip_address.hostname = network.hostname(ip_address.address)
ip_address.device = dev
ip_address.is_management = True
ip_address.save(update_last_seen=True)
return dev.name
示例8: perform_move
def perform_move(self, address, new_ip, new_hostname):
old_ipaddress = IPAddress.objects.get(address=address)
device = old_ipaddress.device
mac = None
for r in Record.objects.filter(
db.Q(name=old_ipaddress.hostname) |
db.Q(content=old_ipaddress.hostname) |
db.Q(content=old_ipaddress.address)
):
r.delete()
for e in DHCPEntry.objects.filter(ip=old_ipaddress.address):
mac = e.mac
e.delete()
old_ipaddress.device = None
old_ipaddress.save()
reset_dns(new_hostname, new_ip)
new_ipaddress, c = IPAddress.concurrent_get_or_create(
address=new_ip,
)
new_ipaddress.device = device
new_ipaddress.hostname = new_hostname
new_ipaddress.save()
if mac:
entry = DHCPEntry(ip=new_ip, mac=mac)
entry.save()
pricing.device_update_cached(device)
示例9: run_http
def run_http(ip):
headers, document = get_http_info(ip)
family = guess_family(headers, document)
ip_address, created = IPAddress.concurrent_get_or_create(address=ip)
ip_address.http_family = family
ip_address.save(update_last_seen=True)
return family
示例10: _cisco_snmp_model
def _cisco_snmp_model(model_oid, sn_oid, **kwargs):
ip = str(kwargs['ip'])
version = kwargs.get('snmp_version')
if version == '3':
community = SNMP_V3_AUTH
else:
community = str(kwargs['community'])
model = snmp_command(
ip,
community,
model_oid,
attempts=2,
timeout=3,
snmp_version=version,
)
sn = snmp_command(
ip,
community,
sn_oid,
attempts=2,
timeout=3,
snmp_version=version,
)
if not (model and sn):
return False, "silent.", kwargs
sn = unicode(sn[0][1])
model = 'Cisco %s' % unicode(model[0][1])
dev = Device.create(sn=sn, model_name=model, model_type=DeviceType.switch)
ip_address, created = IPAddress.concurrent_get_or_create(address=str(ip))
ip_address.device = dev
ip_address.is_management = True
ip_address.save()
return True, sn, kwargs
示例11: scan_address_job
def scan_address_job(
ip_address=None,
plugins=None,
results=None,
automerge=AUTOMERGE_MODE,
**kwargs
):
"""
The function that is actually running on the worker.
"""
job = rq.get_current_job()
available_plugins = getattr(settings, 'SCAN_PLUGINS', {}).keys()
if not plugins:
plugins = available_plugins
run_postprocessing = not (set(available_plugins) - set(plugins))
if ip_address and plugins:
if not kwargs:
ip, created = IPAddress.concurrent_get_or_create(
address=ip_address,
)
kwargs = {
'snmp_community': ip.snmp_community,
'snmp_version': ip.snmp_version,
'http_family': ip.http_family,
'snmp_name': ip.snmp_name,
}
results = _run_plugins(ip_address, plugins, job, **kwargs)
if run_postprocessing:
_scan_postprocessing(results, job, ip_address)
# Run only when automerge mode is enabled and some change was detected.
# When `change` state is not available just run it...
if automerge and job.meta.get('changed', True):
save_job_results(job.id)
return results
示例12: make_device
def make_device(ilo, ip):
if ilo.model.startswith('HP ProLiant BL'):
t = DeviceType.blade_server
else:
t = DeviceType.rack_server
ethernets = [Eth(label, mac, speed=None) for label, mac in ilo.ethernets]
dev = Device.create(
ethernets=ethernets,
model_name=ilo.model,
model_type=t,
sn=ilo.sn,
name=ilo.name,
mgmt_firmware=ilo.firmware,
)
dev.save(update_last_seen=True, priority=SAVE_PRIORITY)
ipaddr, created = IPAddress.concurrent_get_or_create(address=ip)
ipaddr.device = dev
ipaddr.is_management = True
ipaddr.save()
if dev.parent and dev.parent.management:
dev.management = dev.parent.management
else:
dev.management = ipaddr
dev.save(priority=SAVE_PRIORITY)
return dev
示例13: _save_shares
def _save_shares(dev, luns, mounts):
wwns = []
for lun, volume in luns.iteritems():
rest, wwn_end = lun.rsplit('_', 1)
try:
share = DiskShare.objects.get(wwn__endswith=wwn_end)
except DiskShare.DoesNotExist:
continue
wwns.append(share.wwn)
clients = mounts.get(volume, [])
for client in clients:
ipaddr, ip_created = IPAddress.concurrent_get_or_create(address=client)
mount, created = DiskShareMount.concurrent_get_or_create(
address=ipaddr, device=ipaddr.device, share=share, server=dev)
mount.volume = volume
mount.save(update_last_seen=True)
if not clients:
mount, created = DiskShareMount.concurrent_get_or_create(
address=None, device=None, share=share, server=dev)
mount.volume = volume
mount.save(update_last_seen=True)
for mount in DiskShareMount.objects.filter(
server=dev
).exclude(
share__wwn__in=wwns
):
mount.delete()
示例14: run_idrac
def run_idrac(ip):
idrac = IDRAC(ip)
base_info = idrac.get_base_info()
model_name = "{} {}".format(
base_info['manufacturer'].replace(" Inc.", ""),
base_info['model']
)
ethernets = _save_ethernets(idrac.get_ethernets())
ip_address, _ = IPAddress.concurrent_get_or_create(address=ip)
ip_address.is_management = True
ip_address.save()
dev = Device.create(
ethernets=ethernets,
model_name=model_name,
sn=base_info['sn'],
model_type=DeviceType.rack_server,
)
dev.management = ip_address
dev.save(priority=SAVE_PRIORITY)
ip_address.device = dev
ip_address.save()
_save_cpu(dev, idrac.get_cpu())
_save_memory(dev, idrac.get_memory())
_save_storage(dev, idrac.get_storage())
_save_fc_cards(dev, idrac.get_fc_cards())
return model_name
示例15: _get_master
def _get_master(ssh, data=None):
if data is None:
stdin, stdout, stderr = ssh.exec_command("cat /etc/pve/cluster.cfg")
data = stdout.read()
nodes = {}
current_node = None
for line in data.splitlines():
line = line.strip()
if line.endswith("{"):
current_node = line.replace("{", "").strip()
nodes[current_node] = {}
elif line.endswith("}"):
current_node = None
elif ":" in line and current_node:
key, value = (v.strip() for v in line.split(":", 1))
nodes[current_node][key] = value
for node, pairs in nodes.iteritems():
is_master = node.startswith("master")
try:
ip = pairs["IP"]
except KeyError:
continue
if is_master:
ipaddr, ip_created = IPAddress.concurrent_get_or_create(address=ip)
ipaddr.save()
return ipaddr