Method: OpenC3::TargetModel#undeploy

Defined in:
lib/openc3/models/target_model.rb

#undeployObject



542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
# File 'lib/openc3/models/target_model.rb', line 542

def undeploy
  rubys3_client = Aws::S3::Client.new
  prefix = "#{@scope}/targets/#{@name}/"
  rubys3_client.list_objects(bucket: 'config', prefix: prefix).contents.each do |object|
    rubys3_client.delete_object(bucket: 'config', key: object.key)
  end

  self.class.get_model(name: @name, scope: @scope).limits_groups.each do |group|
    Store.hdel("#{@scope}__limits_groups", group)
  end
  self.class.packets(@name, type: :CMD, scope: @scope).each do |packet|
    Topic.del("#{@scope}__COMMAND__{#{@name}}__#{packet['packet_name']}")
    Topic.del("#{@scope}__DECOMCMD__{#{@name}}__#{packet['packet_name']}")
  end
  self.class.packets(@name, scope: @scope).each do |packet|
    Topic.del("#{@scope}__TELEMETRY__{#{@name}}__#{packet['packet_name']}")
    Topic.del("#{@scope}__DECOM__{#{@name}}__#{packet['packet_name']}")
    CvtModel.del(target_name: @name, packet_name: packet['packet_name'], scope: @scope)
    LimitsEventTopic.delete(@name, packet['packet_name'], scope: @scope)
  end
  Store.del("#{@scope}__openc3tlm__#{@name}")
  Store.del("#{@scope}__openc3cmd__#{@name}")

  # Note: these match the names of the services in deploy_microservices
  %w(DECOM COMMANDLOG DECOMCMDLOG PACKETLOG DECOMLOG REDUCER CLEANUP).each do |type|
    model = MicroserviceModel.get_model(name: "#{@scope}__#{type}__#{@name}", scope: @scope)
    model.destroy if model
  end

  ConfigTopic.write({ kind: 'deleted', type: 'target', name: @name, plugin: @plugin }, scope: @scope)
end