{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.TimerTrigger$TimerTriggerCause",
          "shortDescription" : "Started by timer"
        }
      ]
    },
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH",
          "value" : "master"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "EMAIL_NOTIFICATIONS",
          "value" : "jenkins-notifications@lists.osmocom.org"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 2,
      "buildableTimeMillis" : 2,
      "buildingDurationMillis" : 471280,
      "executingTimeMillis" : 471280,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 1,
      "waitingTimeMillis" : 1
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 492,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "e0a9e73267f18fed1d81874938f5e2831afd12e6",
            "branch" : [
              {
                "SHA1" : "e0a9e73267f18fed1d81874938f5e2831afd12e6",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "e0a9e73267f18fed1d81874938f5e2831afd12e6",
            "branch" : [
              {
                "SHA1" : "e0a9e73267f18fed1d81874938f5e2831afd12e6",
                "name" : "origin/master"
              }
            ]
          }
        },
        "refs/remotes/origin/osmith/wip" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 5,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "b52b9704ed57386959a73c98e946c756e0188e6c",
            "branch" : [
              {
                "SHA1" : "b52b9704ed57386959a73c98e946c756e0188e6c",
                "name" : "refs/remotes/origin/osmith/wip"
              }
            ]
          },
          "revision" : {
            "SHA1" : "b52b9704ed57386959a73c98e946c756e0188e6c",
            "branch" : [
              {
                "SHA1" : "b52b9704ed57386959a73c98e946c756e0188e6c",
                "name" : "refs/remotes/origin/osmith/wip"
              }
            ]
          }
        },
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 253,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "c7c48718ba3637e29fc6a7af4e2e39ba0679bb8d",
            "branch" : [
              {
                "SHA1" : "c7c48718ba3637e29fc6a7af4e2e39ba0679bb8d",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "c7c48718ba3637e29fc6a7af4e2e39ba0679bb8d",
            "branch" : [
              {
                "SHA1" : "c7c48718ba3637e29fc6a7af4e2e39ba0679bb8d",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "e0a9e73267f18fed1d81874938f5e2831afd12e6",
        "branch" : [
          {
            "SHA1" : "e0a9e73267f18fed1d81874938f5e2831afd12e6",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://gerrit.osmocom.org/pysim"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#492",
  "duration" : 471280,
  "estimatedDuration" : 472168,
  "executor" : None,
  "fullDisplayName" : "simtester-sanitize #492",
  "id" : "492",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 492,
  "queueId" : 20406,
  "result" : "SUCCESS",
  "timestamp" : 1769906581035,
  "url" : "https://jenkins.osmocom.org/jenkins/job/simtester-sanitize/492/",
  "builtOn" : "simtester",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "pySim-trace.py",
          "pySim/apdu_source/stdin_hex.py"
        ],
        "commitId" : "429b12c8b5064f3abc7ca4c1d748cd5544d15b29",
        "timestamp" : 1769822568000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "pySim-trace: pySim.apdu_source.stdin_hex\u000a\u000aThis introduces an \"APDU source\" for pySim-trace which enables the\u000adecoding of APDUs that are copy+pasted from elsewhere, for example\u000aAPDU logs in text form created by proprietary tools, or to decode\u000apersonalization scripts or the like.\u000a\u000aChange-Id: I5aacf13b7c27cea9efd42f01dacca61068c3aa33\u000a",
        "date" : "2026-01-31 01:22:48 +0000",
        "id" : "429b12c8b5064f3abc7ca4c1d748cd5544d15b29",
        "msg" : "pySim-trace: pySim.apdu_source.stdin_hex",
        "paths" : [
          {
            "editType" : "add",
            "file" : "pySim/apdu_source/stdin_hex.py"
          },
          {
            "editType" : "edit",
            "file" : "pySim-trace.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tests/pySim-prog_test/sysmoISIM-SJA2.ok",
          "tests/pySim-prog_test/sysmosim-gr1.ok",
          "tests/pySim-prog_test/sysmoISIM-SJA5.ok",
          "tests/pySim-prog_test/Wavemobile-SIM.ok",
          "tests/pySim-prog_test/sysmoUSIM-SJS1.ok",
          "tests/pySim-prog_test/Fairwaves-SIM.ok",
          "pySim-read.py",
          "tests/pySim-prog_test/fakemagicsim.ok"
        ],
        "commitId" : "ae912455822dce0bea3e0c98abc4c827653c6fe8",
        "timestamp" : 1769823032000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "Print SMSC in pySim-read.py\u000a\u000aChange-Id: I17067b68086316d51fd71ba77049874605594e3f\u000a",
        "date" : "2026-01-31 01:30:32 +0000",
        "id" : "ae912455822dce0bea3e0c98abc4c827653c6fe8",
        "msg" : "Print SMSC in pySim-read.py",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/fakemagicsim.ok"
          },
          {
            "editType" : "edit",
            "file" : "pySim-read.py"
          },
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/sysmoISIM-SJA5.ok"
          },
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/Wavemobile-SIM.ok"
          },
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/sysmoUSIM-SJS1.ok"
          },
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/sysmosim-gr1.ok"
          },
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/Fairwaves-SIM.ok"
          },
          {
            "editType" : "edit",
            "file" : "tests/pySim-prog_test/sysmoISIM-SJA2.ok"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "pySim/card_key_provider.py"
        ],
        "commitId" : "1f2db11d31d28b796dfe44adad74e36c4cb75b48",
        "timestamp" : 1769823132000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "pySim/card_key_provider: fix typo in keys\u000a\u000aChange-Id: Ie76f351ae221da2a0aab65c311fafe8ae6d63663\u000a",
        "date" : "2026-01-31 01:32:12 +0000",
        "id" : "1f2db11d31d28b796dfe44adad74e36c4cb75b48",
        "msg" : "pySim/card_key_provider: fix typo in keys",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "pySim/card_key_provider.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "contrib/csv-to-pgsql.py"
        ],
        "commitId" : "e62f160775f8fa99e83a0b20acaf04054172a912",
        "timestamp" : 1769823147000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "contrib/csv-to-pgsql: add missing copyright header\u000a\u000aChange-Id: Iad8b2c1abb6a80764d05c823fbd03a9eae0ec0ab\u000a",
        "date" : "2026-01-31 01:32:27 +0000",
        "id" : "e62f160775f8fa99e83a0b20acaf04054172a912",
        "msg" : "contrib/csv-to-pgsql: add missing copyright header",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "contrib/csv-to-pgsql.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "contrib/es9p_client.py"
        ],
        "commitId" : "4e35e2c357f3a959ba04aff3990816d01f5a3b08",
        "timestamp" : 1769856508000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "es9p_client: Fix type conversion in installation result notification\u000a\u000aThe asn.1 encoder expects bytes-like objects, we cannot simply pass\u000ahex-strings to it without conversion\u000a\u000aChange-Id: I83ad047e043dc6b3462b188ce6dd0b2cc0e52e87\u000a",
        "date" : "2026-01-31 10:48:28 +0000",
        "id" : "4e35e2c357f3a959ba04aff3990816d01f5a3b08",
        "msg" : "es9p_client: Fix type conversion in installation result notification",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "contrib/es9p_client.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "contrib/es9p_client.py"
        ],
        "commitId" : "22c3797a89bc3e93c82194dab1af7ffa18f2b977",
        "timestamp" : 1769856508000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "es9p_client: MAke install notification code execute at all\u000a\u000aThe caller specified 'install' but the do_notification() function\u000acompared with 'download' :(\u000a\u000aChange-Id: I2d441cfbc1457688eb163301d3d91a1f1fdc7a8c\u000a",
        "date" : "2026-01-31 10:48:28 +0000",
        "id" : "22c3797a89bc3e93c82194dab1af7ffa18f2b977",
        "msg" : "es9p_client: MAke install notification code execute at all",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "contrib/es9p_client.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "pySim/esim/http_json_api.py"
        ],
        "commitId" : "e0a9e73267f18fed1d81874938f5e2831afd12e6",
        "timestamp" : 1769857112000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
          "fullName" : "laforge"
        },
        "authorEmail" : "laforge@osmocom.org",
        "comment" : "http_json_api: Only require Content-Type if response body is non-empty\u000a\u000aIf there is an empty body returned, such as in the case of the response\u000ato an es9p notification, then it is of course also legal to not set the\u000acontent-type header.\u000a\u000aThis patch fixes an exception when talking to certain SM-DP+ with\u000aes9p_client.py:\u000a\u000aDEBUG:pySim.esim.http_json_api:HTTP RSP-STS: [204] hdr: {'X-Admin-Protocol': 'gsma/rsp/v2.5.0', 'Date': 'Wed, 28 Jan 2026 18:26:39 GMT', 'Server': 'REDACTED'}\u000aDEBUG:pySim.esim.http_json_api:HTTP RSP: b''\u000a{'X-Admin-Protocol': 'gsma/rsp/v2.5.0', 'Date': 'Wed, 28 Jan 2026 18:26:39 GMT', 'Server': 'REDACTED'}\u000a<Response [204]>\u000aTraceback (most recent call last):\u000a  File \"gprojects/git/pysim/es9p/../contrib/es9p_client.py\", line 315, in <module>\u000a    c.do_notification()\u000a    ~~~~~~~~~~~~~~~~~^^\u000a  File \"projects/git/pysim/es9p/../contrib/es9p_client.py\", line 159, in do_notification\u000a    res = self.peer.call_handleNotification(data)\u000a  File \"projects/git/pysim/contrib/pySim/esim/es9p.py\", line 174, in call_handleNotification\u000a    return self.handleNotification.call(data)\u000a           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^\u000a  File \"projects/git/pysim/contrib/pySim/esim/http_json_api.py\", line 335, in call\u000a    if not response.headers.get('Content-Type').startswith(req_headers['Content-Type']):\u000a           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u000aAttributeError: 'NoneType' object has no attribute 'startswith'\u000a\u000aChange-Id: I99e8f167b7bb869c5ff6d908ba673dac87fef71a\u000a",
        "date" : "2026-01-31 11:58:32 +0100",
        "id" : "e0a9e73267f18fed1d81874938f5e2831afd12e6",
        "msg" : "http_json_api: Only require Content-Type if response body is non-empty",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "pySim/esim/http_json_api.py"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/laforge",
      "fullName" : "laforge"
    }
  ]
}