Esempio n. 1
0
def create_server():
    '''Создает сервер типа farhub '''
    if (API_KEY != request.args.get('api')):
        return jsonify({'error': 'Wrong api key'}), 400
    json_data = request.get_json(force=True)

    try:
        srv = Server.objects.get(hash_id=json_data['hash_id'])
        srv.delete()
    except Exception:
        pass
    finally:
        try:
            coun = Country.objects.get(name=json_data['location'])
        except:
            coun = Country(name=json_data['location'])
            coun.save()
        try:
            server_name = Type_Of_Server.objects.get(
                type_of_server='gtn_farhub')
        except:
            server_name = Type_Of_Server(type_of_server='gtn_farhub')
            server_name.save()
        server = Server(type_of_server=server_name,
                        address=json_data['server_ip'],
                        location=coun,
                        api_key=json_data['api_key'],
                        data=json_data['data'],
                        description=json_data['description'],
                        hash_id=json_data['hash_id'])
        server.save()
        Country.synhro()
        monitoring_service()
        return '200 OK'
Esempio n. 2
0
def add_server():
    url = None
    if "image" in request.files:
        image = request.files["image"]
        image.filename = get_unique_filename(image.filename)
        upload = upload_file_to_s3(image)
        url = upload["url"]

    # print(upload)
    new_server = Server(
        admin_id=request.form['admin_id'],
        name=request.form['name'],
        description=request.form['description'],
        category=request.form['serverCategory'],
        public=(bool(request.form['isPublic'])),
        image_url=url,
    )

    user = User.query.get(request.form['admin_id'])
    user.servers.append(new_server)
    db.session.add(new_server)
    db.session.commit()
    data = new_server.to_dict()
    data['channels'] = []
    return data
Esempio n. 3
0
def create(**kwargs):
    obj = Server(**kwargs)
    db.session.add(obj)
    try:
        db.session.commit()
    except Exception, e:
        raise Exception(e.message.split(")")[1])
Esempio n. 4
0
def servers():
    '''
    For GET requests, return all servers.
    For POST requests, add a new servers.
    '''
    # request is a GET
    if request.method == 'GET':
        all_servers = Server.query.all()
        schema = ServerSchema(many=True, strict=True)
        server_data = schema.dump(all_servers)
        return jsonify(server_data[0])

    # request is a POST
    elif request.method == 'POST':
        ip = request.form.get('IP')
        alias = request.form.get('Alias')
        port = request.form.get('Port')

        server_obj = Server.query.filter_by(ip=ip).first()
        if server_obj is not None:
            return 'server already exists', 400

        server_obj = Server(ip=ip, alias=alias, port=port)
        schema = ServerSchema(strict=True)
        server_data = schema.dump(server_obj)
        return jsonify(server_data[0]), 201
Esempio n. 5
0
    def auto_seed(count):
        for i in range(count):
            admin_id = random.randint(1, count)
            name = fake.slug()
            image = fake.image_url(width=80, height=80)
            public = True
            created_at = datetime.now()
            while image == "https://dummyimage.com/80x80" or image == "https://www.lorempixel.com/80x80" or image == "https://www.lorempixel.com/80/80":
                image = fake.image_url(width=80, height=80)

            seed_server = Server(admin_id=admin_id,
                                 name=name,
                                 image=image,
                                 public=public,
                                 created_at=created_at)

            username = fake.name()
            email = fake.email()
            password = '******'
            profile_picture = fake.image_url(width=80, height=80)
            while profile_picture == "https://dummyimage.com/80x80" or profile_picture == "https://www.lorempixel.com/80x80" or profile_picture == "https://www.lorempixel.com/80/80":
                profile_picture = fake.image_url(width=80, height=80)

            seed_user = User(username=username,
                             email=email,
                             password=password,
                             profile_picture=profile_picture,
                             created_at=created_at)

            seed_user.servers.append(seed_server)
            db.session.add(seed_user)
