This is an automated email from the ASF dual-hosted git repository.

nferraro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit bfca1f2d2e87b18c69c8c3f76cb6f81ebacbaec7
Author: nferraro <ni.ferr...@gmail.com>
AuthorDate: Sun Sep 2 08:35:59 2018 +0200

    Add license headers
---
 .gitignore                          |  4 +-
 LICENSE.txt => LICENSE              |  0
 NOTICE                              | 11 ++++++
 build/get_version.sh                |  2 +-
 cmd/camel-k/main.go                 | 56 ++++++++++++++++++++++++++++
 pkg/apis/camel/v1alpha1/doc.go      | 18 +++++++++
 pkg/apis/camel/v1alpha1/register.go | 17 +++++++++
 pkg/apis/camel/v1alpha1/types.go    | 35 +++++++++++++++++-
 pkg/build/build.go                  | 19 ++++++++++
 pkg/stub/action/action.go           | 30 +++++++++++++++
 pkg/stub/handler.go                 | 73 ++++++++++++++-----------------------
 version/version.go                  | 17 +++++++++
 12 files changed, 232 insertions(+), 50 deletions(-)

diff --git a/.gitignore b/.gitignore
index 5819a19..319e113 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,8 @@
 # Binary files
-camel-k
+/camel-k
 
 # We do not stage vendor directory
-vendor
+/vendor
 
 # IDEs
 .idea
diff --git a/LICENSE.txt b/LICENSE
similarity index 100%
rename from LICENSE.txt
rename to LICENSE
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..f4f1281
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,11 @@
+   =========================================================================
+   ==  NOTICE file corresponding to the section 4 d of                    ==
+   ==  the Apache License, Version 2.0,                                   ==
+   ==  in this case for the Apache Camel distribution.                    ==
+   =========================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   Please read the different LICENSE files present in the licenses directory of
+   this distribution.
\ No newline at end of file
diff --git a/build/get_version.sh b/build/get_version.sh
index 0b78013..1357527 100755
--- a/build/get_version.sh
+++ b/build/get_version.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 location=$(dirname $0)
-cat $location/../version/version.go | grep "Version" | awk '{print $NF}' | tr 
-d '"'
\ No newline at end of file
+cat $location/../version/version.go | grep "Version" | grep "=" | awk '{print 
$NF}' | tr -d '"'
\ No newline at end of file
diff --git a/cmd/camel-k/main.go b/cmd/camel-k/main.go
new file mode 100644
index 0000000..63c4fc0
--- /dev/null
+++ b/cmd/camel-k/main.go
@@ -0,0 +1,56 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package main
+
+import (
+       "context"
+       "runtime"
+       "time"
+
+       stub "github.com/apache/camel-k/pkg/stub"
+       sdk "github.com/operator-framework/operator-sdk/pkg/sdk"
+       k8sutil "github.com/operator-framework/operator-sdk/pkg/util/k8sutil"
+       sdkVersion "github.com/operator-framework/operator-sdk/version"
+
+       "github.com/sirupsen/logrus"
+       _ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
+)
+
+func printVersion() {
+       logrus.Infof("Go Version: %s", runtime.Version())
+       logrus.Infof("Go OS/Arch: %s/%s", runtime.GOOS, runtime.GOARCH)
+       logrus.Infof("operator-sdk Version: %v", sdkVersion.Version)
+}
+
+func main() {
+       printVersion()
+
+       sdk.ExposeMetricsPort()
+
+       resource := "camel.apache.org/v1alpha1"
+       kind := "Integration"
+       namespace, err := k8sutil.GetWatchNamespace()
+       if err != nil {
+               logrus.Fatalf("failed to get watch namespace: %v", err)
+       }
+       resyncPeriod := time.Duration(5) * time.Second
+       logrus.Infof("Watching %s, %s, %s, %d", resource, kind, namespace, 
resyncPeriod)
+       sdk.Watch(resource, kind, namespace, resyncPeriod)
+       sdk.Handle(stub.NewHandler())
+       sdk.Run(context.TODO())
+}
diff --git a/pkg/apis/camel/v1alpha1/doc.go b/pkg/apis/camel/v1alpha1/doc.go
index 0745fff..c937536 100644
--- a/pkg/apis/camel/v1alpha1/doc.go
+++ b/pkg/apis/camel/v1alpha1/doc.go
@@ -1,3 +1,21 @@
 // +k8s:deepcopy-gen=package
 // +groupName=camel.apache.org
+
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
 package v1alpha1
