~ubuntu-branches/ubuntu/trusty/horizon/trusty

« back to all changes in this revision

Viewing changes to openstack_dashboard/dashboards/project/instances/forms.py

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2014-03-31 17:31:49 UTC
  • mfrom: (1.1.38)
  • Revision ID: package-import@ubuntu.com-20140331173149-f28yjk2s8pt15fqj
Tags: 1:2014.1~rc1-0ubuntu1
* New upstream release candidate (LP: #1288245).
  - d/static/*: Refreshed assets for new upstream release.
* d/theme/*: Refresh Ubuntu theme against Icehouse templates (LP: #1291653).

Show diffs side-by-side

added added

removed removed

Lines of Context:
100
100
            exceptions.handle(request, _("Unable to rebuild instance."),
101
101
                              redirect=redirect)
102
102
        return True
 
103
 
 
104
 
 
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,
 
114
                                   required=False)
 
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,
 
120
                                         required=False)
 
121
 
 
122
    def __init__(self, request, *args, **kwargs):
 
123
        super(DecryptPasswordInstanceForm, self).__init__(request,
 
124
                                                          *args,
 
125
                                                          **kwargs)
 
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
 
130
        try:
 
131
            result = api.nova.get_password(request, instance_id)
 
132
            if not result:
 
133
                _unavailable = _("Instance Password is not set"
 
134
                                 " or is not yet available")
 
135
                self.fields['encrypted_password'].initial = _unavailable
 
136
            else:
 
137
                self.fields['encrypted_password'].initial = result
 
138
                self.fields['private_key_file'] = forms.FileField(
 
139
                    label=_('Private Key File'),
 
140
                    widget=forms.FileInput(),
 
141
                    required=True)
 
142
                self.fields['private_key'] = forms.CharField(
 
143
                    widget=forms.widgets.Textarea(),
 
144
                    label=_("OR Copy/Paste your Private Key"),
 
145
                    required=True)
 
146
                _attrs = {'readonly': 'readonly'}
 
147
                self.fields['decrypted_password'] = forms.CharField(
 
148
                    widget=forms.widgets.TextInput(_attrs),
 
149
                    label=_("Password"),
 
150
                    required=False)
 
151
        except Exception:
 
152
            redirect = reverse('horizon:project:instances:index')
 
153
            _error = _("Unable to retrieve instance password.")
 
154
            exceptions.handle(request, _error, redirect=redirect)
 
155
 
 
156
    def handle(self, request, data):
 
157
        return True