Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added parts for the NSX-T provider #825

Merged
merged 10 commits into from
May 27, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions app/controllers/api/cloud_networks_controller.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
module Api
class CloudNetworksController < BaseController
include Subcollections::Tags

def delete_resource(type, resource_id, _data = {})
raise BadRequestError, "Must specify an id for deleting a #{type} resource" unless resource_id

cloud_network = resource_search(resource_id, type, collection_class(type))
task_id = cloud_network.delete_cloud_network_queue(User.current_user.userid)
action_result(true, "Deleting #{cloud_network.name}", :task_id => task_id)
end
end
end
5 changes: 5 additions & 0 deletions app/controllers/api/network_services_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module Api
class NetworkServicesController < BaseController
include Subcollections::Tags
end
end
3 changes: 3 additions & 0 deletions app/controllers/api/providers_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,12 @@ class ProvidersController < BaseController
include Subcollections::Lans
include Subcollections::LoadBalancers
include Subcollections::Networks
include Subcollections::NetworkServices
include Subcollections::Policies
include Subcollections::PolicyProfiles
include Subcollections::SecurityGroups
include Subcollections::SecurityPolicies
include Subcollections::SecurityPolicyRules
include Subcollections::Tags
include Subcollections::Vms

Expand Down
8 changes: 8 additions & 0 deletions app/controllers/api/security_groups_controller.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
module Api
class SecurityGroupsController < BaseController
include Subcollections::Tags

def delete_resource(type, resource_id, _data = {})
raise BadRequestError, "Must specify an id for deleting a #{type} resource" unless resource_id

security_group = resource_search(resource_id, type, collection_class(type))
task_id = security_group.delete_security_group_queue(User.current_user.userid)
action_result(true, "Deleting #{security_group.name}", :task_id => task_id)
end
end
end
14 changes: 14 additions & 0 deletions app/controllers/api/security_policies_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module Api
class SecurityPoliciesController < BaseController
include Subcollections::Tags
include Subcollections::SecurityPolicyRules

def delete_resource(type, resource_id, _data = {})
raise BadRequestError, "Must specify an id for deleting a #{type} resource" unless resource_id

security_policy = resource_search(resource_id, type, collection_class(type))
task_id = security_policy.delete_security_policy_queue(User.current_user.userid)
action_result(true, "Deleting #{security_policy.name}", :task_id => task_id)
end
end
end
13 changes: 13 additions & 0 deletions app/controllers/api/security_policy_rules_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
module Api
class SecurityPolicyRulesController < BaseController
include Subcollections::Tags

def delete_resource(type, resource_id, _data = {})
raise BadRequestError, "Must specify an id for deleting a #{type} resource" unless resource_id

security_policy_rule = resource_search(resource_id, type, collection_class(type))
task_id = security_policy_rule.delete_security_policy_rule_queue(User.current_user.userid)
action_result(true, "Deleting #{security_policy_rule.name}", :task_id => task_id)
end
end
end
26 changes: 25 additions & 1 deletion app/controllers/api/subcollections/cloud_networks.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,31 @@ module Api
module Subcollections
module CloudNetworks
def cloud_networks_query_resource(object)
object.respond_to?(:cloud_networks) ? Array(object.cloud_networks) : []
object.try(:cloud_networks) || []
end

def cloud_networks_create_resource(provider, _type, _resource_id, data)
data.deep_symbolize_keys!
raise 'Must specify a name for the cloud network' unless data[:name]

message = "Creating cloud network"
task_id = queue_object_action(provider, message, :method_name => "create_cloud_network", :args => [data])
action_result(true, message, :task_id => task_id)
rescue => e
action_result(false, e.to_s)
end

def cloud_networks_edit_resource(_object, type, resource_id = nil, data = {})
raise BadRequestError, "Must specify an id for updating a #{type} resource" unless resource_id

data.deep_symbolize_keys!
cloud_network = resource_search(resource_id, type, collection_class(type))
task_id = cloud_network.update_cloud_network_queue(User.current_user.userid, data)
action_result(true, "Updating #{cloud_network.name}", :task_id => task_id)
end

def cloud_networks_delete_resource(_parent, type, resource_id, _data)
delete_resource(type, resource_id, data)
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/api/subcollections/cloud_subnets.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module Api
module Subcollections
module CloudSubnets
def cloud_subnets_query_resource(object)
object.respond_to?(:cloud_subnets) ? Array(object.cloud_subnets) : []
object.try(:cloud_subnets) || []
end

def cloud_subnets_create_resource(parent, _type, _id, data = {})
Expand Down
9 changes: 9 additions & 0 deletions app/controllers/api/subcollections/network_services.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module Api
module Subcollections
module NetworkServices
def network_services_query_resource(object)
object.try(:network_services) || []
end
end
end
end
54 changes: 37 additions & 17 deletions app/controllers/api/subcollections/security_groups.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,53 @@ module Api
module Subcollections
module SecurityGroups
def security_groups_query_resource(object)
object.respond_to?(:security_groups) ? Array(object.security_groups) : []
object.try(:security_groups) || []
end

