本文整理匯總了Golang中github.com/juju/juju/core/description.Unit.WorkloadStatus方法的典型用法代碼示例。如果您正苦於以下問題:Golang Unit.WorkloadStatus方法的具體用法?Golang Unit.WorkloadStatus怎麽用?Golang Unit.WorkloadStatus使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/juju/juju/core/description.Unit
的用法示例。
在下文中一共展示了Unit.WorkloadStatus方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: unit
func (i *importer) unit(s description.Service, u description.Unit) error {
i.logger.Debugf("importing unit %s", u.Name())
// 1. construct a unitDoc
udoc, err := i.makeUnitDoc(s, u)
if err != nil {
return errors.Trace(err)
}
// 2. construct a statusDoc for the workload status and agent status
agentStatus := u.AgentStatus()
if agentStatus == nil {
return errors.NotValidf("missing agent status")
}
agentStatusDoc := i.makeStatusDoc(agentStatus)
workloadStatus := u.WorkloadStatus()
if workloadStatus == nil {
return errors.NotValidf("missing workload status")
}
workloadStatusDoc := i.makeStatusDoc(workloadStatus)
ops := addUnitOps(i.st, addUnitOpsArgs{
unitDoc: udoc,
agentStatusDoc: agentStatusDoc,
workloadStatusDoc: workloadStatusDoc,
meterStatusDoc: &meterStatusDoc{
Code: u.MeterStatusCode(),
Info: u.MeterStatusInfo(),
},
})
// We should only have constraints for principal agents.
// We don't encode that business logic here, if there are constraints
// in the imported model, we put them in the database.
if cons := u.Constraints(); cons != nil {
agentGlobalKey := unitAgentGlobalKey(u.Name())
ops = append(ops, createConstraintsOp(i.st, agentGlobalKey, i.constraints(cons)))
}
if err := i.st.runTransaction(ops); err != nil {
return errors.Trace(err)
}
unit := newUnit(i.st, udoc)
if annotations := u.Annotations(); len(annotations) > 0 {
if err := i.st.SetAnnotations(unit, annotations); err != nil {
return errors.Trace(err)
}
}
if err := i.importStatusHistory(unit.globalKey(), u.WorkloadStatusHistory()); err != nil {
return errors.Trace(err)
}
if err := i.importStatusHistory(unit.globalAgentKey(), u.AgentStatusHistory()); err != nil {
return errors.Trace(err)
}
return nil
}
示例2: unit
func (i *importer) unit(s description.Application, u description.Unit) error {
i.logger.Debugf("importing unit %s", u.Name())
// 1. construct a unitDoc
udoc, err := i.makeUnitDoc(s, u)
if err != nil {
return errors.Trace(err)
}
// 2. construct a statusDoc for the workload status and agent status
agentStatus := u.AgentStatus()
if agentStatus == nil {
return errors.NotValidf("missing agent status")
}
agentStatusDoc := i.makeStatusDoc(agentStatus)
workloadStatus := u.WorkloadStatus()
if workloadStatus == nil {
return errors.NotValidf("missing workload status")
}
workloadStatusDoc := i.makeStatusDoc(workloadStatus)
workloadVersion := u.WorkloadVersion()
versionStatus := status.Active
if workloadVersion == "" {
versionStatus = status.Unknown
}
workloadVersionDoc := statusDoc{
Status: versionStatus,
StatusInfo: workloadVersion,
}
ops, err := addUnitOps(i.st, addUnitOpsArgs{
unitDoc: udoc,
agentStatusDoc: agentStatusDoc,
workloadStatusDoc: workloadStatusDoc,
workloadVersionDoc: workloadVersionDoc,
meterStatusDoc: &meterStatusDoc{
Code: u.MeterStatusCode(),
Info: u.MeterStatusInfo(),
},
})
if err != nil {
return errors.Trace(err)
}
// If the unit is a principal, add it to its machine.
if u.Principal().Id() == "" {
ops = append(ops, txn.Op{
C: machinesC,
Id: u.Machine().Id(),
Assert: txn.DocExists,
Update: bson.M{"$addToSet": bson.M{"principals": u.Name()}},
})
}
// We should only have constraints for principal agents.
// We don't encode that business logic here, if there are constraints
// in the imported model, we put them in the database.
if cons := u.Constraints(); cons != nil {
agentGlobalKey := unitAgentGlobalKey(u.Name())
ops = append(ops, createConstraintsOp(i.st, agentGlobalKey, i.constraints(cons)))
}
if err := i.st.runTransaction(ops); err != nil {
i.logger.Debugf("failed ops: %#v", ops)
return errors.Trace(err)
}
unit := newUnit(i.st, udoc)
if annotations := u.Annotations(); len(annotations) > 0 {
if err := i.st.SetAnnotations(unit, annotations); err != nil {
return errors.Trace(err)
}
}
if err := i.importStatusHistory(unit.globalKey(), u.WorkloadStatusHistory()); err != nil {
return errors.Trace(err)
}
if err := i.importStatusHistory(unit.globalAgentKey(), u.AgentStatusHistory()); err != nil {
return errors.Trace(err)
}
if err := i.importStatusHistory(unit.globalWorkloadVersionKey(), u.WorkloadVersionHistory()); err != nil {
return errors.Trace(err)
}
if err := i.importUnitPayloads(unit, u.Payloads()); err != nil {
return errors.Trace(err)
}
return nil
}