~ubuntu-branches/ubuntu/raring/cinder/raring-updates

« back to all changes in this revision

Viewing changes to cinder/volume/drivers/netapp_nfs.py

Tags: upstream-2013.1~g2
ImportĀ upstreamĀ versionĀ 2013.1~g2

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
netapp_nfs_opts = [
36
36
    cfg.IntOpt('synchronous_snapshot_create',
37
37
               default=0,
38
 
               help='Does snapshot creation call returns immediately')
39
 
    ]
 
38
               help='Does snapshot creation call returns immediately')]
40
39
 
41
40
FLAGS = flags.FLAGS
42
41
FLAGS.register_opts(netapp_opts)
71
70
 
72
71
        if vol_size != snap_size:
73
72
            msg = _('Cannot create volume of size %(vol_size)s from '
74
 
                'snapshot of size %(snap_size)s')
 
73
                    'snapshot of size %(snap_size)s')
75
74
            raise exception.CinderException(msg % locals())
76
75
 
77
76
        self._clone_volume(snapshot.name, volume.name, snapshot.volume_id)
114
113
        client = suds.client.Client(FLAGS.netapp_wsdl_url,
115
114
                                    username=FLAGS.netapp_login,
116
115
                                    password=FLAGS.netapp_password)
117
 
        soap_url = 'http://%s:%s/apis/soap/v1' % (
118
 
                                          FLAGS.netapp_server_hostname,
119
 
                                          FLAGS.netapp_server_port)
 
116
        soap_url = 'http://%s:%s/apis/soap/v1' % (FLAGS.netapp_server_hostname,
 
117
                                                  FLAGS.netapp_server_port)
120
118
        client.set_options(location=soap_url)
121
119
 
122
120
        return client
144
142
                                                    clone_name))
145
143
 
146
144
        resp = self._client.service.ApiProxy(Target=host_id,
147
 
                                            Request=request)
 
145
                                             Request=request)
148
146
 
149
147
        if resp.Status == 'passed' and FLAGS.synchronous_snapshot_create:
150
148
            clone_id = resp.Results['clone-id'][0]
161
159
        :param clone_operation_id: Identifier of ONTAP clone operation
162
160
        """
163
161
        clone_list_options = ('<clone-id>'
164
 
                                '<clone-id-info>'
165
 
                                  '<clone-op-id>%d</clone-op-id>'
166
 
                                  '<volume-uuid></volume-uuid>'
167
 
                                '</clone-id>'
 
162
                              '<clone-id-info>'
 
163
                              '<clone-op-id>%d</clone-op-id>'
 
164
                              '<volume-uuid></volume-uuid>'
 
165
                              '</clone-id>'
168
166
                              '</clone-id-info>')
169
167
 
170
168
        request = self._client.factory.create('Request')
176
174
        while resp.Status != 'passed':
177
175
            time.sleep(1)
178
176
            resp = self._client.service.ApiProxy(Target=host_id,
179
 
                                                Request=request)
 
177
                                                 Request=request)
180
178
 
181
179
    def _get_provider_location(self, volume_id):
182
180
        """
219
217
        request.Args = text.Raw(command_args % export_path)
220
218
 
221
219
        resp = self._client.service.ApiProxy(Target=host_id,
222
 
                                            Request=request)
 
220
                                             Request=request)
223
221
 
224
222
        if resp.Status == 'passed':
225
223
            return resp.Results['actual-pathname'][0]