コード例 #1
0
ファイル: test.py プロジェクト: debug001/autorelease
def main(id, run_id, project, group, percent, stat):
    """ A demo daemon main routine, write a datestamp to
        /tmp/daemon-log every 10 seconds.
    """
    import time

    mysql_conn = Mysql(
        host='127.0.0.1',
        user='******',
        password='******',
        database='autorelease',
        )

    mongo_conn = Mongo(
    host='127.0.0.1',
    database='log',
    table='log_' + id,
    )


                 #stat: u(update)  ro r(rollback)

    try:
        int(percent)
    except:
        l = Log(project, group, percent)
    else:
        l = Log(project, group, "%s%%" % percent)

    content = l.load()


    mongo_conn.drop()

    mongo_conn.insert(
        id=id,
        run_id=run_id,
        content="",
        update_time=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(time.time())))
    )

    while True:
        content = l.load()
        result = os.popen("/usr/local/ctier/pkgs/ctl-3.6.1/bin/ctl-queue").read()

        if run_id in result:
            mongo_conn.update(condition={'id': id}, data={"content": content})
            continue
        else:
            mongo_conn.update(condition={'id': id}, data={"content": content})
            if stat == 'u':
                mysql_conn.save(
                    "update task_content set finish_time = '%s', status = '102' where id = '%s'" % (int(time.time()), id))
                time.sleep(10)
                send("", id, project, 102)

            #history

                content_result = Content.objects.filter(id=id, project=project, env=percent).order_by('-finish_time').values()[0]

                h = History(
                task_id=content_result['id'],
                type=content_result['type'],
                project=content_result['project'],
                env=content_result['env'],
                run_id=content_result['run_id'],
                version=content_result['version'],
                status=content_result['status'],
                deploy_time=content_result['deploy_time'],
                finish_time=content_result['finish_time'],
                create_user=content_result['create_user'],
                deploy_user=content_result['deploy_user'],
                )
                h.save()
            elif stat == 'r':
                mysql_conn.save(
                    "update task_content set finish_time = '%s', status = '105' where id = '%s'" % (int(time.time()), id))
                time.sleep(10)

                rollback_history_id = Rollback.objects.filter(task_id=id).order_by('-start_time').values()[0]['id']
                Rollback.objects.filter(id=rollback_history_id, task_id=id).update(finish_time=int(time.time()))
                send("", id, project, 105)
            exit()

        time.sleep(10)
コード例 #2
0
ファイル: log_tail.py プロジェクト: zhangbin1988/autorelease
)



while True:

    content = l.load()
    result = os.popen("/usr/local/ctier/pkgs/ctl-3.6.1/bin/ctl-queue").read()

    if run_id in result:
        mongo_conn.update(condition={'id':id}, data={"content":content})
        continue
    else:
        mongo_conn.update(condition={'id':id}, data={"content":content})
        if stat == 'u':
            mysql_conn.save("update task_content set finish_time = '%s', status = '102' where id = '%s'" % (int(time.time()), id))
            time.sleep(10)


            #history
            print "histroy: "
            print id, project, percent

            content_result = Content.objects.filter(id=id, project=project, env=percent).order_by('-finish_time').values()[0]

            h = History(
                task_id = content_result['id'],
                type = content_result['type'],
                project = content_result['project'],
                env = content_result['env'],
                run_id = content_result['run_id'],
コード例 #3
0
 for k, v in n.analysis().iteritems():
     result = mysql_conn.fetch("select count(id) from project_node where project = '%s' and hostname = '%s'" % (project, v['hostname']))
     if result['count(id)']:
         mysql_conn.save("""
         update project_node set
         name = '{name}',
         description = '{description}',
         tags = '{tags}',
         ctlusername = '******',
         osfamily = '{osfamily}',
         osname = '{osname}',
         osarch = '{osarch}',
         osversion = '{osversion}',
         updatetime = '{updatetime}'
         where project = '{project}' and hostname = '{hostname}'
         """.format(
             project = project,
             name = v['name'],
             description = v['description'],
             tags = v['tags'],
             ctlusername = v['ctlUsername'],
             osfamily = v['osFamily'],
             osname = v['osName'],
             osarch = v['osArch'],
             osversion = v['osVersion'],
             hostname = v['hostname'],
             updatetime = now,
         )
         )
     else:
         mysql_conn.save("""
         insert into project_node ()values(