Skip to content

Commit 405dd19

Browse files
author
Everett Toews
committed
Create Key Pair
Factor out key pair creation into its own method to make key pair creation clearer. Change-Id: I871c95df12cf5d00484775389816900849789a80
1 parent fed616b commit 405dd19

File tree

2 files changed

+33
-9
lines changed

2 files changed

+33
-9
lines changed

doc/source/users/guides/compute.rst

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,18 @@ A **network** provides connectivity to servers.
5252

5353
Full example: `network resource list`_
5454

55+
Create Key Pair
56+
---------------
57+
58+
A **key pair** is the public key and private key of
59+
`public–key cryptography`_. They are used to encrypt and decrypt login
60+
information when connecting to your server.
61+
62+
.. literalinclude:: ../examples/compute/create.py
63+
:pyobject: create_keypair
64+
65+
Full example: `compute resource create`_
66+
5567
Create Server
5668
-------------
5769

@@ -60,8 +72,8 @@ creation. You can discover the names and IDs of these attributes by listing
6072
them as above and then using the find methods to get the appropriate
6173
resources.
6274

63-
Ideally you'll also create a server using a public/private keypair so you can
64-
login to that server with the private key.
75+
Ideally you'll also create a server using a keypair so you can login to that
76+
server with the private key.
6577

6678
Servers take time to boot so we call ``wait_for_server`` to wait
6779
for it to become active.
@@ -74,3 +86,4 @@ Full example: `compute resource create`_
7486
.. _compute resource list: http://git.openstack.org/cgit/openstack/python-openstacksdk/tree/examples/compute/list.py
7587
.. _network resource list: http://git.openstack.org/cgit/openstack/python-openstacksdk/tree/examples/network/list.py
7688
.. _compute resource create: http://git.openstack.org/cgit/openstack/python-openstacksdk/tree/examples/compute/create.py
89+
.. _public–key cryptography: https://en.wikipedia.org/wiki/Public-key_cryptography

examples/compute/create.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,35 @@
2525
"""
2626

2727

28-
def create_server(conn):
29-
print("Create Server:")
28+
def create_keypair(conn):
29+
keypair = conn.compute.find_keypair(KEYPAIR_NAME)
3030

31-
image = conn.compute.find_image(IMAGE_NAME)
32-
flavor = conn.compute.find_flavor(FLAVOR_NAME)
33-
network = conn.network.find_network(NETWORK_NAME)
31+
if not keypair:
32+
print("Create Key Pair:")
3433

35-
if not conn.compute.find_keypair(KEYPAIR_NAME):
3634
keypair = conn.compute.create_keypair(name=KEYPAIR_NAME)
3735

36+
print(keypair)
37+
3838
with open(PRIVATE_KEYPAIR_FILE, 'w') as f:
3939
f.write("%s" % keypair.private_key)
4040

4141
os.chmod(PRIVATE_KEYPAIR_FILE, 0o400)
4242

43+
return keypair
44+
45+
46+
def create_server(conn):
47+
print("Create Server:")
48+
49+
image = conn.compute.find_image(IMAGE_NAME)
50+
flavor = conn.compute.find_flavor(FLAVOR_NAME)
51+
network = conn.network.find_network(NETWORK_NAME)
52+
keypair = create_keypair(conn)
53+
4354
server = conn.compute.create_server(
4455
name='openstacksdk-example', image=image, flavor=flavor,
45-
networks=[{"uuid": network.id}], key_name=KEYPAIR_NAME)
56+
networks=[{"uuid": network.id}], key_name=keypair.name)
4657

4758
server = conn.compute.wait_for_server(server)
4859

0 commit comments

Comments
 (0)