本文整理汇总了Python中datastore.config.ConfigNode.get方法的典型用法代码示例。如果您正苦于以下问题:Python ConfigNode.get方法的具体用法?Python ConfigNode.get怎么用?Python ConfigNode.get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类datastore.config.ConfigNode
的用法示例。
在下文中一共展示了ConfigNode.get方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: run
# 需要导入模块: from datastore.config import ConfigNode [as 别名]
# 或者: from datastore.config.ConfigNode import get [as 别名]
def run(self, dc):
self.set_progress(0, 'Checking Domain Controller service state')
node = ConfigNode('service.dc', self.configstore).__getstate__()
node.update(dc)
if not node.get('volume'):
raise TaskException(
errno.ENXIO,
'Domain controller service is hosted by the virtual machine.'
'Please provide the valid zfs pool name for the virtual machine volume creation.'
)
else:
try:
self.dispatcher.call_sync('service.dc.check_dc_vm_availability')
except RpcException:
dc['vm_id'] = self.run_subtask_sync('vm.create', {
'name': 'zentyal_domain_controller',
'template': {'name': 'zentyal-4.2'},
'target': node['volume'],
'config': {'autostart': True}},
progress_callback=lambda p, m, e=None: self.chunk_progress(
5, 100, 'Creating Domain Controller virtual machine: ', p, m, e
)
)
finally:
vm_config = self.dispatcher.call_sync(
'vm.query',
[('id', '=', dc.get('vm_id', node['vm_id']))],
{'select': 'config', 'single': True}
)
if not node['enable'] and vm_config['autostart']:
vm_config['autostart'] = False
elif node['enable'] and not vm_config['autostart']:
vm_config['autostart'] = True
self.run_subtask_sync(
'vm.update',
dc['vm_id'] if dc.get('vm_id') else node['vm_id'],
{'config': vm_config}
)
try:
node = ConfigNode('service.dc', self.configstore)
node.update(dc)
self.dispatcher.dispatch_event('service.dc.changed', {
'operation': 'update',
'ids': None,
})
except RpcException as e:
raise TaskException(errno.ENXIO,
'Cannot reconfigure DC vm service: {0}'.format(str(e)))
示例2: verify
# 需要导入模块: from datastore.config import ConfigNode [as 别名]
# 或者: from datastore.config.ConfigNode import get [as 别名]
def verify(self, openvpn_updated):
node = ConfigNode('service.openvpn', self.configstore).__getstate__()
node.update(openvpn_updated)
if node['dev'] not in ['tap', 'tun']:
raise VerifyException(errno.EINVAL, '{0} Bad interface name. Allowed values tap/tun.'.format(node['dev']))
if node['mode'] == 'pki' and (not node['ca'] or not node['cert']):
raise VerifyException(errno.EINVAL, 'For pki VPN mode ca and certyficate values are required')
if node['mode'] == 'psk':
try:
ipaddress.ip_address(node['psk_server_ip'])
ipaddress.ip_address(node['psk_remote_ip'])
except ValueError as e:
raise VerifyException(errno.EINVAL, str(e))
if node['mode'] == 'pki':
if (node['keepalive_ping_interval'] * 2) >= node['keepalive_peer_down']:
raise VerifyException(
errno.EINVAL,
'The second parameter to keepalive must be'
'at least twice the value of the first parameter.'
'Recommended setting is keepalive 10 60.'
)
try:
ipaddress.IPv4Network(node['server_ip'] + '/' + node['server_netmask'])
except ValueError as e:
raise VerifyException(errno.EINVAL, str(e))
for route in node.get('push_routes', []):
route = route.split()
if len(route) < 2:
raise VerifyException(errno.EINVAL, 'Wrong syntax for additional route.')
try:
ipaddress.IPv4Network(route[0] + '/' + route[1])
except ValueError as e:
raise VerifyException(errno.EINVAL, str(e))
return ['system']
示例3: run
# 需要导入模块: from datastore.config import ConfigNode [as 别名]
# 或者: from datastore.config.ConfigNode import get [as 别名]
def run(self, dc):
self.set_progress(0, "Checking Domain Controller service state")
node = ConfigNode("service.dc", self.configstore).__getstate__()
node.update(dc)
if not node.get("volume"):
raise TaskException(
errno.ENXIO,
"Domain controller service is hosted by the virutal machine."
"Please provide the valid zfs pool name for the virtual machine volume creation.",
)
else:
try:
self.dispatcher.call_sync("service.dc.check_dc_vm_availability")
except RpcException:
dc["vm_id"], = self.join_subtasks(
self.run_subtask(
"vm.create",
{
"name": "zentyal_domain_controller",
"template": {"name": "zentyal-4.2"},
"target": node["volume"],
"config": {"autostart": True},
},
progress_callback=lambda p, m, e=None: self.chunk_progress(
5, 100, "Creating Domain Controller virtual machine: ", p, m, e
),
)
)
try:
node = ConfigNode("service.dc", self.configstore)
node.update(dc)
self.dispatcher.dispatch_event("service.dc.changed", {"operation": "update", "ids": None})
except RpcException as e:
raise TaskException(errno.ENXIO, "Cannot reconfigure DC vm service: {0}".format(str(e)))
示例4: send
# 需要导入模块: from datastore.config import ConfigNode [as 别名]
# 或者: from datastore.config.ConfigNode import get [as 别名]
def send(self, mailmessage, mail=None):
if mail is None:
mail = ConfigNode("mail", self.configstore).__getstate__()
if not mail.get("server") or not mail.get("port"):
raise RpcException(errno.EINVAL, "You must provide an outgoing server and port when sending mail")
to = mailmessage.get("to")
attachments = mailmessage.get("attachments")
subject = mailmessage.get("subject")
extra_headers = mailmessage.get("extra_headers")
if not to:
to = self.dispatcher.call_sync("user.query", [("username", "=", "root")], {"single": True})
if to and to.get("email"):
to = [to["email"]]
if attachments:
msg = MIMEMultipart()
msg.preamble = mailmessage["message"]
list(map(lambda attachment: msg.attach(attachment), attachments))
else:
msg = MIMEText(mailmessage["message"], _charset="utf-8")
if subject:
msg["Subject"] = subject
msg["From"] = mailmessage["from"] if mailmessage.get("from") else mail["from"]
msg["To"] = ", ".join(to)
msg["Date"] = formatdate()
local_hostname = socket.gethostname()
version = self.dispatcher.call_sync("system.info.version").split("-")[0].lower()
msg["Message-ID"] = "<{0}-{1}.{2}@{3}>".format(
version,
datetime.utcnow().strftime("%Y%m%d.%H%M%S.%f"),
base64.urlsafe_b64encode(os.urandom(3)),
local_hostname,
)
if not extra_headers:
extra_headers = {}
for key, val in list(extra_headers.items()):
if key in msg:
msg.replace_header(key, val)
else:
msg[key] = val
msg = msg.as_string()
try:
if mail["encryption"] == "SSL":
klass = smtplib.SMTP_SSL
else:
klass = smtplib.SMTP
server = klass(mail["server"], mail["port"], timeout=300, local_hostname=local_hostname)
if mail["encryption"] == "TLS":
server.starttls()
if mail["auth"]:
server.login(mail["user"], mail["pass"])
server.sendmail(mail["from"], to, msg)
server.quit()
except smtplib.SMTPAuthenticationError as e:
raise RpcException(errno.EACCES, "Authentication error: {0} {1}".format(e.smtp_code, e.smtp_error))
except Exception as e:
logger.error("Failed to send email: {0}".format(str(e)), exc_info=True)
raise RpcException(errno.EFAULT, "Email send error: {0}".format(str(e)))
except:
raise RpcException(errno.EFAULT, "Unexpected error")
示例5: send
# 需要导入模块: from datastore.config import ConfigNode [as 别名]
# 或者: from datastore.config.ConfigNode import get [as 别名]
def send(self, mailmessage, mail=None):
if mail is None:
mail = ConfigNode('mail', self.configstore).__getstate__()
if not mail.get('server') or not mail.get('port'):
raise RpcException(
errno.EINVAL,
'You must provide an outgoing server and port when sending mail',
)
to = mailmessage.get('to')
attachments = mailmessage.get('attachments')
subject = mailmessage.get('subject')
extra_headers = mailmessage.get('extra_headers')
if not to:
to = self.dispatcher.call_sync(
'users.query', [('username', '=', 'root')], {'single': True})
if to and to.get('email'):
to = [to['email']]
if attachments:
msg = MIMEMultipart()
msg.preamble = mailmessage['message']
list(map(lambda attachment: msg.attach(attachment), attachments))
else:
msg = MIMEText(mailmessage['message'], _charset='utf-8')
if subject:
msg['Subject'] = subject
msg['From'] = mailmessage['from'] if mailmessage.get('from') else mail['from']
msg['To'] = ', '.join(to)
msg['Date'] = formatdate()
local_hostname = socket.gethostname()
version = self.dispatcher.call_sync('system.info.version').split('-')[0].lower()
msg['Message-ID'] = "<{0}-{1}.{2}@{3}>".format(
version,
datetime.utcnow().strftime("%Y%m%d.%H%M%S.%f"),
base64.urlsafe_b64encode(os.urandom(3)),
local_hostname)
if not extra_headers:
extra_headers = {}
for key, val in list(extra_headers.items()):
if key in msg:
msg.replace_header(key, val)
else:
msg[key] = val
msg = msg.as_string()
try:
if mail['encryption'] == 'SSL':
klass = smtplib.SMTP_SSL
else:
klass = smtplib.SMTP
server = klass(mail['server'], mail['port'], timeout=300, local_hostname=local_hostname)
if mail['encryption'] == 'TLS':
server.starttls()
if mail['auth']:
server.login(mail['user'], mail['pass'])
server.sendmail(mail['from'], to, msg)
server.quit()
except smtplib.SMTPAuthenticationError as e:
raise RpcException(errno.EACCES, 'Authentication error: {0} {1}'.format(
e.smtp_code, e.smtp_error))
except Exception as e:
logger.error('Failed to send email: {0}'.format(str(e)), exc_info=True)
raise RpcException(errno.EFAULT, 'Email send error: {0}'.format(str(e)))
except:
raise RpcException(errno.EFAULT, 'Unexpected error')