User Tools

Site Tools


cloud:recipe:coding

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
cloud:recipe:coding [2020/05/14 08:50] chudlercloud:recipe:coding [2020/05/14 14:51] – [Demo Code] chudler
Line 2: Line 2:
 This document gives a quick introduction to using the Openstack Python client to discover and consume compute resources. This document gives a quick introduction to using the Openstack Python client to discover and consume compute resources.
  
-Before beginning, get an account as described in the [[ cloud:intro | Introduction ]]+Before beginning, get an account as described in the [[ cloud:intro | Introduction ]]. This is the right place to read about writing python scripts. A companion document shows how to use the [[ cloud:cli | Command Line ]].
  
 ======Installation====== ======Installation======
Line 48: Line 48:
 </code> </code>
  
 +The main flaw here is that you are taking risks by storing your University credentials in a file. Instead, you can use the API or web interface to create an Application Credential. For example,
 +
 +<code>
 +openstack application credential create --secret sekret --role member --expiration 2020-10-10:10:10:10 --restricted myapp
 +</code>
 =====Testing and Usage===== =====Testing and Usage=====
 Ensure you can load the python module Ensure you can load the python module
Line 64: Line 69:
 You have failed to provide a configuration file. This is different from a syntax error, but not so different from a permission problem, for example. You have failed to provide a configuration file. This is different from a syntax error, but not so different from a permission problem, for example.
  
 +======Demo Code======
  
 +The following Python code shows how to create and destroy a server, and obtain information about Networks, Images, and Flavors. Consult the [[ https://docs.openstack.org/openstacksdk/latest/user/index.html#api-documentation | API Resource Documentation ]] to see what else is possible.
 +
 +For your learning, contrast this with the equivalent actions that are taken in the [[ cloud:cli | Command Line Usage Guide ]].
 +
 +<code>
 +
 +import openstack
 +from openstack.config import loader
 +# openstack.enable_logging(True)
 +config = loader.OpenStackConfig()
 +cloud = openstack.connect(cloud='openstack')
 +flavor = cloud.get_flavor_by_ram(2048)
 +# print(flavor.name)
 +image = cloud.get_image('20.04')
 +# cloud.pprint(image)
 +# network = cloud.network.find_network('campus37')
 +network = cloud.get_network('campus37')
 +# cloud.pprint(network)
 +try:
 +    server = cloud.create_server('myserver', image=image, flavor=flavor, network=network, wait=True, auto_ip=True)
 +    # cloud.pprint(server)
 +    # cloud.pprint(cloud.get_server('myserver', detailed=False))
 +    cloud.pprint(cloud.get_server('myserver', bare=True))
 +finally:
 +    cloud.delete_server('myserver', wait=True, delete_ips=True)
 +</code>
/var/lib/dokuwiki/data/pages/cloud/recipe/coding.txt · Last modified: 2020/05/14 18:32 by chudler

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki