Advertisement
Guest User

Untitled

a guest
Feb 17th, 2017
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.95 KB | None | 0 0
  1. #!/usr/bin/env python
  2. import requests
  3. import json
  4. import requests.packages.urllib3
  5. from requests.packages.urllib3.exceptions import InsecureRequestWarning
  6. requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
  7.  
  8. xms_user = ''
  9. xms_pass = ''
  10. xms_ip   = ''
  11. xms_addr = 'https://%s/api/json/v2/types/' % (xms_ip)
  12. xms_cluster = ''
  13.  
  14. def refreshSnapSet(cluster,snapfrom,snapto,snapnew,snaptype,suffix):
  15.     try:
  16.         payload = {'cluster-id' : cluster,
  17.                    'to-snapshot-set-id' : snapto,
  18.                    'snapshot-set-name' : snapnew,
  19.                    'backup-snapshot-type' : snaptype,
  20.                    'backup-snap-suffix' : '-' + suffix}
  21.         if suffix == 'SSRW':
  22.             payload['from-snapshot-set-id'] = snapfrom
  23.         else:
  24.             payload['from-consistency-group-id'] = snapfrom
  25.         r = requests.post(xms_addr+'snapshots',json=payload,auth=(xms_user,xms_pass),verify=False)
  26.         print r.status_code
  27.     except Exception as e:
  28.         print "Error: ",e
  29.         return 1
  30.  
  31. def renameSnapSet(cluster,snapfrom,snapto):
  32.     try:
  33.         payload = {'new-name' : snapto}
  34.         r = requests.put('%ssnapshot-sets?name=%s&cluster-name=%s'%(xms_addr,snapfrom,xms_cluster),
  35.                         json=payload,
  36.                         auth=(xms_user,xms_pass),
  37.                         verify=False)
  38.         print r.status_code
  39.     except Exception as e:
  40.         print "Error: ",e
  41.         return 1
  42.  
  43. def rotateSnapSet(cluster,orig,old,new):
  44.     try:
  45.         renameSnapSet(cluster,orig,old)
  46.         renameSnapSet(cluster,new,orig)
  47.     except Exception as e:
  48.         print "Error: ",e
  49.         return 1
  50.  
  51. def deleteSnapSet(cluster,snapname):
  52.     try:
  53.         r = requests.delete('%ssnapshot-sets?name=%s&cluster-name=%s'%(xms_addr,snapname,xms_cluster),
  54.                             auth=(xms_user,xms_pass),
  55.                             verify=False)
  56.         print r.status_code
  57.     except Exception as e:
  58.         print "Error: ",e
  59.         return 1
  60.  
  61. def buildVarsDict(cgname):
  62.     cg_vars = {'name'    : cgname,
  63.                'ssro'    : cgname + '-SSRO',
  64.                'ssroold' : cgname + '-SSRO-OLD',
  65.                'ssronew' : cgname + '-SSRO-NEW',
  66.                'ssrw'    : cgname + '-SSRW',
  67.                'ssrwold' : cgname + '-SSRW-OLD',
  68.                'ssrwnew' : cgname + '-SSRW-NEW'}
  69.     return cg_vars
  70.  
  71. def main():
  72.     cg_list = ('CACHE_DRVG','CACHE_PRDVG')
  73.  
  74.     for cg in cg_list:
  75.         cg = buildVarsDict(cg)
  76.        
  77.         refreshSnapSet(xms_cluster,cg['name'],cg['ssro'],cg['ssronew'],'readonly','SSRO')
  78.         refreshSnapSet(xms_cluster,cg['ssro'],cg['ssrw'],cg['ssrwnew'],'regular','SSRW')
  79.         rotateSnapSet(xms_cluster,cg['ssro'],cg['ssroold'],cg['ssronew'])
  80.         rotateSnapSet(xms_cluster,cg['ssrw'],cg['ssrwold'],cg['ssrwnew'])
  81.         deleteSnapSet(xms_cluster,cg['ssroold'])
  82.         deleteSnapSet(xms_cluster,cg['ssrwold'])
  83.  
  84. if __name__ == '__main__':
  85.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement