Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
itminedu
kamaki
Commits
e864cd9e
Commit
e864cd9e
authored
Nov 06, 2013
by
Stavros Sachtouris
Browse files
Implement client.cyclades.CycladesNetworkClient
Refs: #4563 This class implements APi extentions custom to Cyclades
parent
5c433331
Changes
5
Hide whitespace changes
Inline
Side-by-side
kamaki/cli/config/__init__.py
View file @
e864cd9e
...
...
@@ -85,9 +85,9 @@ DEFAULTS = {
'file_cli'
:
'pithos'
,
'server_cli'
:
'cyclades'
,
'flavor_cli'
:
'cyclades'
,
'network_cli'
:
'network
ing
'
,
'subnet_cli'
:
'network
ing
'
,
'port_cli'
:
'network
ing
'
,
'network_cli'
:
'network'
,
'subnet_cli'
:
'network'
,
'port_cli'
:
'network'
,
'ip_cli'
:
'cyclades'
,
'image_cli'
:
'image'
,
'config_cli'
:
'config'
,
...
...
kamaki/clients/cyclades/__init__.py
View file @
e864cd9e
...
...
@@ -34,6 +34,7 @@
from
time
import
sleep
from
kamaki.clients.cyclades.rest_api
import
CycladesRestClient
from
kamaki.clients.network
import
NetworkClient
from
kamaki.clients
import
ClientError
...
...
@@ -502,3 +503,19 @@ class CycladesClient(CycladesRestClient):
req
=
dict
(
removeFloatingIp
=
dict
(
address
=
address
))
r
=
self
.
servers_action_post
(
server_id
,
json_data
=
req
)
return
r
.
headers
class
CycladesNetworkClient
(
NetworkClient
):
"""Cyclades Network API extentions"""
network_types
=
(
'CUSTOM'
,
'MAC_FILTERED'
,
'IP_LESS_ROUTED'
,
'PHYSICAL_VLAN'
)
def
create_network
(
self
,
type
,
name
=
None
,
shared
=
None
):
req
=
dict
(
network
=
dict
(
type
=
type
,
admin_state_up
=
True
))
if
name
:
req
[
'network'
][
'name'
]
=
name
if
shared
not
in
(
None
,
):
req
[
'network'
][
'shared'
]
=
bool
(
shared
)
r
=
self
.
networks_post
(
json_data
=
req
,
success
=
201
)
return
r
.
json
[
'network'
]
kamaki/clients/cyclades/test.py
View file @
e864cd9e
...
...
@@ -239,6 +239,37 @@ class CycladesRestClient(TestCase):
'/os-floating-ips/%s'
%
fip
,
success
=
success
,
**
kwargs
))
class
CycladesNetworkClient
(
TestCase
):
"""Set up a ComputesRest thorough test"""
def
setUp
(
self
):
self
.
url
=
'http://network.example.com'
self
.
token
=
'n2tw0rk70k3n'
self
.
client
=
cyclades
.
CycladesNetworkClient
(
self
.
url
,
self
.
token
)
def
tearDown
(
self
):
FR
.
json
=
vm_recv
del
self
.
client
@
patch
(
'kamaki.clients.network.NetworkClient.networks_post'
,
return_value
=
FR
())
def
test_create_network
(
self
,
networks_post
):
for
name
,
shared
in
product
((
None
,
'net name'
),
(
None
,
True
)):
FR
.
json
=
dict
(
network
=
'ret val'
)
type
=
'net type'
self
.
assertEqual
(
self
.
client
.
create_network
(
type
,
name
=
name
,
shared
=
shared
),
'ret val'
)
req
=
dict
(
type
=
type
,
admin_state_up
=
True
)
if
name
:
req
[
'name'
]
=
name
if
shared
:
req
[
'shared'
]
=
shared
expargs
=
dict
(
json_data
=
dict
(
network
=
req
),
success
=
201
)
self
.
assertEqual
(
networks_post
.
mock_calls
[
-
1
],
call
(
**
expargs
))
class
CycladesClient
(
TestCase
):
def
assert_dicts_are_equal
(
self
,
d1
,
d2
):
...
...
@@ -533,7 +564,10 @@ if __name__ == '__main__':
not_found
=
True
if
not
argv
[
1
:]
or
argv
[
1
]
==
'CycladesClient'
:
not_found
=
False
runTestCase
(
CycladesClient
,
'Cyclades Client'
,
argv
[
2
:])
runTestCase
(
CycladesNetworkClient
,
'Cyclades Client'
,
argv
[
2
:])
if
not
argv
[
1
:]
or
argv
[
1
]
==
'CycladesNetworkClient'
:
not_found
=
False
runTestCase
(
CycladesNetworkClient
,
'CycladesNetwork Client'
,
argv
[
2
:])
if
not
argv
[
1
:]
or
argv
[
1
]
==
'CycladesRestClient'
:
not_found
=
False
runTestCase
(
CycladesRestClient
,
'CycladesRest Client'
,
argv
[
2
:])
...
...
kamaki/clients/test.py
View file @
e864cd9e
...
...
@@ -42,7 +42,7 @@ from kamaki.clients.utils.test import Utils
from
kamaki.clients.astakos.test
import
AstakosClient
from
kamaki.clients.compute.test
import
ComputeClient
,
ComputeRestClient
from
kamaki.clients.network.test
import
(
NetworkClient
,
NetworkRestClient
)
from
kamaki.clients.cyclades.test
import
CycladesClient
from
kamaki.clients.cyclades.test
import
CycladesClient
,
CycladesNetworkClient
from
kamaki.clients.cyclades.test
import
CycladesRestClient
from
kamaki.clients.image.test
import
ImageClient
from
kamaki.clients.storage.test
import
StorageClient
...
...
setup.py
View file @
e864cd9e
...
...
@@ -76,7 +76,7 @@ setup(
'kamaki.clients.astakos'
,
'kamaki.clients.compute'
,
'kamaki.clients.cyclades'
,
'kamaki.clients.network
ing
'
'kamaki.clients.network'
],
classifiers
=
[
'Operating System :: OS Independent'
,
...
...
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