Skip to content

Commit 94e68e9

Browse files
Lambda service impl (#104)
1 parent 64a8579 commit 94e68e9

File tree

9 files changed

+1390
-406
lines changed

9 files changed

+1390
-406
lines changed

api/converter/converter.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,3 +504,38 @@ func (v KubernetesNodePoolConverter) ConvertToMultyResource(resourceId string, m
504504
ImplicitlyCreated: false,
505505
}, nil
506506
}
507+
508+
type LambdaConverter struct {
509+
}
510+
511+
func (v LambdaConverter) NewArg() proto.Message {
512+
return &resources.CloudSpecificRouteTableArgs{}
513+
}
514+
515+
func (v LambdaConverter) ConvertToMultyResource(resourceId string, m proto.Message, otherResources map[string]common_resources.CloudSpecificResource) (common_resources.CloudSpecificResource, error) {
516+
arg := m.(*resources.CloudSpecificLambdaArgs)
517+
c := cloud_providers.CloudProvider(strings.ToLower(arg.CommonParameters.CloudProvider.String()))
518+
l := types.Lambda{
519+
CommonResourceParams: &common_resources.CommonResourceParams{
520+
ResourceId: resourceId,
521+
ResourceGroupId: arg.CommonParameters.ResourceGroupId,
522+
Location: strings.ToLower(arg.CommonParameters.Location.String()),
523+
Clouds: []string{string(c)},
524+
},
525+
FunctionName: arg.Name,
526+
Runtime: arg.Runtime,
527+
}
528+
529+
if o, ok := otherResources[common_resources.GetResourceIdForCloud(arg.SourceCodeObjectId, c)]; ok {
530+
// Connect to vn in the same cloud
531+
l.SourceCodeObject = o.Resource.(*types.ObjectStorageObject)
532+
} else {
533+
return common_resources.CloudSpecificResource{}, fmt.Errorf("object with id %s not found in %s", arg.SourceCodeObjectId, c)
534+
}
535+
536+
return common_resources.CloudSpecificResource{
537+
Cloud: c,
538+
Resource: &l,
539+
ImplicitlyCreated: false,
540+
}, nil
541+
}

api/deploy/deploy.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func Deploy(c *config.Config, resourceId string) error {
5656
if err != nil {
5757
return err
5858
}
59-
} else if resourceMessage.MessageIs(&resources.NetworkSecurityGroupResource{}) {
59+
} else if resourceMessage.MessageIs(&resources.CloudSpecificNetworkSecurityGroupArgs{}) {
6060
err := addMultyResource(r, translated, &converter.NetworkSecurityGroupConverter{})
6161
if err != nil {
6262
return err
@@ -91,6 +91,11 @@ func Deploy(c *config.Config, resourceId string) error {
9191
if err != nil {
9292
return err
9393
}
94+
} else if resourceMessage.MessageIs(&resources.CloudSpecificLambdaArgs{}) {
95+
err := addMultyResource(r, translated, &converter.LambdaConverter{})
96+
if err != nil {
97+
return err
98+
}
9499
} else {
95100
return fmt.Errorf("unknown resource type %s", resourceMessage.MessageName())
96101
}

api/proto/multy_service.pb.go

Lines changed: 444 additions & 405 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/proto/multy_service.proto

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ option java_outer_classname = "MultyProto";
77

88
import "api/proto/resources/virtual_network.proto";
99
import "api/proto/resources/public_ip.proto";
10+
import "api/proto/resources/lambda.proto";
1011
import "api/proto/resources/kubernetes_cluster.proto";
1112
import "api/proto/resources/kubernetes_node_pool.proto";
1213
import "api/proto/resources/object_storage.proto";
@@ -81,4 +82,9 @@ service MultyResourceService {
8182
rpc ReadKubernetesNodePool (resources.ReadKubernetesNodePoolRequest) returns (resources.KubernetesNodePoolResource) {}
8283
rpc UpdateKubernetesNodePool (resources.UpdateKubernetesNodePoolRequest) returns (resources.KubernetesNodePoolResource) {}
8384
rpc DeleteKubernetesNodePool (resources.DeleteKubernetesNodePoolRequest) returns (common.Empty) {}
85+
86+
rpc CreateLambda (resources.CreateLambdaRequest) returns (resources.LambdaResource) {}
87+
rpc ReadLambda (resources.ReadLambdaRequest) returns (resources.LambdaResource) {}
88+
rpc UpdateLambda (resources.UpdateLambdaRequest) returns (resources.LambdaResource) {}
89+
rpc DeleteLambda (resources.DeleteLambdaRequest) returns (common.Empty) {}
8490
}

api/proto/multy_service_grpc.pb.go

Lines changed: 144 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)