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
A prog2-höz tartozó friss repo anyagok itt elérhetőek:
https://git.iit.bme.hu/
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
Show 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