cloudproxy: initial version

This commit is contained in:
Yousong Zhou
2021-02-23 15:34:23 +08:00
parent 98fcdb2be5
commit 5eefa38f84
35 changed files with 3079 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
// Copyright 2019 Yunion
//
// 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 cloudproxy
import (
"yunion.io/x/onecloud/pkg/util/choices"
)
const (
PM_SCOPE_VPC = "vpc"
PM_SCOPE_NETWORK = "network"
)
var PM_SCOPES = choices.NewChoices(
PM_SCOPE_VPC,
PM_SCOPE_NETWORK,
)
const (
FORWARD_TYPE_LOCAL = "local"
FORWARD_TYPE_REMOTE = "remote"
)
var FORWARD_TYPES = choices.NewChoices(
FORWARD_TYPE_LOCAL,
FORWARD_TYPE_REMOTE,
)
const (
BindPortMin = 20000
BindPortMax = 60000
)
+15
View File
@@ -0,0 +1,15 @@
// Copyright 2019 Yunion
//
// 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 cloudproxy // import "yunion.io/x/onecloud/pkg/apis/cloudproxy"
+55
View File
@@ -0,0 +1,55 @@
// Copyright 2019 Yunion
//
// 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 cloudproxy
import (
"yunion.io/x/onecloud/pkg/apis"
)
type ForwardCreateInput struct {
apis.VirtualResourceCreateInput
ProxyEndpointId string
ProxyAgentId string
Type string
BindPortReq int `json:",omitzero"`
RemoteAddr string
RemotePort string
LastSeenTimeout int `json:",omitzero"`
Opaque string
}
type ForwardCreateFromServerInput struct {
ServerId string
Type string
BindPortReq int `json:",omitzero"`
RemotePort string
LastSeenTimeout int `json:",omitzero"`
}
type ForwardHeartbeatInput struct{}
type ForwardListInput struct {
ProxyAgentId string
ProxyEndpointId string
Type string
Opaque string
}
+35
View File
@@ -0,0 +1,35 @@
// Copyright 2019 Yunion
//
// 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 cloudproxy
import (
"yunion.io/x/onecloud/pkg/apis"
)
type ProxyAgentUpdateInput struct {
apis.StandaloneResourceBaseUpdateInput
BindAddr string `json:"bind_addr"`
AdvertiseAddr string `json:"advertise_addr"`
}
type ProxyAgentDetails struct {
apis.StandaloneResourceDetails
Id string `json:"id"`
BindAddr string `json:"bind_addr"`
AdvertiseAddr string `json:"advertise_addr"`
}
+50
View File
@@ -0,0 +1,50 @@
// Copyright 2019 Yunion
//
// 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 cloudproxy
import (
"yunion.io/x/onecloud/pkg/apis"
)
type ProxyEndpointCreateInput struct {
apis.VirtualResourceCreateInput
User string
Host string
Port int `json:",omitzero"`
PrivateKey string
IntranetIpAddr string
}
type ProxyEndpointCreateFromServerInput struct {
ServerId string
}
type ProxyEndpointUpdateInput struct {
apis.VirtualResourceBaseUpdateInput
User string `json:"user"`
Host string `json:"host"`
Port *int `json:"port"`
PrivateKey string `json:"private_key"`
}
type ProxyEndpointListInput struct {
apis.VirtualResourceBaseUpdateInput
VpcId string
NetworkId string
}