Skip to content
Snippets Groups Projects
Select Git revision
  • 50aa1a8519e3fd02c3cc7f00bb5f2fa200a8cd43
  • master default protected
2 results

demo5-2-backup-fractals.py

Blame
  • user avatar
    Usama Tahir authored
    Converted all these files from python 2 to python 3 syntax usong 2to3 library (demo3-microservices.py,demo4-scale-out-add-worker.py,demo4-scale-out.py,demo5-1-durable-storage.py,demo5-2-backup-fractals.py,destroy-all-demo-instances.py)
    9a998ad6
    History
    demo5-2-backup-fractals.py 2.87 KiB
    
    
    import getpass
    import json
    import os
    
    import libcloud
    import libcloud.security
    import requests
    from libcloud.storage.providers import get_driver
    from libcloud.storage.types import Provider
    
    # HS-Fulda Private Cloud
    auth_url = 'https://192.168.72.40:5000'
    region_name = 'RegionOne'
    domain_name = "hsfulda"
    
    api_ip = '192.168.72.102'
    
    
    def main():
        ###########################################################################
        #
        # get credentials
        #
        ###########################################################################
    
        if "OS_PROJECT_NAME" in os.environ:
            project_name = os.environ["OS_PROJECT_NAME"]
        else:
            project_name = eval(input("Enter your OpenStack project:"))
    
        if "OS_USERNAME" in os.environ:
            auth_username = os.environ["OS_USERNAME"]
        else:
            auth_username = eval(input("Enter your OpenStack username:"))
    
        if "OS_PASSWORD" in os.environ:
            auth_password = os.environ["OS_PASSWORD"]
        else:
            auth_password = getpass.getpass("Enter your OpenStack password:")
    
        ###########################################################################
        #
        # create connection
        #
        ###########################################################################
    
        libcloud.security.VERIFY_SSL_CERT = False
    
        provider = get_driver(Provider.OPENSTACK_SWIFT)
        swift = provider(auth_username,
                         auth_password,
                         ex_force_auth_url=auth_url,
                         ex_force_auth_version='3.x_password',
                         ex_tenant_name=project_name,
                         ex_force_service_region=region_name,
                         ex_domain_name=domain_name)
    
        ###########################################################################
        #
        # create container
        #
        ###########################################################################
    
        container_name = 'fractals'
        containers = swift.list_containers()
        container = False
        for con in containers:
            if con.name == container_name:
                container = con
    
        if not container:
            container = swift.create_container(container_name=container_name)
    
        print(container)
    
        ###########################################################################
        #
        # backup existing fractals to container
        #
        ###########################################################################
    
        endpoint = 'http://' + api_ip
        params = { 'results_per_page': '-1' }
        response = requests.get('%s/v1/fractal' % endpoint, params=params)
        data = json.loads(response.text)
        for fractal in data['objects']:
            response = requests.get('%s/fractal/%s' % (endpoint, fractal['uuid']), stream=True)
            container.upload_object_via_stream(response.iter_content(), object_name=fractal['uuid'])
    
        for object_data in container.list_objects():
            print(object_data)
    
    
    if __name__ == '__main__':
        main()