service/lease.go
func (s *Lease) Procurement() (skuTask *taskmanager.Task) {

	if skuConstructor, ok := s.availableSkus[s.Sku]; ok {
		leaseMap := structs.Map(s)
		sku := skuConstructor.New(s.taskManager, leaseMap)
		GLogger.Println("here is my sku: ", sku)
		skuTask = sku.Procurement()
		tt := skuTask.Read(func(t *taskmanager.Task) interface{} {
			tt := *t
			return tt
		})
		GLogger.Println("here is my task after procurement: ", tt)
		s.Task = skuTask.GetRedactedVersion()

	} else {
		GLogger.Println("No Sku Match: ", s.Sku, s.availableSkus)
		s.Task.Status = TaskStatusUnavailable
	}
	return
}
func (s *Lease) Procurement() (skuTask *taskmanager.Task) {

	if skuConstructor, ok := s.availableSkus[s.Sku]; ok {
		leaseMap := structs.Map(s)
		sku := skuConstructor.New(s.taskManager, leaseMap)
		GLogger.Println("here is my sku: ", sku)
		skuTask = sku.Procurement()
		tt := skuTask.Read(func(t *taskmanager.Task) interface{} {
			tt := *t
			return tt
		})
		GLogger.Println("here is my task after procurement: ", tt)
		s.Task = skuTask.GetRedactedVersion()

	} else {
		GLogger.Println("No Sku Match: ", s.Sku, s.availableSkus)
		s.Task.Status = TaskStatusUnavailable
	}
	return
}
//Procurement - method to issue a procurement request for the given lease item.