def upgrade_server():
"""
Upgrade the server as a root user
"""
run('apt-get update && apt-get -y upgrade')
# because ubuntu 16.04 no longer has python2.7
run('sudo apt-get -y install python-simplejson')
run('sudo reboot')
python类user()的实例源码
6_4_install_python_package_remotely.py 文件源码
项目:Python-Network-Programming-Cookbook-Second-Edition
作者: PacktPublishing
项目源码
文件源码
阅读 20
收藏 0
点赞 0
评论 0
def remote_server():
env.hosts = ['127.0.0.1']
env.user = prompt('Enter user name: ')
env.password = getpass('Enter password: ')
6_5_run_mysql_command_remotely.py 文件源码
项目:Python-Network-Programming-Cookbook-Second-Edition
作者: PacktPublishing
项目源码
文件源码
阅读 20
收藏 0
点赞 0
评论 0
def remote_server():
env.hosts = ['127.0.0.1']
env.user = prompt('Enter your system username: ')
env.password = getpass('Enter your system user password: ')
env.mysqlhost = 'localhost'
env.mysqluser = prompt('Enter your db username: ')
env.mysqlpassword = getpass('Enter your db user password: ')
env.db_name = ''
6_5_run_mysql_command_remotely.py 文件源码
项目:Python-Network-Programming-Cookbook-Second-Edition
作者: PacktPublishing
项目源码
文件源码
阅读 22
收藏 0
点赞 0
评论 0
def create_db():
"""Create a MySQL DB for App version"""
if not env.db_name:
db_name = prompt("Enter the DB name:")
else:
db_name = env.db_name
run('echo "CREATE DATABASE %s default character set utf8 collate utf8_unicode_ci;"|mysql --batch --user=%s --password=%s --host=%s'\
% (db_name, env.mysqluser, env.mysqlpassword, env.mysqlhost), pty=True)
def setup_fabric():
env.user = 'root'
env.abort_exception = UpgradeError
env.key_filename = settings.SSH_KEY_FILENAME
env.warn_only = True
output.stdout = False
output.aborts = False
def pre_start_hook(app):
from ..nodes.models import Node
# env.warn_only = True
env.user = 'root'
env.key_filename = SSH_KEY_FILENAME
output.stdout = False
output.running = False
PLUGIN_DIR = '/usr/libexec/kubernetes/kubelet-plugins/net/exec/kuberdock/'
with app.app_context():
for node in Node.query.all():
env.host_string = node.hostname
put('./node_network_plugin.sh', PLUGIN_DIR + 'kuberdock')
put('./node_network_plugin.py', PLUGIN_DIR + 'kuberdock.py')
run('systemctl restart kuberdock-watcher')
print 'Kuberdock node parts are updated'
def __init__(self):
env.user = 'root'
env.skip_bad_hosts = True
env.key_filename = SSH_KEY_FILENAME
self._cached_drives = None
self._cached_node_ip = None
def get_by_user(self, user, device_id=None):
"""
Returns list of persistent drives of a certain user
:param user: object -> user object got from SQLAlchemy
:return: list -> list of dicts
"""
if device_id is None:
return self.get_drives(user_id=user.id)
drives = [item for item in self.get_drives(user_id=user.id)
if item['id'] == device_id]
if drives:
return drives[0]
def get_user_unmapped_drives(self, user):
"""
Returns unmapped drives of a user
:return: list -> list of dicts of unmapped drives of a user
"""
return [d for d in self.get_drives(user.id) if not d['in_use']]
def delete_by_id(self, drive_id):
"""
Deletes a user drive
:param drive_id: string -> drive id
Raises DriveIsLockedError if drive is locked by another operation at
the moment.
"""
with drive_lock(drive_id=drive_id):
pd = PersistentDisk.query.filter(
PersistentDisk.id == drive_id
).first()
if not pd:
current_app.logger.warning(
'Unable to delete drive. '
'Unknown drive id: %s',
drive_id
)
return 1
# self.end_stat(pd.name, pd.owner_id)
rv = self._delete_pd(pd)
if rv == 0 and self._cached_drives:
self._cached_drives = [
d for d in self._cached_drives
if d['id'] != drive_id
]
return rv
def start_stat(size, name=None, user_id=None):
"""
Start counting usage statistics.
You need to provide `name` and `user` or `sys_drive_name`
:param size: int -> size in GB
:param name: string -> user's drive name
:param user_id: id of the drive owner
"""
PersistentDiskState.start(user_id, name, size)
def end_stat(name=None, user_id=None):
"""
Finish counting usage statistics.
You need to provide `name` and `user` or `sys_drive_name`
:param name: string -> user's drive name
:param user_id: int -> user object
"""
PersistentDiskState.end(user_id, name)
def __init__(self, user="sympy", repo="sympy",
api_url="https://api.github.com",
authorize_url="https://api.github.com/authorizations",
uploads_url='https://uploads.github.com',
main_url='https://github.com'):
"""Generates all URLs and templates"""
self.user = user
self.repo = repo
self.api_url = api_url
self.authorize_url = authorize_url
self.uploads_url = uploads_url
self.main_url = main_url
self.pull_list_url = api_url + "/repos" + "/" + user + "/" + repo + "/pulls"
self.issue_list_url = api_url + "/repos/" + user + "/" + repo + "/issues"
self.releases_url = api_url + "/repos/" + user + "/" + repo + "/releases"
self.single_issue_template = self.issue_list_url + "/%d"
self.single_pull_template = self.pull_list_url + "/%d"
self.user_info_template = api_url + "/users/%s"
self.user_repos_template = api_url + "/users/%s/repos"
self.issue_comment_template = (api_url + "/repos" + "/" + user + "/" + repo + "/issues/%d" +
"/comments")
self.release_uploads_url = (uploads_url + "/repos/" + user + "/" +
repo + "/releases/%d" + "/assets")
self.release_download_url = (main_url + "/" + user + "/" + repo +
"/releases/download/%s/%s")
def vagrant():
"""
Run commands using vagrant
"""
vc = get_vagrant_config()
# change from the default user to 'vagrant'
env.user = vc['User']
# connect to the port-forwarded ssh
env.hosts = ['%s:%s' % (vc['HostName'], vc['Port'])]
# use vagrant ssh key
env.key_filename = vc['IdentityFile'].strip('"')
# Forward the agent if specified:
env.forward_agent = vc.get('ForwardAgent', 'no') == 'yes'
fabfile.py 文件源码
项目:Django-Web-Development-with-Python
作者: PacktPublishing
项目源码
文件源码
阅读 21
收藏 0
点赞 0
评论 0
def dev():
""" chooses development environment """
env.environment = "dev"
env.hosts = [PRODUCTION_HOST]
env.user = PRODUCTION_USER
print("LOCAL DEVELOPMENT ENVIRONMENT\n")
fabfile.py 文件源码
项目:Django-Web-Development-with-Python
作者: PacktPublishing
项目源码
文件源码
阅读 19
收藏 0
点赞 0
评论 0
def staging():
""" chooses testing environment """
env.environment = "staging"
env.hosts = ["staging.myproject.com"]
env.user = "myproject"
print("STAGING WEBSITE\n")