2016-08-11 4 views
0

restoreFromSnapshot API呼び出しが実際に壊れていることを確認できます。私は機密情報を空白のままにしています。さらに、リストアを実行する前に、正しい手順に従い、プロビジョニングされたマシンでEnduranceボリュームをアンマウントしたことに注意してください。SoftLayer restoreFromSnapshot APIコールが耐久性ボリュームのために破損しました

/home/scripts > ./snapshot.py list 12193217 
VOLUM ID: 12193217 
+---+-------------------+----------+----------+---------------------------+ 
| # |  username  | id | nasType |   createDate  | 
+---+-------------------+----------+----------+---------------------------+ 
| 7 |  ***   | 13020991 | SNAPSHOT | ***      | 


/home/scripts > ./snapshot.py restore 12193217 13020991 
iscsi id: 12193217 
iscsi snapshot ID: 13020991 
True 


    def restore_from_snapshot(sl_config, volume_id, snapshot_id): 
     """ Restore drive from specified snapshot """ 
     if snapshot_id and volume_id: 
      volume_id = volume_id[0] 
      snapshot_id = snapshot_id[0] 
      #print "snapshot_id = %s :: volume_id = %s" % snapshot_id % volume_id 
      iscsi_mgr = SoftLayer.ISCSIManager(SL.instance(sl_config).client) 
      iscsi_id = helpers.resolve_id(iscsi_mgr.resolve_ids, volume_id,'iSCSI') 
      print "iscsi id: %i" % iscsi_id 
      iscsi_snapshot_id = helpers.resolve_id(iscsi_mgr.resolve_ids, snapshot_id,'Snapshot') 
      print "iscsi snapshot ID: %i " % iscsi_snapshot_id 
      iscsi = SL.instance(sl_config).client['Network_Storage_Iscsi'] 
      snapshot_output = iscsi.restoreFromSnapshot(iscsi_snapshot_id, id=iscsi_id) 

      print snapshot_output 

これ以降は何も起こりません。 Web APIを介してのみ、リストアが行われます。 SLCLIも壊れています(同じサービスを使用しています)。

答えて

0

ISCSIManagerでサービスを使用する際に問題が発生しました。私はそれについての問題を開設しています

おそらくそれが修正されるまでに時間がかかります。その間私は、スナップショットからストレージを復元するためにPythonスクリプトを提供することができます。

""" 
This script restores the volume from a snapshot that was previously taken. 

See below references for more details. 
Important manual pages: 
http://sldn.softlayer.com/reference/services/SoftLayer_Network_Storage/restoreFromSnapshot 

@License: http://sldn.softlayer.com/article/License 
@Author: SoftLayer Technologies, Inc. <[email protected]> 
""" 
import SoftLayer 
from pprint import pprint as pp 

# Your SoftLayer username and apiKey 
user = 'set me' 
api = 'set me' 

# Connect to SoftLayer 
client = SoftLayer.create_client_from_env(username=user, api_key=api) 

# Define the storage Id 
storageId = 5805966 

# Define the snapshot Id 
snapshotId = 13431999 

try: 
    result = client['SoftLayer_Network_Storage'].restoreFromSnapshot(snapshotId, id=storageId) 
    pp(result) 
except SoftLayer.SoftLayerAPIError as e: 
    print('Error: faultCode=%s, faultString=%s' 
      % (e.faultCode, e.faultString)) 
    exit(1) 

参照

関連する問題