当前位置: 首页>>代码示例>>Python>>正文


Python helpers.user_from_email函数代码示例

本文整理汇总了Python中mist.core.helpers.user_from_email函数的典型用法代码示例。如果您正苦于以下问题:Python user_from_email函数的具体用法?Python user_from_email怎么用?Python user_from_email使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了user_from_email函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: execute

 def execute(self, email, cloud_id):
     log.warn('Running list images for user %s cloud %s' % (email, cloud_id))
     from mist.io import methods
     user = user_from_email(email)
     images = methods.list_images(user, cloud_id)
     log.warn('Returning list images for user %s cloud %s' % (email, cloud_id))
     return {'cloud_id': cloud_id, 'images': images}
开发者ID:bergsoftplus,项目名称:mist.io,代码行数:7,代码来源:tasks.py

示例2: error_rerun_handler

    def error_rerun_handler(self, exc, errors, email, backend_id):
        from mist.io.methods import notify_user

        if len(errors) < 6:
            return self.result_fresh  # Retry when the result is no longer fresh

        user = user_from_email(email)

        if len(errors) == 6: # If does not respond for a minute
            notify_user(user, 'Backend %s does not respond' % user.backends[backend_id].title,
                        email_notify=False, backend_id=backend_id)

        # Keep retrying for 30 minutes
        times = [60, 60, 120, 300, 600, 600]
        index = len(errors) - 6
        if index < len(times):
            return times[index]
        else: # If backend still unresponsive disable it & notify user
            with user.lock_n_load():
                user.backends[backend_id].enabled = False
                user.save()
            notify_user(user, "Backend %s disabled after not responding for 30mins" % user.backends[backend_id].title,
                        email_notify=True, backend_id=backend_id)
            log_event(user.email, 'incident', action='disable_backend',
                      backend_id=backend_id, error="Backend unresponsive")
开发者ID:Gazzonyx,项目名称:mist.io,代码行数:25,代码来源:tasks.py

示例3: execute

 def execute(self, email, backend_id):
     log.warn('Running list networks for user %s backend %s' % (email, backend_id))
     from mist.io import methods
     user = user_from_email(email)
     networks = methods.list_networks(user, backend_id)
     log.warn('Returning list networks for user %s backend %s' % (email, backend_id))
     return {'backend_id': backend_id, 'networks': networks}
开发者ID:Gazzonyx,项目名称:mist.io,代码行数:7,代码来源:tasks.py

示例4: execute

 def execute(self, email, backend_id):
     log.warn('Running list machines for user %s backend %s' % (email, backend_id))
     from mist.io import methods
     user = user_from_email(email)
     machines = methods.list_machines(user, backend_id)
     log.warn('Returning list machines for user %s backend %s' % (email, backend_id))
     return {'backend_id': backend_id, 'machines': machines}
开发者ID:zackxue,项目名称:mist.io,代码行数:7,代码来源:tasks.py

示例5: error_rerun_handler

 def error_rerun_handler(self, exc, errors, email, backend_id):
     if len(errors) < 6:
         return self.result_fresh  # Retry when the result is no longer fresh
     user = user_from_email(email)
     with user.lock_n_load():
         user.backends[backend_id].enabled = False
         user.save()
开发者ID:zackxue,项目名称:mist.io,代码行数:7,代码来源:tasks.py

示例6: deploy_collectd

def deploy_collectd(email, backend_id, machine_id, extra_vars):
    if not multi_user:
        from mist.io.methods import deploy_collectd as deploy_collectd_method
    else:
        from mist.core.methods import deploy_collectd as deploy_collectd_method
    user = user_from_email(email)
    deploy_collectd_method(user, backend_id, machine_id, extra_vars)
开发者ID:zackxue,项目名称:mist.io,代码行数:7,代码来源:tasks.py

示例7: azure_post_create_steps