def security_groups_add_resource(parent, _type, _id, data)
security_group = data["name"]
raise "Cannot add #{security_group} to #{parent.name}" unless parent.supports_add_security_group?

begin
raise "Cannot add #{security_group} to #{parent.name}" unless parent.supports_add_security_group?
message = "Adding security group #{security_group} to #{parent.name}"
task_id = queue_object_action(parent, message, :method_name => "add_security_group", :args => [security_group])
action_result(true, message, :task_id => task_id)
rescue => e
action_result(false, e.to_s)
end
message = "Adding security group #{security_group} to #{parent.name}"
task_id = queue_object_action(parent, message, :method_name => "add_security_group", :args => [security_group])
action_result(true, message, :task_id => task_id)
rescue => e
action_result(false, e.to_s)
end

def security_groups_remove_resource(parent, _type, _id, data)
security_group = data["name"]
raise "Cannot remove #{security_group} from #{parent.name}" unless parent.supports_remove_security_group?

begin
raise "Cannot remove #{security_group} from #{parent.name}" unless parent.supports_remove_security_group?
message = "Removing security group #{security_group} from #{parent.name}"
task_id = queue_object_action(parent, message, :method_name => "remove_security_group", :args => [security_group])
action_result(true, message, :task_id => task_id)
rescue => e
action_result(false, e.to_s)
end
message = "Removing security group #{security_group} from #{parent.name}"
task_id = queue_object_action(parent, message, :method_name => "remove_security_group", :args => [security_group])
action_result(true, message, :task_id => task_id)
rescue => e
action_result(false, e.to_s)
end

def security_groups_create_resource(provider, _type, _resource_id, data)
data.deep_symbolize_keys!
raise 'Must specify a name for the security group' unless data[:name]

message = "Creating security group"
task_id = queue_object_action(provider, message, :method_name => "create_security_group", :args => [data])
action_result(true, message, :task_id => task_id)
rescue => e
action_result(false, e.to_s)
end

def security_groups_edit_resource(_object, type, resource_id = nil, data = {})
raise BadRequestError, "Must specify an id for updating a #{type} resource" unless resource_id

data.deep_symbolize_keys!
security_group = resource_search(resource_id, type, collection_class(type))
task_id = security_group.update_security_group_queue(User.current_user.userid, data)
action_result(true, "Updating #{security_group.name}", :task_id => task_id)
end

def security_groups_delete_resource(_parent, type, resource_id, _data)
delete_resource(type, resource_id, data)
end
end
end
Expand Down
33 changes: 33 additions & 0 deletions app/controllers/api/subcollections/security_policies.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
module Api
module Subcollections
module SecurityPolicies
def security_policies_query_resource(object)
object.try(:security_policies) || []
end

def security_policies_create_resource(provider, _type, _resource_id, data)
data.deep_symbolize_keys!
raise 'Must specify a name for the security policy' unless data[:name]

message = "Creating security policy"
task_id = queue_object_action(provider, message, :method_name => "create_security_policy", :args => [data])
action_result(true, message, :task_id => task_id)
rescue => e
action_result(false, e.to_s)
end

def security_policies_edit_resource(_object, type, resource_id = nil, data = {})
raise BadRequestError, "Must specify an id for updating a #{type} resource" unless resource_id

data.deep_symbolize_keys!
security_policy = resource_search(resource_id, type, collection_class(type))
task_id = security_policy.update_security_policy_queue(User.current_user.userid, data)
action_result(true, "Updating #{security_policy.name}", :task_id => task_id)
end

def security_policies_delete_resource(_parent, type, resource_id, _data)
delete_resource(type, resource_id, data)
end
end
end
end
33 changes: 33 additions & 0 deletions app/controllers/api/subcollections/security_policy_rules.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
module Api
module Subcollections
module SecurityPolicyRules
def security_policy_rules_query_resource(object)
object.try(:security_policy_rules) || []
end

def security_policy_rules_create_resource(provider, _type, _resource_id, data)
data.deep_symbolize_keys!
raise 'Must specify a name for the security policy rule' unless data[:name]

message = "Creating security policy rule"
task_id = queue_object_action(provider, message, :method_name => "create_security_policy_rule", :args => [data])
action_result(true, message, :task_id => task_id)
rescue => e
action_result(false, e.to_s)
end

def security_policy_rules_edit_resource(_object, type, resource_id = nil, data = {})
raise BadRequestError, "Must specify an id for updating a #{type} resource" unless resource_id

data.deep_symbolize_keys!
security_policy_rule = resource_search(resource_id, type, collection_class(type))
task_id = security_policy_rule.update_security_policy_rule_queue(User.current_user.userid, data)
action_result(true, "Updating #{security_policy_rule.name}", :task_id => task_id)
end

def security_policy_rules_delete_resource(_parent, type, resource_id, _data)
delete_resource(type, resource_id, data)
end
end
end
end
Loading