// FilesystemParams returns the parameters for creating the filesystems // with the specified tags. func (s *StorageProvisionerAPI) FilesystemParams(args params.Entities) (params.FilesystemParamsResults, error) { canAccess, err := s.getStorageEntityAuthFunc() if err != nil { return params.FilesystemParamsResults{}, err } modelConfig, err := s.st.ModelConfig() if err != nil { return params.FilesystemParamsResults{}, err } controllerCfg, err := s.st.ControllerConfig() if err != nil { return params.FilesystemParamsResults{}, err } results := params.FilesystemParamsResults{ Results: make([]params.FilesystemParamsResult, len(args.Entities)), } one := func(arg params.Entity) (params.FilesystemParams, error) { tag, err := names.ParseFilesystemTag(arg.Tag) if err != nil || !canAccess(tag) { return params.FilesystemParams{}, common.ErrPerm } filesystem, err := s.st.Filesystem(tag) if errors.IsNotFound(err) { return params.FilesystemParams{}, common.ErrPerm } else if err != nil { return params.FilesystemParams{}, err } storageInstance, err := storagecommon.MaybeAssignedStorageInstance( filesystem.Storage, s.st.StorageInstance, ) if err != nil { return params.FilesystemParams{}, err } filesystemParams, err := storagecommon.FilesystemParams( filesystem, storageInstance, modelConfig.UUID(), controllerCfg.ControllerUUID(), modelConfig, s.poolManager, s.registry, ) if err != nil { return params.FilesystemParams{}, err } return filesystemParams, nil } for i, arg := range args.Entities { var result params.FilesystemParamsResult filesystemParams, err := one(arg) if err != nil { result.Error = common.ServerError(err) } else { result.Result = filesystemParams } results.Results[i] = result } return results, nil }
// FilesystemParams returns the parameters for creating the filesystems // with the specified tags. func (s *StorageProvisionerAPI) FilesystemParams(args params.Entities) (params.FilesystemParamsResults, error) { canAccess, err := s.getStorageEntityAuthFunc() if err != nil { return params.FilesystemParamsResults{}, err } envConfig, err := s.st.EnvironConfig() if err != nil { return params.FilesystemParamsResults{}, err } results := params.FilesystemParamsResults{ Results: make([]params.FilesystemParamsResult, len(args.Entities)), } poolManager := poolmanager.New(s.settings) one := func(arg params.Entity) (params.FilesystemParams, error) { tag, err := names.ParseFilesystemTag(arg.Tag) if err != nil || !canAccess(tag) { return params.FilesystemParams{}, common.ErrPerm } filesystem, err := s.st.Filesystem(tag) if errors.IsNotFound(err) { return params.FilesystemParams{}, common.ErrPerm } else if err != nil { return params.FilesystemParams{}, err } storageInstance, err := storagecommon.MaybeAssignedStorageInstance( filesystem.Storage, s.st.StorageInstance, ) if err != nil { return params.FilesystemParams{}, err } filesystemParams, err := storagecommon.FilesystemParams( filesystem, storageInstance, envConfig, poolManager, ) if err != nil { return params.FilesystemParams{}, err } return filesystemParams, nil } for i, arg := range args.Entities { var result params.FilesystemParamsResult filesystemParams, err := one(arg) if err != nil { result.Error = common.ServerError(err) } else { result.Result = filesystemParams } results.Results[i] = result } return results, nil }