diff --git a/pkg/apis/camel/v1alpha1/register.go 
b/pkg/apis/camel/v1alpha1/register.go
index a054677..dbbdfd7 100644
--- a/pkg/apis/camel/v1alpha1/register.go
+++ b/pkg/apis/camel/v1alpha1/register.go
@@ -1,3 +1,20 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
 package v1alpha1
 
 import (
diff --git a/pkg/apis/camel/v1alpha1/types.go b/pkg/apis/camel/v1alpha1/types.go
index 158e8c0..d1a4431 100644
--- a/pkg/apis/camel/v1alpha1/types.go
+++ b/pkg/apis/camel/v1alpha1/types.go
@@ -1,3 +1,20 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
 package v1alpha1
 
 import (
@@ -22,8 +39,22 @@ type Integration struct {
 }
 
 type IntegrationSpec struct {
-       // Fill me
+       Replicas   *int32       `json:"replicas,omitempty"`
+       Source     SourceSpec   `json:"source,omitempty"`
+}
+
+type SourceSpec struct {
+    Code    *string `json:"code,omitempty"`
 }
+
 type IntegrationStatus struct {
-       // Fill me
+       Phase   IntegrationPhase    `json:"phase,omitempty"`
 }
+
+type IntegrationPhase string
+
+const (
+    IntegrationPhaseBuilding    IntegrationPhase = "Building"
+    IntegrationPhaseRunning     IntegrationPhase = "Running"
+    IntegrationPhaseError       IntegrationPhase = "Error"
+)
\ No newline at end of file
diff --git a/pkg/build/build.go b/pkg/build/build.go
new file mode 100644
index 0000000..88d762c
--- /dev/null
+++ b/pkg/build/build.go
@@ -0,0 +1,19 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package build
+
diff --git a/pkg/stub/action/action.go b/pkg/stub/action/action.go
new file mode 100644
index 0000000..185105f
--- /dev/null
+++ b/pkg/stub/action/action.go
@@ -0,0 +1,30 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package action
+
+import (
+       "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+)
+
+type Action interface {
+
+       CanExecute(integration *v1alpha1.Integration) bool
+
+       Execute(syndesis *v1alpha1.Integration) error
+
+}
diff --git a/pkg/stub/handler.go b/pkg/stub/handler.go
index 749d304..8f6fd16 100644
--- a/pkg/stub/handler.go
+++ b/pkg/stub/handler.go
@@ -1,3 +1,20 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
 package stub
 
 import (
@@ -6,63 +23,29 @@ import (
        "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
 
        "github.com/operator-framework/operator-sdk/pkg/sdk"
-       "github.com/sirupsen/logrus"
-       corev1 "k8s.io/api/core/v1"
-       "k8s.io/apimachinery/pkg/api/errors"
-       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-       "k8s.io/apimachinery/pkg/runtime/schema"
+       "github.com/apache/camel-k/pkg/stub/action"
 )
 
 func NewHandler() sdk.Handler {
-       return &Handler{}
+       return &Handler{
+               actionPool: []action.Action{},
+       }
 }
 
 type Handler struct {
-       // Fill me
+       actionPool      []action.Action
 }
 
 func (h *Handler) Handle(ctx context.Context, event sdk.Event) error {
        switch o := event.Object.(type) {
        case *v1alpha1.Integration:
-               err := sdk.Create(newbusyBoxPod(o))
-               if err != nil && !errors.IsAlreadyExists(err) {
-                       logrus.Errorf("failed to create busybox pod : %v", err)
-                       return err
+               for _, a := range h.actionPool {
+                       if a.CanExecute(o) {
+                               if err := a.Execute(o); err != nil {
+                                       return err
+                               }
+                       }
                }
        }
        return nil
 }
-
-// newbusyBoxPod demonstrates how to create a busybox pod
-func newbusyBoxPod(cr *v1alpha1.Integration) *corev1.Pod {
-       labels := map[string]string{
-               "app": "busy-box",
-       }
-       return &corev1.Pod{
-               TypeMeta: metav1.TypeMeta{
-                       Kind:       "Pod",
-                       APIVersion: "v1",
-               },
-               ObjectMeta: metav1.ObjectMeta{
-                       Name:      "busy-box",
-                       Namespace: cr.Namespace,
-                       OwnerReferences: []metav1.OwnerReference{
-                               *metav1.NewControllerRef(cr, 
schema.GroupVersionKind{
-                                       Group:   
v1alpha1.SchemeGroupVersion.Group,
-                                       Version: 
v1alpha1.SchemeGroupVersion.Version,
-                                       Kind:    "Integration",
-                               }),
-                       },
-                       Labels: labels,
-               },
-               Spec: corev1.PodSpec{
-                       Containers: []corev1.Container{
-                               {
-                                       Name:    "busybox",
-                                       Image:   "busybox",
-                                       Command: []string{"sleep", "3600"},
-                               },
-                       },
-               },
-       }
-}
diff --git a/version/version.go b/version/version.go
index 74ac223..6d8b94b 100644
--- a/version/version.go
+++ b/version/version.go
@@ -1,3 +1,20 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
 package version
 
 var (

Reply via email to