Fix for Lint warnings

* Adding comments for missing exported functions

Change-Id: I40c5861a5c076b654e5a3fc660c3c9c6d7b80c8f
Relates-To: #148
This commit is contained in:
Yasin, Siraj (SY495P) 2020-04-07 20:04:40 -05:00
parent fd3118af19
commit 07f8a5e311
6 changed files with 76 additions and 6 deletions

View File

@ -387,29 +387,43 @@ func (c *Config) String() string {
return string(yamlData)
}
// ToYaml returns a YAML document
// It serializes the given Config object to a valid YAML document
func (c *Config) ToYaml() ([]byte, error) {
return yaml.Marshal(&c)
}
// LoadedConfigPath returns the file path of airship config
// from where the current Config object is created
func (c *Config) LoadedConfigPath() string {
return c.loadedConfigPath
}
// SetLoadedConfigPath updates the file path of airship config
// in the Config object
func (c *Config) SetLoadedConfigPath(lcp string) {
c.loadedConfigPath = lcp
}
// KubeConfigPath returns the file path of the kube config
// from Config object
func (c *Config) KubeConfigPath() string {
return c.kubeConfigPath
}
// SetKubeConfigPath updates the file path of the kubeconfig
// in Config object
func (c *Config) SetKubeConfigPath(kubeConfigPath string) {
c.kubeConfigPath = kubeConfigPath
}
// KubeConfig returns kube config object from the
// context of current Config object
func (c *Config) KubeConfig() *clientcmdapi.Config {
return c.kubeConfig
}
// SetKubeConfig updates kube config in Config object
func (c *Config) SetKubeConfig(kubeConfig *clientcmdapi.Config) {
c.kubeConfig = kubeConfig
}
@ -428,6 +442,8 @@ func (c *Config) GetCluster(cName, cType string) (*Cluster, error) {
return cluster, nil
}
// AddCluster creates a new cluster and returns the
// newly created cluster object
func (c *Config) AddCluster(theCluster *ClusterOptions) (*Cluster, error) {
// Need to create new cluster placeholder
// Get list of ClusterPurposes that match the theCluster.name
@ -452,6 +468,7 @@ func (c *Config) AddCluster(theCluster *ClusterOptions) (*Cluster, error) {
return c.ModifyCluster(nCluster, theCluster)
}
// ModifyCluster updates cluster object with given cluster options
func (c *Config) ModifyCluster(cluster *Cluster, theCluster *ClusterOptions) (*Cluster, error) {
kcluster := cluster.KubeCluster()
if kcluster == nil {
@ -542,6 +559,8 @@ func (c *Config) GetContexts() []*Context {
return contexts
}
// AddContext creates a new context and returns the instance of
// newly created context
func (c *Config) AddContext(theContext *ContextOptions) *Context {
// Create the new Airship config context
nContext := NewContext()
@ -559,6 +578,7 @@ func (c *Config) AddContext(theContext *ContextOptions) *Context {
return nContext
}
// ModifyContext updates Context object with given given context options
func (c *Config) ModifyContext(context *Context, theContext *ContextOptions) {
kubeContext := context.KubeContext()
if kubeContext == nil {
@ -596,6 +616,8 @@ func (c *Config) GetCurrentContext() (*Context, error) {
}
return currentContext, nil
}
// CurrentContextCluster returns the Cluster for the current context
func (c *Config) CurrentContextCluster() (*Cluster, error) {
currentContext, err := c.GetCurrentContext()
if err != nil {
@ -606,6 +628,7 @@ func (c *Config) CurrentContextCluster() (*Cluster, error) {
return c.Clusters[clusterName.Name].ClusterTypes[currentContext.ClusterType()], nil
}
// CurrentContextAuthInfo returns the AuthInfo for the current context
func (c *Config) CurrentContextAuthInfo() (*AuthInfo, error) {
currentContext, err := c.GetCurrentContext()
if err != nil {
@ -614,6 +637,8 @@ func (c *Config) CurrentContextAuthInfo() (*AuthInfo, error) {
return c.AuthInfos[currentContext.KubeContext().AuthInfo], nil
}
// CurrentContextManifest returns the manifest for the current context
func (c *Config) CurrentContextManifest() (*Manifest, error) {
currentContext, err := c.GetCurrentContext()
if err != nil {
@ -687,6 +712,8 @@ func (c *Config) GetAuthInfos() []*AuthInfo {
return authInfos
}
// AddAuthInfo creates new AuthInfo with context details updated
// in the airship config and kube config
func (c *Config) AddAuthInfo(theAuthInfo *AuthInfoOptions) *AuthInfo {
// Create the new Airship config context
nAuthInfo := NewAuthInfo()
@ -700,6 +727,7 @@ func (c *Config) AddAuthInfo(theAuthInfo *AuthInfoOptions) *AuthInfo {
return nAuthInfo
}
// ModifyAuthInfo updates the AuthInfo in the Config object
func (c *Config) ModifyAuthInfo(authinfo *AuthInfo, theAuthInfo *AuthInfoOptions) {
kubeAuthInfo := authinfo.KubeAuthInfo()
if kubeAuthInfo == nil {
@ -768,7 +796,6 @@ func (c *Config) Purge() error {
return os.Remove(c.loadedConfigPath)
}
// Context functions
func (c *Context) String() string {
cyaml, err := yaml.Marshal(&c)
if err != nil {
@ -782,19 +809,24 @@ func (c *Context) String() string {
return fmt.Sprintf("%s\n%s", string(cyaml), string(kyaml))
}
// PrettyString returns cluster name in a formatted string
func (c *Context) PrettyString() string {
clusterName := NewClusterComplexNameFromKubeClusterName(c.NameInKubeconf)
return fmt.Sprintf("Context: %s\n%s\n", clusterName.Name, c)
}
// KubeContext returns kube context object
func (c *Context) KubeContext() *clientcmdapi.Context {
return c.context
}
// SetKubeContext updates kube contect with given context details
func (c *Context) SetKubeContext(kc *clientcmdapi.Context) {
c.context = kc
}
// ClusterType returns cluster type by extracting the type portion from
// the complex cluster name
func (c *Context) ClusterType() string {
return NewClusterComplexNameFromKubeClusterName(c.NameInKubeconf).Type
}
@ -803,7 +835,6 @@ func (c *Context) ClusterName() string {
return NewClusterComplexNameFromKubeClusterName(c.NameInKubeconf).Name
}
// Manifest functions
func (m *Manifest) String() string {
yamlData, err := yaml.Marshal(&m)
if err != nil {
@ -830,7 +861,7 @@ func (m *ManagementConfiguration) String() string {
return string(yamlData)
}
// Container functions
// String returns Container object in a serialized string format
func (c *Container) String() string {
yamlData, err := yaml.Marshal(&c)
if err != nil {
@ -839,7 +870,7 @@ func (c *Container) String() string {
return string(yamlData)
}
// Builder functions
// String returns Builder object in a serialized string format
func (b *Builder) String() string {
yamlData, err := yaml.Marshal(&b)
if err != nil {

View File

@ -24,6 +24,8 @@ import (
"os"
)
// AuthInfoOptions holds all configurable options for
// authentication information or credential
type AuthInfoOptions struct {
Name string
ClientCertificate string
@ -34,6 +36,7 @@ type AuthInfoOptions struct {
EmbedCertData bool
}
// ContextOptions holds all configurable options for context
type ContextOptions struct {
Name string
ClusterType string
@ -45,6 +48,7 @@ type ContextOptions struct {
Current bool
}
// ClusterOptions holds all configurable options for cluster configuration
type ClusterOptions struct {
Name string
ClusterType string
@ -54,6 +58,9 @@ type ClusterOptions struct {
EmbedCAData bool
}
// Validate checks for the possible authentication values and returns
// Error when invalid value or incompatible choice of values given
// TODO(howell): The following functions are tightly coupled with flags passed
// on the command line. We should find a way to remove this coupling, since it
// is possible to create (and validate) these objects without using the command
@ -87,6 +94,8 @@ func (o *AuthInfoOptions) Validate() error {
return nil
}
// Validate checks for the possible context option values and returns
// Error when invalid value or incompatible choice of values given
func (o *ContextOptions) Validate() error {
if !o.Current && o.Name == "" {
return errors.New("you must specify a non-empty context name")
@ -112,6 +121,8 @@ func (o *ContextOptions) Validate() error {
return nil
}
// Validate checks for the possible cluster option values and returns
// Error when invalid value or incompatible choice of values given
func (o *ClusterOptions) Validate() error {
if o.Name == "" {
return errors.New("you must specify a non-empty cluster name")

View File

@ -27,6 +27,7 @@ import (
"opendev.org/airship/airshipctl/pkg/errors"
)
// Constants for possible repo authentication types
const (
SSHAuth = "ssh-key"
SSHPass = "ssh-pass"
@ -43,6 +44,9 @@ func (c *RepoCheckout) String() string {
return string(yaml)
}
// Validate checks for possible values for
// repository checkout and returns Error for incorrect values
// returns nil when there are no errors
func (c *RepoCheckout) Validate() error {
possibleValues := []string{c.CommitHash, c.Branch, c.Tag, c.RemoteRef}
var count int
@ -65,6 +69,7 @@ var (
AllowedAuthTypes = []string{SSHAuth, SSHPass, HTTPBasic}
)
// String returns repository authentication details in string format
func (auth *RepoAuth) String() string {
yaml, err := yaml.Marshal(&auth)
if err != nil {
@ -73,6 +78,9 @@ func (auth *RepoAuth) String() string {
return string(yaml)
}
// Validate checks for possible values for
// repository authentication and returns Error for incorrect values
// returns nil when there are no errors
func (auth *RepoAuth) Validate() error {
if !stringInSlice(auth.Type, AllowedAuthTypes) {
return ErrAuthTypeNotSupported{}
@ -104,8 +112,7 @@ func stringInSlice(a string, list []string) bool {
return false
}
// Repository functions
// String returns repository details in a string format
func (repo *Repository) String() string {
yaml, err := yaml.Marshal(&repo)
if err != nil {
@ -114,6 +121,9 @@ func (repo *Repository) String() string {
return string(yaml)
}
// Validate check possible values for repository and
// returns Error when incorrect value is given
// retruns nill when there are no errors
func (repo *Repository) Validate() error {
if repo.URLString == "" {
return ErrRepoSpecRequiresURL{}
@ -136,6 +146,8 @@ func (repo *Repository) Validate() error {
return nil
}
// ToAuth returns an implementation of transport.AuthMethod for
// the given auth type to establish an ssh connection
func (repo *Repository) ToAuth() (transport.AuthMethod, error) {
if repo.Auth == nil {
return nil, nil
@ -152,6 +164,9 @@ func (repo *Repository) ToAuth() (transport.AuthMethod, error) {
}
}
// ToCheckoutOptions returns an instance of git.CheckoutOptions with
// respective values(Branch/Tag/Hash) in checkout options initialized
// CheckoutOptions describes how a checkout operation should be performed
func (repo *Repository) ToCheckoutOptions(force bool) *git.CheckoutOptions {
co := &git.CheckoutOptions{
Force: force,
@ -168,6 +183,9 @@ func (repo *Repository) ToCheckoutOptions(force bool) *git.CheckoutOptions {
return co
}
// ToCloneOptions returns an instance of git.CloneOptions with
// authentication and URL set
// CloneOptions describes how a clone should be performed
func (repo *Repository) ToCloneOptions(auth transport.AuthMethod) *git.CloneOptions {
return &git.CloneOptions{
Auth: auth,
@ -175,10 +193,13 @@ func (repo *Repository) ToCloneOptions(auth transport.AuthMethod) *git.CloneOpti
}
}
// ToFetchOptions returns an instance of git.FetchOptions for given authentication
// FetchOptions describes how a fetch should be performed
func (repo *Repository) ToFetchOptions(auth transport.AuthMethod) *git.FetchOptions {
return &git.FetchOptions{Auth: auth}
}
// URL returns the repository URL in a string format
func (repo *Repository) URL() string {
return repo.URLString
}

View File

@ -21,6 +21,7 @@ import (
)
const (
// DefaultTestPrimaryRepo holds default repo name
DefaultTestPrimaryRepo = "primary"
)
@ -100,10 +101,12 @@ func NewManifest() *Manifest {
}
}
// NewRepository is a convenience function that returns a new Repository
func NewRepository() *Repository {
return &Repository{}
}
// NewAuthInfo is a convenience function that returns a new AuthInfo
func NewAuthInfo() *AuthInfo {
return &AuthInfo{}
}

View File

@ -206,6 +206,7 @@ func (c *DockerContainer) getImageID(url string) (string, error) {
return img[0].ID, nil
}
// GetID returns ID of the container
func (c *DockerContainer) GetID() string {
return c.id
}

View File

@ -19,10 +19,13 @@ import (
"opendev.org/airship/airshipctl/pkg/environment"
)
// Settings is a reference to environment.AirshipCTLSettings
// AirshipCTLSettings is a container for all of the settings needed by airshipctl
type Settings struct {
*environment.AirshipCTLSettings
}
// Pull clones repositories
func (s *Settings) Pull() error {
err := s.cloneRepositories()
if err != nil {