Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
slapos.core
Commits
c2d5a1eb
Commit
c2d5a1eb
authored
Jun 01, 2012
by
Vincent Pelletier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pass connection helper as a constructor parameter, not as class property.
Gets rid of the last class property in this file.
parent
5629ac03
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
13 deletions
+32
-13
slapos/slap/slap.py
slapos/slap/slap.py
+32
-13
No files found.
slapos/slap/slap.py
View file @
c2d5a1eb
...
...
@@ -64,7 +64,11 @@ class HTTPSConnectionCA(httplib.HTTPSConnection):
class
SlapDocument
:
pass
def
__init__
(
self
,
connection_helper
=
None
):
if
connection_helper
is
not
None
:
# Do not require connection_helper to be provided, but when it's not,
# cause failures when accessing _connection_helper property.
self
.
_connection_helper
=
connection_helper
class
SoftwareRelease
(
SlapDocument
):
"""
...
...
@@ -79,6 +83,7 @@ class SoftwareRelease(SlapDocument):
XXX **kw args only kept for compatibility
"""
SlapDocument
.
__init__
(
self
,
kw
.
pop
(
'connection_helper'
,
None
))
self
.
_software_instance_list
=
[]
if
software_release
is
not
None
:
software_release
=
software_release
.
encode
(
'UTF-8'
)
...
...
@@ -179,13 +184,18 @@ class OpenOrder(SlapDocument):
try
:
self
.
_connection_helper
.
POST
(
'/requestComputerPartition'
,
request_dict
)
except
ResourceNotReady
:
return
ComputerPartition
(
request_dict
=
request_dict
)
return
ComputerPartition
(
request_dict
=
request_dict
,
connection_helper
=
self
.
_connection_helper
,
)
else
:
xml
=
self
.
_connection_helper
.
response
.
read
()
software_instance
=
xml_marshaller
.
loads
(
xml
)
computer_partition
=
ComputerPartition
(
software_instance
.
slap_computer_id
.
encode
(
'UTF-8'
),
software_instance
.
slap_computer_partition_id
.
encode
(
'UTF-8'
))
software_instance
.
slap_computer_partition_id
.
encode
(
'UTF-8'
),
connection_helper
=
self
.
_connection_helper
,
)
if
shared
:
computer_partition
.
_synced
=
True
computer_partition
.
_connection_dict
=
software_instance
.
_connection_dict
...
...
@@ -211,7 +221,8 @@ class Computer(SlapDocument):
zope
.
interface
.
implements
(
interface
.
IComputer
)
def
__init__
(
self
,
computer_id
):
def
__init__
(
self
,
computer_id
,
connection_helper
=
None
):
SlapDocument
.
__init__
(
self
,
connection_helper
)
self
.
_computer_id
=
computer_id
def
__getinitargs__
(
self
):
...
...
@@ -298,7 +309,9 @@ class ComputerPartition(SlapDocument):
zope
.
interface
.
implements
(
interface
.
IComputerPartition
)
def
__init__
(
self
,
computer_id
=
None
,
partition_id
=
None
,
request_dict
=
None
):
def
__init__
(
self
,
computer_id
=
None
,
partition_id
=
None
,
request_dict
=
None
,
connection_helper
=
None
):
SlapDocument
.
__init__
(
self
,
connection_helper
)
if
request_dict
is
not
None
and
(
computer_id
is
not
None
or
partition_id
is
not
None
):
raise
TypeError
(
'request_dict conflicts with computer_id and '
...
...
@@ -348,13 +361,18 @@ class ComputerPartition(SlapDocument):
try
:
self
.
_connection_helper
.
POST
(
'/requestComputerPartition'
,
request_dict
)
except
ResourceNotReady
:
return
ComputerPartition
(
request_dict
=
request_dict
)
return
ComputerPartition
(
request_dict
=
request_dict
,
connection_helper
=
self
.
_connection_helper
,
)
else
:
xml
=
self
.
_connection_helper
.
response
.
read
()
software_instance
=
xml_marshaller
.
loads
(
xml
)
computer_partition
=
ComputerPartition
(
software_instance
.
slap_computer_id
.
encode
(
'UTF-8'
),
software_instance
.
slap_computer_partition_id
.
encode
(
'UTF-8'
))
software_instance
.
slap_computer_partition_id
.
encode
(
'UTF-8'
),
connection_helper
=
self
.
_connection_helper
,
)
if
shared
:
computer_partition
.
_synced
=
True
computer_partition
.
_connection_dict
=
getattr
(
software_instance
,
...
...
@@ -596,8 +614,7 @@ class slap:
else
:
raise
AttributeError
(
'Passed URL %r issue: there is no support for %r p'
'rotocol'
%
(
slapgrid_uri
,
scheme
))
slap
.
_connection_helper
=
\
SlapDocument
.
_connection_helper
=
ConnectionHelper
(
connection_wrapper
,
self
.
_connection_helper
=
ConnectionHelper
(
connection_wrapper
,
netloc
,
path
,
key_file
,
cert_file
,
master_ca_file
,
timeout
)
def
registerSoftwareRelease
(
self
,
software_release
):
...
...
@@ -605,14 +622,16 @@ class slap:
Registers connected representation of software release and
returns SoftwareRelease class object
"""
return
SoftwareRelease
(
software_release
=
software_release
)
return
SoftwareRelease
(
software_release
=
software_release
,
connection_helper
=
self
.
_connection_helper
,
)
def
registerComputer
(
self
,
computer_guid
):
"""
Registers connected representation of computer and
returns Computer class object
"""
return
Computer
(
computer_guid
)
return
Computer
(
computer_guid
,
connection_helper
=
self
.
_connection_helper
)
def
registerComputerPartition
(
self
,
computer_guid
,
partition_id
):
"""
...
...
@@ -625,7 +644,7 @@ class slap:
return
xml_marshaller
.
loads
(
self
.
_connection_helper
.
response
.
read
())
def
registerOpenOrder
(
self
):
return
OpenOrder
()
return
OpenOrder
(
connection_helper
=
self
.
_connection_helper
)
def
registerSupply
(
self
):
return
Supply
()
return
Supply
(
connection_helper
=
self
.
_connection_helper
)
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