def azure_post_create_steps(self, email, backend_id, machine_id, monitoring, command,
                      key_id, username, password, public_key):
    from mist.io.methods import ssh_command, connect_provider, enable_monitoring
    from mist.io.methods import notify_user, notify_admin
    user = user_from_email(email)

    try:
        # find the node we're looking for and get its hostname
        conn = connect_provider(user.backends[backend_id])
        nodes = conn.list_nodes()
        node = None
        for n in nodes:
            if n.id == machine_id:
                node = n
                break

        if node and len(node.public_ips):
            # filter out IPv6 addresses
            ips = filter(lambda ip: ':' not in ip, node.public_ips)
            host = ips[0]
        else:
            raise self.retry(exc=Exception(), countdown=120, max_retries=5)

        try:
            #login with user, password. Deploy the public key, enable sudo access for
            #username, disable password authentication and reload ssh.
            #After this is done, call post_deploy_steps if deploy script or monitoring
            #is provided
            ssh=paramiko.SSHClient()
            ssh.load_system_host_keys()
            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            ssh.connect(host, username=username, password=password)
            ssh.exec_command('mkdir -p ~/.ssh && echo "%s" >> ~/.ssh/authorized_keys && chmod -R 700 ~/.ssh/' % public_key)

            chan = ssh.invoke_shell()
            chan = ssh.get_transport().open_session()
            chan.get_pty()
            chan.exec_command('sudo su -c \'echo "%s ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers\' ' % username)
            chan.send('%s\n' % password)

            chan = ssh.invoke_shell()
            chan = ssh.get_transport().open_session()
            chan.get_pty()
            chan.exec_command('sudo su -c \'echo "%s ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/waagent\' ' % username)
            chan.send('%s\n' % password)

            cmd = 'sudo su -c \'sed -i "s|[#]*PasswordAuthentication yes|PasswordAuthentication no|g" /etc/ssh/sshd_config &&  /etc/init.d/ssh reload; service ssh reload\' '
            ssh.exec_command(cmd)
            ssh.close()

            if command or monitoring:
                post_deploy_steps.delay(email, backend_id, machine_id,
                                          monitoring, command, key_id)

        except Exception as exc:
            raise self.retry(exc=exc, countdown=60, max_retries=10)
    except Exception as exc:
        if str(exc).startswith('Retry'):
            raise
开发者ID:jayakumark,项目名称:mist.io,代码行数:59,代码来源:tasks.py

示例8: create_machine_async

def create_machine_async(email, backend_id, key_id, machine_name, location_id,
                         image_id, size_id, script, image_extra, disk,
                          image_name, size_name, location_name, ips, monitoring,
                          networks, docker_env, docker_command,
                          script_id=None, script_params=None,
                          quantity=1, persist=False, job_id=None,
                          docker_port_bindings={}, docker_exposed_ports={},
                          hostname='', plugins=None):
    from multiprocessing.dummy import Pool as ThreadPool
    from mist.io.methods import create_machine
    from mist.io.exceptions import MachineCreationError
    log.warn('MULTICREATE ASYNC %d' % quantity)

    if multi_user:
        from mist.core.helpers import log_event
    else:
        log_event = lambda *args, **kwargs: None
    job_id = job_id or uuid.uuid4().hex

    log_event(email, 'job', 'async_machine_creation_started', job_id=job_id,
              backend_id=backend_id, script=script, script_id=script_id,
              script_params=script_params, monitoring=monitoring,
              persist=persist, quantity=quantity)

    THREAD_COUNT = 5
    pool = ThreadPool(THREAD_COUNT)

    names = []
    for i in range(1, quantity+1):
        names.append('%s-%d' % (machine_name,i))

    user = user_from_email(email)
    specs = []
    for name in names:
        specs.append((
            (user, backend_id, key_id, name, location_id, image_id,
             size_id, script, image_extra, disk, image_name, size_name,
             location_name, ips, monitoring, networks, docker_env,
             docker_command, 22, script_id, script_params, job_id),
            {'hostname': hostname, 'plugins': plugins}
        ))

    def create_machine_wrapper(args_kwargs):
        args, kwargs = args_kwargs
        error = False
        try:
            node = create_machine(*args, **kwargs)
        except MachineCreationError as exc:
            error = str(exc)
        except Exception as exc:
            error = repr(exc)
        finally:
            name = args[3]
            log_event(email, 'job', 'machine_creation_finished', job_id=job_id,
                      backend_id=backend_id, machine_name=name, error=error)

    pool.map(create_machine_wrapper, specs)
    pool.close()
    pool.join()
开发者ID:AVD087,项目名称:mist.io,代码行数:59,代码来源:tasks.py

示例9: execute

    def execute(self, email, backend_id):
        log.warn("Running list images for user %s backend %s" % (email, backend_id))
        from mist.io import methods

        user = user_from_email(email)
        images = methods.list_images(user, backend_id)
        log.warn("Returning list images for user %s backend %s" % (email, backend_id))
        return {"backend_id": backend_id, "images": images}
