本文整理汇总了Golang中github.com/cloudfoundry/bosh-init/release/set/manifest.Manifest类的典型用法代码示例。如果您正苦于以下问题:Golang Manifest类的具体用法?Golang Manifest怎么用?Golang Manifest使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Manifest类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Validate
func (v *validator) Validate(manifest Manifest, releaseSetManifest birelsetmanifest.Manifest) error {
errs := []error{}
cpiJobName := manifest.Template.Name
if v.isBlank(cpiJobName) {
errs = append(errs, bosherr.Error("cloud_provider.template.name must be provided"))
}
cpiReleaseName := manifest.Template.Release
if v.isBlank(cpiReleaseName) {
errs = append(errs, bosherr.Error("cloud_provider.template.release must be provided"))
}
_, found := releaseSetManifest.FindByName(cpiReleaseName)
if !found {
errs = append(errs, bosherr.Errorf("cloud_provider.template.release '%s' must refer to a release in releases", cpiReleaseName))
}
if len(errs) > 0 {
return bosherr.NewMultiError(errs...)
}
return nil
}
开发者ID:mattcui,项目名称:bosh-init,代码行数:24,代码来源:validator.go
示例2: rootDesc
func rootDesc() {
var mockCtrl *gomock.Controller
BeforeEach(func() {
mockCtrl = gomock.NewController(GinkgoT())
})
AfterEach(func() {
mockCtrl.Finish()
})
Describe("Run", func() {
var (
command bicmd.Cmd
fakeFs *fakesys.FakeFileSystem
stdOut *gbytes.Buffer
stdErr *gbytes.Buffer
userInterface biui.UI
sha1Calculator crypto.SHA1Calculator
manifestSHA1 string
mockDeployer *mock_deployment.MockDeployer
mockInstaller *mock_install.MockInstaller
mockInstallerFactory *mock_install.MockInstallerFactory
mockReleaseExtractor *mock_release.MockExtractor
releaseManager birel.Manager
mockRegistryServerManager *mock_registry.MockServerManager
mockRegistryServer *mock_registry.MockServer
mockAgentClient *mock_agentclient.MockAgentClient
mockAgentClientFactory *mock_httpagent.MockAgentClientFactory
mockCloudFactory *mock_cloud.MockFactory
fakeCPIRelease *fakebirel.FakeRelease
logger boshlog.Logger
mockBlobstoreFactory *mock_blobstore.MockFactory
mockBlobstore *mock_blobstore.MockBlobstore
mockVMManagerFactory *mock_vm.MockManagerFactory
fakeVMManager *fakebivm.FakeManager
fakeStemcellExtractor *fakebistemcell.FakeExtractor
mockStemcellManager *mock_stemcell.MockManager
fakeStemcellManagerFactory *fakebistemcell.FakeManagerFactory
fakeReleaseSetParser *fakebirelsetmanifest.FakeParser
fakeInstallationParser *fakebiinstallmanifest.FakeParser
fakeDeploymentParser *fakebideplmanifest.FakeParser
mockLegacyDeploymentStateMigrator *mock_config.MockLegacyDeploymentStateMigrator
setupDeploymentStateService biconfig.DeploymentStateService
fakeDeploymentValidator *fakebideplval.FakeValidator
directorID = "generated-director-uuid"
fakeUUIDGenerator *fakeuuid.FakeGenerator
configUUIDGenerator *fakeuuid.FakeGenerator
fakeStage *fakebiui.FakeStage
deploymentManifestPath string
deploymentStatePath string
cpiReleaseTarballPath string
stemcellTarballPath string
extractedStemcell bistemcell.ExtractedStemcell
expectDeploy *gomock.Call
mbusURL = "http://fake-mbus-user:[email protected]"
releaseSetManifest birelsetmanifest.Manifest
boshDeploymentManifest bideplmanifest.Manifest
installationManifest biinstallmanifest.Manifest
cloud bicloud.Cloud
cloudStemcell bistemcell.CloudStemcell
expectLegacyMigrate *gomock.Call
expectStemcellUpload *gomock.Call
expectStemcellDeleteUnused *gomock.Call
expectCPIReleaseExtract *gomock.Call
expectInstall *gomock.Call
expectNewCloud *gomock.Call
)
BeforeEach(func() {
logger = boshlog.NewLogger(boshlog.LevelNone)
stdOut = gbytes.NewBuffer()
stdErr = gbytes.NewBuffer()
userInterface = biui.NewWriterUI(stdOut, stdErr, logger)
fakeFs = fakesys.NewFakeFileSystem()
fakeFs.EnableStrictTempRootBehavior()
deploymentManifestPath = "/path/to/manifest.yml"
deploymentStatePath = "/path/to/manifest-state.json"
fakeFs.RegisterOpenFile(deploymentManifestPath, &fakesys.FakeFile{
Stats: &fakesys.FakeFileStats{FileType: fakesys.FakeFileTypeFile},
})
fakeFs.WriteFileString(deploymentManifestPath, "")
mockDeployer = mock_deployment.NewMockDeployer(mockCtrl)
mockInstaller = mock_install.NewMockInstaller(mockCtrl)
mockInstallerFactory = mock_install.NewMockInstallerFactory(mockCtrl)
//.........这里部分代码省略.........
开发者ID:mattcui,项目名称:bosh-init,代码行数:101,代码来源:deploy_cmd_test.go
示例3: DeleteDeployment
func (c *deploymentDeleter) DeleteDeployment(stage biui.Stage) (err error) {
c.ui.PrintLinef("Deployment state: '%s'", c.deploymentStateService.Path())
if !c.deploymentStateService.Exists() {
c.ui.PrintLinef("No deployment state file found.")
return nil
}
deploymentState, err := c.deploymentStateService.Load()
if err != nil {
return bosherr.WrapError(err, "Loading deployment state")
}
target, err := c.targetProvider.NewTarget()
if err != nil {
return bosherr.WrapError(err, "Determining installation target")
}
err = c.tempRootConfigurator.PrepareAndSetTempRoot(target.TmpPath(), c.logger)
if err != nil {
return bosherr.WrapError(err, "Setting temp root")
}
defer func() {
err := c.releaseManager.DeleteAll()
if err != nil {
c.logger.Warn(c.logTag, "Deleting all extracted releases: %s", err.Error())
}
}()
var installationManifest biinstallmanifest.Manifest
err = stage.PerformComplex("validating", func(stage biui.Stage) error {
var releaseSetManifest birelsetmanifest.Manifest
releaseSetManifest, installationManifest, err = c.releaseSetAndInstallationManifestParser.ReleaseSetAndInstallationManifest(c.deploymentManifestPath)
if err != nil {
return err
}
cpiReleaseName := installationManifest.Template.Release
cpiReleaseRef, found := releaseSetManifest.FindByName(cpiReleaseName)
if !found {
return bosherr.Errorf("installation release '%s' must refer to a release in releases", cpiReleaseName)
}
err = c.releaseFetcher.DownloadAndExtract(cpiReleaseRef, stage)
if err != nil {
return err
}
err = c.cpiInstaller.ValidateCpiRelease(installationManifest, stage)
return err
})
if err != nil {
return err
}
err = c.cpiInstaller.WithInstalledCpiRelease(installationManifest, target, stage, func(localCpiInstallation biinstall.Installation) error {
return localCpiInstallation.WithRunningRegistry(c.logger, stage, func() error {
err = c.findAndDeleteDeployment(stage, localCpiInstallation, deploymentState.DirectorID, installationManifest.Mbus)
if err != nil {
return err
}
return stage.Perform("Uninstalling local artifacts for CPI and deployment", func() error {
err := c.cpiUninstaller.Uninstall(localCpiInstallation.Target())
if err != nil {
return err
}
return c.deploymentStateService.Cleanup()
})
})
})
return err
}
开发者ID:mattcui,项目名称:bosh-init,代码行数:77,代码来源:deployment_deleter.go
示例4: Validate
func (v *validator) Validate(deploymentManifest Manifest, releaseSetManifest birelsetmanifest.Manifest) error {
errs := []error{}
if v.isBlank(deploymentManifest.Name) {
errs = append(errs, bosherr.Error("name must be provided"))
}
networksErrors := v.validateNetworks(deploymentManifest.Networks)
errs = append(errs, networksErrors...)
for idx, resourcePool := range deploymentManifest.ResourcePools {
if v.isBlank(resourcePool.Name) {
errs = append(errs, bosherr.Errorf("resource_pools[%d].name must be provided", idx))
}
if v.isBlank(resourcePool.Network) {
errs = append(errs, bosherr.Errorf("resource_pools[%d].network must be provided", idx))
} else if _, ok := v.networkNames(deploymentManifest)[resourcePool.Network]; !ok {
errs = append(errs, bosherr.Errorf("resource_pools[%d].network must be the name of a network", idx))
}
if v.isBlank(resourcePool.Stemcell.URL) {
errs = append(errs, bosherr.Errorf("resource_pools[%d].stemcell.url must be provided", idx))
}
matched, err := regexp.MatchString("^(file|http|https)://", resourcePool.Stemcell.URL)
if err != nil || !matched {
errs = append(errs, bosherr.Errorf("resource_pools[%d].stemcell.url must be a valid URL (file:// or http(s)://)", idx))
}
if strings.HasPrefix(resourcePool.Stemcell.URL, "http") && v.isBlank(resourcePool.Stemcell.SHA1) {
errs = append(errs, bosherr.Errorf("resource_pools[%d].stemcell.sha1 must be provided for http URL", idx))
}
}
for idx, diskPool := range deploymentManifest.DiskPools {
if v.isBlank(diskPool.Name) {
errs = append(errs, bosherr.Errorf("disk_pools[%d].name must be provided", idx))
}
if diskPool.DiskSize <= 0 {
errs = append(errs, bosherr.Errorf("disk_pools[%d].disk_size must be > 0", idx))
}
}
if len(deploymentManifest.Jobs) > 1 {
errs = append(errs, bosherr.Error("jobs must be of size 1"))
}
for idx, job := range deploymentManifest.Jobs {
if v.isBlank(job.Name) {
errs = append(errs, bosherr.Errorf("jobs[%d].name must be provided", idx))
}
if job.PersistentDisk < 0 {
errs = append(errs, bosherr.Errorf("jobs[%d].persistent_disk must be >= 0", idx))
}
if job.PersistentDiskPool != "" {
if _, ok := v.diskPoolNames(deploymentManifest)[job.PersistentDiskPool]; !ok {
errs = append(errs, bosherr.Errorf("jobs[%d].persistent_disk_pool must be the name of a disk pool", idx))
}
}
if job.Instances < 0 {
errs = append(errs, bosherr.Errorf("jobs[%d].instances must be >= 0", idx))
}
if len(job.Networks) == 0 {
errs = append(errs, bosherr.Errorf("jobs[%d].networks must be a non-empty array", idx))
}
if v.isBlank(job.ResourcePool) {
errs = append(errs, bosherr.Errorf("jobs[%d].resource_pool must be provided", idx))
} else {
if _, ok := v.resourcePoolNames(deploymentManifest)[job.ResourcePool]; !ok {
errs = append(errs, bosherr.Errorf("jobs[%d].resource_pool must be the name of a resource pool", idx))
}
}
errs = append(errs, v.validateJobNetworks(job.Networks, deploymentManifest.Networks, idx)...)
if job.Lifecycle != "" && job.Lifecycle != JobLifecycleService {
errs = append(errs, bosherr.Errorf("jobs[%d].lifecycle must be 'service' ('%s' not supported)", idx, job.Lifecycle))
}
templateNames := map[string]struct{}{}
for templateIdx, template := range job.Templates {
if v.isBlank(template.Name) {
errs = append(errs, bosherr.Errorf("jobs[%d].templates[%d].name must be provided", idx, templateIdx))
}
if _, found := templateNames[template.Name]; found {
errs = append(errs, bosherr.Errorf("jobs[%d].templates[%d].name '%s' must be unique", idx, templateIdx, template.Name))
}
templateNames[template.Name] = struct{}{}
if v.isBlank(template.Release) {
errs = append(errs, bosherr.Errorf("jobs[%d].templates[%d].release must be provided", idx, templateIdx))
} else {
_, found := releaseSetManifest.FindByName(template.Release)
if !found {
errs = append(errs, bosherr.Errorf("jobs[%d].templates[%d].release '%s' must refer to release in releases", idx, templateIdx, template.Release))
}
}
}
}
if len(errs) > 0 {
//.........这里部分代码省略.........
开发者ID:vestel,项目名称:bosh-init,代码行数:101,代码来源:validator.go
注:本文中的github.com/cloudfoundry/bosh-init/release/set/manifest.Manifest类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论