Skip to content

Commit e3bb046

Browse files
희승희승
희승
authored and
희승
committed
feat: aviator service 함수 연동
1 parent 8b7360e commit e3bb046

File tree

1 file changed

+49
-26
lines changed

1 file changed

+49
-26
lines changed

internal/controller/provision_controller.go

+49-26
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ package controller
1818

1919
import (
2020
"context"
21+
"fmt"
22+
2123
"github.com/go-logr/logr"
2224
"k8s.io/apimachinery/pkg/api/errors"
2325
"k8s.io/apimachinery/pkg/runtime"
@@ -26,11 +28,12 @@ import (
2628
"sigs.k8s.io/controller-runtime/pkg/log"
2729

2830
ncputil "github.com/cloud-club/Aviator-service/pkg"
31+
server "github.com/cloud-club/Aviator-service/types/server"
2932

3033
vmv1 "vm.cloudclub.io/api/v1"
3134
)
3235

33-
var provisionReconcileMap map[string]func(*ProvisionReconciler, logr.Logger, string, interface{}) error
36+
var provisionReconcileMap map[string]func(*ProvisionReconciler, logr.Logger, string, *vmv1.Provision, interface{}) error
3437

3538
// ProvisionReconciler reconciles a Provision object
3639
type ProvisionReconciler struct {
@@ -42,8 +45,8 @@ type ProvisionReconciler struct {
4245
func NewProvisionReconciler(
4346
client client.Client,
4447
scheme *runtime.Scheme,
45-
ncpService *ncputil.NcpService) *ProvisionReconciler {
46-
48+
ncpService *ncputil.NcpService,
49+
) *ProvisionReconciler {
4750
initProvisionReconcileMap()
4851
return &ProvisionReconciler{
4952
Client: client,
@@ -53,7 +56,7 @@ func NewProvisionReconciler(
5356
}
5457

5558
func initProvisionReconcileMap() {
56-
provisionReconcileMap = make(map[string]func(*ProvisionReconciler, logr.Logger, string, interface{}) error)
59+
provisionReconcileMap = make(map[string]func(*ProvisionReconciler, logr.Logger, string, *vmv1.Provision, interface{}) error)
5760
provisionReconcileMap["provision"] = provision
5861
provisionReconcileMap["deProvision"] = deProvision
5962
provisionReconcileMap["update"] = update
@@ -89,45 +92,45 @@ func (r *ProvisionReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
8992
return ctrl.Result{}, err
9093
}
9194

92-
switch original.Status.Phase {
95+
switch original.Spec.Phase {
9396
case "", vmv1.ProvisionPhaseCreate:
9497
if v, ok := provisionReconcileMap["provision"]; ok {
95-
if err = v(r, log, apiUrlCreate, nil); err != nil {
98+
if err = v(r, log, apiUrlCreate, original, nil); err != nil {
9699
log.Error(err, "Failed to create VM")
97100
return ctrl.Result{}, err
98101
}
99102
}
100103
case vmv1.ProvisionPhaseUpdate:
101104
if v, ok := provisionReconcileMap["update"]; ok {
102-
if err = v(r, log, apiUrlUpdate, nil); err != nil {
105+
if err = v(r, log, apiUrlUpdate, original, nil); err != nil {
103106
log.Error(err, "Failed to update VM")
104107
return ctrl.Result{}, err
105108
}
106109
}
107110
case vmv1.ProvisionPhaseStop:
108111
if v, ok := provisionReconcileMap["stop"]; ok {
109-
if err = v(r, log, apiUrlStop, nil); err != nil {
112+
if err = v(r, log, apiUrlStop, original, nil); err != nil {
110113
log.Error(err, "Failed to stop VM")
111114
return ctrl.Result{}, err
112115
}
113116
}
114117
case vmv1.ProvisionPhaseDelete:
115118
if v, ok := provisionReconcileMap["deProvision"]; ok {
116-
if err = v(r, log, apiUrlDelete, nil); err != nil {
119+
if err = v(r, log, apiUrlDelete, original, nil); err != nil {
117120
log.Error(err, "Failed to delete VM")
118121
return ctrl.Result{}, err
119122
}
120123
}
121124
case vmv1.ProvisionPhaseGet:
122125
if v, ok := provisionReconcileMap["get"]; ok {
123-
if err = v(r, log, apiUrlGet, nil); err != nil {
126+
if err = v(r, log, apiUrlGet, original, nil); err != nil {
124127
log.Error(err, "Failed to get VM information")
125128
return ctrl.Result{}, err
126129
}
127130
}
128131
default:
129132
log.V(ErrorLevelIsAnError).Error(err, "No action defined for the current phase",
130-
"reconcile phase", original.Status.Phase, "namespace", req.NamespacedName)
133+
"reconcile phase", original.Spec.Phase, "namespace", req.NamespacedName)
131134
return ctrl.Result{}, err
132135
}
133136

@@ -141,32 +144,52 @@ func (r *ProvisionReconciler) SetupWithManager(mgr ctrl.Manager) error {
141144
Complete(r)
142145
}
143146

144-
func provision(r *ProvisionReconciler, log logr.Logger, url string, payload interface{}) error {
147+
func provision(r *ProvisionReconciler, log logr.Logger, url string, original *vmv1.Provision, payload interface{}) error {
145148
log.V(ErrorLevelIsInfo).Info("Creating a new VM")
146-
//return r.ncpService.Server.Create(url, payload)
147-
return nil
149+
csr := &server.CreateServerRequest{
150+
ServerImageProductCode: original.Spec.Server.ImageProductCode,
151+
VpcNo: original.Spec.VpcNo,
152+
SubnetNo: original.Spec.SubnetNo,
153+
NetworkInterfaceOrder: original.Spec.NetworkInterface.Order,
154+
AccessControlGroupNoListN: original.Spec.AccessControlGroupNoListN,
155+
ServerProductCode: original.Spec.Server.ProductCode,
156+
}
157+
createServerResponse, err := r.ncpService.Server.Create(ncputil.API_URL+ncputil.CREATE_SERVER_INSTANCE_PATH, csr, []int{1, 1})
158+
fmt.Println(createServerResponse)
159+
return err
148160
}
149161

150-
func deProvision(r *ProvisionReconciler, log logr.Logger, url string, payload interface{}) error {
162+
func deProvision(r *ProvisionReconciler, log logr.Logger, url string, original *vmv1.Provision, payload interface{}) error {
151163
log.V(ErrorLevelIsInfo).Info("Deleting an existing VM")
152-
//return r.ncpService.Server.Delete(url)
153-
return nil
164+
dsr := &server.DeleteServerRequest{ServerNo: original.Spec.ServerNo}
165+
deleteServerResponse, err := r.ncpService.Server.Delete(ncputil.API_URL+ncputil.DELETE_SERVER_INSTANCE_PATH, dsr)
166+
fmt.Println(deleteServerResponse)
167+
return err
154168
}
155169

156-
func update(r *ProvisionReconciler, log logr.Logger, url string, payload interface{}) error {
170+
func update(r *ProvisionReconciler, log logr.Logger, url string, original *vmv1.Provision, payload interface{}) error {
157171
log.V(ErrorLevelIsInfo).Info("Updating an existing VM")
158-
//return r.ncpService.Server.Update(url)
159-
return nil
172+
usr := &server.UpdateServerRequest{
173+
ServerInstanceNo: original.Spec.ServerInstanceNo,
174+
ServerProductCode: original.Spec.Server.ProductCode,
175+
}
176+
updateServerResponse, err := r.ncpService.Server.Update(ncputil.API_URL+ncputil.UPDATE_SERVER_INSTANCE_PATH, usr)
177+
fmt.Println(updateServerResponse)
178+
return err
160179
}
161180

162-
func stop(r *ProvisionReconciler, log logr.Logger, url string, payload interface{}) error {
181+
func stop(r *ProvisionReconciler, log logr.Logger, url string, original *vmv1.Provision, payload interface{}) error {
163182
log.V(ErrorLevelIsInfo).Info("Stopping an existing VM")
164-
//return r.ncpService.Server.Stop(url)
165-
return nil
183+
ssr := &server.StopServerRequest{ServerNo: original.Spec.ServerNo}
184+
stopServerResponse, err := r.ncpService.Server.Stop(ncputil.API_URL+ncputil.STOP_SERVER_INSTANCE_PATH, ssr)
185+
fmt.Println(stopServerResponse)
186+
return err
166187
}
167188

168-
func get(r *ProvisionReconciler, log logr.Logger, url string, payload interface{}) error {
189+
func get(r *ProvisionReconciler, log logr.Logger, url string, original *vmv1.Provision, payload interface{}) error {
169190
log.V(ErrorLevelIsInfo).Info("Getting information for an existing VM")
170-
return nil
171-
//return r.ncpService.Server.Get(url)
191+
lsr := &server.ListServerRequest{RegionCode: original.Spec.RegionCode}
192+
serverListResponse, err := r.ncpService.Server.List(ncputil.API_URL+ncputil.GET_SERVER_INSTANCE_PATH, lsr)
193+
fmt.Println(serverListResponse)
194+
return err
172195
}

0 commit comments

Comments
 (0)