开发者ID:darrentangdt,项目名称:mist.io,代码行数:8,代码来源:tasks.py

示例10: hpcloud_post_create_steps

def hpcloud_post_create_steps(self, email, backend_id, machine_id, monitoring,
                              command, key_id, username, password, public_key,
                              script_id='', script_params='', job_id=None,
                              hostname='', plugins=None,
                              post_script_id='', post_script_params=''):
    from mist.io.methods import connect_provider
    user = user_from_email(email)

    try:
        conn = connect_provider(user.backends[backend_id])
        nodes = conn.list_nodes()
        node = None

        for n in nodes:
            if n.id == machine_id:
                node = n
                break

        if node and node.state == 0 and len(node.public_ips):
            # filter out IPv6 addresses
            ips = filter(lambda ip: ':' not in ip, node.public_ips)
            host = ips[0]

            post_deploy_steps.delay(
                email, backend_id, machine_id, monitoring, command, key_id,
                script_id=script_id, script_params=script_params,
                job_id=job_id, hostname=hostname, plugins=plugins,
                post_script_id=post_script_id,
                post_script_params=post_script_params,
            )

        else:
            try:
                available_networks = conn.ex_list_networks()
                external_networks = [net for net in available_networks if net.router_external]
                if external_networks:
                    ext_net_id = external_networks[0].id
                else:
                    ext_net_id = ""

                ports = conn.ex_list_ports()

                port = [port for port in ports if port.get("device_id", "") == node.id][0]

                ip = conn.ex_create_floating_ip(ext_net_id, port['id'])
                post_deploy_steps.delay(
                    email, backend_id, machine_id, monitoring, command, key_id,
                    script_id=script_id, script_params=script_params,
                    job_id=job_id, hostname=hostname, plugins=plugins,
                    post_script_id=post_script_id,
                    post_script_params=post_script_params,
                )

            except:
                raise self.retry(exc=Exception(), max_retries=20)
    except Exception as exc:
        if str(exc).startswith('Retry'):
            raise
开发者ID:Gazzonyx,项目名称:mist.io,代码行数:58,代码来源:tasks.py

示例11: rackspace_first_gen_post_create_steps

def rackspace_first_gen_post_create_steps(
    self, email, cloud_id, machine_id, monitoring, command, key_id,
    password, public_key, username='root', script_id='', script_params='',
    job_id=None, hostname='', plugins=None, post_script_id='',
    post_script_params='', cronjob={}
):
    from mist.io.methods import connect_provider
    user = user_from_email(email)

    try:
        # find the node we're looking for and get its hostname
        conn = connect_provider(user.clouds[cloud_id])
        nodes = conn.list_nodes()
        node = None
        for n in nodes:
            if n.id == machine_id:
                node = n
                break

        if node and node.state == 0 and len(node.public_ips):
            # filter out IPv6 addresses
            ips = filter(lambda ip: ':' not in ip, node.public_ips)
            host = ips[0]
        else:
            raise self.retry(exc=Exception(), max_retries=20)

        try:
            # login with user, password and deploy the ssh public key.
            # Disable password authentication and reload ssh.
            # After this is done, call post_deploy_steps
            # if deploy script or monitoring
            # is provided
            ssh=paramiko.SSHClient()
            ssh.load_system_host_keys()
            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            ssh.connect(host, username=username, password=password, timeout=None, allow_agent=False, look_for_keys=False)

            ssh.exec_command('mkdir -p ~/.ssh && echo "%s" >> ~/.ssh/authorized_keys && chmod -R 700 ~/.ssh/' % public_key)

            cmd = 'sudo su -c \'sed -i "s|[#]*PasswordAuthentication yes|PasswordAuthentication no|g" /etc/ssh/sshd_config &&  /etc/init.d/ssh reload; service ssh reload\' '
            ssh.exec_command(cmd)

            ssh.close()

            post_deploy_steps.delay(
                email, cloud_id, machine_id, monitoring, command, key_id,
                script_id=script_id, script_params=script_params,
                job_id=job_id, hostname=hostname, plugins=plugins,
                post_script_id=post_script_id,
                post_script_params=post_script_params, cronjob=cronjob
            )

        except Exception as exc:
            raise self.retry(exc=exc, countdown=10, max_retries=15)
    except Exception as exc:
        if str(exc).startswith('Retry'):
            raise
