Added copyright headers
[src/xds/xds-agent.git] / lib / xdsconfig / config.go
index 9cff862..fd9b034 100644 (file)
@@ -1,3 +1,20 @@
+/*
+ * Copyright (C) 2017 "IoT.bzh"
+ * Author Sebastien Douheret <sebastien@iot.bzh>
+ *
+ * Licensed 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 xdsconfig
 
 import (
@@ -8,12 +25,14 @@ import (
        "os"
 
        "github.com/Sirupsen/logrus"
-       "github.com/codegangsta/cli"
        common "github.com/iotbzh/xds-common/golib"
+       uuid "github.com/satori/go.uuid"
+       "github.com/urfave/cli"
 )
 
 // Config parameters (json format) of /config command
 type Config struct {
+       AgentUID      string
        Version       string
        APIVersion    string
        VersionGitTag string
@@ -43,8 +62,12 @@ func Init(ctx *cli.Context, log *logrus.Logger) (*Config, error) {
        defaultWebAppDir := "${EXEPATH}/www"
        defaultSTHomeDir := "${HOME}/.xds/agent/syncthing-config"
 
+       // TODO: allocate uuid only the first time and save+reuse it later
+       uuid := uuid.NewV1().String()
+
        // Define default configuration
        c := Config{
+               AgentUID:      uuid,
                Version:       ctx.App.Metadata["version"].(string),
                APIVersion:    DefaultAPIVersion,
                VersionGitTag: ctx.App.Metadata["git-tag"].(string),
@@ -59,7 +82,6 @@ func Init(ctx *cli.Context, log *logrus.Logger) (*Config, error) {
                        HTTPPort:  "8800",
                        WebAppDir: defaultWebAppDir,
                        LogsDir:   "/tmp/logs",
-                       // SEB XDSAPIKey: "1234abcezam",
                        ServersConf: []XDSServerConf{
                                XDSServerConf{
                                        URL:       "http://localhost:8000",
@@ -73,6 +95,8 @@ func Init(ctx *cli.Context, log *logrus.Logger) (*Config, error) {
                Log: log,
        }
 
+       c.Log.Infoln("Agent UUID:     ", uuid)
+
        // config file settings overwrite default config
        err = readGlobalConfig(&c, c.Options.ConfigFile)
        if err != nil {
@@ -107,6 +131,7 @@ func Init(ctx *cli.Context, log *logrus.Logger) (*Config, error) {
                        return nil, fmt.Errorf("Cannot create logs dir: %v", err)
                }
        }
+
        c.Log.Infoln("Logs file:      ", c.Options.LogFile)
        c.Log.Infoln("Logs directory: ", c.FileConf.LogsDir)