summaryrefslogtreecommitdiffstats
path: root/lib/xdsserver/target-standard.go
blob: 2c1b0688c17426cebc09f4c7250d2d9b7eda3b05 (plain)
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

@media only all and (prefers-color-scheme: dark) {
.highlight .hll { background-color: #49483e }
.highlight .c { color: #75715e } /* Comment */
.highlight .err { color: #960050; background-color: #1e0010 } /* Error */
.highlight .k { color: #66d9ef } /* Keyword */
.highlight .l { color: #ae81ff } /* Literal */
.highlight .n { color: #f8f8f2 } /* Name */
.highlight .o { color: #f92672 } /* Operator */
.highlight .p { color: #f8f8f2 } /* Punctuation */
.highlight .ch { color: #75715e } /* Comment.Hashbang */
.highlight .cm { color: #75715e } /* Comment.Multiline */
.highlight .cp { color: #75715e } /* Comment.Preproc */
.highlight .cpf { color: #75715e } /* Comment.PreprocFile */
.highlight .c1 { color: #75715e } /* Comment.Single */
.highlight .cs { color: #75715e } /* Comment.Special */
.highlight .gd { color: #f92672 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gi { color: #a6e22e } /* Generic.Inserted */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #75715e } /* Generic.Subheading */
.highlight .kc { color: #66d9ef } /* Keyword.Constant */
.highlight .kd { color: #66d9ef } /* Keyword.Declaration */
.highlight .kn { color: #f92672 } /* Keyword.Namespace */
.highlight .kp { color: #66d9ef } /* Keyword.Pseudo */
.highlight .kr { color: #66d9ef } /* Keyword.Reserved */
.highlight .kt { color: #66d9ef } /* Keyword.Type */
.highlight .ld { color: #e6db74 } /* Literal.Date */
.highlight .m { color: #ae81ff } /* Literal.Number */
.highlight .s { color: #e6db74 } /* Literal.String */
.highlight .na { color: #
/*
 * Copyright (C) 2017-2018 "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 xdsserver

import (
	"fmt"

	"gerrit.automotivelinux.org/gerrit/src/xds/xds-server/lib/xsapiv1"
	uuid "github.com/satori/go.uuid"
)

// ITARGET interface implementation for standard targets

// TgtStd .
type TgtStd struct {
	*Context
	TgtConfig xsapiv1.TargetConfig
	terminals *Terminals
}

// NewTargetStandard Create a new instance of TgtStd
func NewTargetStandard(ctx *Context) *TgtStd {
	t := TgtStd{
		Context: ctx,
		TgtConfig: xsapiv1.TargetConfig{
			Status: xsapiv1.StatusTgtDisable,
		},
	}
	return &t
}

// NewUID Get a UUID
func (t *TgtStd) NewUID(suffix string) string {
	uuid := uuid.NewV1().String()
	if len(suffix) > 0 {
		uuid += "_" + suffix
	}
	return uuid
}

// Add a new target
func (t *TgtStd) Add(cfg xsapiv1.TargetConfig, terms *Terminals) (*xsapiv1.TargetConfig, error) {
	return t.Setup(cfg, terms)
}

// Delete a target
func (t *TgtStd) Delete() error {
	// nothing to do
	return nil
}

// Setup Setup local project config
func (t *TgtStd) Setup(cfg xsapiv1.TargetConfig, terms *Terminals) (*xsapiv1.TargetConfig, error) {

	if cfg.IP == "" {
		return nil, fmt.Errorf("IP address must be set")
	}

	t.TgtConfig = cfg
	t.terminals = terms

	// FIXME: sanity check test ping IP

	t.TgtConfig.Status = xsapiv1.StatusTgtEnable

	return &t.TgtConfig, nil
}

// GetConfig Get public part of target config
func (t *TgtStd) GetConfig() xsapiv1.TargetConfig {
	// XXX - Need to manually update terminal definition ()
	t.TgtConfig.Terms = (*t.terminals).GetConfigArr()
	return t.TgtConfig
}
n class="s">"refs/tags/yocto-2.4.3" upstream="rocko"/> </manifest>