Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
RECIRCLE
/
interface-openstack
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
2
Merge Requests
4
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
ee340aea
authored
Jul 08, 2019
by
Chif Gergő
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix volume attachment
parent
d0137d0e
Pipeline
#745
passed with stage
in 39 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
75 additions
and
71 deletions
+75
-71
implementation/vm/instance.py
+8
-9
main.py
+67
-62
No files found.
implementation/vm/instance.py
View file @
ee340aea
...
@@ -183,24 +183,23 @@ class OSVirtualMachineManager(InstanceInterface):
...
@@ -183,24 +183,23 @@ class OSVirtualMachineManager(InstanceInterface):
@openstackError
@openstackError
def
attach_volume
(
self
,
server_id
,
volume_id
,
device
=
None
):
def
attach_volume
(
self
,
server_id
,
volume_id
,
device
=
None
):
self
.
openstack
.
compute
.
create_volume_attachment
(
server
_id
,
self
.
openstack
.
compute
.
create_volume_attachment
(
volumeId
=
volume
_id
,
{
"volumeId"
:
volume
_id
,
server
=
server
_id
,
}
)
)
@openstackError
@openstackError
def
detach_volume
(
self
,
server_id
,
volume_id
,
device
=
None
):
def
detach_volume
(
self
,
server_id
,
volume_id
,
device
=
None
):
self
.
openstack
.
compute
.
delete_volume_attachment
(
server_id
,
self
.
openstack
.
compute
.
delete_volume_attachment
(
{
"volumeId"
:
volume_id
,
volume_attachment
=
volume_id
,
"device"
:
device
server
=
server_id
)
})
def
convert_server_to_instance
(
self
,
server
):
def
convert_server_to_instance
(
self
,
server
):
if
not
server
.
image
:
if
not
server
.
image
:
image_id
=
None
image_id
=
None
else
:
else
:
image_id
=
server
.
image
_id
image_id
=
server
.
image
[
"id"
]
return
Instance
(
id
=
server
.
id
,
return
Instance
(
id
=
server
.
id
,
flavor
=
server
.
flavor
_id
,
flavor
=
server
.
flavor
[
"id"
]
,
name
=
server
.
name
,
name
=
server
.
name
,
image_id
=
image_id
,
image_id
=
image_id
,
disks
=
server
.
attached_volumes
,
disks
=
server
.
attached_volumes
,
...
...
main.py
View file @
ee340aea
...
@@ -45,9 +45,14 @@ print("*" * 50)
...
@@ -45,9 +45,14 @@ print("*" * 50)
print
(
"*********TEST SERVER**********"
)
print
(
"*********TEST SERVER**********"
)
print
(
interface
.
get_vm
(
"fb91a363-e23b-4fb6-8770-357509b753da"
)
.
JSON
())
print
(
interface
.
get_vm
(
"fb91a363-e23b-4fb6-8770-357509b753da"
)
.
JSON
())
print
(
interface
.
openstack
.
get_server
(
"fb91a363-e23b-4fb6-8770-357509b753da"
))
print
(
"*********TEST SUSPEND**********"
)
print
(
"*********TEST SUSPEND**********"
)
interface
.
suspend_vm
(
"fb91a363-e23b-4fb6-8770-357509b753da"
)
interface
.
suspend_vm
(
"fb91a363-e23b-4fb6-8770-357509b753da"
)
interface
.
detach_volume
(
"8e94c162-f8ed-4872-b9e5-50bf33040b5b"
,
"83d4f11a-f6a8-4f50-8a95-8f5016604780"
)
# print(interface.convert_server_to_instance(server).JSON())
# print(interface.convert_server_to_instance(server).JSON())
# print(interface.openstack.compute.get_server("8e94c162-f8ed-4872-b9e5-50bf33040b5b"))
# print(interface.openstack.compute.get_server("8e94c162-f8ed-4872-b9e5-50bf33040b5b"))
...
@@ -77,65 +82,65 @@ interface.suspend_vm("fb91a363-e23b-4fb6-8770-357509b753da")
...
@@ -77,65 +82,65 @@ interface.suspend_vm("fb91a363-e23b-4fb6-8770-357509b753da")
# Network test
# Network test
# ==============================================================================
# ==============================================================================
os
=
openstack
.
connect
(
cloud
=
'openstack'
)
#
os = openstack.connect(cloud='openstack')
#
router_manager
=
OpenstackRouterManager
(
os
)
#
router_manager = OpenstackRouterManager(os)
network_manager
=
OpenstackNetworkManager
(
os
)
#
network_manager = OpenstackNetworkManager(os)
subnet_manager
=
OpenstackSubnetManager
(
os
)
#
subnet_manager = OpenstackSubnetManager(os)
port_manager
=
OpenstackPortManager
(
os
)
#
port_manager = OpenstackPortManager(os)
floating_ip_manager
=
OpenstackFloatingIPManager
(
os
)
#
floating_ip_manager = OpenstackFloatingIPManager(os)
#
'''
#
'''
Network setup steps:
#
Network setup steps:
- Create inner network
#
- Create inner network
- Create subnet for inner network
#
- Create subnet for inner network
- Create router
#
- Create router
- Add public network to router as gateway
#
- Add public network to router as gateway
- Add inner subnet to router as interface
#
- Add inner subnet to router as interface
- Add interface (or port?) to vm
#
- Add interface (or port?) to vm
- Get the port of the vm
#
- Get the port of the vm
- Create floating ip to public network
#
- Create floating ip to public network
- Associate floating ip and vm port
#
- Associate floating ip and vm port
'''
#
'''
#
#router = router_manager.create()
#
#
router = router_manager.create()
router
=
router_manager
.
get
(
'3ee87bcd-b1b5-4e14-86a1-ce691bd3e5a2'
)
#
router = router_manager.get('3ee87bcd-b1b5-4e14-86a1-ce691bd3e5a2')
#
print
(
'Router:'
)
#
print('Router:')
print
(
'
\t
%
s'
%
router
)
#
print('\t%s' % router)
#
#network = network_manager.create()
#
#
network = network_manager.create()
public_network
=
network_manager
.
get
(
'3b349c93-8b2c-4abd-b8ce-22b7db4cca98'
)
#
public_network = network_manager.get('3b349c93-8b2c-4abd-b8ce-22b7db4cca98')
inner_network
=
network_manager
.
get
(
'8df0d7ab-7d56-4496-aca0-317af66b3ebc'
)
#
inner_network = network_manager.get('8df0d7ab-7d56-4496-aca0-317af66b3ebc')
#
print
(
'Network:'
)
#
print('Network:')
print
(
'
\t
Public:
%
s'
%
public_network
)
#
print('\tPublic: %s' % public_network)
print
(
'
\t
Inner:
%
s'
%
inner_network
)
#
print('\tInner: %s' % inner_network)
#
#subnet = subnet_manager.create(network.id, 4, '10.34.0.0/16')
#
#
subnet = subnet_manager.create(network.id, 4, '10.34.0.0/16')
public_subnet
=
subnet_manager
.
get
(
'8a7e05f8-6358-48f7-9104-990d350425a0'
)
#
public_subnet = subnet_manager.get('8a7e05f8-6358-48f7-9104-990d350425a0')
# create(inner_network.id, 4, '10.0.0.0/24')
#
#
create(inner_network.id, 4, '10.0.0.0/24')
inner_subnet
=
subnet_manager
.
get
(
'34911571-c929-4433-b4e6-305fcb585a91'
)
#
inner_subnet = subnet_manager.get('34911571-c929-4433-b4e6-305fcb585a91')
#
print
(
'Subnet:'
)
#
print('Subnet:')
print
(
'
\t
Public:
%
s'
%
public_subnet
)
#
print('\tPublic: %s' % public_subnet)
print
(
'
\t
Inner:
%
s'
%
inner_subnet
)
#
print('\tInner: %s' % inner_subnet)
#
vm_port
=
port_manager
.
get
(
'85202d6d-7aa0-44bc-a5eb-78b0519066c5'
)
# inner
#
vm_port = port_manager.get('85202d6d-7aa0-44bc-a5eb-78b0519066c5') # inner
#
print
(
'Port:'
)
#
print('Port:')
print
(
'
\t
VM:
%
s'
%
vm_port
)
#
print('\tVM: %s' % vm_port)
#
#floating_ip = floating_ip_manager.create(public_network.id)
#
#
floating_ip = floating_ip_manager.create(public_network.id)
floating_ip
=
floating_ip_manager
.
get
(
'fe1e329f-aedb-4b3e-a649-9fec8eb3ece5'
)
#
floating_ip = floating_ip_manager.get('fe1e329f-aedb-4b3e-a649-9fec8eb3ece5')
#
print
(
'Floating IP:'
)
#
print('Floating IP:')
print
(
'
\t
Floating IP:
%
s'
%
floating_ip
)
#
print('\tFloating IP: %s' % floating_ip)
#
#
print
(
router_manager
.
add_interface
(
router
.
id
,
inner_subnet
.
id
))
# TODO: fix error msg
#
print(router_manager.add_interface(router.id, inner_subnet.id)) # TODO: fix error msg
print
(
router_manager
.
add_gateway
(
router
.
id
,
public_network
.
id
))
# TODO: fix it!
#
print(router_manager.add_gateway(router.id, public_network.id)) # TODO: fix it!
#
print
(
floating_ip_manager
.
update
(
floating_ip
.
id
,
{
#
print(floating_ip_manager.update(floating_ip.id, {
'port_id'
:
vm_port
.
id
#
'port_id': vm_port.id
}))
#
}))
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment