Add Floating IP get/search

Change-Id: I00b2f9d14bed83a53c31644ad6996136a900271a
Monty Taylor 6 years ago
parent 2b5aa82b70
commit 0e768e9a11
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594

@ -63,6 +63,7 @@ liboaktreemodel_la_CXXFLAGS = ${AM_CXXFLAGS} ${PROTOSKIP_WARNINGS} ${NO_WERROR}
liboaktreemodel_la_SOURCES = \
oaktreemodel/ \
oaktreemodel/ \
oaktreemodel/ \
oaktreemodel/ \
oaktreemodel/ \
oaktreemodel/ \
@ -71,6 +72,7 @@ liboaktreemodel_la_SOURCES = \
pkginclude_HEADERS = \
oaktreemodel/common.pb.h \
oaktreemodel/flavor.pb.h \
oaktreemodel/floating_ip.pb.h \
oaktreemodel/image.pb.h \
oaktreemodel/security_group.pb.h \
oaktreemodel/oaktree.pb.h \
@ -84,6 +86,9 @@ BUILT_SOURCES += \
oaktreemodel/ \
oaktreemodel/flavor.pb.h \
oaktreemodel/ \
oaktreemodel/ \
oaktreemodel/floating_ip.pb.h \
oaktreemodel/ \
oaktreemodel/ \
oaktreemodel/image.pb.h \
oaktreemodel/ \
@ -100,6 +105,7 @@ if HAVE_GO_PLUGIN
oaktreemodel/common.pb.go \
oaktreemodel/flavor.pb.go \
oaktreemodel/floating_ip.pb.go \
oaktreemodel/image.pb.go \
oaktreemodel/oaktree.pb.go \
@ -108,6 +114,7 @@ endif
oaktreemodel/common.proto \
oaktreemodel/flavor.proto \
oaktreemodel/floating_ip.proto \
oaktreemodel/image.proto \
oaktreemodel/security_group.proto \

