本文整理汇总了Python中nailgun.network.manager.NetworkManager.get_admin_network_group_id方法的典型用法代码示例。如果您正苦于以下问题:Python NetworkManager.get_admin_network_group_id方法的具体用法?Python NetworkManager.get_admin_network_group_id怎么用?Python NetworkManager.get_admin_network_group_id使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类nailgun.network.manager.NetworkManager
的用法示例。
在下文中一共展示了NetworkManager.get_admin_network_group_id方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: update
# 需要导入模块: from nailgun.network.manager import NetworkManager [as 别名]
# 或者: from nailgun.network.manager.NetworkManager import get_admin_network_group_id [as 别名]
def update(cls, cluster, network_configuration):
from nailgun.network.manager import NetworkManager
network_manager = NetworkManager()
if 'net_manager' in network_configuration:
setattr(
cluster,
'net_manager',
network_configuration['net_manager']
)
if 'dns_nameservers' in network_configuration:
setattr(
cluster,
'dns_nameservers',
network_configuration['dns_nameservers']['nameservers']
)
if 'networks' in network_configuration:
for ng in network_configuration['networks']:
if ng['id'] == network_manager.get_admin_network_group_id():
continue
ng_db = db().query(NetworkGroup).get(ng['id'])
for key, value in ng.iteritems():
if key == "ip_ranges":
cls._set_ip_ranges(ng['id'], value)
else:
if key == 'cidr' and \
not ng['name'] in ('public', 'floating'):
network_manager.update_range_mask_from_cidr(
ng_db, value)
setattr(ng_db, key, value)
network_manager.create_networks(ng_db)
ng_db.cluster.add_pending_changes('networks')
示例2: prepare_syslog_dir
# 需要导入模块: from nailgun.network.manager import NetworkManager [as 别名]
# 或者: from nailgun.network.manager.NetworkManager import get_admin_network_group_id [as 别名]
def prepare_syslog_dir(cls, node, prefix=None):
logger.debug("Preparing syslog directories for node: %s", node.fqdn)
if not prefix:
prefix = settings.SYSLOG_DIR
logger.debug("prepare_syslog_dir prefix=%s", prefix)
old = os.path.join(prefix, str(node.ip))
bak = os.path.join(prefix, "%s.bak" % str(node.fqdn))
new = os.path.join(prefix, str(node.fqdn))
admin_net_id = NetworkManager.get_admin_network_group_id()
links = map(
lambda i: os.path.join(prefix, i.ip_addr),
db().query(IPAddr.ip_addr).
filter_by(node=node.id).
filter_by(network=admin_net_id).all()
)
logger.debug("prepare_syslog_dir old=%s", old)
logger.debug("prepare_syslog_dir new=%s", new)
logger.debug("prepare_syslog_dir bak=%s", bak)
logger.debug("prepare_syslog_dir links=%s", str(links))
# backup directory if it exists
if os.path.isdir(new):
logger.debug("New %s already exists. Trying to backup", new)
if os.path.islink(bak):
logger.debug("Bak %s already exists and it is link. "
"Trying to unlink", bak)
os.unlink(bak)
elif os.path.isdir(bak):
logger.debug("Bak %s already exists and it is directory. "
"Trying to remove", bak)
shutil.rmtree(bak)
os.rename(new, bak)
# rename bootstrap directory into fqdn
if os.path.islink(old):
logger.debug("Old %s exists and it is link. "
"Trying to unlink", old)
os.unlink(old)
if os.path.isdir(old):
logger.debug("Old %s exists and it is directory. "
"Trying to rename into %s", old, new)
os.rename(old, new)
else:
logger.debug("Creating %s", new)
os.makedirs(new)
# creating symlinks
for l in links:
if os.path.islink(l) or os.path.isfile(l):
logger.debug("%s already exists. "
"Trying to unlink", l)
os.unlink(l)
if os.path.isdir(l):
logger.debug("%s already exists and it directory. "
"Trying to remove", l)
shutil.rmtree(l)
logger.debug("Creating symlink %s -> %s", l, new)
os.symlink(str(node.fqdn), l)
os.system("/usr/bin/pkill -HUP rsyslog")
示例3: verify_data_correctness
# 需要导入模块: from nailgun.network.manager import NetworkManager [as 别名]
# 或者: from nailgun.network.manager.NetworkManager import get_admin_network_group_id [as 别名]
def verify_data_correctness(cls, node):
db_node = db().query(Node).filter_by(id=node['id']).first()
if not db_node:
raise errors.InvalidData(
"There is no node with ID '%d' in DB" % node['id'],
log_message=True
)
interfaces = node['interfaces']
db_interfaces = db_node.interfaces
if len(interfaces) != len(db_interfaces):
raise errors.InvalidData(
"Node '%d' has different amount of interfaces" % node['id'],
log_message=True
)
# FIXIT: we should use not all networks but appropriate for this
# node only.
db_network_groups = db().query(NetworkGroup).filter_by(
cluster_id=db_node.cluster_id
).all()
if not db_network_groups:
raise errors.InvalidData(
"There are no networks related to"
" node '%d' in DB" % node['id'],
log_message=True
)
network_group_ids = set([ng.id for ng in db_network_groups])
admin_ng_id = NetworkManager.get_admin_network_group_id()
for iface in interfaces:
db_iface = filter(
lambda i: i.id == iface['id'],
db_interfaces
)
if not db_iface:
raise errors.InvalidData(
"There is no interface with ID '%d'"
" for node '%d' in DB" %
(iface['id'], node['id']),
log_message=True
)
db_iface = db_iface[0]
for net in iface['assigned_networks']:
if net['id'] not in network_group_ids and not \
net['id'] == admin_ng_id:
raise errors.InvalidData(
"Node '%d' shouldn't be connected to"
" network with ID '%d'" %
(node['id'], net['id']),
log_message=True
)
elif net['id'] != admin_ng_id:
network_group_ids.remove(net['id'])
# Check if there are unassigned networks for this node.
if network_group_ids:
raise errors.InvalidData(
"Too few networks to assign to node '%d'" % node['id'],
log_message=True
)