Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
105
Merge Requests
105
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
slapos
Commits
e5925007
Commit
e5925007
authored
Dec 01, 2020
by
Jérome Perrin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos.cookbook:libcloud: remove
parent
51c3773e
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
0 additions
and
140 deletions
+0
-140
setup.py
setup.py
+0
-1
slapos/recipe/README.libcloud.rst
slapos/recipe/README.libcloud.rst
+0
-4
slapos/recipe/libcloud/__init__.py
slapos/recipe/libcloud/__init__.py
+0
-128
slapos/recipe/libcloud/run.py
slapos/recipe/libcloud/run.py
+0
-6
slapos/recipe/libcloud/template/cloudmgr.cnf.in
slapos/recipe/libcloud/template/cloudmgr.cnf.in
+0
-1
No files found.
setup.py
View file @
e5925007
...
...
@@ -116,7 +116,6 @@ setup(name=name,
'ipv6toipv4 = slapos.recipe.6tunnel:SixToFour'
,
'jsondump = slapos.recipe.jsondump:Recipe'
,
'kvm.frontend = slapos.recipe.kvm_frontend:Recipe'
,
'libcloud = slapos.recipe.libcloud:Recipe'
,
'libcloudrequest = slapos.recipe.libcloudrequest:Recipe'
,
'logrotate = slapos.recipe.logrotate:Recipe'
,
'logrotate.d = slapos.recipe.logrotate:Part'
,
...
...
slapos/recipe/README.libcloud.rst
deleted
100644 → 0
View file @
51c3773e
libcloud
========
Slapified recipe to interact with any libcloud supported IaaS system
slapos/recipe/libcloud/__init__.py
deleted
100644 → 0
View file @
51c3773e
from
slapos.recipe.librecipe
import
BaseSlapRecipe
import
os
import
sys
import
zc.buildout
import
zc.recipe.egg
from
slapos.slap.slap
import
ServerError
from
pprint
import
pformat
class
SlavePartitionError
(
Exception
):
pass
class
Recipe
(
BaseSlapRecipe
):
SECURITY_GROUP_NAME
=
'VifibEC2Security'
def
__init__
(
self
,
buildout
,
name
,
options
):
BaseSlapRecipe
.
__init__
(
self
,
buildout
,
name
,
options
)
self
.
destroy_wrapper_location
=
os
.
path
.
join
(
self
.
bin_directory
,
'destroy'
)
self
.
running_wrapper_location
=
os
.
path
.
join
(
self
.
bin_directory
,
'run'
)
# wrapper parts
options
[
'scripts'
]
=
'''
run
destroy
'''
options
[
'entry-points'
]
=
'''
run=slapos.recipe.libcloud.run:run
destroy=slapos.recipe.libcloud.destroy:destroy
'''
self
.
egg
=
zc
.
recipe
.
egg
.
Egg
(
buildout
,
''
,
options
)
self
.
configuration_file
=
os
.
path
.
join
(
self
.
etc_directory
,
'cloudmgr.cnf'
)
def
_loadSecretAndKey
(
self
):
"""Loads security parameters for connection"""
self
.
secret
=
open
(
os
.
path
.
join
(
self
.
work_directory
,
'secret.txt'
)
).
read
().
strip
()
self
.
key
=
open
(
os
.
path
.
join
(
self
.
work_directory
,
'key.txt'
)
).
read
().
strip
()
def
_updateConfigurationFile
(
self
):
configuration_dict
=
dict
(
key
=
self
.
key
,
secret
=
self
.
secret
,
node_list
=
self
.
slave_partition_configuration_dict_list
)
self
.
_writeFile
(
self
.
configuration_file
,
pformat
(
configuration_dict
))
def
_install
(
self
):
"""libcloud compatible machine is installed by creating wrapper, which
will run succesfully as long as the machine is available.
"""
self
.
_loadSecretAndKey
()
self
.
slave_partition_configuration_dict_list
=
[]
self
.
egg
.
extra_paths
=
sys
.
path
for
slave_partition
in
[
self
.
slap
.
registerComputerPartition
(
self
.
computer_id
,
slave_id
)
for
slave_id
in
self
.
computer_partition
\
.
getInstanceParameterDict
()[
'slave_id_list'
]]:
try
:
self
.
slave_partition_configuration_dict_list
.
append
(
self
.
_installSlavePartition
(
slave_partition
))
except
SlavePartitionError
as
e
:
self
.
logger
.
warning
(
'Slave Parttion %r not installed, issue: %r'
%
(
slave_partition
.
getId
(),
e
))
# Installs wrappers
self
.
_updateConfigurationFile
()
self
.
options
[
'arguments'
]
=
"server_binary = %r, configuration_file = %r"
%
(
self
.
options
[
'server_binary'
],
self
.
configuration_file
)
self
.
egg
.
install
()
os
.
chmod
(
os
.
path
.
join
(
self
.
running_wrapper_location
),
int
(
'0700'
,
8
))
os
.
chmod
(
os
.
path
.
join
(
self
.
destroy_wrapper_location
),
int
(
'0700'
,
8
))
return
[]
def
_installSlavePartition
(
self
,
slave_partition
):
requested_dict
=
slave_partition
.
getInstanceParameterDict
()
requested_dict
.
setdefault
(
'service'
,
'EC2_EU_WEST'
)
requested_dict
.
setdefault
(
'location'
,
'0'
)
requested_dict
.
setdefault
(
'image'
,
'ami-05cae171'
)
requested_dict
.
setdefault
(
'size'
,
'm1.smal'
)
requested_dict
.
setdefault
(
'security_group'
,
'VifibEC2Security'
)
connection_dict
=
slave_partition
.
getConnectionDict
()
node_kw
=
dict
(
key
=
self
.
key
,
secret
=
self
.
secret
,
service
=
requested_dict
[
'service'
],
location
=
requested_dict
[
'location'
],
node_uuid
=
connection_dict
.
get
(
'node_uuid'
,
None
),
ssh_key
=
connection_dict
.
get
(
'ssh_key'
,
None
)
)
# FIXME: this import no longer exist
from
slapos.tool.cloudmgr.cloudinterface
import
NodeInterface
node
=
NodeInterface
(
**
node_kw
)
update_kw
=
dict
(
image
=
requested_dict
[
'image'
],
size
=
requested_dict
[
'size'
],
security_group
=
requested_dict
[
'security_group'
],
)
self
.
logger
.
info
(
'Updating %r'
%
slave_partition
.
getId
())
connection_dict
.
update
(
node
.
update
(
**
update_kw
))
self
.
logger
.
info
(
'Fetching public ip of %r'
%
slave_partition
.
getId
())
connection_dict
.
update
(
node
.
getPublicIpList
())
slave_partition
.
available
()
connection_dict
.
setdefault
(
'username'
,
'root'
)
slave_partition
.
setConnectionDict
(
connection_dict
)
requested_dict
.
update
(
connection_dict
)
slave_partition_state
=
slave_partition
.
getState
()
# as cloudmgr is not related with slap and runs as async process to recipe
# assume that whatever came from slave is correctly done
if
slave_partition_state
in
[
'started'
,
'stopped'
]:
# stopped cannot be supported, because in case of libcloud it is equal
# to destroyed
# even worse: stopped is the first state for installed partition
try
:
getattr
(
slave_partition
,
slave_partition_state
)()
except
ServerError
:
# Recipe is becoming responsible for system state, so it have to
# not die in case of slap server error
pass
requested_dict
[
'requested_state'
]
=
'started'
elif
slave_partition_state
==
'destroyed'
:
requested_dict
[
'requested_state'
]
=
slave_partition_state
try
:
slave_partition
.
destroyed
()
except
ServerError
:
# Recipe is becoming responsible for system state, so it have to
# not die in case of slap server error
pass
return
requested_dict
slapos/recipe/libcloud/run.py
deleted
100644 → 0
View file @
51c3773e
from
os
import
execl
import
sys
def
run
(
server_binary
,
configuration_file
):
sys
.
stdout
.
flush
()
execl
(
server_binary
,
server_binary
,
configuration_file
)
slapos/recipe/libcloud/template/cloudmgr.cnf.in
deleted
100644 → 0
View file @
51c3773e
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