本文整理汇总了Golang中github.com/cloudfoundry-incubator/bbs/models.ActualLRP.CrashReason方法的典型用法代码示例。如果您正苦于以下问题:Golang ActualLRP.CrashReason方法的具体用法?Golang ActualLRP.CrashReason怎么用?Golang ActualLRP.CrashReason使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/cloudfoundry-incubator/bbs/models.ActualLRP
的用法示例。
在下文中一共展示了ActualLRP.CrashReason方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: lrpForState
func lrpForState(state string, timeInState time.Duration) models.ActualLRP {
var actualLRPKey = models.NewActualLRPKey("some-process-guid", 1, "tests")
var instanceKey = models.NewActualLRPInstanceKey("some-instance-guid", "some-cell")
lrp := models.ActualLRP{
ActualLRPKey: actualLRPKey,
State: state,
Since: clock.Now().Add(-timeInState).UnixNano(),
}
switch state {
case models.ActualLRPStateUnclaimed:
case models.ActualLRPStateCrashed:
lrp.CrashReason = "crashed"
case models.ActualLRPStateClaimed:
lrp.ActualLRPInstanceKey = instanceKey
case models.ActualLRPStateRunning:
lrp.ActualLRPInstanceKey = instanceKey
lrp.ActualLRPNetInfo = models.NewActualLRPNetInfo("1.2.3.4", &models.PortMapping{ContainerPort: 1234, HostPort: 5678})
}
return lrp
}
示例2:
Context("when the actual lrp data is the same", func() {
It("does nothing", func() {
_, err := etcdDBWithFakeStore.EvacuateActualLRP(logger, &actualLRP.ActualLRPKey, &actualLRP.ActualLRPInstanceKey, &actualLRP.ActualLRPNetInfo, ttl)
Expect(err).NotTo(HaveOccurred())
Expect(fakeStoreClient.CompareAndSwapCallCount()).To(Equal(0))
})
})
Context("when the evacuating actual lrp does not exist", func() {
BeforeEach(func() {
_, err := storeClient.Delete(etcd.EvacuatingActualLRPSchemaPath(guid, index), false)
Expect(err).NotTo(HaveOccurred())
actualLRP.CrashCount = 0
actualLRP.CrashReason = ""
actualLRP.Since = clock.Now().UnixNano()
})
It("creates the evacuating actual lrp", func() {
group, err := etcdDB.EvacuateActualLRP(logger, &actualLRP.ActualLRPKey, &actualLRP.ActualLRPInstanceKey, &actualLRP.ActualLRPNetInfo, ttl)
Expect(err).NotTo(HaveOccurred())
actualLRPGroup, err := etcdDB.ActualLRPGroupByProcessGuidAndIndex(logger, guid, index)
Expect(err).NotTo(HaveOccurred())
Expect(group).To(Equal(actualLRPGroup))
Expect(actualLRPGroup.Evacuating.ModificationTag.Epoch).NotTo(BeNil())
Expect(actualLRPGroup.Evacuating.ModificationTag.Index).To(BeEquivalentTo((1)))
actualLRPGroup.Evacuating.ModificationTag = actualLRP.ModificationTag
Expect(actualLRPGroup.Evacuating).To(BeEquivalentTo(actualLRP))
示例3:
actualLRP.State = ""
Expect(serialization.ActualLRPProtoToResponse(actualLRP, false).State).To(Equal(receptor.ActualLRPStateInvalid))
})
Context("when there is placement error", func() {
BeforeEach(func() {
actualLRP.State = models.ActualLRPStateUnclaimed
actualLRP.PlacementError = "some-error"
})
It("includes the placement error", func() {
actualResponse := serialization.ActualLRPProtoToResponse(actualLRP, false)
Expect(actualResponse.PlacementError).To(Equal("some-error"))
})
})
Context("when there is a crash reason", func() {
BeforeEach(func() {
actualLRP.State = models.ActualLRPStateCrashed
actualLRP.CrashReason = "crashed"
})
It("includes the placement error", func() {
actualResponse := serialization.ActualLRPProtoToResponse(actualLRP, false)
Expect(actualResponse.CrashReason).To(Equal("crashed"))
})
})
})
})