This repository has been archived by the owner on Jan 19, 2022. It is now read-only.
/
oci_api_hooks.go
123 lines (101 loc) · 3.95 KB
/
oci_api_hooks.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package action
import (
boshlog "github.com/cloudfoundry/bosh-utils/logger"
"github.com/oracle/bosh-oracle-cpi/oci/client"
"github.com/oracle/bosh-oracle-cpi/oci/disks"
"github.com/oracle/bosh-oracle-cpi/oci/resource"
"github.com/oracle/bosh-oracle-cpi/oci/stemcell"
"github.com/oracle/bosh-oracle-cpi/oci/vm"
)
var (
stemcellFinderFactory stemcell.FinderFactory = stemcell.NewFinder
stemcellCreatorFactory stemcell.CreatorFactory = stemcell.NewCreator
stemcellDestroyerFactory stemcell.DestroyerFactory = stemcell.NewDestroyer
vmFinderFactory vm.FinderFactory = vm.NewFinder
vmCreatorFactory vm.CreatorFactory = vm.NewCreator
vmTerminatorFactory vm.TerminatorFactory = vm.NewTerminator
vmUpdaterFactory vm.UpdaterFactory = vm.NewUpdater
diskCreatorFactory disks.CreatorFactory = disks.NewCreator
diskFinderFactory disks.FinderFactory = disks.NewFinder
diskTerminatorFactory disks.TerminatorFactory = disks.NewTerminator
attacherDetacherFactory disks.InstanceAttacherDetacherFactory = disks.NewAttacherDetacherForInstance
)
func newStemcellFinder(c client.Connector, l boshlog.Logger) stemcell.Finder {
return stemcellFinderFactory(c, l)
}
func newStemcellCreator(c client.Connector, l boshlog.Logger) stemcell.Creator {
return stemcellCreatorFactory(c, l)
}
func newStemcellDestroyer(c client.Connector, l boshlog.Logger) stemcell.Destroyer {
return stemcellDestroyerFactory(c, l)
}
func newVMFinder(c client.Connector, l boshlog.Logger) vm.Finder {
return vmFinderFactory(c, l)
}
func newVMCreator(c client.Connector, l boshlog.Logger, availabilityDomain string) vm.Creator {
return vmCreatorFactory(c, l, availabilityDomain)
}
func newVMTerminator(c client.Connector, l boshlog.Logger) vm.Terminator {
return vmTerminatorFactory(c, l)
}
func newVMUpdater(c client.Connector, l boshlog.Logger) vm.Updater {
return vmUpdaterFactory(c, l)
}
func newDiskCreator(c client.Connector, l boshlog.Logger, loc resource.Location) disks.Creator {
return diskCreatorFactory(c, l, loc)
}
func newDiskFinder(c client.Connector, l boshlog.Logger, loc resource.Location) disks.Finder {
return diskFinderFactory(c, l, loc)
}
func newDiskTerminator(c client.Connector, l boshlog.Logger) disks.Terminator {
return diskTerminatorFactory(c, l)
}
func newAttacherDetacherForInstance(in *resource.Instance, c client.Connector, l boshlog.Logger) (disks.AttacherDetacher, error) {
return attacherDetacherFactory(in, c, l)
}
func installStemcellCreatorFactory(fac stemcell.CreatorFactory) {
stemcellCreatorFactory = fac
}
func installStemcellDestroyerFactory(fac stemcell.DestroyerFactory) {
stemcellDestroyerFactory = fac
}
func installStemcellFinderFactory(fac stemcell.FinderFactory) {
stemcellFinderFactory = fac
}
func installVMCreatorFactory(fac vm.CreatorFactory) {
vmCreatorFactory = fac
}
func installVMTerminatorFactory(fac vm.TerminatorFactory) {
vmTerminatorFactory = fac
}
func installVMFinderFactory(fac vm.FinderFactory) {
vmFinderFactory = fac
}
func installVMUpdaterFactory(fac vm.UpdaterFactory) {
vmUpdaterFactory = fac
}
func installDiskCreatorFactory(fac disks.CreatorFactory) {
diskCreatorFactory = fac
}
func installDiskFinderFactory(fac disks.FinderFactory) {
diskFinderFactory = fac
}
func installDiskTerminatorFactory(fac disks.TerminatorFactory) {
diskTerminatorFactory = fac
}
func installInstanceAttacherDetacherFactory(fac disks.InstanceAttacherDetacherFactory) {
attacherDetacherFactory = fac
}
func resetAllFactories() {
stemcellCreatorFactory = stemcell.NewCreator
stemcellDestroyerFactory = stemcell.NewDestroyer
stemcellFinderFactory = stemcell.NewFinder
vmFinderFactory = vm.NewFinder
vmCreatorFactory = vm.NewCreator
vmTerminatorFactory = vm.NewTerminator
vmUpdaterFactory = vm.NewUpdater
diskCreatorFactory = disks.NewCreator
diskFinderFactory = disks.NewFinder
diskTerminatorFactory = disks.NewTerminator
attacherDetacherFactory = disks.NewAttacherDetacherForInstance
}