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
5e78e31c
Commit
5e78e31c
authored
Apr 29, 2015
by
Alain Takoudjou
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into master-dev
parents
3e336d19
4b301bc2
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
127 additions
and
34 deletions
+127
-34
master/bt5/slapos_web/PathTemplateItem/web_page_module/rjs_slapos_parameter_form_js.xml
...lateItem/web_page_module/rjs_slapos_parameter_form_js.xml
+41
-21
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_jauks_theme/vifib_style/vifib.css.xml
.../portal_skins/vifib_jauks_theme/vifib_style/vifib.css.xml
+54
-1
slapos/format.py
slapos/format.py
+13
-9
slapos/grid/SlapObject.py
slapos/grid/SlapObject.py
+4
-1
slapos/grid/slapgrid.py
slapos/grid/slapgrid.py
+9
-1
slapos/grid/templates/buildout-tail.cfg.in
slapos/grid/templates/buildout-tail.cfg.in
+3
-0
slapos/proxy/views.py
slapos/proxy/views.py
+2
-0
slapos/version.py
slapos/version.py
+1
-1
No files found.
master/bt5/slapos_web/PathTemplateItem/web_page_module/rjs_slapos_parameter_form_js.xml
View file @
5e78e31c
...
...
@@ -140,20 +140,25 @@
);\n
}\n
\n
function render_selection(json_field) {\n
function render_selection(json_field
, default_value
) {\n
var input = document.createElement("select"),\n
option = document.createElement("option"),\n
option_index,\n
optionz;\n
input.size = 1;\n
option.selected = "selected";\n
option.value = "";\n
if (default_value === undefined) {\n
option.selected = "selected";\n
}\n
input.appendChild(option);\n
for (option_index in json_field.enum) {\n
if (json_field.enum.hasOwnProperty(option_index)) {\n
optionz = document.createElement("option");\n
optionz.value = json_field.enum[option_index];\n
optionz.textContent = json_field.enum[option_index];\n
if (json_field.enum[option_index] === default_value) {\n
optionz.selected = "selected";\n
}\n
input.appendChild(optionz);\n
}\n
}\n
...
...
@@ -163,12 +168,12 @@
function render_field(json_field, default_value) {\n
\n
if (json_field.enum !== undefined) {\n
return render_selection(json_field);\n
return render_selection(json_field
, default_value
);\n
}\n
\n
if (json_field.type === "boolean") {\n
json_field.enum = [true, false];\n
return render_selection(json_field);\n
return render_selection(json_field
, default_value
);\n
}\n
\n
var input = document.createElement("input");\n
...
...
@@ -238,14 +243,17 @@
for (default_value in default_dict) {\n
if (default_dict.hasOwnProperty(default_value)) {\n
default_div = document.createElement("div");\n
default_div.setAttribute("class", "slapos-parameter-dict-key");\n
label = document.createElement("label");\n
label.textContent = default_value;\n
label.setAttribute("class", "slapos-parameter-dict-key");\n
default_div.appendChild(label);\n
default_div = render_subform(\n
json_field.patternProperties[\'.*\'],\n
default_dict[default_value],\n
default_div,\n
path + "/" + default_value);\n
path + "/" + default_value\n
);\n
div.appendChild(default_div);\n
}\n
}\n
...
...
@@ -253,10 +261,6 @@
\n
\n
return div;\n
\n
\n
\n
return root;\n
}\n
}\n
\n
...
...
@@ -315,7 +319,7 @@
}\n
}\n
});\n
console.log(json_dict);\n
//
console.log(json_dict);\n
\n
function convertOnMultiLevel(key, value, d) {\n
var i,\n
...
...
@@ -357,13 +361,16 @@
return
false;\n
}\n
\n
div.setAttribute("class",
"slapos-parameter-dict-key");\n
label =
document.createElement("label");\n
label.textContent =
input_text.value;\n
label.setAttribute("class",
"slapos-parameter-dict-key");\n
div.appendChild(label);\n
\n
div =
render_subform(subform_json,
{},
div,
element.name
+
"/"
+
input_text.value);\n
\n
element.parentNode.parentNode.appendChild(div);\n
element.parentNode.parentNode.insertBefore(div,
element.parentNode.parentNode.children[1]);\n
//
element.parentNode.parentNode.appendChild(div);\n
\n
return
div;\n
}\n
...
...
@@ -375,7 +382,7 @@
i,\n
promise_list =
[];\n
\n
console.log("INITIATING
A
LOOP
EVENT
LISTENER");\n
//
console.log("INITIATING
A
LOOP
EVENT
LISTENER");\n
\n
for
(
i =
0;
i
<
field_list.length;
i =
i
+
1)
{\n
promise_list.push(loopEventListener(\n
...
...
@@ -476,7 +483,7 @@
xml_output =
jsonDictToParameterXML(json_dict);\n
}\n
parameter_hash_input.value =
btoa(xml_output);\n
console.log(parameter_hash_input.value);\n
//
console.log(parameter_hash_input.value);\n
if
(validation.valid)
{\n
return
xml_output;\n
}\n
...
...
@@ -553,7 +560,7 @@
if
(
options.json_url =
==
undefined)
{\n
throw
new
Error("undefined
json_url");\n
}\n
console.log("CALLED
RENDER");\n
//
console.log("CALLED
RENDER");\n
var
g =
this,\n
softwaretype;\n
\n
...
...
@@ -640,17 +647,17 @@
prefix =
options.json_url.split(json_url_uri.path())[0]
+
prefix.join("/");\n
parameter_json_schema_url =
prefix
+
"/"
+
parameter_json_schema_url;\n
}\n
console.log("GOING
TO
RENDER
FORM");\n
//
console.log("GOING
TO
RENDER
FORM");\n
return
g.renderParameterForm(parameter_json_schema_url,
parameter_dict);\n
})\n
.push(function
()
{\n
console.log("FINISHED
TO
RENDER,
RETURNING
THE
GADGET");\n
//
console.log("FINISHED
TO
RENDER,
RETURNING
THE
GADGET");\n
return
g;\n
})\n
\n
.fail(function
(error)
{\n
var
parameter_xml =
\'\';\n
console.log("FAIL
CALLED");\n
//
console.log("FAIL
CALLED");\n
console.log(error.stack);\n
if
(g.options.parameter.parameter_hash
!==
undefined)
{\n
parameter_xml =
atob(g.options.parameter.parameter_hash);\n
...
...
@@ -678,7 +685,7 @@
});\n
}\n
\n
console.log("INITIATING
A
LOOP
EVENT
LISTENER
FOR
OPTION
CHANGE");\n
//
console.log("INITIATING
A
LOOP
EVENT
LISTENER
FOR
OPTION
CHANGE");\n
return
loopEventListener(\n
element,\n
\'change\',\n
...
...
@@ -691,7 +698,20 @@
})\n
.declareService(function
()
{\n
var
g =
this;\n
return
g.processValidation(g.options.json_url);\n
return
g.processValidation(g.options.json_url)\n
.fail(function
(error)
{\n
var
parameter_xml =
\'\';\n
//
console.log("FAIL
CALLED");\n
console.log(error.stack);\n
if
(g.options.parameter.parameter_hash
!==
undefined)
{\n
parameter_xml =
atob(g.options.parameter.parameter_hash);\n
}\n
return
g.renderFailoverTextArea(parameter_xml,
error.toString())\n
.push(function
()
{\n
error =
undefined;\n
return
g;\n
});\n
});\n
});\n
\n
}(window,
document,
rJS,
loopEventListener,
$,
XMLSerializer,
jQuery,
vkbeautify));
...
...
@@ -831,7 +851,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
94
1.58456.37859.54289
</string>
</value>
<value>
<string>
94
2.12751.5721.43315
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -849,7 +869,7 @@
</tuple>
<state>
<tuple>
<float>
142
7289240.71
</float>
<float>
142
8479010.83
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_jauks_theme/vifib_style/vifib.css.xml
View file @
5e78e31c
...
...
@@ -46,7 +46,6 @@
logo_reference python:here.aq_parent.getWebSiteValue().getLayoutProperty(\'layout_logo_reference\', \'vifib_hosting_image/logo.png\');\n
subscribe_button python:here.aq_parent.getWebSiteValue().getLayoutProperty(\'layout_subscribe_button_reference\', \'tiolive-Subscribe.For.Free.Button\');"
>
\n
\n
\n
/**********************/\n
/* Global definitions */\n
/**********************/\n
...
...
@@ -242,6 +241,60 @@ div#WebPage_viewAsWeb ul {\n
div#WebPage_viewAsWeb .section {\n
border: 0;\n
}\n
\n
div.subfield {\n
margin-left: 15px;\n
}\n
\n
\n
.subfield {\n
padding-left: 20px;\n
} \n
\n
label.slapos-parameter-dict-key::before {\n
content: "Parameter Entry: ";\n
}\n
\n
label.slapos-parameter-dict-key {\n
font-color: "red";\n
}\n
\n
div.slapos-parameter-dict-key {\n
margin-top: 10px;\n
margin-left: 6px;\n
}\n
\n
.subfield {\n
padding-top: 3px;\n
}\n
\n
.add-sub-form {\n
background: #3498db;\n
background-image: -webkit-linear-gradient(top, #3498db, #2980b9);\n
background-image: -moz-linear-gradient(top, #3498db, #2980b9);\n
background-image: -ms-linear-gradient(top, #3498db, #2980b9);\n
background-image: -o-linear-gradient(top, #3498db, #2980b9);\n
background-image: linear-gradient(to bottom, #3498db, #2980b9);\n
-webkit-border-radius: 28;\n
-moz-border-radius: 28;\n
border-radius: 28px;\n
font-family: Arial;\n
color: #ffffff;\n
font-size: 12px;\n
padding: 5px 20px 5px 20px;\n
text-decoration: none;\n
}\n
\n
.add-sub-form:hover {\n
background: #3cb0fd;\n
background-image: -webkit-linear-gradient(top, #3cb0fd, #3498db);\n
background-image: -moz-linear-gradient(top, #3cb0fd, #3498db);\n
background-image: -ms-linear-gradient(top, #3cb0fd, #3498db);\n
background-image: -o-linear-gradient(top, #3cb0fd, #3498db);\n
background-image: linear-gradient(to bottom, #3cb0fd, #3498db);\n
text-decoration: none;\n
}\n
\n
</tal:block>
]]>
</unicode>
</value>
...
...
slapos/format.py
View file @
5e78e31c
...
...
@@ -37,6 +37,7 @@ import logging
import
netaddr
import
netifaces
import
os
import
glob
import
pwd
import
random
import
shutil
...
...
@@ -383,6 +384,7 @@ class Computer(object):
if
partition_dict
[
'tap'
]:
tap
=
Tap
(
partition_dict
[
'tap'
][
'name'
])
if
tap_gateway_interface
:
tap
.
ipv4_addr
=
partition_dict
[
'tap'
].
get
(
'ipv4_addr'
,
''
)
tap
.
ipv4_netmask
=
partition_dict
[
'tap'
].
get
(
'ipv4_netmask'
,
''
)
tap
.
ipv4_gateway
=
partition_dict
[
'tap'
].
get
(
'ipv4_gateway'
,
''
)
...
...
@@ -474,11 +476,13 @@ class Computer(object):
# get list of instance external storage if exist
instance_external_list
=
[]
if
self
.
instance_storage_home
:
# XXX - Hard limit for storage number to 4
for
i
in
range
(
1
,
5
):
storage_path
=
os
.
path
.
join
(
self
.
instance_storage_home
,
'data%s'
%
i
)
if
os
.
path
.
exists
(
storage_path
):
instance_external_list
.
append
(
storage_path
)
# get all /XXX/dataN where N is a digit
data_list
=
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_storage_home
,
'data*'
))
for
i
in
range
(
0
,
len
(
data_list
)):
data_path
=
data_list
.
pop
()
the_digit
=
os
.
path
.
basename
(
data_path
).
split
(
'data'
)[
-
1
]
if
the_digit
.
isdigit
():
instance_external_list
.
append
(
data_path
)
tap_address_list
=
[]
if
alter_network
and
self
.
tap_gateway_interface
and
create_tap
:
...
...
slapos/grid/SlapObject.py
View file @
5e78e31c
...
...
@@ -344,7 +344,8 @@ class Partition(object):
certificate_repository_path
=
None
,
retention_delay
=
'0'
,
instance_min_free_space
=
None
,
instance_storage_home
=
''
instance_storage_home
=
''
,
ipv4_global_network
=
''
,
):
"""Initialisation of class parameters"""
self
.
buildout
=
buildout
...
...
@@ -362,6 +363,7 @@ class Partition(object):
self
.
server_url
=
server_url
self
.
software_release_url
=
software_release_url
self
.
instance_storage_home
=
instance_storage_home
self
.
ipv4_global_network
=
ipv4_global_network
self
.
key_file
=
''
self
.
cert_file
=
''
...
...
@@ -517,6 +519,7 @@ class Partition(object):
'key_file'
:
self
.
key_file
,
'cert_file'
:
self
.
cert_file
,
'storage_home'
:
self
.
instance_storage_home
,
'global_ipv4_network_prefix'
:
self
.
ipv4_global_network
,
}
open
(
config_location
,
'w'
).
write
(
buildout_text
)
os
.
chmod
(
config_location
,
0o640
)
...
...
slapos/grid/slapgrid.py
View file @
5e78e31c
...
...
@@ -233,7 +233,8 @@ def create_slapgrid_object(options, logger):
computer_partition_filter_list
=
op
.
get
(
'only-cp'
,
op
.
get
(
'only_cp'
)),
software_min_free_space
=
software_min_free_space
,
instance_min_free_space
=
instance_min_free_space
,
instance_storage_home
=
op
.
get
(
'instance_storage_home'
))
instance_storage_home
=
op
.
get
(
'instance_storage_home'
),
ipv4_global_network
=
op
.
get
(
'ipv4_global_network'
))
def
check_required_only_partitions
(
existing
,
required
):
...
...
@@ -288,6 +289,7 @@ class Slapgrid(object):
software_min_free_space
=
None
,
instance_min_free_space
=
None
,
instance_storage_home
=
None
,
ipv4_global_network
=
None
,
):
"""Makes easy initialisation of class parameters"""
# Parses arguments
...
...
@@ -343,6 +345,10 @@ class Slapgrid(object):
self
.
instance_storage_home
=
os
.
path
.
abspath
(
instance_storage_home
)
else
:
self
.
instance_storage_home
=
""
if
ipv4_global_network
:
self
.
ipv4_global_network
=
ipv4_global_network
else
:
self
.
ipv4_global_network
=
""
def
_getWatchdogLine
(
self
):
invocation_list
=
[
WATCHDOG_PATH
]
...
...
@@ -651,6 +657,7 @@ class Slapgrid(object):
retention_delay
=
retention_delay
,
instance_min_free_space
=
self
.
instance_min_free_space
,
instance_storage_home
=
self
.
instance_storage_home
,
ipv4_global_network
=
self
.
ipv4_global_network
,
)
computer_partition_state
=
computer_partition
.
getState
()
...
...
@@ -1110,6 +1117,7 @@ class Slapgrid(object):
buildout
=
self
.
buildout
,
logger
=
self
.
logger
,
instance_storage_home
=
self
.
instance_storage_home
,
ipv4_global_network
=
self
.
ipv4_global_network
,
)
local_partition
.
stop
()
try
:
...
...
slapos/grid/templates/buildout-tail.cfg.in
View file @
5e78e31c
...
...
@@ -25,4 +25,7 @@ cert_file = %(cert_file)s
[storage-configuration]
storage-home = %(storage_home)s
[network-information]
global-ipv4-network = %(global_ipv4_network_prefix)s
# This is end of zc.builodout profile's tail added by slapgrid
slapos/proxy/views.py
View file @
5e78e31c
...
...
@@ -95,11 +95,13 @@ def partitiondict2partition(partition):
slap_partition
.
_requested_state
=
partition
[
'requested_state'
]
slap_partition
.
_parameter_dict
=
xml2dict
(
partition
[
'xml'
])
address_list
=
[]
full_address_list
=
[]
for
address
in
execute_db
(
'partition_network'
,
'SELECT * FROM %s WHERE partition_reference=? AND computer_reference=?'
,
[
partition
[
'reference'
],
partition
[
'computer_reference'
]]):
address_list
.
append
((
address
[
'reference'
],
address
[
'address'
]))
slap_partition
.
_parameter_dict
[
'ip_list'
]
=
address_list
slap_partition
.
_parameter_dict
[
'full_address_list'
]
=
full_address_list
slap_partition
.
_parameter_dict
[
'slap_software_type'
]
=
\
partition
[
'software_type'
]
if
partition
[
'slave_instance_list'
]
is
not
None
:
...
...
slapos/version.py
View file @
5e78e31c
...
...
@@ -26,4 +26,4 @@
#
##############################################################################
version
=
'1.3.1
0
-dev0'
version
=
'1.3.1
1
-dev0'
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