Пример #1
0
    def post(self):
        data = tornado.escape.json_decode(self.request.body)

        handler = Model('7LayerNginxAccess')
        item = handler.Get7LayerNginxItemListByIdcService(
            data['idc'], data['service'])

        if item:
            self.write('serviceName=%s and idc=%s, existed' %
                       (data['service'], data['idc']))
            print 'serviceName=%s and idc=%s, existed in ETCD' % (
                data['service'], data['idc'])
        else:
            client = buildEtcdClient(handler.config)

            subDomainKey = "/7/%s/%s/subDomain" % (data['idc'],
                                                   data['service'])
            subDomainValue = data['domain']
            upStreamKey = "/7/%s/%s/upStream" % (data['idc'], data['service'])
            vIpPortKey = "/7/%s/%s/vIpPort" % (data['idc'], data['service'])

            if data['vip']:
                vIpPortValue = data['vip'] + ':' + data['vport']
            else:
                vIpPortValue = data['vport']

            rs_list = []
            for rs in data['rs']:
                rs_str = rs['website_ip'] + ':' + rs[
                    'website_port'] + ' weight=' + rs[
                        'website_weight'] + ' max_fails=' + rs[
                            'healthchecker_max_fails'] + ' fail_timeout=' + rs[
                                'healthchecker_fail_timeout']
                rs_list.append(rs_str)

            upStreamValue = ",".join(rs_list)

            print "nginxNewServiceItem writes ETCD: %s=%s, %s=%s, %s=%s" % (
                subDomainKey, subDomainValue, upStreamKey, upStreamValue,
                vIpPortKey, vIpPortValue)

            try:
                handler.Insert7LayerNginxItem(data)

                client.write(subDomainKey, subDomainValue)
                client.write(upStreamKey, upStreamValue)
                client.write(vIpPortKey, vIpPortValue)

                self.write('etcd new node success')
                print 'serviceName=%s and idc=%s, added successful in ETCD' % (
                    data['service'], data['idc'])
            except:
                self.write('etcd new node failure')
                print 'serviceName=%s and idc=%s, added failure in ETCD' % (
                    data['service'], data['idc'])
Пример #2
0
    def get(self):
        idcName = self.get_argument("idc", None)
        serviceName = self.get_argument("service", None)

        handler = Model("7LayerNginxAccess")
        service_info = handler.Get7LayerNginxItemListByIdcService(
            idcName, serviceName)

        config = handler.config
        cluster = config['7nginxCluster']

        self.render2('7_layer_access_edit_item.html',
                     instance=service_info[0],
                     idcList=cluster['idc'])
Пример #3
0
    def get(self):
        '''
        get rs list
        '''

        idcName = self.get_argument("idc", None)
        serviceName = self.get_argument("service", None)

        handler = Model('7LayerNginxAccess')

        instance = handler.Get7LayerNginxItemListByIdcService(
            idcName, serviceName)

        if instance[0]:
            for index, rs in enumerate(instance[0]['rs']):
                rs['index'] = index

            self.write(json.dumps(instance[0]['rs']))