def createImageModelList(images=[]): image_model_List = [] euca_metadata = EucalyptusMetadataDB() image_snapshot_list = euca_metadata.getImageSnapshotList() for image in images: if not Image.objects.filter(image_id=image.id): new_image = Image() new_image.image_id = image.id new_image.name = "新しいOSイメージ" new_image.description = "" new_image.save() logger.debug('新しいOSイメージを登録しました: %s' % image.id.encode('utf8')) for image in images: if image.type == "machine": #(account_id, owner) = getUserFromImage(image) #logger.debug("account_id:%s owner:%s" % (account_id, owner)) image_model = euca_common.createImageModel(images, image.id) if image_model != None: if image_model.root_device_type == "ebs": for snap in image_snapshot_list: if snap.image_id == image_model.id: image_model.image_snapshot = snap.snapshot_id break image_model_List.append(image_model) return image_model_List
def receive(): data = request.data data = xmltodict.parse(data)['xml'] if data['MsgType'] == 'text': return send_text(data['FromUserName'], 'hi') if data['MsgType'] == 'image': token = current_access_token() file_url = 'https://api.weixin.qq.com/cgi-bin/media/get?access_token=%s&media_id=%s' % (token, data['MediaId']) file = requests.get(file_url, stream=True).raw i = Image() i.image = file uuid = shortuuid.ShortUUID().random(length=6) while Image.objects(iid=uuid): uuid = shortuuid.ShortUUID().random(length=6) i.iid = uuid i.title = data['MediaId'] i.user = system_user i.description = '' i.tags = [] i.save() return send_text( data['FromUserName'], '업로드 성공, 사진주소:%s%s' % ( request.url_root[:-1], url_for('light-cms.image', iid=i.iid) ) )
def test_create(self): """ Simple test (without image file) to see if image can be created """ i = Image() i.title = "Test" i.description = "Long image image description" i.description_short = "Short image description" i.save() db_i = Image.objects.get(pk=1) self.assertEqual(i.title, db_i.title) self.assertEqual(i.description, db_i.description) self.assertEqual(i.description_short, db_i.description_short)
def drop(): file = request.files['file'] i = Image() i.title = file.filename i.image = file uuid = shortuuid.ShortUUID().random(length=6) while Image.objects(iid=uuid): uuid = shortuuid.ShortUUID().random(length=6) i.iid = uuid if login.current_user.is_active(): i.user = login.current_user._get_current_object() else: i.user = system_user i.description = '' i.tags = [] i.save() return jsonify(id=uuid)
def gallery_drop(gid): if not login.current_user.is_active(): flash('앨범기능엔 로그인이 필요합니다') return redirect(url_for('light-cms.user_login')) g = Gallery.objects.get_or_404(gid=gid) file = request.files['file'] i = Image() i.gallery.append(g) i.title = file.filename i.image = file uuid = shortuuid.ShortUUID().random(length=6) while Image.objects(iid=uuid): uuid = shortuuid.ShortUUID().random(length=6) i.iid = uuid i.user = login.current_user._get_current_object() i.description = '' i.tags = [] i.save() return jsonify(id=uuid)
def gallery_drop(gid): if not login.current_user.is_active(): flash('请登录后再搞相册哦~') return redirect(url_for('light-cms.user_login')) g = Gallery.objects.get_or_404(gid=gid) file = request.files['file'] i = Image() i.gallery.append(g) i.title = file.filename i.image = file uuid = shortuuid.ShortUUID().random(length=6) while Image.objects(iid=uuid): uuid = shortuuid.ShortUUID().random(length=6) i.iid = uuid i.user = login.current_user._get_current_object() i.description = '' i.tags = [] i.save() return jsonify(id=uuid)
def receive(): data = request.data data = xmltodict.parse(data)['xml'] if data['MsgType'] == 'text': return send_text(data['FromUserName'], 'hi') if data['MsgType'] == 'image': token = current_access_token() file_url = 'https://api.weixin.qq.com/cgi-bin/media/get?access_token=%s&media_id=%s' % ( token, data['MediaId']) file = requests.get(file_url, stream=True).raw i = Image() i.image = file uuid = shortuuid.ShortUUID().random(length=6) while Image.objects(iid=uuid): uuid = shortuuid.ShortUUID().random(length=6) i.iid = uuid i.title = data['MediaId'] i.user = system_user i.description = '' i.tags = [] i.save() return send_text( data['FromUserName'], '上传成功!图片地址:%s%s' % (request.url_root[:-1], url_for('light-cms.image', iid=i.iid)))
def createstep3(request): logger.info('OSイメージ作成 Step3のOSイメージの登録処理') register = RegisterOSImage(request) image_id = "" if request.session['ss_img_selectimagetype'] == 'machine': image_id = register.registerOSImage() elif request.session['ss_img_selectimagetype'] == 'kernel': image_id = register.registerKernel() elif request.session['ss_img_selectimagetype'] == 'ramdisk': image_id = register.registerRamdisk() else: logger.error('selectImageType error .') raise Exception('selectImageType error .') new_db_image = Image() new_db_image.image_id = image_id new_db_image.name = request.session['ss_img_name'] new_db_image.description = request.session['ss_img_description'] new_db_image.save() #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] #Eucalyptus基盤へのアクセサを生成する get_euca_info = GetEucalyptusInfo(login_user) #ログインユーザのイメージの一覧を取得 images = get_euca_info.get_image() #イメージモデルのリストを取得 image_model_List = createImageModelList(images) selectImageNumber = 0 count = 0 for i in image_model_List: if image_id == i.id: selectImageNumber = count break count = count + 1 #セッションに選択中のイメージナンバーの情報を保持する request.session['ss_img_selectNumber'] = selectImageNumber #セッションに選択中のイメージのIDの情報を保持する request.session['ss_img_selectID'] = image_id message = "" form = ImageModForm({ 'image_name': image_model_List[selectImageNumber].name, 'image_description': image_model_List[selectImageNumber].description }) logger.info('OSイメージ作成 完了 image_id=%s' % image_id) return render_to_response('image_list.html', { 'image_model_List': image_model_List, 'form': form, 'message': message }, context_instance=RequestContext(request))