feat(climc): add operation of app and appenvironment

This commit is contained in:
rainzm
2021-08-02 11:24:30 +08:00
parent 64f5e09439
commit cd79e2d4a3
3 changed files with 139 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
// 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 compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
cmd := shell.NewResourceCmd(&modules.Apps)
cmd.List(&compute.AppListOptions{})
cmd.Show(&compute.AppIdOptions{})
cmd.Perform("syncstatus", &compute.AppIdOptions{})
cmd1 := shell.NewResourceCmd(&modules.AppEnvironments)
cmd1.List(&compute.AppEnvironmentListOptions{})
cmd1.Show(&compute.AppEnvironmentIdOption{})
}
+43
View File
@@ -0,0 +1,43 @@
// 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 modules
import "yunion.io/x/onecloud/pkg/mcclient/modulebase"
type AppManager struct {
modulebase.ResourceManager
}
type AppEnvironmentManager struct {
modulebase.ResourceManager
}
var (
Apps AppManager
AppEnvironments AppEnvironmentManager
)
func init() {
Apps = AppManager{NewComputeManager("webapp", "webapps",
[]string{},
[]string{},
)}
AppEnvironments = AppEnvironmentManager{NewComputeManager("webappenvironment", "webappenvironments",
[]string{},
[]string{},
)}
registerCompute(&Apps)
registerCompute(&AppEnvironments)
}
+64
View File
@@ -0,0 +1,64 @@
// 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 compute
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
type AppListOptions struct {
options.BaseListOptions
TechStack string
}
func (opts *AppListOptions) Params() (jsonutils.JSONObject, error) {
return options.ListStructToParams(opts)
}
type AppIdOptions struct {
ID string `help:"App Id"`
}
func (opts *AppIdOptions) GetId() string {
return opts.ID
}
func (opts *AppIdOptions) Params() (jsonutils.JSONObject, error) {
return nil, nil
}
type AppEnvironmentListOptions struct {
options.BaseListOptions
AppId string `help:"App Id"`
InstanceType string `help:"Instance Type"`
}
func (opts *AppEnvironmentListOptions) Params() (jsonutils.JSONObject, error) {
return options.ListStructToParams(opts)
}
type AppEnvironmentIdOption struct {
ID string `help:"AppEnvironment ID"`
}
func (opts *AppEnvironmentIdOption) GetId() string {
return opts.ID
}
func (opts *AppEnvironmentIdOption) Params() (jsonutils.JSONObject, error) {
return nil, nil
}