Esempio n. 6
0
def server_add():
    form = AddServerForm(data=request.get_json())
    if form.validate_on_submit():
        server = Server(name=form.name.data,
                        idc=form.idc.data,
                        instance_id=form.instance_id.data,
                        instance_type=form.instance_type.data,
                        platform=form.platform.data,
                        image_name=form.image_name.data,
                        key_name=form.key_name.data,
                        private_ip=form.private_ip.data,
                        public_ip=form.public_ip.data,
                        block_device=form.block_device.data,
                        subnet=form.subnet.data,
                        create_time=form.create_time.data,
                        category=form.category.data,
                        category_branch=form.category_branch.data,
                        status=form.status.data,
                        description=form.description.data)
        db.session.add(server)
        db.session.commit()
        flash('%s is add.' % form.name.data, 'success')
    else:
        flash_errors(form)
    return redirect(url_for('.server'))
Esempio n. 7
0
def create(**kwargs):
    check_field_exists(Server, kwargs)
    obj = Server(**kwargs)
    db.session.add(obj)
    try:
        db.session.commit()
    except Exception, e:
        raise Exception(e.message.split('"')[1])
Esempio n. 8
0
def create(**kwargs):
    #1.获取参数信息
    check_field_exists(Server, kwargs)
    #2.传参个数验证
    obj = Server(**kwargs)
    #3.插入数据库
    db.session.add(obj)
    db.session.commit()
    return obj.id
Esempio n. 9
0
def create_server():
    if request.method == 'GET':
        return render_template('CreateServer.html')
    elif request.method == 'POST':
        if request.form.get('ssl'):
            s = Server(desc=request.form['desc'],
                       address=request.form['address'],
                       ssl=True,
                       type=request.form['type'],
                       port=request.form['port'])
        else:
            s = Server(desc=request.form['desc'],
                       address=request.form['address'],
                       ssl=False,
                       type=request.form['type'],
                       port=request.form['port'])
        db.session.add(s)
        db.session.commit()
        return render_template('Index.html')
Esempio n. 10
0
def create(**params):
    # 1. 获取参数信息
    check_field_exists(Server, params)

    print inspect.getmembers(Server, predicate=inspect.ismethod(id))

    # 传参的个数需要验证
    obj = Server(**params)

    # 插入到数据库
    db.session.add(obj)
    db.session.commit()
    return obj.id
Esempio n. 11
0
def parse_data(server,response):
    items = []
    clouds = {"KTC":["KT Cloud"],"AWS":["AMAZON AWS"]}
    zones = {"D":["d1/"],"G":["v1/","v2/"]}
    if server.cloudname in clouds["KTC"]:
        if server.zone in zones["D"]:
            for inst in response["servers"]:
                item = Server(
                    tenant_id=inst["tenant_id"],
                    instance_name=inst["name"],
                    instance_id=inst["hostId"],
                    instance_az=inst["OS-EXT-AZ:availability_zone"],
                    instance_flavor_id=inst["flavor"]["id"],
                    instance_key_name=inst["key_name"],
                    instance_status=inst["status"])
                items.append(item)
        elif server.zone in zones["G"]:
            for inst in response["listvirtualmachinesresponse"]["virtualmachine"]:
                item = Server(
                    tenant_id=inst["domainid"],
                    instance_name=inst["name"],
                    instance_id=inst["id"],
                    instance_az=inst["zonename"],
                    instance_flavor_id=inst["templatename"],
                    instance_status=inst["state"])
                # items.append(item)
    elif server.cloudname in clouds["AWS"]:
        for reserv in response["Reservations"]:
            for inst in reserv["Instances"]:
                item = Server(
                    tenant_id=reserv["OwnerId"],
                    instance_id=inst["InstanceId"],
                    instance_az=inst["Placement"]["AvailabilityZone"],
                    instance_flavor_id=inst["InstanceType"],
                    instance_key_name=inst["KeyName"],
                    instance_status=inst["State"]["Name"])
                # items.append(item)
    return items
Esempio n. 12
0
def create(**kwargs):
    # 1  获取用户传入参数
    print kwargs
    # 2  验证参数的合法性
    check_field_exists(Server, kwargs, field_none=False)
    # 3  插入到数据库
    idc = Server(**kwargs)
    db.session.add(idc)

    try:
        db.session.commit()
    except Exception, e:
        current_app.logger.warning("commit error: {}".format(e.message))
        raise Exception("commit error")