@ -0,0 +1,137 @@
// Code generated by protoc-gen-go.
// source: floating_ip.proto
Package oaktree is a generated protocol buffer package.
It is generated from these files:
It has these top-level messages:
package oaktree
import proto ""
import fmt "fmt"
import math "math"
import oaktree1 "."
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
type FloatingIP_Status int32
const (
FloatingIP_active FloatingIP_Status = 0
FloatingIP_down FloatingIP_Status = 1
FloatingIP_error FloatingIP_Status = 2
var FloatingIP_Status_name = map[int32]string{
0: "active",
1: "down",
2: "error",
var FloatingIP_Status_value = map[string]int32{
"active": 0,
"down": 1,
"error": 2,
func (x FloatingIP_Status) String() string {
return proto.EnumName(FloatingIP_Status_name, int32(x))
func (FloatingIP_Status) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0} }
type FloatingIP struct {
Location *oaktree1.Location `protobuf:"bytes,1,opt,name=location" json:"location,omitempty"`
Id string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
IsAttached bool `protobuf:"varint,3,opt,name=is_attached,json=isAttached" json:"is_attached,omitempty"`
FixedIpAddress string `protobuf:"bytes,4,opt,name=fixed_ip_address,json=fixedIpAddress" json:"fixed_ip_address,omitempty"`
FloatingIpAddress string `protobuf:"bytes,5,opt,name=floating_ip_address,json=floatingIpAddress" json:"floating_ip_address,omitempty"`
Network string `protobuf:"bytes,6,opt,name=network" json:"network,omitempty"`
Port string `protobuf:"bytes,7,opt,name=port" json:"port,omitempty"`
Status FloatingIP_Status `protobuf:"varint,8,opt,name=status,enum=oaktree.FloatingIP_Status" json:"status,omitempty"`
Properties map[string]string `protobuf:"bytes,99,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
func (m *FloatingIP) Reset() { *m = FloatingIP{} }
func (m *FloatingIP) String() string { return proto.CompactTextString(m) }
func (*FloatingIP) ProtoMessage() {}
func (*FloatingIP) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *FloatingIP) GetLocation() *oaktree1.Location {
if m != nil {
return m.Location
return nil
func (m *FloatingIP) GetProperties() map[string]string {
if m != nil {
return m.Properties
return nil
type FloatingIPList struct {
FloatingIps []*FloatingIP `protobuf:"bytes,1,rep,name=floating_ips,json=floatingIps" json:"floating_ips,omitempty"`
func (m *FloatingIPList) Reset() { *m = FloatingIPList{} }
func (m *FloatingIPList) String() string { return proto.CompactTextString(m) }
func (*FloatingIPList) ProtoMessage() {}
func (*FloatingIPList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
func (m *FloatingIPList) GetFloatingIps() []*FloatingIP {
if m != nil {
return m.FloatingIps
return nil
func init() {
proto.RegisterType((*FloatingIP)(nil), "oaktree.FloatingIP")
proto.RegisterType((*FloatingIPList)(nil), "oaktree.FloatingIPList")
proto.RegisterEnum("oaktree.FloatingIP_Status", FloatingIP_Status_name, FloatingIP_Status_value)
func init() { proto.RegisterFile("floating_ip.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 365 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x6c, 0x92, 0xc1, 0x8e, 0xda, 0x30,
0x10, 0x86, 0x9b, 0x04, 0x42, 0x18, 0x50, 0x1a, 0x86, 0x1e, 0x2c, 0x2e, 0x45, 0xf4, 0x42, 0x0f,
0xcd, 0x81, 0x4a, 0x55, 0x55, 0xa9, 0x07, 0x54, 0x75, 0xb5, 0x48, 0x1c, 0x50, 0xf6, 0x01, 0x90,
0x37, 0x31, 0xbb, 0x16, 0x10, 0x47, 0xb6, 0x81, 0xe5, 0x49, 0xf7, 0x75, 0xd6, 0x38, 0xd9, 0x04,
0xad, 0xb8, 0xcd, 0xfc, 0xf3, 0x8d, 0x3c, 0xff, 0x2f, 0xc3, 0x60, 0xb3, 0x13, 0x54, 0xf3, 0xfc,
0x69, 0xcd, 0x8b, 0xb8, 0x90, 0x42, 0x0b, 0xec, 0x08, 0xba, 0xd5, 0x92, 0xb1, 0x51, 0x3f, 0x15,
0xfb, 0xbd, 0xc8, 0x4b, 0x79, 0xf2, 0xea, 0x01, 0xdc, 0x55, 0xf0, 0x62, 0x85, 0x3f, 0x20, 0xd8,
0x89, 0xd4, 0x74, 0x22, 0x27, 0xce, 0xd8, 0x99, 0xf6, 0x66, 0x83, 0xb8, 0x5a, 0x8c, 0x97, 0xd5,
0x20, 0xa9, 0x11, 0x0c, 0xc1, 0xe5, 0x19, 0x71, 0x0d, 0xd8, 0x4d, 0x4c, 0x85, 0x5f, 0xa1, 0xc7,
0xd5, 0x9a, 0x6a, 0x4d, 0xd3, 0x67, 0x96, 0x11, 0xcf, 0x0c, 0x82, 0x04, 0xb8, 0x9a, 0x57, 0x0a,
0x4e, 0x21, 0xda, 0xf0, 0x17, 0x96, 0x99, 0xbb, 0xd6, 0x34, 0xcb, 0x24, 0x53, 0x8a, 0xb4, 0xec,
0x7a, 0x68, 0xf5, 0x45, 0x31, 0x2f, 0x55, 0x8c, 0x61, 0x78, 0x65, 0xa2, 0x86, 0xdb, 0x16, 0xae,
0xfd, 0x35, 0x3c, 0x81, 0x4e, 0xce, 0xf4, 0x49, 0xc8, 0x2d, 0xf1, 0x2d, 0xf3, 0xde, 0x22, 0x42,
0xab, 0x10, 0x52, 0x93, 0x8e, 0x95, 0x6d, 0x8d, 0x33, 0xf0, 0x95, 0xa6, 0xfa, 0xa0, 0x48, 0x60,
0xd4, 0x70, 0x36, 0xaa, 0x5d, 0x36, 0x61, 0xc4, 0x0f, 0x96, 0x48, 0x2a, 0x12, 0xff, 0x01, 0x98,
0xcc, 0x0a, 0x26, 0x35, 0x67, 0x8a, 0xa4, 0x63, 0xcf, 0xa4, 0xf3, 0xed, 0xd6, 0xde, 0xaa, 0xa6,
0xfe, 0xe7, 0x5a, 0x9e, 0x93, 0xab, 0xb5, 0xd1, 0x5f, 0xf8, 0xfc, 0x61, 0x8c, 0x11, 0x78, 0x5b,
0x76, 0xb6, 0x71, 0x77, 0x93, 0x4b, 0x89, 0x5f, 0xa0, 0x7d, 0xa4, 0xbb, 0x03, 0xab, 0x92, 0x2d,
0x9b, 0x3f, 0xee, 0x6f, 0x67, 0xf2, 0x1d, 0xfc, 0xf2, 0x2a, 0x04, 0xf0, 0x69, 0xaa, 0xf9, 0x91,
0x45, 0x9f, 0x30, 0x80, 0x56, 0x26, 0x4e, 0x79, 0xe4, 0x60, 0x17, 0xda, 0x4c, 0x4a, 0x21, 0x23,
0x77, 0x72, 0x0f, 0x61, 0x73, 0xd3, 0x92, 0x2b, 0x8d, 0xbf, 0xa0, 0x7f, 0x15, 0xa9, 0x32, 0x2f,
0x5e, 0x2c, 0x0c, 0x6f, 0x58, 0x48, 0x7a, 0x4d, 0xc0, 0xea, 0xd1, 0xb7, 0x5f, 0xe5, 0xe7, 0x5b,
0x00, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x8d, 0x18, 0x49, 0x56, 0x02, 0x00, 0x00,

@ -0,0 +1,41 @@
// Copyright (c) 2016 Red Hat, 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
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
import "common.proto";
package oaktree;
message FloatingIP {
Location location = 1;
string id = 2;
bool is_attached = 3;
string fixed_ip_address = 4;
string floating_ip_address = 5;
string network = 6;
string port = 7;
enum Status {
active = 0;
down = 1;
error = 2;
Status status = 8;
map<string, string> properties = 99;
message FloatingIPList {
repeated FloatingIP floating_ips = 1;

@ -16,6 +16,7 @@
from oaktreemodel.common_pb2 import Project, Location, Filter
from oaktreemodel.flavor_pb2 import Flavor, FlavorList
from oaktreemodel.floating_ip_pb2 import FloatingIP, FloatingIPList
from oaktreemodel.image_pb2 import Image, ImageList
from oaktreemodel.security_group_pb2 import SecurityGroup, SecurityGroupList
from oaktreemodel.security_group_pb2 import SecurityGroupRule

@ -19,6 +19,7 @@ import _ "."
import _ "."
import _ "."
import _ "."
import _ "."
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@ -34,24 +35,26 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
func init() { proto.RegisterFile("oaktree.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 291 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x8c, 0x92, 0xdf, 0x4a, 0xc3, 0x30,
0x18, 0xc5, 0xd5, 0x81, 0xd3, 0xcf, 0x4e, 0x25, 0x0e, 0x91, 0x08, 0x5e, 0x78, 0x6f, 0x05, 0x87,
0x78, 0xe5, 0x85, 0x03, 0x37, 0x44, 0x65, 0xc3, 0x3d, 0x80, 0xc4, 0x92, 0xd5, 0xb0, 0xb6, 0x29,
0x5f, 0x53, 0xc1, 0xd7, 0xf1, 0x1d, 0xbd, 0x37, 0xff, 0x36, 0xec, 0x1a, 0xc1, 0xcb, 0x9c, 0x9c,
0xdf, 0x39, 0x27, 0x10, 0xe8, 0x49, 0xb6, 0x50, 0xc8, 0x79, 0x5c, 0xa2, 0x54, 0x92, 0x74, 0xfd,
0x91, 0x46, 0x89, 0xcc, 0x73, 0x59, 0x38, 0x99, 0x46, 0xf3, 0x8c, 0x7d, 0x48, 0xf4, 0xa7, 0x3d,
0x91, 0xb3, 0xd4, 0x13, 0xb4, 0x5f, 0xf1, 0xa4, 0x46, 0xa1, 0x3e, 0x5f, 0x53, 0x94, 0x75, 0xe9,
0xd4, 0xab, 0xef, 0x0e, 0x74, 0x27, 0x2e, 0x8a, 0x5c, 0xc2, 0xee, 0x98, 0xab, 0x91, 0x4d, 0x20,
0x07, 0xf1, 0xb2, 0x70, 0x24, 0x32, 0xc5, 0x91, 0xfe, 0x12, 0xac, 0xe3, 0x7c, 0x83, 0xdc, 0x40,
0x6f, 0xc6, 0x19, 0x26, 0xef, 0x4e, 0xa9, 0xda, 0xd0, 0xd1, 0x1a, 0xf4, 0x24, 0x2a, 0xa5, 0xc1,
0x0b, 0xd8, 0xd1, 0x4d, 0x0f, 0x66, 0x5d, 0x9b, 0xd9, 0x5f, 0x09, 0xd6, 0xa0, 0xed, 0xd7, 0x10,
0xb9, 0x1e, 0x2b, 0x04, 0x6a, 0x48, 0x13, 0xf1, 0x2d, 0xb7, 0x70, 0xa8, 0x5b, 0x66, 0xfe, 0xd9,
0x63, 0xf3, 0xea, 0x36, 0x7a, 0xbc, 0x12, 0x1a, 0x46, 0x8d, 0xdf, 0x43, 0xdf, 0xb5, 0x36, 0x2e,
0x02, 0xed, 0x34, 0x1c, 0xe1, 0x57, 0xe8, 0x98, 0xf5, 0x15, 0x2f, 0x75, 0xc6, 0xff, 0x1d, 0x63,
0xcc, 0x3a, 0xe6, 0x19, 0x4e, 0x02, 0x6b, 0xcc, 0x65, 0x60, 0xd1, 0xd9, 0xdf, 0x51, 0x6e, 0xd5,
0x70, 0x00, 0xa7, 0x12, 0xd3, 0x58, 0x96, 0xbc, 0xa8, 0x14, 0x4b, 0x16, 0xb1, 0x28, 0xe6, 0xc8,
0x96, 0xd8, 0x30, 0xf2, 0x7f, 0x62, 0x6a, 0x3e, 0xc9, 0x74, 0xf3, 0x6b, 0xab, 0x33, 0xb9, 0x7b,
0x7c, 0xdb, 0xb6, 0x7f, 0x66, 0xf0, 0x13, 0x00, 0x00, 0xff, 0xff, 0xf2, 0x6e, 0xbe, 0xa3, 0x8c,
0x02, 0x00, 0x00,
// 327 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x8c, 0x92, 0xd1, 0x4a, 0xf3, 0x30,
0x1c, 0xc5, 0xbf, 0x4f, 0xc5, 0xe9, 0xdf, 0x4e, 0x5d, 0x1d, 0x2a, 0x15, 0xbc, 0xf0, 0xde, 0x0a,
0x0e, 0xf1, 0x4a, 0xc4, 0x81, 0x1b, 0x43, 0x65, 0xc5, 0x3d, 0xc0, 0x88, 0x25, 0xad, 0x61, 0x6d,
0x53, 0xd2, 0x54, 0xf0, 0x75, 0x7c, 0x41, 0x5f, 0xc1, 0x34, 0xf9, 0x77, 0xd8, 0x35, 0x8a, 0x97,
0x39, 0x39, 0xe7, 0xfc, 0x0e, 0x21, 0xd0, 0xe5, 0x64, 0x21, 0x05, 0xa5, 0x7e, 0x2e, 0xb8, 0xe4,
0x6e, 0x07, 0x8f, 0x9e, 0x13, 0xf2, 0x34, 0xe5, 0x99, 0x91, 0x3d, 0x27, 0x4a, 0xc8, 0x1b, 0x17,
0x78, 0xea, 0x45, 0x09, 0x27, 0x92, 0x65, 0xf1, 0x9c, 0xe5, 0x28, 0xed, 0xb0, 0x94, 0xc4, 0x58,
0xe2, 0xf5, 0x0b, 0x1a, 0x96, 0x82, 0xc9, 0xf7, 0x79, 0x2c, 0x78, 0x89, 0x96, 0xcb, 0xcf, 0x0d,
0xe8, 0x4c, 0x4d, 0xbb, 0x7b, 0x01, 0xdb, 0x63, 0x2a, 0x47, 0xba, 0xd4, 0xdd, 0xf3, 0xeb, 0x0d,
0x23, 0x96, 0x48, 0x2a, 0xbc, 0x6f, 0x82, 0x76, 0x9c, 0xfd, 0x73, 0xaf, 0xa1, 0x3b, 0xa3, 0x44,
0x84, 0xaf, 0x46, 0x29, 0xda, 0xa1, 0x83, 0x95, 0xd0, 0x23, 0x2b, 0xa4, 0x09, 0x6a, 0x92, 0x19,
0x3c, 0x09, 0x7e, 0x0f, 0xd6, 0x2e, 0x15, 0xbc, 0x85, 0x5e, 0x4d, 0xac, 0x55, 0x0b, 0xf5, 0xc8,
0x12, 0x46, 0xf2, 0x39, 0x6c, 0x29, 0xf2, 0xa4, 0x7a, 0x97, 0x76, 0x6e, 0x77, 0x29, 0x68, 0x83,
0xb2, 0x5f, 0x81, 0x63, 0x78, 0x5a, 0xb0, 0xa0, 0xdc, 0x66, 0x04, 0x29, 0x37, 0xb0, 0xaf, 0x28,
0x33, 0x7c, 0xf0, 0x71, 0xf5, 0xde, 0xed, 0xe8, 0xe1, 0x52, 0x68, 0x18, 0x55, 0xfc, 0x1e, 0xfa,
0x86, 0xda, 0xb8, 0xb0, 0xd0, 0x3d, 0x7b, 0x05, 0xae, 0x50, 0x35, 0xab, 0x2b, 0x9e, 0xcb, 0x84,
0xfe, 0xb9, 0xa6, 0x32, 0xab, 0x9a, 0x27, 0x38, 0xb6, 0xac, 0xa9, 0x2e, 0x2d, 0x8b, 0x4e, 0x7f,
0xae, 0x32, 0xab, 0x86, 0x03, 0x38, 0xe1, 0x22, 0xf6, 0x79, 0x4e, 0xb3, 0x42, 0x92, 0x70, 0xe1,
0xb3, 0x2c, 0x12, 0xa4, 0x8e, 0x0d, 0x1d, 0xfc, 0x8d, 0x41, 0xf5, 0x3d, 0x83, 0xff, 0x1f, 0x6b,
0xeb, 0xd3, 0xbb, 0x87, 0x97, 0x4d, 0xfd, 0x5b, 0x07, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x66,
0xa3, 0x18, 0x3f, 0x19, 0x03, 0x00, 0x00,

@ -22,6 +22,7 @@ option objc_class_prefix = "OAK";
import "common.proto";
import "flavor.proto";
import "floating_ip.proto";
import "image.proto";
import "security_group.proto";
@ -30,6 +31,8 @@ package oaktree;
service Oaktree {
rpc GetFlavor (Filter) returns (Flavor) {}
rpc SearchFlavors (Filter) returns (FlavorList) {}
rpc GetFloatingIP (Filter) returns (FloatingIP) {}
rpc SearchFloatingIPs (Filter) returns (FloatingIPList) {}
rpc GetImage (Filter) returns (Image) {}
rpc SearchImages (Filter) returns (ImageList) {}
rpc GetSecurityGroup (Filter) returns (SecurityGroup) {}