2015-01-25 06:19:16 +03:00
|
|
|
// Copyright 2015 CoreOS, Inc.
|
|
|
|
//
|
|
|
|
// 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.
|
|
|
|
|
2014-10-08 02:06:51 +04:00
|
|
|
package migrate
|
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
"io/ioutil"
|
|
|
|
|
2014-10-29 23:27:07 +03:00
|
|
|
"github.com/coreos/etcd/raft/raftpb"
|
2014-10-08 02:06:51 +04:00
|
|
|
)
|
|
|
|
|
|
|
|
type Config4 struct {
|
|
|
|
CommitIndex uint64 `json:"commitIndex"`
|
|
|
|
|
2014-10-29 23:27:07 +03:00
|
|
|
Peers []struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
ConnectionString string `json:"connectionString"`
|
|
|
|
} `json:"peers"`
|
2014-10-08 02:06:51 +04:00
|
|
|
}
|
|
|
|
|
2014-12-19 03:14:42 +03:00
|
|
|
func (c *Config4) HardState2() raftpb.HardState {
|
2014-10-08 02:06:51 +04:00
|
|
|
return raftpb.HardState{
|
2014-10-29 23:27:07 +03:00
|
|
|
Commit: c.CommitIndex,
|
2014-10-08 02:06:51 +04:00
|
|
|
Term: 0,
|
|
|
|
Vote: 0,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func DecodeConfig4FromFile(cfgPath string) (*Config4, error) {
|
|
|
|
b, err := ioutil.ReadFile(cfgPath)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
conf := &Config4{}
|
|
|
|
if err = json.Unmarshal(b, conf); err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
return conf, nil
|
|
|
|
}
|