Esempio n. 13
0
def create_it_all(user, facter_json, session):
    #TODO check these created status
    (facterversion, created) = get_one_or_create(session, FacterVersion, facterversion = facter_json['facterversion'])
    (architecture, created) = get_one_or_create(session, FacterArchitecture, architecture = facter_json['architecture'])
    (virtual, created) = get_one_or_create(session, FacterVirtual, virtual = facter_json['virtual'])
    (ftype, created) = get_one_or_create(session, FacterType, type = facter_json['type'])
    (manufacturer, created) = get_one_or_create(session, FacterManufacturer, manufacturer = facter_json['manufacturer'])
    (productname, created) = get_one_or_create(session, FacterProductname, productname = facter_json['productname'])
    (processor0, created) = get_one_or_create(session, FacterProcessor, processor0 = facter_json['processor0'])

    (macaddress, created) = get_one_or_create(session, FacterMacaddress, macaddress = facter_json['macaddress'])

    # TODO: Fixme: Need to identify primary disk here, there is another place waiting for the same
    # fix a few lines below. Search for sda...
    blockdevice_sda_size = 0
    if 'blockdevice_sda_size' in facter_json:
        blockdevice_sda_size = facter_json['blockdevice_sda_size']

    facts = FacterFacts(
            is_virtual = facter_json['is_virtual'],
            serialnumber = facter_json['serialnumber'],
            uuid = facter_json['uuid'],
            physicalprocessorcount = facter_json['physicalprocessorcount'],
            processorcount = facter_json['processorcount'],
            memorysize = facter_json['memorysize'],
            memorysize_mb = facter_json['memorysize_mb'],
            blockdevice_sda_size = blockdevice_sda_size,
            facterversion_id = facterversion.id,
            architecture_id = architecture.id,
            virtual_id = virtual.id,
            type_id = ftype.id,
            manufacturer_id = manufacturer.id,
            productname_id = productname.id,
            processor_id = processor0.id,
            facter_json = json.dumps(facter_json))

    facts.add_macaddress(macaddress)

    db.session.add(facts)
    db.session.commit()

    server = Server(owner=user, facter_facts_id=facts.id)
    db.session.add(server)
    db.session.commit()

    activation = Activation(server_id=server.id, user_id=user.id, activation_pin=randrange(1000, 9999))
    db.session.add(activation)
    db.session.commit()

    return (activation, facts, server)
Esempio n. 14
0
def create(**kwargs):
    # 1. 获取参数
    # 2. 验证参数是否合法
    check_field_exists(Server, kwargs, field_none=False)
    server = Server(**kwargs)
    db.session.add(server)
    try:
        db.session.commit()
    except Exception as e:
        current_app.logger.warning("插入错误: {} ".format(e.message))
        raise Exception("commit error")
    # 3. 插入到数据库
    # 4. 返回插入的状态
    return server.id
Esempio n. 15
0
    def test_should_see_data_when_inserted(self):
        expected_result = {
            u'ipaddress': u'127.0.0.1',
            u'hostname': u'localhost',
            u'proxypath': u'localhost.thoughtworks.com'
        }

        test_server = Server('confTest')
        test_server.ipaddress = '127.0.0.1'
        test_server.hostname = 'localhost'
        test_server.variables['proxypath'] = Value(
            'localhost.thoughtworks.com')
        db.session.add(test_server)
        db.session.commit()

        self.assertEqual(test_server.variables, expected_result)
Esempio n. 16
0
def server_add():
    form = serverForm()
    if form.validate_on_submit():
        server_count = Server.query.filter_by(title=form.data['title']).first()
        if server_count:
            flash('添加失败,该名称已存在!', 'error')
            return redirect(url_for('server_add'))
        server = Server(title=form.data['title'], cpu=form.data['cpu'], memory=form.data['memory'], \
                        disk=form.data['disk'], bdwidth=form.data['bdwidth'], \
                        price=form.data['price'], server_type=form.data['server_type'], \
                        server_region=form.data['server_region'])
        db.session.add(server)
        db.session.commit()
        flash('添加成功', 'ok')
        return redirect(url_for('server_add'))
    return render_template('/admin/server_add.html', form=form)
