code: def setup_aa_profile(self):
          
          self()
          if not self.ctxt:
              log("Not enabling apparmor Profile")
              return
          self.install_aa_utils()
          cmd = ['aa-{}'.format(self.ctxt['aa_profile_mode'])]
          cmd.append(self.ctxt['aa_profile'])
          log("Setting up the apparmor profile for {} in {} mode."
              "".format(self.ctxt['aa_profile'], self.ctxt['aa_profile_mode']))
          try:
              check_call(cmd)
          except CalledProcessError as e:
              # If aa-profile-mode is set to disabled (default) manual
              # disabling is required as the template has been written but
              # apparmor is yet unaware of the profile and aa-disable aa-profile
              # fails. If aa-disable learns to read profile files first this can
              # be removed.
              if self.ctxt['aa_profile_mode'] == 'disable':
                  log("Manually disabling the apparmor profile for {}."
                      "".format(self.ctxt['aa_profile']))
                  self.manually_disable_aa_profile()
                  return
              status_set('blocked', "Apparmor profile {} failed to be set to {}."
                                    "".format(self.ctxt['aa_profile'],
                                              self.ctxt['aa_profile_mode']))
              raise e
docs: Setup an apparmor profile.
          The ctxt dictionary will contain the apparmor profile mode and
          the apparmor profile name.
          Makes calls out to aa-disable, aa-complain, or aa-enforce to setup
          the apparmor profile.