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'
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
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)
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
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)
def create(**kwargs): obj = Server(**kwargs) db.session.add(obj) try: db.session.commit() except Exception, e: raise Exception(e.message.split(")")[1])
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'))
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))
def get_servers(): """Retrieve all existing servers from database.""" page = request.args.get('page', 1, type=int) order_by = request.args.get('order_by') servers = Server.get_all(order_by=order_by) response = paginate_response(servers, page) return jsonify(response), 200
def get_server(endpoint): """Retrieve single server instance from database.""" server = Server.get_server_stats(endpoint) if server is None: return jsonify({'message': 'Server instance could not be found.'}), 404 response = server.to_dict() return jsonify(response), 200
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])
def create(**kwargs): #1.获取参数信息 check_field_exists(Server, kwargs) #2.传参个数验证 obj = Server(**kwargs) #3.插入数据库 db.session.add(obj) db.session.commit() return obj.id
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')
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
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
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
def update_server(endpoint): """Update server instance in database.""" server = Server.get(endpoint) if server is None: return jsonify({'message': 'Server instance could not be found.'}), 404 # Update server instance json_data = request.get_json() server.update(json_data.get('title')) response = server.to_dict() return jsonify(response), 200
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
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
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)
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")
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
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)
def server_edit(server_id=None): method = request.method server_id = request.args.get("evn_id", "").strip() if (method == "POST"): form = request.form server_no = form.get("server_no", "") server_name = form.get("server_name") server_ip = form.get("server_ip", "") project_id = form.get("project_id", "") env_id = form.get("env_id", "") model = Server() if (server_id): query_model = Server.query.filter_by(id=server_id).first() if (query_model is not None): model = query_model for item in form: item_val = form.get(item, "") print item, item_val if (hasattr(model, item)): model.__setattr__(item, item_val) DBSession.save(model) return Result("succ", 0, url_for(".server_list")).getIframeResponse() else: if (server_id): server = Server.query.filter_by(id=server_id).first() else: server = Server() project_list = Project.query.all() env_list = Environ.query.all() print server_list, env_list return render_template("server/edit.html", server=server, project_list=project_list, env_list=env_list)
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())
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)
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")
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])
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)
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)
def post(self): form = DeployServerForm() if form.validate_on_submit(): try: # Generate UUID gen_uuid = str(uuid.uuid4()) ip = request.remote_addr # Create POST request to murmur-rest api to create a new server welcome_msg = render_template("mumble/temp_welcome_message.html", gen_uuid=gen_uuid) payload = { 'password': form.password.data, 'welcometext': welcome_msg, 'users': settings.DEFAULT_MAX_USERS, 'registername': settings.DEFAULT_CHANNEL_NAME } server_id = murmur.create_server_by_location(form.location.data, payload) # Create database entry s = Server() s.duration = form.duration.data # s.duration = 1 s.password = form.password.data s.uuid = gen_uuid s.mumble_instance = server_id s.mumble_host = murmur.get_murmur_hostname(form.location.data) s.ip = ip db.session.add(s) db.session.commit() # Send task to delete server on expiration tasks.delete_server.apply_async([gen_uuid], eta=s.expiration) return redirect(url_for('ServerView:get', id=s.uuid)) except: import traceback db.session.rollback() traceback.print_exc() return render_template('index.html', form=form) return render_template('index.html', form=form)
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])
def index(): ## Begin code ## ## Set your 'server' table to empty g.server = None ## Here I mapped the server list manually the first time, this method should be updated to mysqldb ^^ #serverlist = {"69.30.232.146:25451","69.30.232.146:25449","69.30.232.146:25461","69.30.232.146:25461","69.30.232.146:25459","69.30.232.146:25457","69.30.232.146:25455","69.30.232.146:25453","69.30.232.146:25447"} #serverlist = {"64.182.125.141:27017","64.182.125.141:27015","64.182.125.141:27019","64.182.125.142:27022","64.182.125.142:27018","64.182.125.140:27015","64.182.210.44:27015","64.182.210.36:27015","64.182.125.140:27016","64.182.210.44:27017","64.182.210.36:27016","64.182.210.44:27018","64.182.125.140:27018","64.182.125.140:27017","64.182.210.36:27017","64.182.210.36:27018","64.182.125.140:27019","64.182.125.142:27015","64.182.210.38:27016","64.182.125.142:27016","64.182.210.46:27015","64.182.210.38:27015","64.182.210.45:27016","64.182.210.37:27016","64.182.125.141:27017","64.182.210.37:27017","64.182.210.37:27019","64.182.210.45:27019"} serverlist = [] ## Now we build a list of servers from the DB for x in sList(): serverlist += ["%s:%s"%(x.ip,x.port)] rl = [] ## run through every server in the list and query its data for x in serverlist: ## filtering the ip from the list into the required format ip, separator, port = x.rpartition(':') assert separator # separator (`:`) must be present port = int(port) # convert to integer sq = SourceQuery(ip,port) server = sq.getInfo() try: g.server = Server.get_or_create(server['Hostname']) g.server.ip = ip g.server.port = port g.server.type = server['GameDesc'] g.server.map = server['Map'] g.server.hostname = server['Hostname'] g.server.maxplayers = server['MaxPlayers'] g.server.curplayers = server['Players'] ##now that we set up our session and database, we commit it db_session.commit() except: print "server offline" rl = sList() output = render_template('index.html',username=g.user,datas=rl) return output
def post(self): form = DeployCustomServerForm() 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_location(form.location.data, payload) # Create database entry s = Server() s.mumble_host = murmur.get_murmur_hostname(form.location.data) s.duration = 0 s.password = form.password.data s.uuid = gen_uuid s.mumble_instance = server_id s.type = 'custom' db.session.add(s) db.session.commit() return redirect('/admin/servers/%s' % s.id) 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)
def create(self, id): form = DeployTokenServerForm() token = Token.query.filter_by(uuid=id).first_or_404() package = get_package_by_name(token.package) ctx = { 'slots': package.get('slots', None), 'duration': package.get('duration', None) } 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 = render_template("mumble/upgrade_welcome_message.html", gen_uuid=gen_uuid) # Initialize payload for murmur-rest request payload = { 'password': form.password.data, 'welcometext': welcome_msg, 'users': ctx['slots'], 'registername': form.channel_name.data } # Create virtual murmur server and set SuperUser password server_id = murmur.create_server_by_location(form.location.data, payload) murmur.set_superuser_password(form.location.data, form.superuser_password.data, server_id) # Create database entry s = Server() s.duration = ctx['duration'] s.password = form.password.data s.uuid = gen_uuid s.type = 'upgrade' s.mumble_instance = server_id s.mumble_host = murmur.get_murmur_hostname(form.location.data) s.cvp_uuid = str(uuid.uuid4()) # Expire token token.activation_date = datetime.datetime.utcnow() token.active = False db.session.add(s) db.session.add(token) db.session.commit() # Send task to delete server on expiration tasks.delete_server.apply_async([gen_uuid], eta=s.expiration) # Send email to user if email was set if token.email is not None: email_ctx = { 'url': 'http://guildbit.com/server/%s' % gen_uuid, 'package': token.package, 'expiration': 'expiration here', 'superuser_password': form.superuser_password.data } msg = Message( "Guildbit - Server Created", sender=settings.DEFAULT_MAIL_SENDER, recipients=[token.email]) msg.html = render_template("emails/payment_server_created.html", ctx=email_ctx) mail.send(msg) return redirect(url_for('ServerView:get', id=s.uuid)) except: import traceback db.session.rollback() traceback.print_exc() return render_template('payment/create.html', form=form, token=token, ctx=ctx)