Esempio n. 17
0
def create(**kwargs):
    #1获取参数
    check_field_exists(Server, kwargs)

    #2处理数据
    #print inspect.getmembers(Server, predicate=inspect.is)
    #return 1
    print kwargs
    #3实例化record
    record = Server(**kwargs)
    #4插入到数据库
    db.session.add(record)
    try:
        db.session.commit()
    except Exception, e:
        raise Exception(e.message.split(") ")[1])
Esempio n. 18
0
def create(**kwargs):
    # 1 获取参数
    # print kwargs

    # 2 检查参数
    check_field_exists(Server, kwargs)

    # 3 插入到数据库
    server = Server(**kwargs)
    db.session.add(server)
    try:
        db.session.commit()
    except Exception, e:
        # logging
        current_app.logger.warning("commit error: {}".format(e.message))
        raise Exception("commit error")
Esempio n. 19
0
def userprofile(path):
    if not current_user.is_authenticated:
        return redirect(url_for('login'))

    msg = None
    form = ServerForm(request.form)
    user = User.query.all()
    server = Server.query.all()
    if request.method == 'GET':
        return render_template('layouts/default.html',
                               content=render_template('pages/' + path,
                                                       server=server,
                                                       user=user,
                                                       form=form,
                                                       msg=msg))
    if form.validate_on_submit:
        try:
            name_serv = request.form.get('name_serv', '', type=str)
            ip_serv = request.form.get('ip_serv', '', type=str)
            port_serv = request.form.get('port_serv', '', type=str)
            username_fk = request.form.get('username_fk', '', type=str)
            server1 = Server(name_serv, ip_serv, port_serv, username_fk)
            server1.save1()

            serv1_nume = Server.query.filter_by(name_serv=name_serv).first()
            serv1_port = Server.query.filter_by(port_serv=port_serv).first()
            #if serv1_nume:
            #if serv1_nume.name_serv == name_serv:
            #msg = "Numele pentru server este deja ocupat. Va rugam sa introduceti altul."
            #if serv1_port:
            #if serv1_nume.port_serv == port_serv:
            #msg = "Port la adresa respectiva existent"

        except Exception:
            return render_template('layouts/default.html',
                                   content=render_template('pages/' + path,
                                                           server=server,
                                                           user=user,
                                                           form=form,
                                                           msg=msg))

    return render_template('layouts/default.html',
                           content=render_template('pages/' + path,
                                                   server=server,
                                                   user=user,
                                                   form=form,
                                                   msg=msg))
Esempio n. 20
0
def new():
    new_server = Server()
    variable = Variable()
    variable_form = VariableForm(obj=variable)
    form = ServerForm(request.form, obj=new_server)
    if form.add_variable.data:
        form.variables.append_entry(variable_form)
    elif form.delete_variable.data and len(form.variables.entries) > 1:
        form.variables.pop_entry()
    elif form.validate_on_submit():
        if form.create_server.data:
            form.populate_obj(new_server)
            db.session.add(new_server)
            db.session.commit()
            create_yml()
            return redirect('/servers')
    return render_template('new_server.html', form=form)
Esempio n. 21
0
def create(**params):
    # 1. 获取参数信息
    check_field_exists(Server, params)

    # 传参的个数需要验证
    obj = Server(**params)
    print "getobj"

    # 插入到数据库
    db.session.add(obj)
    print "obj"
    try:
        db.session.commit()
        print "aa"
    except Exception, e:
        print e.message.split()[1]
        raise Exception(e.message)
Esempio n. 22
0
    def post(self):
        form = DeployCustomServerForm()
        form.region.choices = get_active_hosts_by_type('free')
        if form.validate_on_submit():
            try:
                # Generate UUID
                gen_uuid = str(uuid.uuid4())

                # Create POST request to murmur-rest api to create a new server
                welcome_msg = "Welcome. This is a custom GuildBit Mumble instance. View details on this server by " \
                              "<a href='http://guildbit.com/server/%s'>clicking here.</a>" % gen_uuid
                payload = {
                    'password': form.password.data,
                    'welcometext': welcome_msg,
                    'users': form.slots.data,
                    'registername': form.channel_name.data
                }
                server_id = murmur.create_server_by_region(
                    form.region.data, payload)

                # Create database entry
                s = Server()
                s.mumble_host = murmur.get_murmur_hostname(form.region.data)
                s.duration = 0
                s.password = form.password.data
                s.uuid = gen_uuid
                s.mumble_instance = server_id
                s.status = 'active'
                s.type = 'custom'
                db.session.add(s)
                db.session.commit()

                return redirect('/admin/servers/%s' % s.uuid)

            except:
                import traceback

                db.session.rollback()
                traceback.print_exc()

            return render_template('admin/server.html', form=form)
        return render_template('admin/server.html', form=form)
