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
b1e4429d
Commit
b1e4429d
authored
Dec 29, 2011
by
Antoine Catton
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adapt HostingSubscription_requestRootSoftwareInstance to new request logic.
parent
6a4aed6e
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
143 additions
and
196 deletions
+143
-196
master/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/HostingSubscription_requestRootSoftwareInstance.xml
..._slap/HostingSubscription_requestRootSoftwareInstance.xml
+112
-75
master/bt5/vifib_slap/WorkflowTemplateItem/portal_workflow/person_slap_interface_workflow/scripts/Person_requestSoftwareInstance.xml
...rface_workflow/scripts/Person_requestSoftwareInstance.xml
+30
-120
master/bt5/vifib_slap/bt/revision
master/bt5/vifib_slap/bt/revision
+1
-1
No files found.
master/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/HostingSubscription_requestRootSoftwareInstance.xml
View file @
b1e4429d
This diff is collapsed.
Click to expand it.
master/bt5/vifib_slap/WorkflowTemplateItem/portal_workflow/person_slap_interface_workflow/scripts/Person_requestSoftwareInstance.xml
View file @
b1e4429d
...
@@ -52,8 +52,6 @@
...
@@ -52,8 +52,6 @@
<key>
<string>
_body
</string>
</key>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
<value>
<string
encoding=
"cdata"
>
<![CDATA[
from DateTime import DateTime\n
from Products.ERP5Type.DateUtils import getClosestDate, addToDate\n
person = state_change[\'object\']\n
person = state_change[\'object\']\n
portal = person.getPortalObject()\n
portal = person.getPortalObject()\n
# Get required arguments\n
# Get required arguments\n
...
@@ -80,142 +78,54 @@ tag = "%s_%s_inProgress" % (person.getUid(), \n
...
@@ -80,142 +78,54 @@ tag = "%s_%s_inProgress" % (person.getUid(), \n
\n
\n
# Check if it already exists\n
# Check if it already exists\n
cleanup_resource = portal.portal_preferences.getPreferredInstanceCleanupResource()\n
cleanup_resource = portal.portal_preferences.getPreferredInstanceCleanupResource()\n
request_
software_instance
= None\n
request_
hosting_subscription
= None\n
for
si
in portal.portal_catalog(\n
for
hs
in portal.portal_catalog(\n
portal_type=
software_instance
_portal_type,\n
portal_type=
hosting_subscription
_portal_type,\n
title=software_title,\n
title=software_title,\n
):\n
):\n
si = hs.portal_catalog.getResultValue(title=software_title,\n
root_uid=hs.getUid())\n
try:\n
try:\n
cleanup_delivery_line = si.Item_getInstancePackingListLine(cleanup_resource)\n
cleanup_delivery_line = si.Item_getInstancePackingListLine(cleanup_resource)\n
except ValueError:\n
except ValueError:\n
request_
software_instance = si
\n
request_
hosting_subscription = hs
\n
break\n
break\n
else:\n
else:\n
if cleanup_delivery_line.getSimulationState() != \'delivered\':\n
if cleanup_delivery_line.getSimulationState() != \'delivered\':\n
request_
software_instance = si
\n
request_
hosting_subscription = hs
\n
break\n
break\n
\n
\n
if (request_software_instance is None):\n
if (portal.portal_activities.countMessageWithTag(tag) >
0):\n
# The software instance is already under creation but can not be fetched from catalog\n
# As it is not possible to fetch informations, it is better to raise an error\n
raise NotImplementedError(tag)\n
\n
if (request_hosting_subscription is None):\n
hosting_subscription_reference = "HOSTSUBS-%s" % context.getPortalObject().portal_ids\\\n
hosting_subscription_reference = "HOSTSUBS-%s" % context.getPortalObject().portal_ids\\\n
.generateNewId(id_group=\'slap_hosting_subscription_reference\', id_generator=\'uid\')\n
.generateNewId(id_group=\'slap_hosting_subscription_reference\', id_generator=\'uid\')\n
if (portal.portal_activities.countMessageWithTag(tag) >
0):\n
request_hosting_subscription = portal.getDefaultModule(portal_type=hosting_subscription_portal_type).newContent(\n
# The software instance is already under creation but can not be fetched from catalog\n
portal_type=hosting_subscription_portal_type,\n
# As it is not possible to fetch informations, it is better to raise an error\n
reference=hosting_subscription_reference,\n
raise NotImplementedError(tag)\n
title=software_title,\n
else:\n
source_reference=software_type,\n
\n
text_content=instance_xml,\n
setup_service_relative_url = portal.portal_preferences.getPreferredInstanceSetupResource()\n
sla_xml=sla_xml,\n
software_instance = portal.getDefaultModule(portal_type=software_instance_portal_type).newContent(\n
periodicity_hour_list=[0],\n
portal_type=software_instance_portal_type,\n
periodicity_minute_list=[0],\n
source_reference=software_type,\n
periodicity_month_day=[1],\n
title=software_title,\n
activate_kw={\'tag\': tag},\n
text_content=instance_xml,\n
)\n
sla_xml=sla_xml,\n
request_hosting_subscription.portal_workflow.doActionFor(request_hosting_subscription,\n
activate_kw={\'tag\': tag},\n
\'validate_action\')\n
**portal.Base_getNewSoftwareInstanceCoordinate()\n
)\n
software_instance.portal_workflow.doActionFor(software_instance, \'validate_action\')\n
subscription = portal.getDefaultModule(portal_type=hosting_subscription_portal_type).newContent(\n
portal_type=hosting_subscription_portal_type,\n
reference=hosting_subscription_reference,\n
title=software_title,\n
periodicity_hour_list=[0],\n
periodicity_minute_list=[0],\n
periodicity_month_day=[1],\n
activate_kw={\'tag\': tag},\n
)\n
subscription.portal_workflow.doActionFor(subscription, \'validate_action\')\n
if state == \'started\':\n
software_instance.startRequested()\n
elif state == \'stopped\':\n
software_instance.stopRequested()\n
\n
software_release_document = context.portal_catalog.getResultValue(\n
portal_type=\'Software Release\',\n
url_string=software_release_url_string)\n
\n
sale_order = portal.getDefaultModule(portal_type=sale_order_portal_type).newContent(\n
portal_type=sale_order_portal_type,\n
destination_value=person,\n
destination_section_value=person,\n
destination_decision_value=person,\n
start_date=DateTime(),\n
received_date=DateTime(),\n
# XXX Hardcoded values\n
source="organisation_module/vifib_internet",\n
source_section="organisation_module/vifib_internet",\n
quantity_unit="unit/piece",\n
price_currency="currency_module/EUR",\n
activate_kw={\'tag\': tag},\n
)\n
sale_order_line = sale_order.newContent(\n
portal_type=sale_order_line_portal_type,\n
resource=setup_service_relative_url,\n
quantity=1,\n
price=0,\n
aggregate_value_list=[software_instance, subscription, software_release_document],\n
activate_kw={\'tag\': tag},\n
)\n
portal.portal_workflow.doActionFor(sale_order, "order_action")\n
\n
# Update Open Order\n
# does this order have a client-specific Open Order\n
open_order = portal.portal_catalog.getResultValue(\n
default_destination_section_uid=person.getUid(),\n
portal_type="Open Sale Order",\n
validation_state="validated")\n
if open_order is None:\n
person_slap_interface_state = person.getSlapState()\n
if person_slap_interface_state == \'open_order_created\':\n
open_order_url = context.portal_workflow.getInfoFor(\n
ob=person, name=\'open_order_url\',\n
wf_id=\'person_slap_interface_workflow\')\n
open_order = portal.restrictedTraverse(open_order_url)\n
else:\n
raise ValueError(\'Person has no open order created\')\n
\n
now = DateTime()\n
start_date = getClosestDate(target_date=now, precision=\'day\', before=1)\n
# 12 months of subscription by default\n
stop_date = addToDate(getClosestDate(target_date=now, precision=\'month\', before=1), year=1)\n
\n
subscription_service_relative_url = portal.portal_preferences.getPreferredInstanceSubscriptionResource()\n
open_order.newContent(\n
portal_type="Open Sale Order Line",\n
title=software_title,\n
aggregate_value=subscription,\n
start_date=start_date,\n
stop_date=stop_date,\n
quantity=1,\n
quantity_unit="unit/piece",\n
price=1,\n
price_currency="currency_module/EUR",\n
specialise=sale_order.getSpecialise(portal_type="Sale Trade Condition"),\n
# XXX Hardcoded values\\n\n
resource=subscription_service_relative_url,\n
destination_value=person,\n
destination_section_value=person,\n
source="organisation_module/vifib_internet",\n
source_section="organisation_module/vifib_internet",\n
activate_kw={\'tag\': tag},\n
)\n
\n
# Find Computer partition\n
# XXX Link subscript to open order\n
else:\n
else:\n
# Update existing software instance\n
request_hosting_subscription.edit(\n
request_software_instance.edit(\n
text_content=instance_xml,\n
text_content=instance_xml,\n
source_reference=software_type,\n
source_reference=software_type,\n
sla_xml=sla_xml,\n
sla_xml=sla_xml,\n
activate_kw={\'tag\': tag},\n
activate_kw={\'tag\': tag},\n
)\n
)\n
if state == \'started\':\n
\n
request_software_instance.startRequested()\n
request_hosting_subscription.HostingSubscription_requestRootSoftwareInstance(tag, person=person)\n
request_software_instance.activate(after_tag=tag).requestStartComputerPartition()\n
elif state == \'stopped\':\n
request_software_instance.stopRequested()\n
request_software_instance.activate(after_tag=tag).requestStopComputerPartition()\n
]]>
</string>
</value>
]]>
</string>
</value>
...
...
master/bt5/vifib_slap/bt/revision
View file @
b1e4429d
49
3
49
4
\ 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