100
100
exceptions.handle(request, _("Unable to rebuild instance."),
101
101
redirect=redirect)
105
class DecryptPasswordInstanceForm(forms.SelfHandlingForm):
106
instance_id = forms.CharField(widget=forms.HiddenInput())
107
_keypair_name_label = _("Key Pair Name")
108
_keypair_name_help = _("The Key Pair name that "
109
"was associated with the instance")
110
_attrs = {'readonly': 'readonly'}
111
keypair_name = forms.CharField(widget=forms.widgets.TextInput(_attrs),
112
label=_keypair_name_label,
113
help_text=_keypair_name_help,
115
_encrypted_pwd_help = _("The instance password encrypted "
116
"with your public key.")
117
encrypted_password = forms.CharField(widget=forms.widgets.Textarea(_attrs),
118
label=_("Encrypted Password"),
119
help_text=_encrypted_pwd_help,
122
def __init__(self, request, *args, **kwargs):
123
super(DecryptPasswordInstanceForm, self).__init__(request,
126
instance_id = kwargs.get('initial', {}).get('instance_id')
127
self.fields['instance_id'].initial = instance_id
128
keypair_name = kwargs.get('initial', {}).get('keypair_name')
129
self.fields['keypair_name'].initial = keypair_name
131
result = api.nova.get_password(request, instance_id)
133
_unavailable = _("Instance Password is not set"
134
" or is not yet available")
135
self.fields['encrypted_password'].initial = _unavailable
137
self.fields['encrypted_password'].initial = result
138
self.fields['private_key_file'] = forms.FileField(
139
label=_('Private Key File'),
140
widget=forms.FileInput(),
142
self.fields['private_key'] = forms.CharField(
143
widget=forms.widgets.Textarea(),
144
label=_("OR Copy/Paste your Private Key"),
146
_attrs = {'readonly': 'readonly'}
147
self.fields['decrypted_password'] = forms.CharField(
148
widget=forms.widgets.TextInput(_attrs),
152
redirect = reverse('horizon:project:instances:index')
153
_error = _("Unable to retrieve instance password.")
154
exceptions.handle(request, _error, redirect=redirect)
156
def handle(self, request, data):