开发者ID:AlphaStaxLLC,项目名称:mist.io,代码行数:57,代码来源:tasks.py

示例12: update_machine_count

def update_machine_count(email, backend_id, machine_count):
    if not multi_user:
        return

    user = user_from_email(email)
    with user.lock_n_load():
        user.backends[backend_id].machine_count = machine_count
        user.total_machine_count = sum([backend.machine_count for backend in user.backends.values()])
        user.save()
开发者ID:darrentangdt,项目名称:mist.io,代码行数:9,代码来源:tasks.py

示例13: ssh_command

def ssh_command(email, backend_id, machine_id, host, command, key_id=None, username=None, password=None, port=22):
    user = user_from_email(email)
    shell = Shell(host)
    key_id, ssh_user = shell.autoconfigure(user, backend_id, machine_id, key_id, username, password, port)
    retval, output = shell.command(command)
    shell.disconnect()
    if retval:
        from mist.io.methods import notify_user

        notify_user(user, "Async command failed for machine %s (%s)" % (machine_id, host), output)
开发者ID:darrentangdt,项目名称:mist.io,代码行数:10,代码来源:tasks.py

示例14: run_deploy_script

def run_deploy_script(self, email, backend_id, machine_id, command,
                      key_id=None, username=None, password=None, port=22):
    from mist.io.methods import ssh_command, connect_provider
    from mist.io.methods import notify_user, notify_admin

    user = user_from_email(email)

    try:
        # find the node we're looking for and get its hostname
        conn = connect_provider(user.backends[backend_id])
        nodes = conn.list_nodes()
        node = None
        for n in nodes:
            if n.id == machine_id:
                node = n
                break

        if node and len(node.public_ips):
            # filter out IPv6 addresses
            ips = filter(lambda ip: ':' not in ip, node.public_ips)
            host = ips[0]
        else:
            raise self.retry(exc=Exception(), countdown=60, max_retries=5)

        try:
            from mist.io.shell import Shell
            shell = Shell(host)
            key_id, ssh_user = shell.autoconfigure(user, backend_id, node.id,
                                                   key_id, username, password, port)
            start_time = time()
            retval, output = shell.command(command)
            execution_time = time() - start_time
            shell.disconnect()
            msg = """
Command: %s
Return value: %s
Duration: %s seconds
Output:
%s""" % (command, retval, execution_time, output)

            if retval:
                notify_user(user, "Deployment script failed for machine %s (%s)" % (node.name, node.id), msg)
                amqp_log("Deployment script failed for user %s machine %s (%s): %s" % (user, node.name, node.id, msg))
            else:
                notify_user(user, "Deployment script succeeded for machine %s (%s)" % (node.name, node.id), msg)
                amqp_log("Deployment script succeeded for user %s machine %s (%s): %s" % (user, node.name, node.id, msg))

        except ServiceUnavailableError as exc:
            raise self.retry(exc=exc, countdown=60, max_retries=5)
    except Exception as exc:
        if str(exc).startswith('Retry'):
            return
        amqp_log("Deployment script failed for machine %s in backend %s by user %s after 5 retries: %s" % (node.id, backend_id, email, repr(exc)))
        notify_user(user, "Deployment script failed for machine %s after 5 retries" % node.id)
        notify_admin("Deployment script failed for machine %s in backend %s by user %s after 5 retries" % (node.id, backend_id, email), repr(exc))
开发者ID:dz0ny,项目名称:mist.io,代码行数:55,代码来源:tasks.py

示例15: error_rerun_handler

    def error_rerun_handler(self, exc, errors, email, cloud_id):
        from mist.io.methods import notify_user

        if len(errors) < 6:
            return self.result_fresh  # Retry when the result is no longer fresh

        user = user_from_email(email)

        if len(errors) == 6:  # If does not respond for a minute
            notify_user(user, 'Cloud %s does not respond'
                        % user.clouds[cloud_id].title,
                        email_notify=False, cloud_id=cloud_id)

        # Keep retrying every 30 secs for 10 minutes, then every 60 secs for
        # 20 minutes and finally every 20 minutes
        times = [30]*20 + [60]*20
        index = len(errors) - 6
        if index < len(times):
            return times[index]
        else:
            return 20*60
开发者ID:AlphaStaxLLC,项目名称:mist.io,代码行数:21,代码来源:tasks.py


注:本文中的mist.core.helpers.user_from_email函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。