john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

nirvanix connection rest requests

# 2013-02-06 johnpfeiffer
import requests     # http://docs.python-requests.org/en/latest/api/

AUTHENTICATE_URL = '/ws/Authentication/Login.ashx'
LIST_URL = '/ws/IMFS/ListFolder.ashx?'


class NirvanixConnection:
    server = ''
    session_token = ''
    response = None
    response_dictionary = dict()
    username = ''
    password = ''
    appname = ''
    appkey = ''


    def __init__( self , server , username , password , appname , appkey ):
        self.server = server
        self.username = username
        self.password = password
        self.appname = appname
        self.appkey = appkey

    def parse_response( self ):
        status_code = self.response.status_code
        print '%s' % ( self.response.headers )

        if status_code == 200:
            self.response_dictionary = self.response.json()
            print '%s %s' % ( type( self.response_dictionary ) , self.response_dictionary )


    # https://services.smartcloudobjectstorage.com/ws/Authentication/Login.ashx?appKey=7ec360a4-be3c-8495a2932c6f&username=My-Lab&password=MyPassword&output=json
    def authenticate( self):
        payload = {'appKey' : self.appkey , 'username' : self.username  , 'password' : self.password , 'output' : 'json'}
        print 'DEBUG: %s' % payload
        self.response = requests.post( self.server + AUTHENTICATE_URL  , params = payload , verify = True )
        if not self.response:
            print 'ERROR no response'
        else:
            self.parse_response()
            if self.response_dictionary:
                self.session_token = self.response_dictionary[ 'SessionToken' ]
                print 'session token = %s \n' % ( self.session_token )


    def list_folder( self , folder_path , page_number , page_size ):
        # http://developer.nirvanix.com/sitefiles/1000/API.html#_TocListFolder
        # sortCode = Name, CreatedDate, SizeBytes, FileType
        # sortDescending = true
        # showMetadata = true
        # showTags = true

        payload = {'sessionToken' : self.session_token , 'folderPath' : folder_path , 'pageNumber' : page_number , 'pageSize' : page_size , 'output' : 'json'}

        response = requests.post( self.server + LIST_URL  , params = payload )
        self.parse_response()


# MAIN ###############

def main():
    print "start..."
    server = 'https://services.smartcloudobjectstorage.com:443'     # 'https://services.nirvanix.com:443'
    username =  'MyUsername'
    password = 'MyPassword'
    appname = 'MyAppName'
    appkey = 'My-App-Key'

    nirvanix_connection = NirvanixConnection( server , username , password , appname , appkey )
    nirvanix_connection.authenticate()

    folder_path = '/'
    page_number = '0'
    page_size = '500'

    nirvanix_connection.list_folder( folder_path , page_number , page_size )

if __name__ == "__main__":
    main()

  • « http server request echo
  • http scrape oxygen weblink »

Published

Feb 7, 2013

Category

python

~176 words

Tags

  • connection 4
  • nirvanix 2
  • python 180
  • requests 5
  • rest 3