Esempio n. 23
0
def create_server():
    form = ServerForm()
    # form['csrf_token'].data = request.cookies['csrf_token']
    if form.is_submitted():
        if ("image" in request.files):
            image = request.files["image"]
            image.filename = get_unique_filename(image.filename)
            upload = upload_file_to_s3(image)
            url = upload["url"]
        else:
            url = ""
        server = Server(admin_id=form.data['admin_id'],
                        name=form.data['name'],
                        image=url,
                        public=form.data['public'],
                        created_at=form.data['created_at'])
        db.session.add(server)
        db.session.commit()
        return server.to_dict()
    return "did not go thru", 401
Esempio n. 24
0
def create_server():
    """Create new server instance."""
    json_data = request.get_json()
    if not json_data:
        return jsonify({'error': 'No required input data provided.'}), 400

    data, errors = Server.from_dict(json_data)
    if errors:
        return jsonify(errors), 400

    server = Server.get(data.get('endpoint'))
    if server:
        return jsonify({'error':
                        'Server with this endpoint already exists.'}), 400

    # Create a new server instance
    server = Server(data)

    response = server.to_dict()
    return jsonify(response), 201
Esempio n. 25
0
def create(**kwargs):
    check_field_exists(Server, kwargs)
    print kwargs.get("raid", None)
    check_value_exists(Supplier, 'id', kwargs.get("supplier", None))
    check_value_exists(Raid, 'name', kwargs.get("raid", None))
    check_value_exists(Status, 'id', kwargs.get("status", None))
    check_value_exists(User, 'id', kwargs.get("last_op_people", None))
    check_value_exists(Product, 'id', kwargs.get("service_id", None))
    check_value_exists(Product, 'id', kwargs.get("server_purpose", None))
    check_value_exists(User, 'id', kwargs.get("trouble_resolve", None))
    check_value_exists(User, 'id', kwargs.get("op_interface_other", None))
    check_value_exists(User, 'id', kwargs.get("dev_interface", None))
    check_value_exists(Power, 'id', kwargs.get("power", None))

    obj = Server(**kwargs)
    db.session.add(obj)
    try:
        db.session.commit()
    except Exception, e:
        raise Exception(e.message.split(")")[1])
Esempio n. 26
0
def find_server():
    serverId = request.json
    serverSearch = Server.query.get(serverId)
    server = Server(
        id=serverSearch.id,
        admin_id=serverSearch.admin_id,
        name=serverSearch.name,
        description=serverSearch.description,
        category=serverSearch.category,
        public=serverSearch.public,
        image_url=serverSearch.image_url,
    )
    data = server.to_dict()
    formattedChannels = [
        channel.to_dict() for channel in serverSearch.channels
    ]
    data['channels'] = formattedChannels
    data['users'] = [user.to_dict() for user in serverSearch.users]

    return data
Esempio n. 27
0
def servers(env_id_fk):
    """
    Loads or adds servers in specified environment
    :param env_id_fk: Environment ID used as foreign key
    :return: renders servers template
    """
    environment = Environment.query.filter_by(id=env_id_fk).first()
    user = current_user
    servers = Server.query.filter_by(env_id_fk=env_id_fk).all()
    form = ServerForm()
    if form.validate_on_submit():
        server = Server(ip_address=form.ip_address.data,
                        username=form.username.data,
                        env_id_fk=env_id_fk)
        db.session.add(server)
        db.session.commit()
        return redirect(url_for('servers', env_id_fk=env_id_fk))
    return render_template('servers.html',
                           servers=servers,
                           user=user,
                           environment=environment,
                           form=form)
