// ImportModel deserializes a model description from the bytes, transforms // the model config based on information from the controller model, and then // imports that as a new database model. func ImportModel(st *state.State, bytes []byte) (*state.Model, *state.State, error) { model, err := description.Deserialize(bytes) if err != nil { return nil, nil, errors.Trace(err) } controllerModel, err := st.ControllerModel() if err != nil { return nil, nil, errors.Trace(err) } controllerConfig, err := controllerModel.Config() if err != nil { return nil, nil, errors.Trace(err) } model.UpdateConfig(controllerValues(controllerConfig)) if err := updateConfigFromProvider(model, controllerConfig); err != nil { return nil, nil, errors.Trace(err) } dbModel, dbState, err := st.Import(model) if err != nil { return nil, nil, errors.Trace(err) } return dbModel, dbState, nil }
// ImportModel deserializes a model description from the bytes, transforms // the model config based on information from the controller model, and then // imports that as a new database model. func ImportModel(st *state.State, bytes []byte) (*state.Model, *state.State, error) { model, err := description.Deserialize(bytes) if err != nil { return nil, nil, errors.Trace(err) } dbModel, dbState, err := st.Import(model) if err != nil { return nil, nil, errors.Trace(err) } return dbModel, dbState, nil }