def snapshot_delete(request): """バックアップ削除ボタン(スナップショット)""" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] logger.info('データボリュームメニュー バックアップ削除 開始') #セッション情報 snapshot = request.session['ss_vol_snapshots_selected'] #Eucalyptus操作 try: #Eucalyptus基盤へのアクセサを生成する get_euca_info=GetEucalyptusInfo(login_user) # スナップショット削除 get_euca_info.delete_snapshot(snapshot_id=snapshot.id) except Exception, ex: # Eucalyptusエラー errors.append(euca_common.get_euca_error_msg('%s' % ex)) logger.warn(errors) return render_to_response('snapshot_list.html',{'errors':errors},context_instance=RequestContext(request))
def top(request): #カスタムログ logger = logging.getLogger('koalalog') logger.info('ダッシュボード画面表示') #メニューを「ダッシュボード」に設定 request.session['ss_sys_menu'] = "dashboard" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] isNewuser = request.session['newuser'] request.session['newuser'] = '******' #エラー情報 errors = [] #仮想マシン利用状況 try: login_user.usevm = euca_common.countActiveMachine(login_user) #仮想サーバ一覧表示用 machineGroupList = getMachineGroupList(login_user) except Exception, ex: # Eucalyptusエラー errors.append("仮想マシン情報の参照に失敗しました。") errors.append(euca_common.get_euca_error_msg('%s' % ex)) login_user.usevm = login_user.db_user.maxvm
def create(request): """接続鍵を作成ボタン""" logger.info('接続鍵 作成') #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] #エラー情報 errors = [] #入力フォーム form = keypair_form.KeypairForm(request.POST) # 入力チェック if not form.is_valid(): tmp_errors = form.errors.values() for error in tmp_errors: errors.extend(error) return render_to_response('keypair_list.html', { 'form': form, 'errors': errors }, context_instance=RequestContext(request)) try: #Eucalyptus基盤へのアクセサを生成する get_euca_info = GetEucalyptusInfo(login_user) # キーペアを作成 keypair = get_euca_info.create_keypair(form.cleaned_data['name']) except Exception, ex: # Eucalyptusエラー errors = [euca_common.get_euca_error_msg('%s' % ex)]
def delete(request, groupname): """ファイアウォール削除""" logger.info('ファイアウォール 削除') #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] #セキュリティグループ削除(Eucalyptus操作) try: #Eucalyptus基盤へのアクセサを生成する get_euca_info = GetEucalyptusInfo(login_user) #セキュリティグループ削除 security_group = get_euca_info.delete_securitygroup(name=groupname) except Exception, ex: # Eucalyptusエラー errors.append("ファイアウォール削除に失敗しました。") errors.append(euca_common.get_euca_error_msg('%s' % ex)) return render_to_response('securitygroup_list.html', {'errors': errors}, context_instance=RequestContext(request))
def createsnapshot(request): """バックアップを作成ボタン(ボリューム)""" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] logger.info('データボリュームメニュー バックアップを作成 開始') #入力フォーム form = volume_form.VolumeForm(request.POST) form.is_valid() #セッション情報との一致チェック selected = request.session['ss_vol_volumes_selected'] if selected.db.volume_id != form.cleaned_data['volume_id']: errors.append("不正な画面遷移です。表示更新を行ってから再操作してください。") logger.warn(errors) return render_to_response('volume_list.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) #Eucalyptus操作 try: #Eucalyptus基盤へのアクセサを生成する get_euca_info=GetEucalyptusInfo(login_user) # スナップショット作成 created_snapshot = get_euca_info.create_snapshot(volume_id=selected.db.volume_id) except Exception, ex: # Eucalyptusエラー errors.append(euca_common.get_euca_error_msg('%s' % ex)) logger.warn(errors) return render_to_response('volume_list.html',{'form':form,'errors':errors},context_instance=RequestContext(request))
def attach(request): """取り付けボタン(ボリューム)""" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] #セッション情報 selected = request.session['ss_vol_volumes_selected'] # エラー情報 errors = [] logger.info('データボリュームメニュー 仮想マシンへ取り付け 開始') #入力フォーム form = volume_form.VolumeAttachForm(request.POST) form.fields['machine'].widget.choices = request.session['ss_vol_machines'] if not form.is_valid(): tmp_errors = form.errors.values() for error in tmp_errors: errors.extend(error) logger.warn(errors) return render_to_response('attach_volume.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) machine = models.Machine.objects.get(pk=form.cleaned_data['machine']) if not machine: errors.append("不正な仮想マシンが選択されました。") logger.warn(errors) return render_to_response('attach_volume.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) # 取り付け先仮想マシンが起動中の場合 if machine.instance_id: """ TODO:デバイス名を自動設定する """ device = form.cleaned_data['device'].encode('utf-8') #Eucalyptus操作 try: #Eucalyptus基盤へのアクセサを生成する get_euca_info=GetEucalyptusInfo(login_user) #仮想マシンの現在ステータスを確認 reservations = get_euca_info.get_instancelist(instance_ids=[machine.instance_id]) if reservations: if reservations[0].instances[0].state == "running": # EBSボリュームアタッチ return_code = get_euca_info.attach_volume(volume_id=selected.db.volume_id, instance_id=machine.instance_id, device=device) if not return_code: errors.append("起動中の仮想マシンへのボリューム取り付けに失敗しました。") logger.warn(errors) return render_to_response('attach_volume.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) """ TODO:アタッチ状況が"attaching"->"attached"へ遷移するのを確認する""" except Exception, ex: # Eucalyptusエラー errors.append(euca_common.get_euca_error_msg('%s' % ex)) logger.warn(errors) return render_to_response('attach_volume.html',{'form':form,'errors':errors},context_instance=RequestContext(request))
def ruledel(request, rule_num): """接続ルール削除""" logger.info('ファイアウォール 接続ルール削除') #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] # 入力フォーム form = ModifyForm(request.POST) # セッション情報 target = request.session['ss_scr_modify'] index = int(rule_num) if index < len(target.rules): del_rule = target.rules[index] else: errors.append("不正な接続ルールが選択されました。") return render_to_response('securitygroup_mod.html', { 'form': form, 'errors': errors }, context_instance=RequestContext(request)) #ルール削除(Eucalyptus操作) try: #Eucalyptus基盤へのアクセサを生成する get_euca_info = GetEucalyptusInfo(login_user) #ルール削除 return_code = get_euca_info.revoke_securitygroup( group_name=target.name, src_security_group_name=del_rule.from_group, src_security_group_owner_id=del_rule.from_user, ip_protocol=del_rule.ip_protocol, from_port=del_rule.from_port, to_port=del_rule.to_port, cidr_ip=del_rule.cidr) if not return_code: errors.append("接続許可ルール削除に失敗しました。") return render_to_response('securitygroup_mod.html', { 'form': form, 'errors': errors }, context_instance=RequestContext(request)) except Exception, ex: # Eucalyptusエラー errors.append("接続許可ルール削除に失敗しました。") errors.append(euca_common.get_euca_error_msg('%s' % ex)) return render_to_response('securitygroup_mod.html', { 'form': form, 'errors': errors }, context_instance=RequestContext(request))
def createform(request): """作成ボタン(ボリューム)""" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] logger.info('データボリュームメニュー 新規作成フォーム作成 開始') # 入力フォーム form = volume_form.VolumeCreateForm() #入力フォーム用Availability Zone一覧 try: #Eucalyptus基盤へのアクセサを生成する get_euca_info=GetEucalyptusInfo(login_user) # Availability Zone一覧を取得 zones = get_euca_info.get_availabilityzones() # Availability Zone一覧を選択リストへ設定 zonelist = [] for zone in zones: sub_zone = [] sub_zone.append(zone.name) sub_zone.append(zone.name) zonelist.append(sub_zone) form.fields['zone'].choices = zonelist request.session['ss_vol_avalabilityzonelist'] = zonelist except Exception, ex: # Eucalyptusエラー errors.append("Availability Zone情報の参照に失敗しました。") errors.append(euca_common.get_euca_error_msg('%s' % ex)) logger.warn(errors)
def volume_delete(request, vol_id): resource_admin_auth(request) acc_num = None volume = None for vol in request.session['res_volumes']: if vol.volumeid == vol_id: acc_num = vol.accountnumber volume = vol if acc_num: euca_db = EucalyptusDB() usrList = euca_db.getEucalyptusUser() errors = [] for usr in usrList: if usr.account_number == acc_num and usr.accesskey: try: get_euca_info = GetEucalyptusInfo(usr) get_euca_info.delete_volume(vol_id) volume.status = "deleting" request.session.modified = True except Exception, ex: # Eucalyptusエラー errors.append(euca_common.get_euca_error_msg('%s' % ex)) logger.warn(errors)
def createNewVolume(login_user, form): #リソース上限チェック try: usevol = euca_common.countActiveVolume(login_user) except Exception, ex: # Eucalyptusエラー logger.warn("ボリューム利用状況の取得に失敗しました。") logger.warn(euca_common.get_euca_error_msg('%s' % ex)) raise ex
def detach(request): """取り外しボタン(ボリューム)""" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] logger.info('データボリュームメニュー 仮想マシンから取り外し 開始') #入力フォーム form = volume_form.VolumeForm(request.POST) form.is_valid() #セッション情報との一致チェック selected = request.session['ss_vol_volumes_selected'] if selected.db.volume_id != form.cleaned_data['volume_id']: errors.append("不正な画面遷移です。表示更新を行ってから再操作してください。") logger.warn(errors) return render_to_response('volume_list.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) print selected.instance_id # 取り付け先の仮想マシンが起動中の場合 if selected.instance_id: #Eucalyptus操作 try: #Eucalyptus基盤へのアクセサを生成する get_euca_info=GetEucalyptusInfo(login_user) # EBSボリューム取り外し return_code = get_euca_info.detach_volume(volume_id=selected.db.volume_id, instance_id=selected.instance_id,force=True) if not return_code: errors.append("起動中の仮想マシンからのボリューム取り外しに失敗しました。") logger.warn(errors) return render_to_response('volume_list.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) """ TODO:アタッチ状況が"detaching"->"detached"->""(ステータス"available")へ遷移するのを確認する""" except Exception, ex: # Eucalyptusエラー errors.append(euca_common.get_euca_error_msg('%s' % ex)) logger.warn(errors) return render_to_response('volume_list.html',{'form':form,'errors':errors},context_instance=RequestContext(request))
def createform_from_snapshot(request): """作成ボタン(スナップショットボリューム)""" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] logger.info('データボリュームメニュー スナップショットからボリューム作成フォーム作成 開始') #入力フォーム用スナップショット一覧 snapshots = request.session['ss_vol_snapshots'] snapshotChoice = [ [snapshot.id, snapshot.id] for snapshot in snapshots ] # スナップショット画面からの遷移の場合、初期状態でスナップショットID選択 initialData = {} selectedSnapshot = request.session['ss_vol_snapshots_selected'] if selectedSnapshot: initialData['snapshot'] = selectedSnapshot.id # 入力フォーム form = volume_form.VolumeCreateForm(initial=initialData) form.fields['snapshot'].choices = snapshotChoice #入力フォーム用Availability Zone一覧 try: #Eucalyptus基盤へのアクセサを生成する get_euca_info=GetEucalyptusInfo(login_user) # Availability Zone一覧を取得 zones = get_euca_info.get_availabilityzones() # Availability Zone一覧を選択リストへ設定 zonelist = [] for zone in zones: sub_zone = [] sub_zone.append(zone.name) sub_zone.append(zone.name) zonelist.append(sub_zone) form.fields['zone'].choices = zonelist request.session['ss_vol_avalabilityzonelist'] = zonelist except Exception, ex: # Eucalyptusエラー errors.append("Availability Zone情報の参照に失敗しました。") errors.append(euca_common.get_euca_error_msg('%s' % ex)) logger.warn(errors)
def update(request): """保存ボタン(ボリューム)""" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] logger.info('データボリュームメニュー プロパティ変更 保存開始') if request.method == 'POST': logger.info("request.method == Post") #入力フォーム form = volume_form.VolumeForm(request.POST) # 入力チェック if not form.is_valid(): tmp_errors = form.errors.values() for error in tmp_errors: errors.extend(error) logger.warn(errors) return render_to_response('volume_list.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) #セッション情報との一致チェック selected = request.session['ss_vol_volumes_selected'] if selected.db.volume_id != form.cleaned_data['volume_id']: errors.append("不正な画面遷移です。表示更新を行ってから再操作してください。") logger.warn(errors) return render_to_response('volume_list.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) # DB更新 selected.db.name = form.cleaned_data['name'] selected.db.description = form.cleaned_data['description'] updateVolume(selected.db) # ボリューム一覧を取得 try: volumes = getVolumeList(login_user) except Exception, ex: # Eucalyptusエラー errors = [euca_common.get_euca_error_msg('%s' % ex)] logger.warn(errors) volumes = []
def groupcreate(request): """作成ボタン(ボリューム)""" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] logger.info('グループ作成処理 開始') # 入力フォーム form = group_form.GroupCreateForm(request.POST) form.fields['group_polset'].choices = request.session['ss_vol_polsetlist'] account_name = request.session['account_name'] logger.debug('グループ作成処理 入力チェック') if not form.is_valid(): tmp_errors = form.errors.values() for error in tmp_errors: errors.extend(error) logger.warn(errors) return render_to_response('create_group.html',{'account_name':account_name,'form':form,'errors':errors},context_instance=RequestContext(request)) logger.debug('グループ作成処理 入力チェック終了') #グループ作成(Eucalyptus操作) try: #Eucalyptus基盤へのアクセサを生成する euare_cmd=Euarecmd() new_group_id = euare_cmd.create_group(user=login_user, group_name=form.cleaned_data['group_name'], \ group_path=form.cleaned_data['group_path'] ) logger.debug('グループ作成結果 グループID戻り値 %s' % new_group_id) except Exception, ex: # Eucalyptusエラー errors.append("グループ作成に失敗しました。") errors.append(euca_common.get_euca_error_msg('%s' % ex)) logger.warn(errors)
def snapshot_refresh(request): """表示更新(バックアップ)""" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] logger.info('データボリュームメニュー スナップショット更新 開始') # スナップショット一覧を取得 try: snapshots = getSnapshotList(login_user) except Exception, ex: # Eucalyptusエラー errors = [euca_common.get_euca_error_msg('%s' % ex)] logger.warn(errors) snapshots = []
def refresh(request): """表示更新(ボリューム)""" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] logger.info('データボリュームメニュー 表示更新(ボリューム)開始') # ボリューム一覧を取得 try: volumes = getVolumeList(login_user) except Exception, ex: # Eucalyptusエラー errors = [euca_common.get_euca_error_msg('%s' % ex)] logger.warn(errors) volumes = []
def top(request): """ファイアウォールメニューの初期表示""" logger.info('ファイアウォール 一覧表示') #メニューを「ファイアウォール」に設定 request.session['ss_sys_menu'] = "securitygroup" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] # セキュリティグループ一覧を取得 try: securitygrouplist = getSecurityGroupList(login_user) request.session['ss_scr_securitygrouplist'] = securitygrouplist except Exception, ex: # Eucalyptusエラー errors.append("ファイアウォール一覧取得に失敗しました。") errors.append(euca_common.get_euca_error_msg('%s' % ex)) request.session['ss_scr_securitygrouplist'] = None
def top(request): """データボリュームメニューの初期表示""" logger.info('データボリュームメニューの初期表示開始') #メニューを「データボリューム」に設定 request.session['ss_sys_menu'] = "volume" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] # ボリューム一覧を取得 try: volumes = getVolumeList(login_user) rootDevices = getVolumeList(login_user,True) except Exception, ex: # Eucalyptusエラー errors = [euca_common.get_euca_error_msg('%s' % ex)] logger.warn(errors) volumes = []
def top(request): """接続鍵メニューの初期表示""" logger.info('接続鍵 一覧表示') #メニューを「接続鍵」に設定 request.session['ss_sys_menu'] = "keypair" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] #エラー情報 errors = [] #入力フォーム form = keypair_form.KeypairForm() #キーペア一覧を取得 try: keypairlist = getKeypairList(login_user) except Exception, ex: # Eucalyptusエラー errors = [euca_common.get_euca_error_msg('%s' % ex)]
def delete(request, keyname): """削除ボタン""" logger.info('接続鍵 削除') #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] #エラー情報 errors = [] #入力フォーム form = keypair_form.KeypairForm(request.POST) #Eucalyptus操作 try: #Eucalyptus基盤へのアクセサを生成する get_euca_info = GetEucalyptusInfo(login_user) # キーペアを削除 #keypair = get_euca_info.delete_keypair(keyname) get_euca_info.delete_keypair(keyname) except Exception, ex: # Eucalyptusエラー errors = [euca_common.get_euca_error_msg('%s' % ex)]
logger.debug('設定ポリシー情報 ポリシー名 %s' % str(pol_name)) pol_cont = pol[0].pcontent logger.debug('設定ポリシー情報 ポリシー内容 %s' % str(pol_cont)) #グループポリシー作成(euareコマンド操作) try: new_group_policy = euare_cmd.create_group_policy(user=login_user, group_name=form.cleaned_data['group_name'], \ pol_name=pol_name, pol_cont=pol_cont ) logger.debug('グループポリシー作成結果 ポリシー名戻り値 %s' % new_group_policy) except Exception, ex: # Eucalyptusエラー errors.append("グループ作成に失敗しました。") errors.append(euca_common.get_euca_error_msg('%s' % ex)) logger.warn(errors) logger.info('グループのcooalaDBへの登録') #DB登録 db_group = models.Group() db_group.group_id = new_group_id db_group.group_name = form.cleaned_data['group_name'] db_group.group_path = form.cleaned_data['group_path'] db_group.account_name = login_user.account_id db_group.account_id = login_user.account_number db_group.group_pol = form.cleaned_data['group_polset'] db_group.group_desc = form.cleaned_data['group_desc']
def create(request): """ファイアウォール作成""" logger.info('ファイアウォール 作成') #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] # 入力フォーム form = CreateForm(request.POST) # 入力チェック if not form.is_valid(): tmp_errors = form.errors.values() for error in tmp_errors: errors.extend(error) return render_to_response('securitygroup_create.html', { 'form': form, 'errors': errors }, context_instance=RequestContext(request)) #セキュリティグループ作成(Eucalyptus操作) try: #Eucalyptus基盤へのアクセサを生成する get_euca_info = GetEucalyptusInfo(login_user) #セキュリティグループ作成 security_group = get_euca_info.create_securitygroup( name=form.cleaned_data['name'], description=form.cleaned_data['description']) if form.cleaned_data['defaultrule']: # 初期ルール設定 # icmp return_code = get_euca_info.authorize_securitygroup( group_name=form.cleaned_data['name'], ip_protocol='icmp', from_port=-1, to_port=-1, cidr_ip='0.0.0.0/0') if not return_code: errors.append("初期ルールの登録に失敗しました。") # ssh return_code = get_euca_info.authorize_securitygroup( group_name=form.cleaned_data['name'], ip_protocol='tcp', from_port=22, to_port=22, cidr_ip='0.0.0.0/0') if not return_code: errors.append("初期ルールの登録に失敗しました。") except Exception, ex: # Eucalyptusエラー errors.append("ファイアウォール作成に失敗しました。") errors.append(euca_common.get_euca_error_msg('%s' % ex)) return render_to_response('securitygroup_create.html', { 'form': form, 'errors': errors }, context_instance=RequestContext(request))
def ruleadd(request): """接続ルール追加""" logger.info('ファイアウォール 接続ルール追加') #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] # 入力フォーム form = ModifyForm(request.POST) # セッション情報 target = request.session['ss_scr_modify'] # 入力チェック if not form.is_valid(): tmp_errors = form.errors.values() for error in tmp_errors: errors.extend(error) return render_to_response('securitygroup_mod.html', { 'form': form, 'errors': errors }, context_instance=RequestContext(request)) if form.cleaned_data['addType'] == "address": # 外部接続 if not form.cleaned_data['protocol']: errors.append("プロトコルを入力してください。") if not form.cleaned_data['portMin'] or not form.cleaned_data['portMax']: errors.append("解放ポート範囲を入力してください。") elif form.cleaned_data['portMin'] > form.cleaned_data['portMax']: errors.append("解放ポート範囲が不正です。") if not form.cleaned_data['cidr']: errors.append("接続許可アドレス範囲を入力してください。") elif form.cleaned_data['addType'] == "group": # グループ間接続 if not form.cleaned_data['fromUser']: errors.append("接続許可ユーザーを入力してください。") if not form.cleaned_data['fromGroup']: errors.append("接続許可ファイアウォールを入力してください。") if errors: return render_to_response('securitygroup_mod.html', { 'form': form, 'errors': errors }, context_instance=RequestContext(request)) #ルール追加(Eucalyptus操作) try: #Eucalyptus基盤へのアクセサを生成する get_euca_info = GetEucalyptusInfo(login_user) #ルール削除 return_code = get_euca_info.authorize_securitygroup( group_name=target.name, src_security_group_name=form.cleaned_data['fromGroup'], src_security_group_owner_id=form.cleaned_data['fromUser'], ip_protocol=form.cleaned_data['protocol'], from_port=form.cleaned_data['portMin'], to_port=form.cleaned_data['portMax'], cidr_ip=form.cleaned_data['cidr']) if not return_code: errors.append("接続許可ルール追加に失敗しました。") return render_to_response('securitygroup_mod.html', { 'form': form, 'errors': errors }, context_instance=RequestContext(request)) except Exception, ex: # Eucalyptusエラー errors.append("接続許可ルール追加に失敗しました。") errors.append(euca_common.get_euca_error_msg('%s' % ex)) return render_to_response('securitygroup_mod.html', { 'form': form, 'errors': errors }, context_instance=RequestContext(request))
def create(request): """作成ボタン(ボリューム)""" #セッションからログインユーザ情報を取得する login_user = request.session['ss_usr_user'] # エラー情報 errors = [] logger.info('データボリュームメニュー ボリューム作成 開始') fromsnapshot = False if request.session['ss_vol_snapshots_selected'] != None: fromsnapshot = True #入力フォーム用スナップショット一覧 snapshots = request.session['ss_vol_snapshots'] snapshotChoice = [ [snapshot.id, snapshot.id] for snapshot in snapshots ] # 入力フォーム form = volume_form.VolumeCreateForm(request.POST) form.fields['snapshot'].choices = snapshotChoice form.fields['zone'].choices = request.session['ss_vol_avalabilityzonelist'] if not form.is_valid(): tmp_errors = form.errors.values() for error in tmp_errors: errors.extend(error) logger.warn(errors) if fromsnapshot: return render_to_response('create_volume_from_snapshot.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) return render_to_response('create_volume.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) if fromsnapshot: if not form.cleaned_data['snapshot']: errors.append(u"バックアップファイルを入力してください。") logger.warn(errors) return render_to_response('create_volume_from_snapshot.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) else: if not form.cleaned_data['size']: errors.append(u"作成サイズを入力してください。") logger.warn(errors) return render_to_response('create_volume.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) #リソース上限チェック try: usevol = euca_common.countActiveVolume(login_user) except Exception, ex: # Eucalyptusエラー errors.append(euca_common.get_euca_error_msg('%s' % ex)) logger.warn(errors) if fromsnapshot: return render_to_response('create_volume_from_snapshot.html',{'form':form,'errors':errors},context_instance=RequestContext(request)) return render_to_response('create_volume.html',{'form':form,'errors':errors},context_instance=RequestContext(request))
errors = [euca_common.get_euca_error_msg('%s' % ex)] #DBへキーペア情報を登録 db_keypair = models.Keypair() db_keypair.user_id = login_user.id db_keypair.account_id = login_user.account_id db_keypair.name = form.cleaned_data['name'] db_keypair.data = keypair.material db_keypair.save() #キーペア一覧を取得 try: keypairlist = getKeypairList(login_user) except Exception, ex: # Eucalyptusエラー errors = [euca_common.get_euca_error_msg('%s' % ex)] #セッション情報 request.session['ss_key_keypairlist'] = keypairlist logger.info('接続鍵 作成 完了') return render_to_response('keypair_list.html', { 'form': form, 'errors': errors }, context_instance=RequestContext(request)) def delete(request, keyname): """削除ボタン"""