Esempio n. 28
0
def server_list():

    types = Type_Of_Server.objects.all()
    countries = Country.objects.all()
    color = 'success'
    message = ''
    if request.method == 'POST':
        type_of_server = request.form.get('type_of_server')
        address = request.form.get('address')
        description = request.form.get('description')
        location = request.form.get('location')
        type_server = Type_Of_Server.objects.get(type_of_server=type_of_server)
        coun = Country.objects.get(name=location)
        hash_id = ''.join(
            random.choices(string.ascii_lowercase + string.digits, k=24))
        if address != '':
            srv = Server(
                type_of_server=type_server,
                address=address,
                description=description,
                location=coun,
                hash_id=hash_id,
            )
            srv.save()
            Country.synhro()
            monitoring_service()
            message = 'success'
        else:
            color = 'danger'
            message = 'You must type anything!'
    return render_template('server.html',
                           message=message,
                           color=color,
                           countries=countries,
                           types=types,
                           name=get_user_name())
Esempio n. 29
0
def create(**params):

    server = Server(ip='10.2.100.2', cabinet_id='223', sn='DDASS')
    db.session.add(server)
    db.session.commit()
    return 'add data'
Esempio n. 30
0
def server_insert_data():
    servers = {
        u'zp-prd-app-10': (
            "zp-prd-app", Idc.query.filter_by(name=u"周浦").first(), "K1", '10.10.10.10', '', u'大数据', "PRD",
            "server", "Online", ""),

        u'zp-prd-app-11': (
            "zp-prd-app", Idc.query.filter_by(name=u"周浦").first(), "K2", '10.10.10.11', '', u'大数据', "PRD",
            "server", "Online", ""),

        u'oyl-stg-app-101': (
            "oyl-stg-app", Idc.query.filter_by(name=u"欧阳路").first(), "R11", '10.18.23.101', '', u'网站部',
            "STG", "server", "Online", ""),

        u'oyl-stg-app-102': (
            "oyl-stg-app", Idc.query.filter_by(name=u"欧阳路").first(), "R11", '10.18.23.102', '', u'网站部',
            "STG", "server", "Online", ""),

        u'dev-oracle-21': (
            "dev-oracle", Idc.query.filter_by(name=u"北京南路").first(), "A01", '172.16.11.21', '', u'IT部',
            "DEV", "vserver", "Online", ""),

        u'dev-oracle-22': (
            "dev-oracle", Idc.query.filter_by(name=u"北京南路").first(), "A01", '172.16.11.22', '', u'IT据',
            "DEV", "vserver", "Online", ""),

        u'px-prd-app-10': (
            "px-prd-app", Idc.query.filter_by(name=u"万国数据中心").first(), "K1", '10.88.10.10', '', u'大数据',
            "PRD", "server", "Online", ""),

        u'px-prd-app-11': (
            "px-prd-app", Idc.query.filter_by(name=u"万国数据中心").first(), "K2", '10.88.10.11', '', u'大数据',
            "PRD", "server", "Online", ""),

        u'uc-stg-app-101': (
            "uc-stg-app", Idc.query.filter_by(name=u"Ucloud").first(), "R11", '10.99.123.101', '', u'网站部',
            "STG", "server", "Online", ""),

        u'uc-stg-app-102': (
            "uc-stg-app", Idc.query.filter_by(name=u"Ucloud").first(), "R11", '10.99.123.102', '', u'网站部',
            "STG", "server", "Online", ""),

        u'wx-oracle-21': (
            "wx-oracle", Idc.query.filter_by(name=u"无锡线路").first(), "A01", '172.16.11.21', '', u'IT部',
            "DEV", "vserver", "Online", ""),

        u'wx-oracle-22': (
            "wx-oracle", Idc.query.filter_by(name=u"无锡线路").first(), "A01", '172.16.11.22', '', u'IT据',
            "DEV", "vserver", "Online", ""),
    }
    for s in servers:
        server = Server.query.filter_by(name=s).first()
        if server is None:
            server = Server(name=s)
        server.category_branch = servers[s][0]
        server.idc = servers[s][1]
        server.rack = servers[s][2]
        server.private_ip = servers[s][3]
        server.public_ip = servers[s][4]
        server.category = servers[s][5]
        server.env = servers[s][6]
        server.type = servers[s][7]
        server.status = servers[s][8]
        server.description = servers[s][9]
        db.session.add(server)
    db.session.commit()
    print "Insert server test data."