143 lines
3.0 KiB
Go
143 lines
3.0 KiB
Go
|
|
package scheduling
|
||
|
|
|
||
|
|
import (
|
||
|
|
"encoding/json"
|
||
|
|
|
||
|
|
"cloud.o-forge.io/core/oc-lib/models/booking"
|
||
|
|
"cloud.o-forge.io/core/oc-lib/models/resources/purchase_resource"
|
||
|
|
"cloud.o-forge.io/core/oc-lib/models/utils"
|
||
|
|
"cloud.o-forge.io/core/oc-lib/tools"
|
||
|
|
)
|
||
|
|
|
||
|
|
type SchedulerObject interface {
|
||
|
|
utils.DBObject
|
||
|
|
SetIsDraft(bool)
|
||
|
|
GetKey() string
|
||
|
|
SetSchedulerPeerID(peerID string)
|
||
|
|
SetExecutionsID(ei string)
|
||
|
|
GetDestPeer() string
|
||
|
|
GetPeerSession() string
|
||
|
|
GetExecutionsId() string
|
||
|
|
GetExecutionId() string
|
||
|
|
}
|
||
|
|
|
||
|
|
type ScheduledPurchase struct {
|
||
|
|
purchase_resource.PurchaseResource
|
||
|
|
}
|
||
|
|
|
||
|
|
type ScheduledBooking struct {
|
||
|
|
booking.Booking
|
||
|
|
}
|
||
|
|
|
||
|
|
func FromSchedulerDBObject(dt tools.DataType, obj SchedulerObject) utils.DBObject {
|
||
|
|
switch dt {
|
||
|
|
case tools.BOOKING:
|
||
|
|
o := &booking.Booking{}
|
||
|
|
b, _ := json.Marshal(obj)
|
||
|
|
json.Unmarshal(b, &o)
|
||
|
|
return o
|
||
|
|
case tools.PURCHASE_RESOURCE:
|
||
|
|
o := &purchase_resource.PurchaseResource{}
|
||
|
|
b, _ := json.Marshal(obj)
|
||
|
|
json.Unmarshal(b, &o)
|
||
|
|
return o
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func FromSchedulerObject(dt tools.DataType, obj SchedulerObject) utils.ShallowDBObject {
|
||
|
|
switch dt {
|
||
|
|
case tools.BOOKING:
|
||
|
|
o := &booking.Booking{}
|
||
|
|
b, _ := json.Marshal(obj)
|
||
|
|
json.Unmarshal(b, &o)
|
||
|
|
return o
|
||
|
|
case tools.PURCHASE_RESOURCE:
|
||
|
|
o := &purchase_resource.PurchaseResource{}
|
||
|
|
b, _ := json.Marshal(obj)
|
||
|
|
json.Unmarshal(b, &o)
|
||
|
|
return o
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func ToSchedulerObject(dt tools.DataType, obj utils.ShallowDBObject) SchedulerObject {
|
||
|
|
switch dt {
|
||
|
|
case tools.BOOKING:
|
||
|
|
o := &ScheduledBooking{}
|
||
|
|
b, _ := json.Marshal(obj)
|
||
|
|
json.Unmarshal(b, &o)
|
||
|
|
return o
|
||
|
|
case tools.PURCHASE_RESOURCE:
|
||
|
|
o := &ScheduledPurchase{}
|
||
|
|
b, _ := json.Marshal(obj)
|
||
|
|
json.Unmarshal(b, &o)
|
||
|
|
return o
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledBooking) GetExecutionId() string {
|
||
|
|
return b.ExecutionID
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledPurchase) GetExecutionId() string {
|
||
|
|
return b.ExecutionID
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledBooking) GetExecutionsId() string {
|
||
|
|
return b.ExecutionsID
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledPurchase) GetExecutionsId() string {
|
||
|
|
return b.ExecutionsID
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledBooking) GetPeerSession() string {
|
||
|
|
return b.SchedulerPeerID
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledPurchase) GetPeerSession() string {
|
||
|
|
return b.SchedulerPeerID
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledBooking) GetDestPeer() string {
|
||
|
|
return b.DestPeerID
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledPurchase) GetDestPeer() string {
|
||
|
|
return b.DestPeerID
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledBooking) GetKey() string {
|
||
|
|
return b.ResourceID + "/" + b.InstanceID + "/" + tools.BOOKING.String()
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledPurchase) GetKey() string {
|
||
|
|
return b.ResourceID + "/" + b.InstanceID + "/" + tools.PURCHASE_RESOURCE.String()
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledBooking) SetIsDraft(ok bool) {
|
||
|
|
b.IsDraft = ok
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledPurchase) SetIsDraft(ok bool) {
|
||
|
|
b.IsDraft = ok
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledBooking) SetSchedulerPeerID(peerID string) {
|
||
|
|
b.SchedulerPeerID = peerID
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledPurchase) SetSchedulerPeerID(peerID string) {
|
||
|
|
b.SchedulerPeerID = peerID
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledBooking) SetExecutionsID(ei string) {
|
||
|
|
b.ExecutionsID = ei
|
||
|
|
}
|
||
|
|
|
||
|
|
func (b *ScheduledPurchase) SetExecutionsID(ei string) {
|
||
|
|
b.ExecutionsID = ei
|
||
|
|
}
|