func (bd *BundleData) VerifyWithCharms(
	verifyConstraints func(c string) error,
	verifyStorage func(s string) error,
	verifyDevices func(s string) error,
	charms map[string]Charm,
) error {
	return bd.verifyBundle("", verifyConstraints, verifyStorage, verifyDevices, charms)
}
// VerifyWithCharms verifies that the bundle is consistent.
// The verifyConstraints function is called to verify any constraints
// that are found. If verifyConstraints is nil, no checking
// of constraints will be done. Similarly, a non-nil verifyStorage, verifyDevices
// function is called to verify any storage constraints.
//
// It verifies the following:
//
// - All defined machines are referred to by placement directives.
// - All applications referred to by placement directives are specified in the bundle.
// - All applications referred to by relations are specified in the bundle.
// - All basic constraints are valid.
// - All storage constraints are valid.
//
// If charms is not nil, it should hold a map with an entry for each
// charm url returned by bd.RequiredCharms. The verification will then
// also check that applications are defined with valid charms,
// relations are correctly made and options are defined correctly.
//
// If the verification fails, Verify returns a *VerificationError describing
// all the problems found.
VerifyWithCharms verifies that the bundle is consistent.
The verifyConstraints function is called to verify any constraints
that are found. If verifyConstraints is nil, no checking
of constraints will be done. Similarly, a non-nil verifyStorage, verifyDevices
function is called to verify any storage constraints.

It verifies the following.

- All defined machines are referred to by placement directives.
- All applications referred to by placement directives are specified in the bundle.
- All applications referred to by relations are specified in the bundle.
- All basic constraints are valid.
- All storage constraints are valid.

If charms is not nil, it should hold a map with an entry for each
charm url returned by bd.RequiredCharms. The verification will then
also check that applications are defined with valid charms,
relations are correctly made and options are defined correctly.

If the verification fails, Verify returns a *VerificationError describing
all the problems found.
// VerifyWithCharms verifies that the bundle is consistent . // The verifyConstraints function is called to verify any constraints // that are found . If verifyConstraints is nil no checking // of constraints will be done . Similarly a non - nil verifyStorage verifyDevices // function is called to verify any storage constraints . // // It verifies the following : // // - All defined machines are referred to by placement directives . // - All applications referred to by placement directives are specified in the bundle . // - All applications referred to by relations are specified in the bundle . // - All basic constraints are valid . // - All storage constraints are valid . // // If charms is not nil it should hold a map with an entry for each // charm url returned by bd . RequiredCharms . The verification will then // also check that applications are defined with valid charms // relations are correctly made and options are defined correctly . // // If the verification fails Verify returns a * VerificationError describing // all the problems found .
func (bd *BundleData) VerifyWithCharms(
	verifyConstraints func(c string) error,
	verifyStorage func(s string) error,
	verifyDevices func(s string) error,
	charms map[string]Charm,
) error {
	return bd.verifyBundle("", verifyConstraints, verifyStorage, verifyDevices, charms)
}
func ( bd * BundleData ) VerifyWithCharms ( verifyConstraints func ( c string ) error , verifyStorage func ( s string ) error , verifyDevices func ( s string ) error , charms map [ string ] Charm , ) error { return bd . verifyBundle ( " " , verifyConstraints , verifyStorage , verifyDevices , charms ) }
VerifyWithCharms verifies that the bundle is consistent.
VerifyWithCharms verifies that the bundle is consistent .