Skip to content
Permalink
Browse files
Add logout command
  • Loading branch information
geomacy committed Jul 4, 2017
1 parent 2ac0e7a commit 6b7970e1459b10770a8a528e498f6515892b18b8
Showing 3 changed files with 66 additions and 0 deletions.
@@ -70,6 +70,7 @@ func NewFactory(network *net.Network, config *io.Config) (factory concreteFactor
// factory.superCommand(commands.NewList(network))
factory.simpleCommand(commands.NewLocations(network))
factory.simpleCommand(commands.NewLogin(network, config))
factory.simpleCommand(commands.NewLogout(network, config))
factory.simpleCommand(commands.NewPolicy(network))
factory.simpleCommand(commands.NewRename(network))
factory.simpleCommand(commands.NewSensor(network))
@@ -0,0 +1,57 @@
/*
* 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 commands

import (
"github.com/apache/brooklyn-client/cli/command_metadata"
"github.com/apache/brooklyn-client/cli/error_handler"
"github.com/apache/brooklyn-client/cli/io"
"github.com/apache/brooklyn-client/cli/net"
"github.com/apache/brooklyn-client/cli/scope"
"github.com/urfave/cli"
)

type Logout struct {
network *net.Network
config *io.Config
}

func NewLogout(network *net.Network, config *io.Config) (cmd *Logout) {
cmd = new(Logout)
cmd.network = network
cmd.config = config
return
}

func (cmd *Logout) Metadata() command_metadata.CommandMetadata {
return command_metadata.CommandMetadata{
Name: "logout",
Description: "Logout of brooklyn",
Usage: "BROOKLYN_NAME logout",
Flags: []cli.Flag{},
}
}

func (cmd *Logout) Run(scope scope.Scope, c *cli.Context) {
config := io.GetConfig()
err := config.Delete()
if err != nil {
error_handler.ErrorExit(err)
}
}
@@ -48,6 +48,14 @@ func GetConfig() (config *Config) {
return
}


func (config *Config) Delete() (err error) {
if _, err := os.Stat(config.FilePath); err == nil {
err = os.Remove(config.FilePath)
}
return err
}

func (config *Config) Write() {
// Create file as read/write by user (but does not change perms of existing file)
fileToWrite, err := os.OpenFile(config.FilePath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0600)

0 comments on commit 6b7970e

Please sign in to comment.