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 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))