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
4121077a
Commit
4121077a
authored
Apr 11, 2016
by
Alain Takoudjou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
migrate slapos_pdm business template to new format
parent
4fcc16cb
Changes
68
Hide whitespace changes
Inline
Side-by-side
Showing
68 changed files
with
792 additions
and
967 deletions
+792
-967
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_cancelUpgradeDestroyedHostingSubscription.py
...os_pdm/Alarm_cancelUpgradeDestroyedHostingSubscription.py
+11
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_cancelUpgradeDestroyedHostingSubscription.xml
...s_pdm/Alarm_cancelUpgradeDestroyedHostingSubscription.xml
+0
-15
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_computerCheckUpgradeHostingSubscription.py
...apos_pdm/Alarm_computerCheckUpgradeHostingSubscription.py
+17
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_computerCheckUpgradeHostingSubscription.xml
...pos_pdm/Alarm_computerCheckUpgradeHostingSubscription.xml
+0
-21
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_computerCheckUpgradeSoftwareRelease.py
...s/slapos_pdm/Alarm_computerCheckUpgradeSoftwareRelease.py
+17
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_computerCheckUpgradeSoftwareRelease.xml
.../slapos_pdm/Alarm_computerCheckUpgradeSoftwareRelease.xml
+0
-21
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_manageSoftwareCatalog.py
...em/portal_skins/slapos_pdm/Alarm_manageSoftwareCatalog.py
+9
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_manageSoftwareCatalog.xml
...m/portal_skins/slapos_pdm/Alarm_manageSoftwareCatalog.xml
+0
-13
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_processPlannedUpgradeDecision.py
...l_skins/slapos_pdm/Alarm_processPlannedUpgradeDecision.py
+9
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_processPlannedUpgradeDecision.xml
..._skins/slapos_pdm/Alarm_processPlannedUpgradeDecision.xml
+0
-13
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_processStartedUpgradeDecision.py
...l_skins/slapos_pdm/Alarm_processStartedUpgradeDecision.py
+9
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_processStartedUpgradeDecision.xml
..._skins/slapos_pdm/Alarm_processStartedUpgradeDecision.xml
+0
-13
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_processStoppedUpgradeDecision.py
...l_skins/slapos_pdm/Alarm_processStoppedUpgradeDecision.py
+9
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_processStoppedUpgradeDecision.xml
..._skins/slapos_pdm/Alarm_processStoppedUpgradeDecision.xml
+0
-13
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Base_acceptUpgradeDecision.py
...tem/portal_skins/slapos_pdm/Base_acceptUpgradeDecision.py
+38
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Base_acceptUpgradeDecision.xml
...em/portal_skins/slapos_pdm/Base_acceptUpgradeDecision.xml
+0
-46
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Base_rejectUpgradeDecision.py
...tem/portal_skins/slapos_pdm/Base_rejectUpgradeDecision.py
+36
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Base_rejectUpgradeDecision.xml
...em/portal_skins/slapos_pdm/Base_rejectUpgradeDecision.xml
+0
-44
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Computer_checkAndCreateUpgradeDecision.py
...kins/slapos_pdm/Computer_checkAndCreateUpgradeDecision.py
+56
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Computer_checkAndCreateUpgradeDecision.xml
...ins/slapos_pdm/Computer_checkAndCreateUpgradeDecision.xml
+0
-60
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Computer_hostingSubscriptionCreateUpgradeDecision.py
..._pdm/Computer_hostingSubscriptionCreateUpgradeDecision.py
+45
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Computer_hostingSubscriptionCreateUpgradeDecision.xml
...pdm/Computer_hostingSubscriptionCreateUpgradeDecision.xml
+0
-49
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/HostingSubscription_getNewerSofwareRelease.py
.../slapos_pdm/HostingSubscription_getNewerSofwareRelease.py
+16
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/HostingSubscription_getNewerSofwareRelease.xml
...slapos_pdm/HostingSubscription_getNewerSofwareRelease.xml
+0
-20
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/HostingSubscription_getUpgradableSoftwareRelease.py
...s_pdm/HostingSubscription_getUpgradableSoftwareRelease.py
+38
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/HostingSubscription_getUpgradableSoftwareRelease.xml
..._pdm/HostingSubscription_getUpgradableSoftwareRelease.xml
+1
-43
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/HostingSubscription_getUpgradeSubscriptionRelatedValue.py
...HostingSubscription_getUpgradeSubscriptionRelatedValue.py
+19
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/HostingSubscription_getUpgradeSubscriptionRelatedValue.xml
...ostingSubscription_getUpgradeSubscriptionRelatedValue.xml
+0
-27
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareProduct_getSortedSoftwareReleaseList.py
...lapos_pdm/SoftwareProduct_getSortedSoftwareReleaseList.py
+56
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareProduct_getSortedSoftwareReleaseList.xml
...apos_pdm/SoftwareProduct_getSortedSoftwareReleaseList.xml
+0
-64
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareProduct_manageSoftwareCatalog.py
...skins/slapos_pdm/SoftwareProduct_manageSoftwareCatalog.py
+23
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareProduct_manageSoftwareCatalog.xml
...kins/slapos_pdm/SoftwareProduct_manageSoftwareCatalog.xml
+0
-31
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareRelease_createUpgradeDecision.py
...skins/slapos_pdm/SoftwareRelease_createUpgradeDecision.py
+42
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareRelease_createUpgradeDecision.xml
...kins/slapos_pdm/SoftwareRelease_createUpgradeDecision.xml
+0
-50
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareRelease_getUpgradeDecisionInProgress.py
...lapos_pdm/SoftwareRelease_getUpgradeDecisionInProgress.py
+26
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareRelease_getUpgradeDecisionInProgress.xml
...apos_pdm/SoftwareRelease_getUpgradeDecisionInProgress.xml
+0
-34
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecisionLine_cancelDestroyed.py
...l_skins/slapos_pdm/UpgradeDecisionLine_cancelDestroyed.py
+3
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecisionLine_cancelDestroyed.xml
..._skins/slapos_pdm/UpgradeDecisionLine_cancelDestroyed.xml
+0
-7
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_afterClone.py
...tem/portal_skins/slapos_pdm/UpgradeDecision_afterClone.py
+1
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_afterClone.xml
...em/portal_skins/slapos_pdm/UpgradeDecision_afterClone.xml
+0
-5
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getComputer.py
...em/portal_skins/slapos_pdm/UpgradeDecision_getComputer.py
+13
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getComputer.xml
...m/portal_skins/slapos_pdm/UpgradeDecision_getComputer.xml
+0
-21
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getComputerNotificationMessage.py
...pos_pdm/UpgradeDecision_getComputerNotificationMessage.py
+26
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getComputerNotificationMessage.xml
...os_pdm/UpgradeDecision_getComputerNotificationMessage.xml
+0
-30
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getHostingSubscription.py
...kins/slapos_pdm/UpgradeDecision_getHostingSubscription.py
+13
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getHostingSubscription.xml
...ins/slapos_pdm/UpgradeDecision_getHostingSubscription.xml
+0
-21
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getResourceItemList.py
...l_skins/slapos_pdm/UpgradeDecision_getResourceItemList.py
+1
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getResourceItemList.xml
..._skins/slapos_pdm/UpgradeDecision_getResourceItemList.xml
+0
-5
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getSoftwareRelease.py
...al_skins/slapos_pdm/UpgradeDecision_getSoftwareRelease.py
+13
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getSoftwareRelease.xml
...l_skins/slapos_pdm/UpgradeDecision_getSoftwareRelease.xml
+0
-21
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_init.py
...plateItem/portal_skins/slapos_pdm/UpgradeDecision_init.py
+14
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_init.xml
...lateItem/portal_skins/slapos_pdm/UpgradeDecision_init.xml
+0
-18
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_isUpgradeFinished.py
...tal_skins/slapos_pdm/UpgradeDecision_isUpgradeFinished.py
+23
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_isUpgradeFinished.xml
...al_skins/slapos_pdm/UpgradeDecision_isUpgradeFinished.xml
+0
-31
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_notify.py
...ateItem/portal_skins/slapos_pdm/UpgradeDecision_notify.py
+59
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_notify.xml
...teItem/portal_skins/slapos_pdm/UpgradeDecision_notify.xml
+0
-63
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_notifyDelivered.py
...ortal_skins/slapos_pdm/UpgradeDecision_notifyDelivered.py
+61
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_notifyDelivered.xml
...rtal_skins/slapos_pdm/UpgradeDecision_notifyDelivered.xml
+0
-65
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_processUpgrade.py
...portal_skins/slapos_pdm/UpgradeDecision_processUpgrade.py
+7
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_processUpgrade.xml
...ortal_skins/slapos_pdm/UpgradeDecision_processUpgrade.xml
+0
-11
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_tryToCancel.py
...em/portal_skins/slapos_pdm/UpgradeDecision_tryToCancel.py
+18
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_tryToCancel.xml
...m/portal_skins/slapos_pdm/UpgradeDecision_tryToCancel.xml
+0
-22
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_upgradeComputer.py
...ortal_skins/slapos_pdm/UpgradeDecision_upgradeComputer.py
+22
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_upgradeComputer.xml
...rtal_skins/slapos_pdm/UpgradeDecision_upgradeComputer.xml
+0
-26
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_upgradeHostingSubscription.py
.../slapos_pdm/UpgradeDecision_upgradeHostingSubscription.py
+39
-0
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_upgradeHostingSubscription.xml
...slapos_pdm/UpgradeDecision_upgradeHostingSubscription.xml
+0
-43
master/bt5/slapos_pdm/bt/template_path_list
master/bt5/slapos_pdm/bt/template_path_list
+1
-0
master/bt5/slapos_pdm/bt/template_test_id_list
master/bt5/slapos_pdm/bt/template_test_id_list
+1
-1
No files found.
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_cancelUpgradeDestroyedHostingSubscription.py
0 → 100644
View file @
4121077a
portal
=
context
.
getPortalObject
()
portal
.
portal_catalog
.
searchAndActivate
(
portal_type
=
"Upgrade Decision Line"
,
simulation_state
=
"confirmed"
,
method_id
=
'UpgradeDecisionLine_cancelDestroyed'
,
activate_kw
=
{
'tag'
:
tag
}
)
context
.
activate
(
after_tag
=
tag
).
getId
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_cancelUpgradeDestroyedHostingSubscription.xml
View file @
4121077a
...
...
@@ -48,21 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
portal = context.getPortalObject()\n
\n
\n
portal.portal_catalog.searchAndActivate(\n
portal_type="Upgrade Decision Line", \n
simulation_state="confirmed",\n
method_id = \'UpgradeDecisionLine_cancelDestroyed\',\n
activate_kw = {\'tag\':tag}\n
)\n
\n
context.activate(after_tag=tag).getId()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
tag, fixit, params
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_computerCheckUpgradeHostingSubscription.py
0 → 100644
View file @
4121077a
portal
=
context
.
getPortalObject
()
public_scope_uid
=
portal
.
restrictedTraverse
(
"portal_categories/allocation_scope/open/public"
,
None
).
getUid
()
friend_scope_uid
=
portal
.
restrictedTraverse
(
"portal_categories/allocation_scope/open/friend"
,
None
).
getUid
()
if
public_scope_uid
and
friend_scope_uid
:
portal
.
portal_catalog
.
searchAndActivate
(
portal_type
=
'Computer'
,
validation_state
=
'validated'
,
default_allocation_scope_uid
=
[
public_scope_uid
,
friend_scope_uid
],
method_id
=
'Computer_hostingSubscriptionCreateUpgradeDecision'
,
activate_kw
=
{
'tag'
:
tag
}
)
context
.
activate
(
after_tag
=
tag
).
getId
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_computerCheckUpgradeHostingSubscription.xml
View file @
4121077a
...
...
@@ -48,27 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
portal = context.getPortalObject()\n
\n
public_scope_uid = portal.restrictedTraverse(\n
"portal_categories/allocation_scope/open/public", None).getUid()\n
friend_scope_uid = portal.restrictedTraverse(\n
"portal_categories/allocation_scope/open/friend", None).getUid()\n
\n
if public_scope_uid and friend_scope_uid:\n
portal.portal_catalog.searchAndActivate(\n
portal_type=\'Computer\',\n
validation_state = \'validated\',\n
default_allocation_scope_uid=[public_scope_uid, friend_scope_uid],\n
method_id = \'Computer_hostingSubscriptionCreateUpgradeDecision\',\n
activate_kw = {\'tag\':tag}\n
)\n
\n
context.activate(after_tag=tag).getId()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
tag, fixit, params
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_computerCheckUpgradeSoftwareRelease.py
0 → 100644
View file @
4121077a
portal
=
context
.
getPortalObject
()
public_scope_uid
=
portal
.
restrictedTraverse
(
"portal_categories/allocation_scope/open/public"
,
None
).
getUid
()
friend_scope_uid
=
portal
.
restrictedTraverse
(
"portal_categories/allocation_scope/open/friend"
,
None
).
getUid
()
if
public_scope_uid
and
friend_scope_uid
:
portal
.
portal_catalog
.
searchAndActivate
(
portal_type
=
'Computer'
,
validation_state
=
'validated'
,
default_allocation_scope_uid
=
[
public_scope_uid
,
friend_scope_uid
],
method_id
=
'Computer_checkAndCreateUpgradeDecision'
,
activate_kw
=
{
'tag'
:
tag
}
)
context
.
activate
(
after_tag
=
tag
).
getId
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_computerCheckUpgradeSoftwareRelease.xml
View file @
4121077a
...
...
@@ -48,27 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
portal = context.getPortalObject()\n
\n
public_scope_uid = portal.restrictedTraverse(\n
"portal_categories/allocation_scope/open/public", None).getUid()\n
friend_scope_uid = portal.restrictedTraverse(\n
"portal_categories/allocation_scope/open/friend", None).getUid()\n
\n
if public_scope_uid and friend_scope_uid:\n
portal.portal_catalog.searchAndActivate(\n
portal_type=\'Computer\',\n
validation_state = \'validated\',\n
default_allocation_scope_uid=[public_scope_uid, friend_scope_uid],\n
method_id = \'Computer_checkAndCreateUpgradeDecision\',\n
activate_kw = {\'tag\':tag}\n
)\n
\n
context.activate(after_tag=tag).getId()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
tag, fixit, params
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_manageSoftwareCatalog.py
0 → 100644
View file @
4121077a
portal
=
context
.
getPortalObject
()
portal
.
portal_catalog
.
searchAndActivate
(
portal_type
=
'Software Product'
,
validation_state
=
'published'
,
method_id
=
'SoftwareProduct_manageSoftwareCatalog'
,
activate_kw
=
{
'tag'
:
tag
}
)
context
.
activate
(
after_tag
=
tag
).
getId
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_manageSoftwareCatalog.xml
View file @
4121077a
...
...
@@ -48,19 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
portal = context.getPortalObject()\n
portal.portal_catalog.searchAndActivate(\n
portal_type=\'Software Product\',\n
validation_state=\'published\',\n
method_id=\'SoftwareProduct_manageSoftwareCatalog\',\n
activate_kw={\'tag\': tag}\n
)\n
\n
context.activate(after_tag=tag).getId()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
tag, fixit, params
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_processPlannedUpgradeDecision.py
0 → 100644
View file @
4121077a
portal
=
context
.
getPortalObject
()
portal
.
portal_catalog
.
searchAndActivate
(
portal_type
=
'Upgrade Decision'
,
simulation_state
=
'planned'
,
method_id
=
'UpgradeDecision_notify'
,
activate_kw
=
{
'tag'
:
tag
}
)
context
.
activate
(
after_tag
=
tag
).
getId
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_processPlannedUpgradeDecision.xml
View file @
4121077a
...
...
@@ -48,19 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
portal = context.getPortalObject()\n
portal.portal_catalog.searchAndActivate(\n
portal_type=\'Upgrade Decision\',\n
simulation_state=\'planned\',\n
method_id=\'UpgradeDecision_notify\',\n
activate_kw={\'tag\': tag }\n
)\n
\n
context.activate(after_tag=tag).getId()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
tag, fixit, params
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_processStartedUpgradeDecision.py
0 → 100644
View file @
4121077a
portal
=
context
.
getPortalObject
()
portal
.
portal_catalog
.
searchAndActivate
(
portal_type
=
'Upgrade Decision'
,
simulation_state
=
'started'
,
method_id
=
'UpgradeDecision_processUpgrade'
,
activate_kw
=
{
'tag'
:
tag
}
)
context
.
activate
(
after_tag
=
tag
).
getId
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_processStartedUpgradeDecision.xml
View file @
4121077a
...
...
@@ -48,19 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
portal = context.getPortalObject()\n
portal.portal_catalog.searchAndActivate(\n
portal_type=\'Upgrade Decision\',\n
simulation_state=\'started\',\n
method_id=\'UpgradeDecision_processUpgrade\',\n
activate_kw={\'tag\': tag }\n
)\n
\n
context.activate(after_tag=tag).getId()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
tag, fixit, params
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_processStoppedUpgradeDecision.py
0 → 100644
View file @
4121077a
portal
=
context
.
getPortalObject
()
portal
.
portal_catalog
.
searchAndActivate
(
portal_type
=
'Upgrade Decision'
,
simulation_state
=
'stopped'
,
method_id
=
'UpgradeDecision_notifyDelivered'
,
activate_kw
=
{
'tag'
:
tag
}
)
context
.
activate
(
after_tag
=
tag
).
getId
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Alarm_processStoppedUpgradeDecision.xml
View file @
4121077a
...
...
@@ -48,19 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
portal = context.getPortalObject()\n
portal.portal_catalog.searchAndActivate(\n
portal_type=\'Upgrade Decision\',\n
simulation_state=\'stopped\',\n
method_id=\'UpgradeDecision_notifyDelivered\',\n
activate_kw={\'tag\': tag }\n
)\n
\n
context.activate(after_tag=tag).getId()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
tag, fixit, params
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Base_acceptUpgradeDecision.py
0 → 100644
View file @
4121077a
if
reference
is
None
:
raise
ValueError
(
"Missing Reference"
)
portal
=
context
.
getPortalObject
()
upgrade_decision_list
=
portal
.
portal_catalog
(
portal_type
=
"Upgrade Decision"
,
reference
=
reference
,
limit
=
2
)
if
not
len
(
upgrade_decision_list
):
return
context
.
Base_redirect
(
""
,
keep_items
=
{
"portal_status_message"
:
context
.
Base_translateString
(
"Unable to find the Upgrade Decision."
)})
if
len
(
upgrade_decision_list
)
>
1
:
raise
ValueError
(
"Duplicated reference for %s. Please contact site administrators."
%
reference
)
upgrade_decision
=
upgrade_decision_list
[
0
]
if
upgrade_decision
.
getSimulationState
()
in
[
'draft'
,
'planned'
]:
message
=
"Sorry, the upgrade is not possible yet!"
elif
upgrade_decision
.
getSimulationState
()
in
[
'cancelled'
,
'rejected'
]:
message
=
"Sorry, the upgrade is not possble, Upgrade Decision was Canceled or Rejected!"
elif
upgrade_decision
.
getSimulationState
()
==
'started'
:
message
=
"This Upgrade Decision is already Started."
elif
upgrade_decision
.
getSimulationState
()
in
[
'stopped'
,
'delivered'
]:
message
=
"This Upgrade Decision has been already processed."
elif
upgrade_decision
.
getSimulationState
()
==
'confirmed'
:
message
=
"This Upgrade Decision has been requested, it will be processed in few minutes."
upgrade_decision
.
start
()
return
context
.
Base_redirect
(
""
,
keep_items
=
{
"portal_status_message"
:
context
.
Base_translateString
(
message
)})
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Base_acceptUpgradeDecision.xml
View file @
4121077a
...
...
@@ -48,52 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
if reference is None:\n
raise ValueError("Missing Reference")\n
\n
portal = context.getPortalObject()\n
\n
upgrade_decision_list = portal.portal_catalog(\n
portal_type="Upgrade Decision", \n
reference=reference, limit=2)\n
\n
if not len(upgrade_decision_list):\n
return context.Base_redirect("", \n
keep_items={"portal_status_message": \n
context.Base_translateString("Unable to find the Upgrade Decision.")})\n
\n
if len(upgrade_decision_list) >
1:\n
raise ValueError("Duplicated reference for %s. Please contact site administrators." % reference)\n
\n
upgrade_decision = upgrade_decision_list[0]\n
\n
if upgrade_decision.getSimulationState() in [\'draft\', \'planned\']:\n
message = "Sorry, the upgrade is not possible yet!"\n
\n
elif upgrade_decision.getSimulationState() in [\'cancelled\', \'rejected\']:\n
message = "Sorry, the upgrade is not possble, Upgrade Decision was Canceled or Rejected!"\n
\n
elif upgrade_decision.getSimulationState() == \'started\':\n
message = "This Upgrade Decision is already Started."\n
\n
elif upgrade_decision.getSimulationState() in [\'stopped\', \'delivered\']:\n
message = "This Upgrade Decision has been already processed."\n
\n
elif upgrade_decision.getSimulationState() == \'confirmed\':\n
message = "This Upgrade Decision has been requested, it will be processed in few minutes."\n
upgrade_decision.start()\n
\n
return context.Base_redirect("", \n
keep_items={"portal_status_message": \n
context.Base_translateString(message)})\n
]]>
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
reference
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Base_rejectUpgradeDecision.py
0 → 100644
View file @
4121077a
if
reference
is
None
:
raise
ValueError
(
"Missing Reference"
)
portal
=
context
.
getPortalObject
()
upgrade_decision_list
=
portal
.
portal_catalog
(
portal_type
=
"Upgrade Decision"
,
reference
=
reference
,
limit
=
2
)
if
len
(
upgrade_decision_list
)
==
0
:
return
context
.
Base_redirect
(
""
,
keep_items
=
{
"portal_status_message"
:
context
.
Base_translateString
(
"Unable to find the Upgrade Decision."
)})
if
len
(
upgrade_decision_list
)
>
1
:
raise
ValueError
(
"Duplicated reference for %s. Please contact site administrators."
%
reference
)
upgrade_decision
=
upgrade_decision_list
[
0
]
if
upgrade_decision
.
getSimulationState
()
in
[
'cancelled'
,
'rejected'
]:
message
=
"Upgrade Decision is already Rejected!"
elif
upgrade_decision
.
getSimulationState
()
==
'started'
:
message
=
"Sorry, This Upgrade Decision is already Started, you cannot reject it anymore."
elif
upgrade_decision
.
getSimulationState
()
in
[
'stopped'
,
'delivered'
]:
message
=
"Sorry, this Upgrade Decision has been already processed."
elif
upgrade_decision
.
getSimulationState
()
in
[
'confirmed'
,
'draft'
,
'planned'
]:
message
=
"Thanks Upgrade Decision has been rejected Successfully (You cannot use it anymore)."
upgrade_decision
.
reject
()
return
context
.
Base_redirect
(
""
,
keep_items
=
{
"portal_status_message"
:
context
.
Base_translateString
(
message
)})
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Base_rejectUpgradeDecision.xml
View file @
4121077a
...
...
@@ -48,50 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
if reference is None:\n
raise ValueError("Missing Reference")\n
\n
portal = context.getPortalObject()\n
\n
upgrade_decision_list = portal.portal_catalog(\n
portal_type="Upgrade Decision", \n
reference=reference, limit=2)\n
\n
if len(upgrade_decision_list) == 0:\n
return context.Base_redirect("", \n
keep_items={"portal_status_message": \n
context.Base_translateString("Unable to find the Upgrade Decision.")})\n
\n
if len(upgrade_decision_list) >
1:\n
raise ValueError("Duplicated reference for %s. Please contact site administrators." % reference)\n
\n
upgrade_decision = upgrade_decision_list[0]\n
\n
\n
if upgrade_decision.getSimulationState() in [\'cancelled\', \'rejected\']:\n
message = "Upgrade Decision is already Rejected!"\n
\n
elif upgrade_decision.getSimulationState() == \'started\':\n
message = "Sorry, This Upgrade Decision is already Started, you cannot reject it anymore."\n
\n
elif upgrade_decision.getSimulationState() in [\'stopped\', \'delivered\']:\n
message = "Sorry, this Upgrade Decision has been already processed."\n
\n
elif upgrade_decision.getSimulationState() in [\'confirmed\', \'draft\', \'planned\']:\n
message = "Thanks Upgrade Decision has been rejected Successfully (You cannot use it anymore)."\n
upgrade_decision.reject()\n
\n
return context.Base_redirect("", \n
keep_items={"portal_status_message": \n
context.Base_translateString(message)})\n
]]>
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
reference
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Computer_checkAndCreateUpgradeDecision.py
0 → 100644
View file @
4121077a
from
DateTime
import
DateTime
computer
=
context
portal
=
context
.
getPortalObject
()
full_software_release_list
=
[
si
.
getUrlString
()
for
si
in
portal
.
portal_catalog
(
portal_type
=
'Software Installation'
,
default_aggregate_uid
=
computer
.
getUid
(),
validation_state
=
'validated'
)
if
si
.
getSlapState
()
==
'start_requested'
]
if
len
(
full_software_release_list
)
==
0
:
return
# group SR by Software Product to avoid two upgrade Decision for the same product
software_release_list
=
portal
.
portal_catalog
(
portal_type
=
'Software Release'
,
url_string
=
full_software_release_list
,
group_by
=
'default_aggregate_uid'
)
upgrade_decision_list
=
[]
for
software_release
in
software_release_list
:
software_product_reference
=
software_release
.
getAggregateReference
()
if
software_product_reference
in
[
None
,
""
]:
continue
sorted_list
=
portal
.
SoftwareProduct_getSortedSoftwareReleaseList
(
software_product_reference
=
software_product_reference
)
# Check if there is a new version of this software Product
if
sorted_list
and
\
sorted_list
[
0
].
getUrlString
()
not
in
full_software_release_list
:
newer_release
=
sorted_list
[
0
]
title
=
'A new version of %s is available for %s'
%
\
(
software_product_reference
,
context
.
getTitle
())
# If exist upgrade decision in progress try to cancel it
decision_in_progress
=
newer_release
.
\
SoftwareRelease_getUpgradeDecisionInProgress
(
computer
.
getUid
())
if
decision_in_progress
and
\
not
decision_in_progress
.
UpgradeDecision_tryToCancel
(
newer_release
.
getUrlString
()):
continue
upgrade_decision
=
newer_release
.
SoftwareRelease_createUpgradeDecision
(
source_url
=
computer
.
getRelativeUrl
(),
title
=
title
)
if
context
.
getAllocationScope
()
in
[
"open/public"
,
"open/friend"
]:
upgrade_decision
.
start
()
elif
context
.
getAllocationScope
()
in
[
"open/personal"
]:
upgrade_decision
.
plan
()
upgrade_decision
.
setStartDate
(
DateTime
())
upgrade_decision_list
.
append
(
upgrade_decision
)
return
upgrade_decision_list
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Computer_checkAndCreateUpgradeDecision.xml
View file @
4121077a
...
...
@@ -48,66 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
from DateTime import DateTime\n
computer = context\n
portal = context.getPortalObject()\n
\n
full_software_release_list = [si.getUrlString() for si in\n
portal.portal_catalog(\n
portal_type=\'Software Installation\',\n
default_aggregate_uid=computer.getUid(),\n
validation_state=\'validated\'\n
) if si.getSlapState() == \'start_requested\']\n
\n
if len(full_software_release_list) == 0:\n
return\n
# group SR by Software Product to avoid two upgrade Decision for the same product\n
software_release_list = portal.portal_catalog(\n
portal_type=\'Software Release\',\n
url_string=full_software_release_list,\n
group_by=\'default_aggregate_uid\'\n
)\n
upgrade_decision_list = []\n
for software_release in software_release_list:\n
software_product_reference = software_release.getAggregateReference()\n
if software_product_reference in [None, ""]:\n
continue\n
\n
sorted_list = portal.SoftwareProduct_getSortedSoftwareReleaseList(\n
software_product_reference=software_product_reference)\n
\n
# Check if there is a new version of this software Product\n
if sorted_list and \\\n
sorted_list[0].getUrlString() not in full_software_release_list:\n
\n
newer_release = sorted_list[0]\n
title = \'A new version of %s is available for %s\' % \\\n
(software_product_reference, context.getTitle()) \n
# If exist upgrade decision in progress try to cancel it\n
decision_in_progress = newer_release.\\\n
SoftwareRelease_getUpgradeDecisionInProgress(computer.getUid())\n
if decision_in_progress and \\\n
not decision_in_progress.UpgradeDecision_tryToCancel(\n
newer_release.getUrlString()):\n
continue\n
\n
upgrade_decision = newer_release.SoftwareRelease_createUpgradeDecision(\n
source_url=computer.getRelativeUrl(),\n
title=title)\n
\n
if context.getAllocationScope() in ["open/public", "open/friend"]:\n
upgrade_decision.start()\n
elif context.getAllocationScope() in ["open/personal"]:\n
upgrade_decision.plan()\n
\n
upgrade_decision.setStartDate(DateTime())\n
upgrade_decision_list.append(upgrade_decision)\n
\n
return upgrade_decision_list\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Computer_hostingSubscriptionCreateUpgradeDecision.py
0 → 100644
View file @
4121077a
portal
=
context
.
getPortalObject
()
partition_list
=
portal
.
portal_catalog
(
portal_type
=
'Computer Partition'
,
free_for_request
=
0
,
parent_uid
=
context
.
getUid
())
valid_slap_state
=
[
'start_requested'
,
'stop_requested'
]
hosting_subscription_list
=
[]
upgrade_decision_list
=
[]
for
partition
in
partition_list
:
software_instance
=
partition
.
getAggregateRelatedValue
(
portal_type
=
'Software Instance'
)
if
not
software_instance
:
continue
hosting_subscription
=
software_instance
.
getSpecialiseValue
(
portal_type
=
'Hosting Subscription'
)
if
hosting_subscription
and
hosting_subscription
.
getSlapState
()
\
in
valid_slap_state
and
not
\
hosting_subscription
in
hosting_subscription_list
:
hosting_subscription_list
.
append
(
hosting_subscription
)
else
:
continue
newer_release
=
hosting_subscription
.
\
HostingSubscription_getUpgradableSoftwareRelease
()
if
newer_release
is
None
:
continue
decision_in_progress
=
newer_release
.
\
SoftwareRelease_getUpgradeDecisionInProgress
(
hosting_subscription
.
getUid
())
if
decision_in_progress
and
\
not
decision_in_progress
.
UpgradeDecision_tryToCancel
(
newer_release
.
getUrlString
()):
continue
upgrade_decision
=
newer_release
.
SoftwareRelease_createUpgradeDecision
(
source_url
=
hosting_subscription
.
getRelativeUrl
(),
title
=
'A new upgrade is available for %s'
%
hosting_subscription
.
getTitle
()
)
upgrade_decision
.
plan
()
upgrade_decision_list
.
append
(
upgrade_decision
)
return
upgrade_decision_list
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/Computer_hostingSubscriptionCreateUpgradeDecision.xml
View file @
4121077a
...
...
@@ -48,55 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
portal = context.getPortalObject()\n
\n
partition_list = portal.portal_catalog(portal_type=\'Computer Partition\',\n
free_for_request=0,\n
parent_uid=context.getUid())\n
valid_slap_state = [\'start_requested\', \'stop_requested\']\n
\n
hosting_subscription_list = []\n
upgrade_decision_list = []\n
for partition in partition_list:\n
software_instance = partition.getAggregateRelatedValue(\n
portal_type=\'Software Instance\')\n
if not software_instance:\n
continue\n
\n
hosting_subscription = software_instance.getSpecialiseValue(\n
portal_type=\'Hosting Subscription\')\n
if hosting_subscription and hosting_subscription.getSlapState() \\\n
in valid_slap_state and not \\\n
hosting_subscription in hosting_subscription_list:\n
hosting_subscription_list.append(hosting_subscription)\n
else:\n
continue\n
\n
newer_release = hosting_subscription.\\\n
HostingSubscription_getUpgradableSoftwareRelease()\n
if newer_release is None:\n
continue\n
\n
decision_in_progress = newer_release.\\\n
SoftwareRelease_getUpgradeDecisionInProgress(hosting_subscription.getUid())\n
\n
if decision_in_progress and \\\n
not decision_in_progress.UpgradeDecision_tryToCancel(\n
newer_release.getUrlString()):\n
continue\n
\n
upgrade_decision = newer_release.SoftwareRelease_createUpgradeDecision(\n
source_url=hosting_subscription.getRelativeUrl(),\n
title=\'A new upgrade is available for %s\' % hosting_subscription.getTitle()\n
)\n
upgrade_decision.plan()\n
upgrade_decision_list.append(upgrade_decision)\n
\n
return upgrade_decision_list\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/HostingSubscription_getNewerSofwareRelease.py
0 → 100644
View file @
4121077a
hosting_subscription
=
context
portal
=
context
.
getPortalObject
()
software_instance
=
hosting_subscription
.
getPredecessorValue
()
if
not
software_instance
:
return
None
software_release_list
=
context
.
SoftwareProduct_getSortedSoftwareReleaseList
(
software_release_url
=
software_instance
.
getUrlString
())
if
not
software_release_list
:
return
None
latest_software_release
=
software_release_list
[
0
]
if
latest_software_release
.
getUrlString
()
==
software_instance
.
getUrlString
():
return
None
else
:
return
latest_software_release
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/HostingSubscription_getNewerSofwareRelease.xml
View file @
4121077a
...
...
@@ -48,26 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
hosting_subscription = context\n
portal = context.getPortalObject()\n
\n
software_instance = hosting_subscription.getPredecessorValue()\n
if not software_instance:\n
return None\n
software_release_list = context.SoftwareProduct_getSortedSoftwareReleaseList(\n
software_release_url=software_instance.getUrlString())\n
\n
if not software_release_list:\n
return None\n
latest_software_release = software_release_list[0]\n
if latest_software_release.getUrlString() == software_instance.getUrlString():\n
return None\n
else:\n
return latest_software_release\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/HostingSubscription_getUpgradableSoftwareRelease.py
0 → 100644
View file @
4121077a
"""
Check if this hosting subscription is upgradable to the latest version,
and return the software release to upgrade with.
"""
hosting_subscription
=
context
portal
=
context
.
getPortalObject
()
slap_state
=
[
'start_requested'
,
'stop_requested'
]
if
not
hosting_subscription
.
getSlapState
()
in
slap_state
:
return
None
source_instance
=
hosting_subscription
.
getPredecessorValue
()
if
not
source_instance
or
source_instance
.
getSlapState
()
not
in
slap_state
:
return
None
software_release
=
hosting_subscription
.
HostingSubscription_getNewerSofwareRelease
()
if
not
software_release
:
return
None
computer
=
source_instance
.
getAggregateValue
().
getParentValue
()
if
computer
.
getValidationState
()
!=
'validated'
:
return
None
#Find Software Installation
software_installation_list
=
portal
.
portal_catalog
(
portal_type
=
"Software Installation"
,
validation_state
=
"validated"
,
url_string
=
software_release
.
getUrlString
(),
default_aggregate_uid
=
computer
.
getUid
(),
)
# check again slap_state because it might be ignored in previous request!
if
'start_requested'
in
[
software_installation
.
getSlapState
()
\
for
software_installation
in
software_installation_list
]:
return
software_release
return
None
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/HostingSubscription_getUpgradableSoftwareRelease.xml
View file @
4121077a
...
...
@@ -48,48 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
"""\n
Check if this hosting subscription is upgradable to the latest version,\n
and return the software release to upgrade with.\n
"""\n
\n
hosting_subscription = context\n
portal = context.getPortalObject()\n
\n
slap_state = [\'start_requested\', \'stop_requested\']\n
\n
if not hosting_subscription.getSlapState() in slap_state:\n
return None\n
\n
source_instance = hosting_subscription.getPredecessorValue()\n
if not source_instance or source_instance.getSlapState() not in slap_state:\n
return None\n
\n
software_release = hosting_subscription.HostingSubscription_getNewerSofwareRelease()\n
if not software_release:\n
return None\n
\n
computer = source_instance.getAggregateValue().getParentValue()\n
if computer.getValidationState() != \'validated\':\n
return None\n
\n
#Find Software Installation\n
software_installation_list = portal.portal_catalog(\n
portal_type="Software Installation",\n
validation_state="validated",\n
url_string=software_release.getUrlString(),\n
default_aggregate_uid=computer.getUid(),\n
)\n
# check again slap_state because it might be ignored in previous request!\n
if \'start_requested\' in [software_installation.getSlapState() \\\n
for software_installation in software_installation_list]:\n
return software_release\n
\n
return None\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
@@ -101,4 +59,4 @@ return None\n
</dictionary>
</pickle>
</record>
</ZopeData>
\ No newline at end of file
</ZopeData>
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/HostingSubscription_getUpgradeSubscriptionRelatedValue.py
0 → 100644
View file @
4121077a
"""
Get a related Upgrade Decision
"""
if
simulation_state
not
in
[
"confirmed"
,
"started"
,
"stopped"
]:
raise
ValueError
(
"You shouldn't request for this state: %s"
%
simulation_state
)
decision_line_list
=
context
.
getAggregateValueList
(
portal_type
=
"Upgrade Decision Line"
,
simulation_state
=
simulation_state
)
if
len
(
decision_line_list
)
>
1
:
raise
ValueError
(
"Your have more them one valid decison line!"
)
if
len
(
decision_line_list
)
==
0
:
return
None
return
decision_line_list
[
0
].
getParentValue
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/HostingSubscription_getUpgradeSubscriptionRelatedValue.xml
View file @
4121077a
...
...
@@ -48,33 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
"""\n
Get a related Upgrade Decision \n
"""\n
if simulation_state not in ["confirmed", "started", "stopped"]:\n
raise ValueError(\n
"You shouldn\'t request for this state: %s" % simulation_state)\n
\n
\n
decision_line_list = context.getAggregateValueList(\n
portal_type="Upgrade Decision Line", \n
simulation_state=simulation_state)\n
\n
if len(decision_line_list) >
1:\n
raise ValueError("Your have more them one valid decison line!")\n
\n
if len(decision_line_list) == 0:\n
return None\n
\n
return decision_line_list[0].getParentValue()\n
]]>
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
simulation_state=\'confirmed\'
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareProduct_getSortedSoftwareReleaseList.py
0 → 100644
View file @
4121077a
from
DateTime
import
DateTime
portal
=
context
.
getPortalObject
()
if
software_release_url
is
None
and
\
context
.
getPortalType
()
==
"Software Product"
:
software_product_reference
=
context
.
getReference
()
if
software_product_reference
is
None
:
assert
(
software_release_url
is
not
None
)
software_release
=
portal
.
portal_catalog
.
getResultValue
(
portal_type
=
'Software Release'
,
url_string
=
software_release_url
)
if
not
software_release
:
return
[]
software_product_reference
=
software_release
.
getAggregateReference
()
if
not
software_product_reference
:
return
[]
else
:
# Don't accept both parameters
assert
(
software_release_url
is
None
)
product_list
=
portal
.
portal_catalog
(
portal_type
=
'Software Product'
,
reference
=
software_product_reference
,
validation_state
=
'published'
,
limit
=
2
)
if
not
product_list
:
return
[]
if
len
(
product_list
)
>
1
:
raise
ValueError
(
'Several Software Product with the same reference.'
)
software_release_list
=
product_list
[
0
].
getAggregateRelatedValueList
()
def
sortkey
(
software_release
):
publication_date
=
software_release
.
getEffectiveDate
()
if
publication_date
:
if
(
publication_date
-
DateTime
())
>
0
:
return
DateTime
(
'1900/05/02'
)
return
publication_date
return
software_release
.
getCreationDate
()
software_release_list
=
sorted
(
software_release_list
,
key
=
sortkey
,
reverse
=
True
,
)
return
[
software_release
for
software_release
in
software_release_list
if
software_release
.
getValidationState
()
in
[
"published"
,
"published_alive"
]
]
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareProduct_getSortedSoftwareReleaseList.xml
View file @
4121077a
...
...
@@ -48,70 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
from DateTime import DateTime\n
\n
portal = context.getPortalObject()\n
\n
if software_release_url is None and \\\n
context.getPortalType() == "Software Product":\n
software_product_reference = context.getReference()\n
\n
if software_product_reference is None:\n
assert(software_release_url is not None)\n
software_release = portal.portal_catalog.getResultValue(\n
portal_type=\'Software Release\',\n
url_string=software_release_url\n
)\n
if not software_release:\n
return []\n
\n
software_product_reference = software_release.getAggregateReference()\n
if not software_product_reference:\n
return []\n
\n
else:\n
# Don\'t accept both parameters\n
assert(software_release_url is None)\n
\n
product_list = portal.portal_catalog(\n
portal_type=\'Software Product\',\n
reference=software_product_reference,\n
validation_state=\'published\', \n
limit=2)\n
\n
if not product_list:\n
return []\n
\n
if len(product_list) >
1:\n
raise ValueError(\'Several Software Product with the same reference.\')\n
\n
software_release_list = product_list[0].getAggregateRelatedValueList()\n
\n
def sortkey(software_release):\n
publication_date = software_release.getEffectiveDate()\n
if publication_date:\n
if (publication_date - DateTime()) > 0:\n
return DateTime(\'1900/05/02\')\n
return publication_date\n
return software_release.getCreationDate()\n
\n
software_release_list = sorted(\n
software_release_list,\n
key=sortkey, reverse=True,\n
)\n
\n
return [software_release for software_release in software_release_list\n
if software_release.getValidationState() in\n
["published", "published_alive"]\n
]\n
]]>
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
software_product_reference=None, software_release_url=None
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareProduct_manageSoftwareCatalog.py
0 → 100644
View file @
4121077a
portal
=
context
.
getPortalObject
()
software_release_url
=
None
for
software_release
in
portal
.
portal_catalog
(
portal_type
=
'Software Release'
,
validation_state
=
'published'
,
default_aggregate_uid
=
context
.
getUid
(),
sort_on
=
((
'indexation_timestamp'
,
'DESC'
),)):
installed_count
=
portal
.
portal_catalog
(
software_release_url
=
software_release
.
getUrlString
(),
allocation_scope_uid
=
portal
.
portal_categories
.
allocation_scope
.
open
.
public
.
getUid
(),
capacity_scope_uid
=
portal
.
portal_categories
.
capacity_scope
.
open
.
getUid
(),
portal_type
=
'Computer Partition'
,
free_for_request
=
1
,
limit
=
1
,
)
if
len
(
installed_count
)
>
0
:
software_release_url
=
software_release
.
getRelativeUrl
()
break
if
context
.
getAggregate
()
!=
software_release_url
:
context
.
setAggregate
(
software_release_url
)
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareProduct_manageSoftwareCatalog.xml
View file @
4121077a
...
...
@@ -48,37 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
portal = context.getPortalObject()\n
\n
software_release_url = None\n
\n
for software_release in portal.portal_catalog(\n
portal_type=\'Software Release\',\n
validation_state=\'published\',\n
default_aggregate_uid=context.getUid(),\n
sort_on=((\'indexation_timestamp\', \'DESC\'),)):\n
installed_count = portal.portal_catalog(\n
software_release_url=software_release.getUrlString(),\n
allocation_scope_uid=portal.portal_categories.allocation_scope.open.public.getUid(),\n
capacity_scope_uid=portal.portal_categories.capacity_scope.open.getUid(),\n
portal_type=\'Computer Partition\',\n
free_for_request=1,\n
limit=1,\n
)\n
if len(installed_count) >
0:\n
software_release_url = software_release.getRelativeUrl()\n
break\n
\n
if context.getAggregate() != software_release_url:\n
context.setAggregate(software_release_url)\n
]]>
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareRelease_createUpgradeDecision.py
0 → 100644
View file @
4121077a
from
DateTime
import
DateTime
portal
=
context
.
getPortalObject
()
software_release
=
context
source_product
=
portal
.
restrictedTraverse
(
source_url
,
None
)
if
not
source_product
:
return
portal_type
=
source_product
.
getPortalType
()
if
portal_type
==
'Computer'
:
person_url
=
source_product
.
getSourceAdministration
()
elif
portal_type
==
'Hosting Subscription'
:
person_url
=
source_product
.
getDestinationSection
()
else
:
return
if
not
person_url
:
return
upgrade_decision
=
portal
.
upgrade_decision_module
.
\
template_upgrade_decision
.
Base_createCloneDocument
(
batch_mode
=
1
)
upgrade_decision
.
edit
(
title
=
title
)
upgrade_decision
.
setDestinationSection
(
person_url
)
upgrade_decision
.
setDestinationDecision
(
person_url
)
decision_line_list
=
upgrade_decision
.
contentValues
(
portal_type
=
'Upgrade Decision Line'
)
if
len
(
decision_line_list
)
>
0
:
decision_line
=
decision_line_list
[
0
]
else
:
decision_line
=
upgrade_decision
.
newContent
(
portal_type
=
'Upgrade Decision Line'
)
decision_line
.
edit
(
title
=
'Request decision upgrade for %s on %s %s'
%
(
software_release
.
getTitle
(),
portal_type
,
source_product
.
getReference
()),
aggregate
=
[
source_url
,
software_release
.
getRelativeUrl
()])
return
upgrade_decision
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareRelease_createUpgradeDecision.xml
View file @
4121077a
...
...
@@ -48,56 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
from DateTime import DateTime\n
\n
portal = context.getPortalObject()\n
software_release = context\n
\n
source_product = portal.restrictedTraverse(source_url, None)\n
if not source_product:\n
return\n
\n
portal_type = source_product.getPortalType()\n
if portal_type == \'Computer\':\n
person_url = source_product.getSourceAdministration()\n
elif portal_type == \'Hosting Subscription\':\n
person_url = source_product.getDestinationSection()\n
else:\n
return\n
\n
if not person_url:\n
return\n
\n
upgrade_decision = portal.upgrade_decision_module.\\\n
template_upgrade_decision.Base_createCloneDocument(batch_mode=1)\n
\n
upgrade_decision.edit(title=title)\n
\n
upgrade_decision.setDestinationSection(person_url)\n
upgrade_decision.setDestinationDecision(person_url)\n
\n
decision_line_list = upgrade_decision.contentValues(\n
portal_type=\'Upgrade Decision Line\')\n
if len(decision_line_list) >
0:\n
decision_line = decision_line_list[0]\n
else:\n
decision_line = upgrade_decision.newContent(\n
portal_type=\'Upgrade Decision Line\')\n
\n
decision_line.edit(\n
title=\'Request decision upgrade for %s on %s %s\' % (\n
software_release.getTitle(), portal_type, source_product.getReference()),\n
aggregate=[source_url, software_release.getRelativeUrl()])\n
\n
return upgrade_decision\n
]]>
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
source_url, title
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareRelease_getUpgradeDecisionInProgress.py
0 → 100644
View file @
4121077a
portal
=
context
.
getPortalObject
()
product_reference
=
context
.
getAggregateReference
()
decision_line_in_progress_list
=
portal
.
portal_catalog
(
portal_type
=
'Upgrade Decision Line'
,
default_aggregate_uid
=
aggregate_uid
)
for
decision_line
in
decision_line_in_progress_list
:
upgrade_decision
=
decision_line
.
getParentValue
()
simulation_state
=
upgrade_decision
.
getSimulationState
()
if
simulation_state
not
in
[
'planned'
,
'confirmed'
,
'started'
,
'stopped'
,
'rejected'
]:
continue
release_list
=
decision_line
.
getAggregateValueList
(
portal_type
=
"Software Release"
)
if
len
(
release_list
)
>
1
:
continue
if
not
release_list
[
0
]:
continue
# If the current sr in rejected we must prevent creation of new upgrade decision for this sr
if
simulation_state
==
'rejected'
and
\
release_list
[
0
].
getUrlString
()
!=
context
.
getUrlString
():
continue
# If both software release belong to the same software product, there is an upgrade decision in progress
if
product_reference
==
release_list
[
0
].
getAggregateReference
():
return
upgrade_decision
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/SoftwareRelease_getUpgradeDecisionInProgress.xml
View file @
4121077a
...
...
@@ -48,40 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
portal = context.getPortalObject()\n
product_reference = context.getAggregateReference()\n
\n
decision_line_in_progress_list = portal.portal_catalog(\n
portal_type=\'Upgrade Decision Line\',\n
default_aggregate_uid=aggregate_uid)\n
\n
for decision_line in decision_line_in_progress_list:\n
upgrade_decision = decision_line.getParentValue()\n
simulation_state = upgrade_decision.getSimulationState()\n
if simulation_state not in [\'planned\', \'confirmed\',\n
\'started\', \'stopped\', \'rejected\']:\n
continue\n
release_list = decision_line.getAggregateValueList(portal_type="Software Release")\n
if len(release_list) >
1:\n
continue\n
if not release_list[0]:\n
continue\n
# If the current sr in rejected we must prevent creation of new upgrade decision for this sr\n
if simulation_state == \'rejected\' and \\\n
release_list[0].getUrlString() != context.getUrlString():\n
continue\n
\n
# If both software release belong to the same software product, there is an upgrade decision in progress \n
if product_reference == release_list[0].getAggregateReference():\n
return upgrade_decision\n
]]>
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
aggregate_uid
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecisionLine_cancelDestroyed.py
0 → 100644
View file @
4121077a
software_instance
=
context
.
getAggregateValue
(
portal_type
=
"Hosting Subscription"
)
if
software_instance
is
not
None
and
software_instance
.
getSlapState
()
==
"destroy_requested"
:
context
.
getParentValue
().
cancel
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecisionLine_cancelDestroyed.xml
View file @
4121077a
...
...
@@ -48,13 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
software_instance = context.getAggregateValue(portal_type="Hosting Subscription")\n
if software_instance is not None and software_instance.getSlapState() == "destroy_requested":\n
context.getParentValue().cancel()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_afterClone.py
0 → 100644
View file @
4121077a
context
.
UpgradeDecision_init
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_afterClone.xml
View file @
4121077a
...
...
@@ -48,11 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
context.UpgradeDecision_init()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getComputer.py
0 → 100644
View file @
4121077a
computer_list
=
[]
for
decision_line
in
context
.
contentValues
():
computer_list
.
extend
(
decision_line
.
getAggregateValueList
(
portal_type
=
"Computer"
))
if
len
(
computer_list
)
>
1
:
raise
ValueError
(
"It is only allowed to have more them 1 Computer"
)
if
len
(
computer_list
)
==
0
:
return
None
return
computer_list
[
0
]
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getComputer.xml
View file @
4121077a
...
...
@@ -48,27 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
computer_list = []\n
for decision_line in context.contentValues():\n
computer_list.extend(\n
decision_line.getAggregateValueList(portal_type="Computer"))\n
\n
if len(computer_list) >
1: \n
raise ValueError("It is only allowed to have more them 1 Computer")\n
\n
if len(computer_list) == 0:\n
return None\n
\n
\n
return computer_list[0]\n
]]>
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getComputerNotificationMessage.py
0 → 100644
View file @
4121077a
portal
=
context
.
getPortalObject
()
notification_message
=
portal
.
portal_notifications
.
getDocumentValue
(
reference
=
'slapos-upgrade-computer.notification'
)
title
=
"New Software available for Installation at %s"
%
computer
.
getTitle
()
mapping_dict
=
{
'software_product_title'
:
software_product_title
,
'computer_title'
:
computer
.
getTitle
(),
'computer_reference'
:
computer
.
getReference
(),
'software_release_name'
:
software_release
.
getTitle
(),
'software_release_reference'
:
software_release
.
getReference
(),
'upgrade_accept_link'
:
'Base_acceptUpgradeDecision?reference=%s'
%
reference
,
'upgrade_reject_link'
:
'Base_rejectUpgradeDecision?reference=%s'
%
reference
,
'new_software_release_url'
:
software_release
.
getUrlString
(),
}
if
notification_message
is
not
None
:
message
=
notification_message
.
asEntireHTML
(
substitution_method_parameter_dict
=
{
'mapping_dict'
:
mapping_dict
})
else
:
raise
ValueError
(
"No Notification Message"
)
return
title
,
message
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getComputerNotificationMessage.xml
View file @
4121077a
...
...
@@ -48,36 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
portal = context.getPortalObject()\n
\n
notification_message = portal.portal_notifications.getDocumentValue(\n
reference=\'slapos-upgrade-computer.notification\')\n
\n
title = "New Software available for Installation at %s" % computer.getTitle()\n
mapping_dict = {\'software_product_title\': software_product_title,\n
\'computer_title\': computer.getTitle(),\n
\'computer_reference\': computer.getReference(),\n
\'software_release_name\': software_release.getTitle(),\n
\'software_release_reference\': software_release.getReference(),\n
\'upgrade_accept_link\': \n
\'Base_acceptUpgradeDecision?reference=%s\' % reference,\n
\'upgrade_reject_link\':\n
\'Base_rejectUpgradeDecision?reference=%s\' % reference,\n
\'new_software_release_url\': software_release.getUrlString(),\n
}\n
\n
\n
if notification_message is not None:\n
message = notification_message.asEntireHTML(\n
substitution_method_parameter_dict={\'mapping_dict\': mapping_dict})\n
else:\n
raise ValueError("No Notification Message")\n
\n
return title, message\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
computer
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getHostingSubscription.py
0 → 100644
View file @
4121077a
hosting_subscription_list
=
[]
for
decision_line
in
context
.
contentValues
():
hosting_subscription_list
.
extend
(
decision_line
.
getAggregateValueList
(
portal_type
=
"Hosting Subscription"
))
if
len
(
hosting_subscription_list
)
>
1
:
raise
ValueError
(
"It is only allowed to have more them 1 Hosting Subscription"
)
if
len
(
hosting_subscription_list
)
==
0
:
return
None
return
hosting_subscription_list
[
0
]
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getHostingSubscription.xml
View file @
4121077a
...
...
@@ -48,27 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
hosting_subscription_list = []\n
for decision_line in context.contentValues():\n
hosting_subscription_list.extend(\n
decision_line.getAggregateValueList(portal_type="Hosting Subscription"))\n
\n
if len(hosting_subscription_list) >
1: \n
raise ValueError("It is only allowed to have more them 1 Hosting Subscription")\n
\n
if len(hosting_subscription_list) == 0:\n
return None\n
\n
\n
return hosting_subscription_list[0]\n
]]>
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getResourceItemList.py
0 → 100644
View file @
4121077a
return
context
.
Ticket_getResourceItemList
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getResourceItemList.xml
View file @
4121077a
...
...
@@ -48,11 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
return context.Ticket_getResourceItemList()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getSoftwareRelease.py
0 → 100644
View file @
4121077a
software_release_list
=
[]
for
decision_line
in
context
.
contentValues
():
software_release_list
.
extend
(
decision_line
.
getAggregateValueList
(
portal_type
=
"Software Release"
))
if
len
(
software_release_list
)
>
1
:
raise
ValueError
(
"It is only allowed to have more them 1 Software Release"
)
if
len
(
software_release_list
)
==
0
:
return
None
return
software_release_list
[
0
]
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_getSoftwareRelease.xml
View file @
4121077a
...
...
@@ -48,27 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
software_release_list = []\n
for decision_line in context.contentValues():\n
software_release_list.extend(\n
decision_line.getAggregateValueList(portal_type="Software Release"))\n
\n
if len(software_release_list) >
1: \n
raise ValueError("It is only allowed to have more them 1 Software Release")\n
\n
if len(software_release_list) == 0:\n
return None\n
\n
\n
return software_release_list[0]\n
]]>
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_init.py
0 → 100644
View file @
4121077a
# Define Reference from ID provided by portal_ids
portal
=
context
.
getPortalObject
()
type_definition
=
context
.
getTypeInfo
()
short_portal_type
=
type_definition
.
getShortTitle
()
if
not
short_portal_type
:
short_portal_type
=
''
.
join
(
s
for
s
in
type_definition
.
getId
()
if
s
.
isupper
())
id_group
=
(
'reference'
,
short_portal_type
)
default
=
1
new_id
=
portal
.
portal_ids
.
generateNewId
(
id_group
=
id_group
,
default
=
default
)
reference
=
'%s-%s'
%
(
short_portal_type
,
new_id
)
context
.
setReference
(
reference
)
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_init.xml
View file @
4121077a
...
...
@@ -48,24 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
# Define Reference from ID provided by portal_ids\n
portal = context.getPortalObject()\n
type_definition = context.getTypeInfo()\n
\n
short_portal_type = type_definition.getShortTitle()\n
if not short_portal_type:\n
short_portal_type = \'\'.join(s for s in type_definition.getId() if s.isupper())\n
\n
id_group = (\'reference\', short_portal_type)\n
default = 1\n
new_id = portal.portal_ids.generateNewId(id_group=id_group, default=default)\n
reference = \'%s-%s\' % (short_portal_type, new_id)\n
\n
context.setReference(reference)\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
**kw
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_isUpgradeFinished.py
0 → 100644
View file @
4121077a
portal
=
context
.
getPortalObject
()
hosting_subscription
=
context
.
UpgradeDecision_getHostingSubscription
()
computer
=
context
.
UpgradeDecision_getComputer
()
software_release
=
context
.
UpgradeDecision_getSoftwareRelease
()
if
hosting_subscription
is
not
None
:
if
hosting_subscription
.
getUrlString
()
==
software_release
.
getUrlString
():
return
True
elif
computer
is
not
None
:
full_software_release_list
=
[
si
for
si
in
portal
.
portal_catalog
(
portal_type
=
'Software Installation'
,
url_string
=
software_release
.
getUrlString
(),
default_aggregate_uid
=
computer
.
getUid
(),
validation_state
=
'validated'
)
if
si
.
getSlapState
()
==
'start_requested'
]
if
len
(
full_software_release_list
)
>
0
:
return
True
return
False
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_isUpgradeFinished.xml
View file @
4121077a
...
...
@@ -48,37 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
portal = context.getPortalObject()\n
\n
hosting_subscription = context.UpgradeDecision_getHostingSubscription()\n
computer = context.UpgradeDecision_getComputer()\n
software_release = context.UpgradeDecision_getSoftwareRelease()\n
\n
if hosting_subscription is not None:\n
if hosting_subscription.getUrlString() == software_release.getUrlString():\n
return True\n
\n
elif computer is not None:\n
full_software_release_list = [si for si in \n
portal.portal_catalog(\n
portal_type=\'Software Installation\',\n
url_string=software_release.getUrlString(),\n
default_aggregate_uid=computer.getUid(),\n
validation_state=\'validated\'\n
) if si.getSlapState() == \'start_requested\']\n
\n
if len(full_software_release_list) >
0:\n
return True\n
\n
return False\n
]]>
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_notify.py
0 → 100644
View file @
4121077a
from
DateTime
import
DateTime
if
context
.
getSimulationState
()
!=
'planned'
:
# XXX Don't notify the ones which are not planned.
return
portal
=
context
.
getPortalObject
()
person
=
context
.
getDestinationDecisionValue
(
portal_type
=
"Person"
)
if
not
person
:
raise
ValueError
(
"Inconsistent Upgrade Decision, No Destination Decision"
)
hosting_subscription
=
context
.
UpgradeDecision_getHostingSubscription
()
computer
=
context
.
UpgradeDecision_getComputer
()
software_release
=
context
.
UpgradeDecision_getSoftwareRelease
()
software_product_title
=
software_release
.
getAggregateTitle
(
portal_type
=
"Software Product"
)
reference
=
context
.
getReference
()
mapping_dict
=
{
'software_product_title'
:
software_product_title
,
'upgrade_accept_link'
:
'Base_acceptUpgradeDecision?reference=%s'
%
reference
,
'upgrade_reject_link'
:
'Base_rejectUpgradeDecision?reference=%s'
%
reference
,
'software_release_name'
:
software_release
.
getTitle
(),
'software_release_reference'
:
software_release
.
getReference
(),
'new_software_release_url'
:
software_release
.
getUrlString
(),
}
if
hosting_subscription
is
not
None
:
notification_message_reference
=
'slapos-upgrade-hosting-subscription.notification'
title
=
"New Upgrade available for %s"
%
hosting_subscription
.
getTitle
()
mapping_dict
.
update
(
**
{
'hosting_subscription_title'
:
hosting_subscription
.
getTitle
(),
'old_software_release_url'
:
hosting_subscription
.
getUrlString
()})
elif
computer
is
not
None
:
notification_message_reference
=
'slapos-upgrade-computer.notification'
title
=
"New Software available for Installation at %s"
%
computer
.
getTitle
()
mapping_dict
.
update
(
**
{
'computer_title'
:
computer
.
getTitle
(),
'computer_reference'
:
computer
.
getReference
()})
if
notification_message_reference
is
None
:
raise
ValueError
(
"No Notification Message"
)
notification_message
=
portal
.
portal_notifications
.
getDocumentValue
(
reference
=
notification_message_reference
)
message
=
notification_message
.
asEntireHTML
(
substitution_method_parameter_dict
=
{
'mapping_dict'
:
mapping_dict
})
event
=
context
.
SupportRequest_trySendNotificationMessage
(
title
,
message
,
person
.
getRelativeUrl
())
if
event
is
not
None
:
context
.
confirm
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_notify.xml
View file @
4121077a
...
...
@@ -48,69 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
from DateTime import DateTime\n
\n
if context.getSimulationState() != \'planned\':\n
# XXX Don\'t notify the ones which are not planned.\n
return \n
\n
portal = context.getPortalObject()\n
\n
person = context.getDestinationDecisionValue(portal_type="Person")\n
if not person:\n
raise ValueError("Inconsistent Upgrade Decision, No Destination Decision")\n
\n
hosting_subscription = context.UpgradeDecision_getHostingSubscription()\n
computer = context.UpgradeDecision_getComputer()\n
software_release = context.UpgradeDecision_getSoftwareRelease()\n
software_product_title = software_release.getAggregateTitle(\n
portal_type="Software Product")\n
reference = context.getReference()\n
\n
mapping_dict = {\n
\'software_product_title\': software_product_title,\n
\'upgrade_accept_link\': \'Base_acceptUpgradeDecision?reference=%s\' % reference,\n
\'upgrade_reject_link\': \'Base_rejectUpgradeDecision?reference=%s\' % reference,\n
\'software_release_name\': software_release.getTitle(),\n
\'software_release_reference\': software_release.getReference(),\n
\'new_software_release_url\': software_release.getUrlString(),\n
\n
}\n
if hosting_subscription is not None:\n
notification_message_reference = \'slapos-upgrade-hosting-subscription.notification\'\n
title = "New Upgrade available for %s" % hosting_subscription.getTitle()\n
mapping_dict.update(**{\n
\'hosting_subscription_title\': hosting_subscription.getTitle(),\n
\'old_software_release_url\': hosting_subscription.getUrlString()})\n
\n
\n
elif computer is not None:\n
\n
notification_message_reference = \'slapos-upgrade-computer.notification\' \n
\n
title = "New Software available for Installation at %s" % computer.getTitle()\n
mapping_dict.update(**{\'computer_title\': computer.getTitle(),\n
\'computer_reference\': computer.getReference()})\n
\n
\n
if notification_message_reference is None:\n
raise ValueError("No Notification Message")\n
\n
notification_message = portal.portal_notifications.getDocumentValue(\n
reference=notification_message_reference)\n
\n
message = notification_message.asEntireHTML(\n
substitution_method_parameter_dict={\'mapping_dict\': mapping_dict})\n
\n
event = context.SupportRequest_trySendNotificationMessage(title,\n
message, person.getRelativeUrl())\n
\n
if event is not None:\n
context.confirm()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
**kw
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_notifyDelivered.py
0 → 100644
View file @
4121077a
from
DateTime
import
DateTime
if
context
.
getSimulationState
()
!=
'stopped'
:
return
if
not
context
.
UpgradeDecision_isUpgradeFinished
():
return
portal
=
context
.
getPortalObject
()
person
=
context
.
getDestinationDecisionValue
(
portal_type
=
"Person"
)
if
not
person
:
raise
ValueError
(
"Inconsistent Upgrade Decision, No Destination Decision"
)
hosting_subscription
=
context
.
UpgradeDecision_getHostingSubscription
()
computer
=
context
.
UpgradeDecision_getComputer
()
software_release
=
context
.
UpgradeDecision_getSoftwareRelease
()
software_product_title
=
software_release
.
getAggregateTitle
(
portal_type
=
"Software Product"
)
reference
=
context
.
getReference
()
mapping_dict
=
{
'software_product_title'
:
software_product_title
,
'software_release_name'
:
software_release
.
getTitle
(),
'software_release_reference'
:
software_release
.
getReference
(),
'new_software_release_url'
:
software_release
.
getUrlString
(),
}
if
hosting_subscription
is
not
None
:
notification_message_reference
=
'slapos-upgrade-delivered-hosting-subscription.notification'
title
=
"Upgrade Processed for %s (%s)"
%
(
hosting_subscription
.
getTitle
(),
software_release
.
getReference
())
mapping_dict
.
update
(
**
{
'hosting_subscription_title'
:
hosting_subscription
.
getTitle
(),
'old_software_release_url'
:
hosting_subscription
.
getUrlString
()})
elif
computer
is
not
None
:
notification_message_reference
=
'slapos-upgrade-delivered-computer.notification'
title
=
"Upgrade processed at %s for %s"
%
(
computer
.
getTitle
(),
software_release
.
getReference
())
mapping_dict
.
update
(
**
{
'computer_title'
:
computer
.
getTitle
(),
'computer_reference'
:
computer
.
getReference
()})
if
notification_message_reference
is
None
:
raise
ValueError
(
"No Notification Message"
)
notification_message
=
portal
.
portal_notifications
.
getDocumentValue
(
reference
=
notification_message_reference
)
message
=
notification_message
.
asEntireHTML
(
substitution_method_parameter_dict
=
{
'mapping_dict'
:
mapping_dict
})
event
=
context
.
SupportRequest_trySendNotificationMessage
(
title
,
message
,
person
.
getRelativeUrl
())
if
event
is
not
None
:
context
.
setStopDate
(
DateTime
())
context
.
deliver
()
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_notifyDelivered.xml
View file @
4121077a
...
...
@@ -48,71 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
from DateTime import DateTime\n
\n
if context.getSimulationState() != \'stopped\':\n
return \n
\n
if not context.UpgradeDecision_isUpgradeFinished():\n
return \n
\n
portal = context.getPortalObject()\n
\n
person = context.getDestinationDecisionValue(portal_type="Person")\n
if not person:\n
raise ValueError("Inconsistent Upgrade Decision, No Destination Decision")\n
\n
hosting_subscription = context.UpgradeDecision_getHostingSubscription()\n
computer = context.UpgradeDecision_getComputer()\n
software_release = context.UpgradeDecision_getSoftwareRelease()\n
software_product_title = software_release.getAggregateTitle(\n
portal_type="Software Product")\n
\n
reference = context.getReference()\n
\n
mapping_dict = {\n
\'software_product_title\': software_product_title,\n
\'software_release_name\': software_release.getTitle(),\n
\'software_release_reference\': software_release.getReference(),\n
\'new_software_release_url\': software_release.getUrlString(),\n
}\n
\n
if hosting_subscription is not None:\n
notification_message_reference = \'slapos-upgrade-delivered-hosting-subscription.notification\'\n
title = "Upgrade Processed for %s (%s)" % (hosting_subscription.getTitle(), \n
software_release.getReference())\n
mapping_dict.update(**{\n
\'hosting_subscription_title\': hosting_subscription.getTitle(),\n
\'old_software_release_url\': hosting_subscription.getUrlString()})\n
\n
elif computer is not None:\n
\n
notification_message_reference = \'slapos-upgrade-delivered-computer.notification\' \n
\n
title = "Upgrade processed at %s for %s" % (computer.getTitle(), software_release.getReference()) \n
mapping_dict.update(**{\'computer_title\': computer.getTitle(),\n
\'computer_reference\': computer.getReference()})\n
\n
\n
if notification_message_reference is None:\n
raise ValueError("No Notification Message")\n
\n
notification_message = portal.portal_notifications.getDocumentValue(\n
reference=notification_message_reference)\n
\n
message = notification_message.asEntireHTML(\n
substitution_method_parameter_dict={\'mapping_dict\': mapping_dict})\n
\n
event = context.SupportRequest_trySendNotificationMessage(title,\n
message, person.getRelativeUrl())\n
\n
if event is not None:\n
context.setStopDate(DateTime())\n
context.deliver()\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
**kw
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_processUpgrade.py
0 → 100644
View file @
4121077a
if
context
.
UpgradeDecision_upgradeHostingSubscription
():
return
True
if
context
.
UpgradeDecision_upgradeComputer
():
return
True
return
False
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_processUpgrade.xml
View file @
4121077a
...
...
@@ -48,17 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
if context.UpgradeDecision_upgradeHostingSubscription():\n
return True\n
\n
if context.UpgradeDecision_upgradeComputer():\n
return True\n
\n
return False\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
**kw
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_tryToCancel.py
0 → 100644
View file @
4121077a
upgrade_decision
=
context
cancellable_state_list
=
[
'confirmed'
,
'planned'
]
require_state_list
=
[
'rejected'
,
'confirmed'
,
'planned'
]
simulation_state
=
upgrade_decision
.
getSimulationState
()
if
simulation_state
in
require_state_list
:
current_release
=
upgrade_decision
.
UpgradeDecision_getSoftwareRelease
()
if
not
current_release
:
# This upgrade decision is not valid
return
False
if
current_release
.
getUrlString
()
==
new_url_string
:
# Cannot cancel because the software releases are the same
return
False
if
simulation_state
in
cancellable_state_list
:
upgrade_decision
.
cancel
()
return
True
else
:
return
False
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_tryToCancel.xml
View file @
4121077a
...
...
@@ -48,28 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
upgrade_decision = context\n
cancellable_state_list = [\'confirmed\', \'planned\']\n
require_state_list = [\'rejected\', \'confirmed\', \'planned\']\n
simulation_state = upgrade_decision.getSimulationState()\n
\n
if simulation_state in require_state_list:\n
current_release = upgrade_decision.UpgradeDecision_getSoftwareRelease()\n
if not current_release:\n
# This upgrade decision is not valid\n
return False\n
if current_release.getUrlString() == new_url_string:\n
# Cannot cancel because the software releases are the same\n
return False\n
if simulation_state in cancellable_state_list:\n
upgrade_decision.cancel()\n
return True\n
else:\n
return False\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
new_url_string
</string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_upgradeComputer.py
0 → 100644
View file @
4121077a
if
context
.
getSimulationState
()
!=
'started'
:
# Update Decision is not on started state, Upgrade is not possible!
return
False
computer
=
context
.
UpgradeDecision_getComputer
()
software_release
=
context
.
UpgradeDecision_getSoftwareRelease
()
if
computer
is
None
:
return
False
if
software_release
is
None
:
return
False
software_release_url
=
software_release
.
getUrlString
()
computer
.
requestSoftwareRelease
(
software_release_url
=
software_release_url
,
state
=
"available"
)
context
.
stop
()
return
True
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_upgradeComputer.xml
View file @
4121077a
...
...
@@ -48,32 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
if context.getSimulationState() != \'started\':\n
# Update Decision is not on started state, Upgrade is not possible!\n
return False\n
\n
computer = context.UpgradeDecision_getComputer()\n
software_release = context.UpgradeDecision_getSoftwareRelease()\n
\n
if computer is None:\n
return False\n
\n
if software_release is None:\n
return False \n
\n
software_release_url = software_release.getUrlString()\n
\n
computer.requestSoftwareRelease(\n
software_release_url=software_release_url,\n
state="available")\n
\n
context.stop()\n
\n
return True\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_upgradeHostingSubscription.py
0 → 100644
View file @
4121077a
if
context
.
getSimulationState
()
!=
'started'
:
# Update Decision is not on started state, Upgrade is not possible!
return
False
hosting_subscription
=
context
.
UpgradeDecision_getHostingSubscription
()
software_release
=
context
.
UpgradeDecision_getSoftwareRelease
()
if
hosting_subscription
is
None
:
return
False
if
software_release
is
None
:
return
False
software_release_url
=
software_release
.
getUrlString
()
person
=
hosting_subscription
.
getDestinationSectionValue
(
portal_type
=
"Person"
)
status
=
hosting_subscription
.
getSlapState
()
if
status
==
"start_requested"
:
state
=
"started"
elif
status
==
"stop_requested"
:
state
=
"stopped"
elif
status
==
"destroy_requested"
:
state
=
"destroyed"
person
.
requestSoftwareInstance
(
state
=
state
,
software_release
=
software_release_url
,
software_title
=
hosting_subscription
.
getTitle
(),
software_type
=
hosting_subscription
.
getSourceReference
(),
instance_xml
=
hosting_subscription
.
getTextContent
(),
sla_xml
=
hosting_subscription
.
getSlaXml
(),
shared
=
hosting_subscription
.
isRootSlave
()
)
context
.
stop
()
return
True
master/bt5/slapos_pdm/SkinTemplateItem/portal_skins/slapos_pdm/UpgradeDecision_upgradeHostingSubscription.xml
View file @
4121077a
...
...
@@ -48,49 +48,6 @@
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
if context.getSimulationState() != \'started\':\n
# Update Decision is not on started state, Upgrade is not possible!\n
return False\n
\n
hosting_subscription = context.UpgradeDecision_getHostingSubscription()\n
software_release = context.UpgradeDecision_getSoftwareRelease()\n
\n
if hosting_subscription is None:\n
return False\n
\n
if software_release is None:\n
return False \n
\n
software_release_url = software_release.getUrlString()\n
\n
person = hosting_subscription.getDestinationSectionValue(portal_type="Person")\n
\n
status = hosting_subscription.getSlapState()\n
\n
if status == "start_requested":\n
state = "started"\n
elif status == "stop_requested":\n
state = "stopped"\n
elif status == "destroy_requested":\n
state = "destroyed"\n
\n
person.requestSoftwareInstance(\n
state=state,\n
software_release=software_release_url,\n
software_title=hosting_subscription.getTitle(),\n
software_type=hosting_subscription.getSourceReference(),\n
instance_xml=hosting_subscription.getTextContent(),\n
sla_xml=hosting_subscription.getSlaXml(),\n
shared=hosting_subscription.isRootSlave()\n
)\n
\n
context.stop()\n
\n
return True\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
...
...
master/bt5/slapos_pdm/bt/template_path_list
View file @
4121077a
portal_alarms/slapos_manage_software_catalog
portal_alarms/slapos_pdm_computer_create_upgrade_decision
portal_alarms/slapos_pdm_hosting_subscription_auto_cancel_upgrade_decision
portal_alarms/slapos_pdm_hosting_subscription_create_upgrade_decision
portal_alarms/slapos_pdm_upgrade_decision_process_planned
portal_alarms/slapos_pdm_upgrade_decision_process_started
...
...
master/bt5/slapos_pdm/bt/template_test_id_list
View file @
4121077a
test.erp5.testSlapOSPDMAlarm
test.erp5.testSlapOSPDMSkins
test.erp5.testSlapOSPDMSkins
\ No newline at end of file
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